chore: regens API reference docs (#889)

diff --git a/docs/dyn/container_v1beta1.projects.zones.clusters.html b/docs/dyn/container_v1beta1.projects.zones.clusters.html
index 49eea9c..8126a39 100644
--- a/docs/dyn/container_v1beta1.projects.zones.clusters.html
+++ b/docs/dyn/container_v1beta1.projects.zones.clusters.html
@@ -80,13 +80,13 @@
 <p class="firstline">Returns the nodePools Resource.</p>
 
 <p class="toc_element">
-  <code><a href="#addons">addons(projectId, zone, clusterId, body, x__xgafv=None)</a></code></p>
+  <code><a href="#addons">addons(projectId, zone, clusterId, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Sets the addons for a specific cluster.</p>
 <p class="toc_element">
-  <code><a href="#completeIpRotation">completeIpRotation(projectId, zone, clusterId, body, x__xgafv=None)</a></code></p>
+  <code><a href="#completeIpRotation">completeIpRotation(projectId, zone, clusterId, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Completes master IP rotation.</p>
 <p class="toc_element">
-  <code><a href="#create">create(projectId, zone, body, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(projectId, zone, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a cluster, consisting of the specified number and type of Google</p>
 <p class="toc_element">
   <code><a href="#delete">delete(projectId, zone, clusterId, name=None, x__xgafv=None)</a></code></p>
@@ -95,64 +95,64 @@
   <code><a href="#get">get(projectId, zone, clusterId, name=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the details for a specific cluster.</p>
 <p class="toc_element">
-  <code><a href="#legacyAbac">legacyAbac(projectId, zone, clusterId, body, x__xgafv=None)</a></code></p>
+  <code><a href="#legacyAbac">legacyAbac(projectId, zone, clusterId, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Enables or disables the ABAC authorization mechanism on a cluster.</p>
 <p class="toc_element">
   <code><a href="#list">list(projectId, zone, parent=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists all clusters owned by a project in either the specified zone or all</p>
 <p class="toc_element">
-  <code><a href="#locations">locations(projectId, zone, clusterId, body, x__xgafv=None)</a></code></p>
+  <code><a href="#locations">locations(projectId, zone, clusterId, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Sets the locations for a specific cluster.</p>
 <p class="toc_element">
-  <code><a href="#logging">logging(projectId, zone, clusterId, body, x__xgafv=None)</a></code></p>
+  <code><a href="#logging">logging(projectId, zone, clusterId, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Sets the logging service for a specific cluster.</p>
 <p class="toc_element">
-  <code><a href="#master">master(projectId, zone, clusterId, body, x__xgafv=None)</a></code></p>
+  <code><a href="#master">master(projectId, zone, clusterId, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates the master for a specific cluster.</p>
 <p class="toc_element">
-  <code><a href="#monitoring">monitoring(projectId, zone, clusterId, body, x__xgafv=None)</a></code></p>
+  <code><a href="#monitoring">monitoring(projectId, zone, clusterId, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Sets the monitoring service for a specific cluster.</p>
 <p class="toc_element">
-  <code><a href="#resourceLabels">resourceLabels(projectId, zone, clusterId, body, x__xgafv=None)</a></code></p>
+  <code><a href="#resourceLabels">resourceLabels(projectId, zone, clusterId, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Sets labels on a cluster.</p>
 <p class="toc_element">
-  <code><a href="#setMaintenancePolicy">setMaintenancePolicy(projectId, zone, clusterId, body, x__xgafv=None)</a></code></p>
+  <code><a href="#setMaintenancePolicy">setMaintenancePolicy(projectId, zone, clusterId, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Sets the maintenance policy for a cluster.</p>
 <p class="toc_element">
-  <code><a href="#setMasterAuth">setMasterAuth(projectId, zone, clusterId, body, x__xgafv=None)</a></code></p>
+  <code><a href="#setMasterAuth">setMasterAuth(projectId, zone, clusterId, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Sets master auth materials. Currently supports changing the admin password</p>
 <p class="toc_element">
-  <code><a href="#setNetworkPolicy">setNetworkPolicy(projectId, zone, clusterId, body, x__xgafv=None)</a></code></p>
+  <code><a href="#setNetworkPolicy">setNetworkPolicy(projectId, zone, clusterId, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Enables or disables Network Policy for a cluster.</p>
 <p class="toc_element">
-  <code><a href="#startIpRotation">startIpRotation(projectId, zone, clusterId, body, x__xgafv=None)</a></code></p>
+  <code><a href="#startIpRotation">startIpRotation(projectId, zone, clusterId, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Starts master IP rotation.</p>
 <p class="toc_element">
-  <code><a href="#update">update(projectId, zone, clusterId, body, x__xgafv=None)</a></code></p>
+  <code><a href="#update">update(projectId, zone, clusterId, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates the settings for a specific cluster.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="addons">addons(projectId, zone, clusterId, body, x__xgafv=None)</code>
+    <code class="details" id="addons">addons(projectId, zone, clusterId, body=None, x__xgafv=None)</code>
   <pre>Sets the addons for a specific cluster.
 
 Args:
-  projectId: string, Deprecated. The Google Developers Console [project ID or project
+  projectId: string, Required. Deprecated. The Google Developers Console [project ID or project
 number](https://support.google.com/cloud/answer/6158840).
 This field has been deprecated and replaced by the name field. (required)
-  zone: string, Deprecated. The name of the Google Compute Engine
-[zone](/compute/docs/zones#available) in which the cluster
-resides.
+  zone: string, Required. Deprecated. The name of the Google Compute Engine
+[zone](https://cloud.google.com/compute/docs/zones#available) in which the
+cluster resides. This field has been deprecated and replaced by the name
+field. (required)
+  clusterId: string, Required. Deprecated. The name of the cluster to upgrade.
 This field has been deprecated and replaced by the name field. (required)
-  clusterId: string, Deprecated. The name of the cluster to upgrade.
-This field has been deprecated and replaced by the name field. (required)
-  body: object, The request body. (required)
+  body: object, The request body.
     The object takes the form of:
 
 { # SetAddonsRequest sets the addons associated with the cluster.
-    "projectId": "A String", # Deprecated. The Google Developers Console [project ID or project
+    "projectId": "A String", # Required. Deprecated. The Google Developers Console [project ID or project
         # number](https://support.google.com/cloud/answer/6158840).
         # This field has been deprecated and replaced by the name field.
-    "addonsConfig": { # Configuration for the addons that can be automatically spun up in the # The desired configurations for the various addons available to run in the
+    "addonsConfig": { # Configuration for the addons that can be automatically spun up in the # Required. The desired configurations for the various addons available to run in the
         # cluster.
         # cluster, enabling additional functionality.
       "networkPolicyConfig": { # Configuration for NetworkPolicy. This only tracks whether the addon # Configuration for NetworkPolicy. This only tracks whether the addon
@@ -174,14 +174,29 @@
             # When enabled, it runs a small pod in the cluster that manages the load
             # balancers.
       },
+      "kalmConfig": { # Configuration options for the KALM addon. # Configuration for the KALM addon, which manages the lifecycle of k8s
+          # applications.
+        "enabled": True or False, # Whether KALM is enabled for this cluster.
+      },
       "horizontalPodAutoscaling": { # Configuration options for the horizontal pod autoscaling feature, which # Configuration for the horizontal pod autoscaling feature, which
           # increases or decreases the number of replica pods a replication controller
           # has based on the resource usage of the existing pods.
           # increases or decreases the number of replica pods a replication controller
           # has based on the resource usage of the existing pods.
         "disabled": True or False, # Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.
-            # When enabled, it ensures that a Heapster pod is running in the cluster,
-            # which is also used by the Cloud Monitoring service.
+            # When enabled, it ensures that metrics are collected into Stackdriver
+            # Monitoring.
+      },
+      "gcePersistentDiskCsiDriverConfig": { # Configuration for the Compute Engine PD CSI driver. This option can only be # Configuration for the Compute Engine Persistent Disk CSI driver.
+          # enabled at cluster creation time.
+        "enabled": True or False, # Whether the Compute Engine PD CSI driver is enabled for this cluster.
+      },
+      "configConnectorConfig": { # Configuration options for the Config Connector add-on. # Configuration for the ConfigConnector add-on, a Kubernetes
+          # extension to manage hosted GCP services through the Kubernetes API
+        "enabled": True or False, # Whether Cloud Connector is enabled for this cluster.
+      },
+      "dnsCacheConfig": { # Configuration for NodeLocal DNSCache # Configuration for NodeLocalDNS, a dns cache running on cluster nodes
+        "enabled": True or False, # Whether NodeLocal DNSCache is enabled for this cluster.
       },
       "istioConfig": { # Configuration options for Istio addon. # Configuration for Istio, an open platform to connect, manage, and secure
           # microservices.
@@ -196,14 +211,14 @@
         "disabled": True or False, # Whether the Kubernetes Dashboard is enabled for this cluster.
       },
     },
-    "clusterId": "A String", # Deprecated. The name of the cluster to upgrade.
+    "clusterId": "A String", # Required. Deprecated. The name of the cluster to upgrade.
         # This field has been deprecated and replaced by the name field.
     "name": "A String", # The name (project, location, cluster) of the cluster to set addons.
         # Specified in the format 'projects/*/locations/*/clusters/*'.
-    "zone": "A String", # Deprecated. The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the cluster
-        # resides.
-        # This field has been deprecated and replaced by the name field.
+    "zone": "A String", # Required. Deprecated. The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # cluster resides. This field has been deprecated and replaced by the name
+        # field.
   }
 
   x__xgafv: string, V1 error format.
@@ -217,20 +232,13 @@
     { # This operation resource represents operations that may have happened or are
       # happening on the cluster. All fields are output only.
     "status": "A String", # The current status of the operation.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
     "endTime": "A String", # [Output only] The time the operation completed, in
         # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     "name": "A String", # The server-assigned ID for the operation.
     "zone": "A String", # The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the operation
-        # is taking place.
-        # This field is deprecated, use location instead.
-    "location": "A String", # [Output only] The name of the Google Compute Engine
-        # [zone](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "detail": "A String", # Detailed operation progress, if available.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "clusterConditions": [ # Which conditions caused the current cluster state.
       { # StatusCondition describes why a cluster or a node pool has a certain status
           # (e.g., ERROR or DEGRADED).
@@ -238,9 +246,12 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "detail": "A String", # Detailed operation progress, if available.
+    "targetLink": "A String", # Server-defined URL for the target of the operation.
     "operationType": "A String", # The operation type.
-    "progress": { # Information about operation (or operation stage) progress. # [Output only] Progress information for an operation.
+    "progress": { # Information about operation (or operation stage) progress. # Output only. [Output only] Progress information for an operation.
       "status": "A String", # Status of an operation stage.
           # Unset for single-stage operations.
       "metrics": [ # Progress metric bundle, for example:
@@ -252,8 +263,7 @@
         { # Progress metric is (string, int|float|string) pair.
           "stringValue": "A String", # For metrics with custom values (ratios, visual progress, etc.).
           "intValue": "A String", # For metrics with integer value.
-          "name": "A String", # Metric name, required.
-              # e.g., "nodes total", "percent done"
+          "name": "A String", # Required. Metric name, e.g., "nodes total", "percent done".
           "doubleValue": 3.14, # For metrics with floating point value.
         },
       ],
@@ -271,39 +281,43 @@
       },
     ],
     "selfLink": "A String", # Server-defined URL for the resource.
-    "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "location": "A String", # [Output only] The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # or
+        # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # in which the cluster resides.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="completeIpRotation">completeIpRotation(projectId, zone, clusterId, body, x__xgafv=None)</code>
+    <code class="details" id="completeIpRotation">completeIpRotation(projectId, zone, clusterId, body=None, x__xgafv=None)</code>
   <pre>Completes master IP rotation.
 
 Args:
-  projectId: string, Deprecated. The Google Developers Console [project ID or project
+  projectId: string, Required. Deprecated. The Google Developers Console [project ID or project
 number](https://developers.google.com/console/help/new/#projectnumber).
 This field has been deprecated and replaced by the name field. (required)
-  zone: string, Deprecated. The name of the Google Compute Engine
-[zone](/compute/docs/zones#available) in which the cluster
-resides.
+  zone: string, Required. Deprecated. The name of the Google Compute Engine
+[zone](https://cloud.google.com/compute/docs/zones#available) in which the
+cluster resides. This field has been deprecated and replaced by the name
+field. (required)
+  clusterId: string, Required. Deprecated. The name of the cluster.
 This field has been deprecated and replaced by the name field. (required)
-  clusterId: string, Deprecated. The name of the cluster.
-This field has been deprecated and replaced by the name field. (required)
-  body: object, The request body. (required)
+  body: object, The request body.
     The object takes the form of:
 
 { # CompleteIPRotationRequest moves the cluster master back into single-IP mode.
-    "projectId": "A String", # Deprecated. The Google Developers Console [project ID or project
+    "projectId": "A String", # Required. Deprecated. The Google Developers Console [project ID or project
         # number](https://developers.google.com/console/help/new/#projectnumber).
         # This field has been deprecated and replaced by the name field.
-    "clusterId": "A String", # Deprecated. The name of the cluster.
+    "clusterId": "A String", # Required. Deprecated. The name of the cluster.
         # This field has been deprecated and replaced by the name field.
     "name": "A String", # The name (project, location, cluster id) of the cluster to complete IP
         # rotation. Specified in the format 'projects/*/locations/*/clusters/*'.
-    "zone": "A String", # Deprecated. The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the cluster
-        # resides.
-        # This field has been deprecated and replaced by the name field.
+    "zone": "A String", # Required. Deprecated. The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # cluster resides. This field has been deprecated and replaced by the name
+        # field.
   }
 
   x__xgafv: string, V1 error format.
@@ -317,20 +331,13 @@
     { # This operation resource represents operations that may have happened or are
       # happening on the cluster. All fields are output only.
     "status": "A String", # The current status of the operation.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
     "endTime": "A String", # [Output only] The time the operation completed, in
         # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     "name": "A String", # The server-assigned ID for the operation.
     "zone": "A String", # The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the operation
-        # is taking place.
-        # This field is deprecated, use location instead.
-    "location": "A String", # [Output only] The name of the Google Compute Engine
-        # [zone](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "detail": "A String", # Detailed operation progress, if available.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "clusterConditions": [ # Which conditions caused the current cluster state.
       { # StatusCondition describes why a cluster or a node pool has a certain status
           # (e.g., ERROR or DEGRADED).
@@ -338,9 +345,12 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "detail": "A String", # Detailed operation progress, if available.
+    "targetLink": "A String", # Server-defined URL for the target of the operation.
     "operationType": "A String", # The operation type.
-    "progress": { # Information about operation (or operation stage) progress. # [Output only] Progress information for an operation.
+    "progress": { # Information about operation (or operation stage) progress. # Output only. [Output only] Progress information for an operation.
       "status": "A String", # Status of an operation stage.
           # Unset for single-stage operations.
       "metrics": [ # Progress metric bundle, for example:
@@ -352,8 +362,7 @@
         { # Progress metric is (string, int|float|string) pair.
           "stringValue": "A String", # For metrics with custom values (ratios, visual progress, etc.).
           "intValue": "A String", # For metrics with integer value.
-          "name": "A String", # Metric name, required.
-              # e.g., "nodes total", "percent done"
+          "name": "A String", # Required. Metric name, e.g., "nodes total", "percent done".
           "doubleValue": 3.14, # For metrics with floating point value.
         },
       ],
@@ -371,17 +380,22 @@
       },
     ],
     "selfLink": "A String", # Server-defined URL for the resource.
-    "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "location": "A String", # [Output only] The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # or
+        # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # in which the cluster resides.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="create">create(projectId, zone, body, x__xgafv=None)</code>
+    <code class="details" id="create">create(projectId, zone, body=None, x__xgafv=None)</code>
   <pre>Creates a cluster, consisting of the specified number and type of Google
 Compute Engine instances.
 
 By default, the cluster is created in the project's
-[default network](/compute/docs/networks-and-firewalls#networks).
+[default
+network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks).
 
 One firewall is added for the cluster. After cluster creation,
 the Kubelet creates routes for each node to allow the containers
@@ -392,53 +406,96 @@
 which CIDR range the cluster is using.
 
 Args:
-  projectId: string, Deprecated. The Google Developers Console [project ID or project
+  projectId: string, Required. Deprecated. The Google Developers Console [project ID or project
 number](https://support.google.com/cloud/answer/6158840).
 This field has been deprecated and replaced by the parent field. (required)
-  zone: string, Deprecated. The name of the Google Compute Engine
-[zone](/compute/docs/zones#available) in which the cluster
-resides.
-This field has been deprecated and replaced by the parent field. (required)
-  body: object, The request body. (required)
+  zone: string, Required. Deprecated. The name of the Google Compute Engine
+[zone](https://cloud.google.com/compute/docs/zones#available) in which the
+cluster resides. This field has been deprecated and replaced by the parent
+field. (required)
+  body: object, The request body.
     The object takes the form of:
 
 { # CreateClusterRequest creates a cluster.
-    "projectId": "A String", # Deprecated. The Google Developers Console [project ID or project
+    "projectId": "A String", # Required. Deprecated. The Google Developers Console [project ID or project
         # number](https://support.google.com/cloud/answer/6158840).
         # This field has been deprecated and replaced by the parent field.
     "parent": "A String", # The parent (project and location) where the cluster will be created.
         # Specified in the format 'projects/*/locations/*'.
-    "zone": "A String", # Deprecated. The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the cluster
-        # resides.
-        # This field has been deprecated and replaced by the parent field.
-    "cluster": { # A Google Kubernetes Engine cluster. # A [cluster
-        # resource](/container-engine/reference/rest/v1beta1/projects.zones.clusters)
+    "zone": "A String", # Required. Deprecated. The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # cluster resides. This field has been deprecated and replaced by the parent
+        # field.
+    "cluster": { # A Google Kubernetes Engine cluster. # Required. A [cluster
+        # resource](https://cloud.google.com/container-engine/reference/rest/v1beta1/projects.zones.clusters)
       "nodeIpv4CidrSize": 42, # [Output only] The size of the address space on each node for hosting
           # containers. This is provisioned from within the `container_ipv4_cidr`
           # range. This field will only be set when cluster is in route-based network
           # mode.
       "maintenancePolicy": { # MaintenancePolicy defines the maintenance policy to be used for the cluster. # Configure the maintenance policy for this cluster.
         "window": { # MaintenanceWindow defines the maintenance window to be used for the cluster. # Specifies the maintenance window in which maintenance may be performed.
+          "recurringWindow": { # Represents an arbitrary window of time that recurs. # RecurringWindow specifies some number of recurring time periods for
+              # maintenance to occur. The time windows may be overlapping. If no
+              # maintenance windows are set, maintenance can occur at any time.
+            "recurrence": "A String", # An RRULE (https://tools.ietf.org/html/rfc5545#section-3.8.5.3) for how
+                # this window reccurs. They go on for the span of time between the start and
+                # end time.
+                #
+                # For example, to have something repeat every weekday, you'd use:
+                #   &lt;code&gt;FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR&lt;/code&gt;
+                # To repeat some window daily (equivalent to the DailyMaintenanceWindow):
+                #   &lt;code&gt;FREQ=DAILY&lt;/code&gt;
+                # For the first weekend of every month:
+                #   &lt;code&gt;FREQ=MONTHLY;BYSETPOS=1;BYDAY=SA,SU&lt;/code&gt;
+                # This specifies how frequently the window starts. Eg, if you wanted to have
+                # a 9-5 UTC-4 window every weekday, you'd use something like:
+                # &lt;code&gt;
+                #   start time = 2019-01-01T09:00:00-0400
+                #   end time = 2019-01-01T17:00:00-0400
+                #   recurrence = FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR
+                # &lt;/code&gt;
+                # Windows can span multiple days. Eg, to make the window encompass every
+                # weekend from midnight Saturday till the last minute of Sunday UTC:
+                # &lt;code&gt;
+                #   start time = 2019-01-05T00:00:00Z
+                #   end time = 2019-01-07T23:59:00Z
+                #   recurrence = FREQ=WEEKLY;BYDAY=SA
+                # &lt;/code&gt;
+                # Note the start and end time's specific dates are largely arbitrary except
+                # to specify duration of the window and when it first starts.
+                # The FREQ values of HOURLY, MINUTELY, and SECONDLY are not supported.
+            "window": { # Represents an arbitrary window of time. # The window of the first recurrence.
+              "endTime": "A String", # The time that the window ends. The end time should take place after the
+                  # start time.
+              "startTime": "A String", # The time that the window first starts.
+            },
+          },
           "dailyMaintenanceWindow": { # Time window specified for daily maintenance operations. # DailyMaintenanceWindow specifies a daily maintenance operation window.
             "duration": "A String", # [Output only] Duration of the time window, automatically chosen to be
                 # smallest possible in the given scenario.
             "startTime": "A String", # Time within the maintenance window to start the maintenance operations.
                 # It must be in format "HH:MM", where HH : [00-23] and MM : [00-59] GMT.
           },
+          "maintenanceExclusions": { # Exceptions to maintenance window. Non-emergency maintenance should not
+              # occur in these windows.
+            "a_key": { # Represents an arbitrary window of time.
+              "endTime": "A String", # The time that the window ends. The end time should take place after the
+                  # start time.
+              "startTime": "A String", # The time that the window first starts.
+            },
+          },
         },
+        "resourceVersion": "A String", # A hash identifying the version of this policy, so that updates to fields of
+            # the policy won't accidentally undo intermediate changes (and so that users
+            # of the API unaware of some fields won't accidentally remove other fields).
+            # Make a &lt;code&gt;get()&lt;/code&gt; request to the cluster to get the current
+            # resource version and include it with requests to set the policy.
       },
       "networkPolicy": { # Configuration options for the NetworkPolicy feature. # Configuration options for the NetworkPolicy feature.
           # https://kubernetes.io/docs/concepts/services-networking/networkpolicies/
         "enabled": True or False, # Whether network policy is enabled on the cluster.
         "provider": "A String", # The selected network policy provider.
       },
-      "loggingService": "A String", # The logging service the cluster should use to write logs.
-          # Currently available options:
-          #
-          # * `logging.googleapis.com` - the Google Cloud Logging service.
-          # * `none` - no logs will be exported from the cluster.
-          # * if left as an empty string,`logging.googleapis.com` will be used.
       "masterAuthorizedNetworksConfig": { # Configuration options for the master authorized networks feature. Enabled # The configuration options for master authorized networks feature.
           # master authorized networks will disallow all external traffic to access
           # Kubernetes master through HTTPS except traffic from the given CIDR blocks,
@@ -447,8 +504,8 @@
         "cidrBlocks": [ # cidr_blocks define up to 10 external networks that could access
             # Kubernetes master through HTTPS.
           { # CidrBlock contains an optional name and one CIDR block.
-            "displayName": "A String", # display_name is an optional field for users to identify CIDR blocks.
             "cidrBlock": "A String", # cidr_block must be specified in CIDR notation.
+            "displayName": "A String", # display_name is an optional field for users to identify CIDR blocks.
           },
         ],
       },
@@ -473,14 +530,29 @@
               # When enabled, it runs a small pod in the cluster that manages the load
               # balancers.
         },
+        "kalmConfig": { # Configuration options for the KALM addon. # Configuration for the KALM addon, which manages the lifecycle of k8s
+            # applications.
+          "enabled": True or False, # Whether KALM is enabled for this cluster.
+        },
         "horizontalPodAutoscaling": { # Configuration options for the horizontal pod autoscaling feature, which # Configuration for the horizontal pod autoscaling feature, which
             # increases or decreases the number of replica pods a replication controller
             # has based on the resource usage of the existing pods.
             # increases or decreases the number of replica pods a replication controller
             # has based on the resource usage of the existing pods.
           "disabled": True or False, # Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.
-              # When enabled, it ensures that a Heapster pod is running in the cluster,
-              # which is also used by the Cloud Monitoring service.
+              # When enabled, it ensures that metrics are collected into Stackdriver
+              # Monitoring.
+        },
+        "gcePersistentDiskCsiDriverConfig": { # Configuration for the Compute Engine PD CSI driver. This option can only be # Configuration for the Compute Engine Persistent Disk CSI driver.
+            # enabled at cluster creation time.
+          "enabled": True or False, # Whether the Compute Engine PD CSI driver is enabled for this cluster.
+        },
+        "configConnectorConfig": { # Configuration options for the Config Connector add-on. # Configuration for the ConfigConnector add-on, a Kubernetes
+            # extension to manage hosted GCP services through the Kubernetes API
+          "enabled": True or False, # Whether Cloud Connector is enabled for this cluster.
+        },
+        "dnsCacheConfig": { # Configuration for NodeLocal DNSCache # Configuration for NodeLocalDNS, a dns cache running on cluster nodes
+          "enabled": True or False, # Whether NodeLocal DNSCache is enabled for this cluster.
         },
         "istioConfig": { # Configuration options for Istio addon. # Configuration for Istio, an open platform to connect, manage, and secure
             # microservices.
@@ -496,26 +568,148 @@
         },
       },
       "locations": [ # The list of Google Compute Engine
-          # [zones](/compute/docs/zones#available) in which the cluster's nodes
-          # should be located.
+          # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+          # cluster's nodes should be located.
         "A String",
       ],
-      "legacyAbac": { # Configuration for the legacy Attribute Based Access Control authorization # Configuration for the legacy ABAC authorization mode.
-          # mode.
-        "enabled": True or False, # Whether the ABAC authorizer is enabled for this cluster. When enabled,
-            # identities in the system, including service accounts, nodes, and
-            # controllers, will have statically granted permissions beyond those
-            # provided by the RBAC configuration or IAM.
-      },
+      "enableKubernetesAlpha": True or False, # Kubernetes alpha features are enabled on this cluster. This includes alpha
+          # API groups (e.g. v1beta1) and features that may not be production ready in
+          # the kubernetes version of the master and nodes.
+          # The cluster has no SLA for uptime and master/node upgrades are disabled.
+          # Alpha enabled clusters are automatically deleted thirty days after
+          # creation.
       "enableTpu": True or False, # Enable the ability to use Cloud TPUs in this cluster.
+          # This field is deprecated, use tpu_config.enabled instead.
+      "releaseChannel": { # ReleaseChannel indicates which release channel a cluster is # Release channel configuration.
+          # subscribed to. Release channels are arranged in order of risk and
+          # frequency of updates.
+          #
+          # When a cluster is subscribed to a release channel, Google maintains
+          # both the master version and the node version. Node auto-upgrade
+          # defaults to true and cannot be disabled. Updates to version related
+          # fields (e.g. current_master_version) return an error.
+        "channel": "A String", # channel specifies which release channel the cluster is subscribed to.
+      },
       "defaultMaxPodsConstraint": { # Constraints applied to pods. # The default constraint on the maximum number of pods that can be run
           # simultaneously on a node in the node pool of this cluster. Only honored
           # if cluster created with IP Alias support.
         "maxPodsPerNode": "A String", # Constraint enforced on the max num of pods per node.
       },
+      "network": "A String", # The name of the Google Compute Engine
+          # [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks)
+          # to which the cluster is connected. If left unspecified, the `default`
+          # network will be used. On output this shows the network ID instead of the
+          # name.
+      "loggingService": "A String", # The logging service the cluster should use to write logs.
+          # Currently available options:
+          #
+          # * `logging.googleapis.com/kubernetes` - The Cloud Logging
+          # service with a Kubernetes-native resource model
+          # * `logging.googleapis.com` - The legacy Cloud Logging service (no longer
+          #   available as of GKE 1.15).
+          # * `none` - no logs will be exported from the cluster.
+          #
+          # If left as an empty string,`logging.googleapis.com/kubernetes` will be
+          # used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
+      "instanceGroupUrls": [ # Deprecated. Use node_pools.instance_group_urls.
+        "A String",
+      ],
+      "networkConfig": { # NetworkConfig reports the relative names of network &amp; subnetwork. # Configuration for cluster networking.
+        "subnetwork": "A String", # Output only. The relative name of the Google Compute Engine
+            # [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the
+            # cluster is connected. Example:
+            # projects/my-project/regions/us-central1/subnetworks/my-subnet
+        "network": "A String", # Output only. The relative name of the Google Compute Engine
+            # network(https://cloud.google.com/compute/docs/networks-and-firewalls#networks)
+            # to which the cluster is connected. Example:
+            # projects/my-project/global/networks/my-network
+        "enableIntraNodeVisibility": True or False, # Whether Intra-node visibility is enabled for this cluster.
+            # This makes same node pod to pod traffic visible for VPC network.
+      },
+      "privateCluster": True or False, # If this is a private cluster setup. Private clusters are clusters that, by
+          # default have no external IP addresses on the nodes and where nodes and the
+          # master communicate over private IP addresses.
+          # This field is deprecated, use private_cluster_config.enable_private_nodes
+          # instead.
+      "podSecurityPolicyConfig": { # Configuration for the PodSecurityPolicy feature. # Configuration for the PodSecurityPolicy feature.
+        "enabled": True or False, # Enable the PodSecurityPolicy controller for this cluster. If enabled, pods
+            # must be valid under a PodSecurityPolicy to be created.
+      },
+      "shieldedNodes": { # Configuration of Shielded Nodes feature. # Shielded Nodes configuration.
+        "enabled": True or False, # Whether Shielded Nodes features are enabled on all nodes in this cluster.
+      },
+      "location": "A String", # [Output only] The name of the Google Compute Engine
+          # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+          # or
+          # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+          # in which the cluster resides.
+      "workloadIdentityConfig": { # Configuration for the use of Kubernetes Service Accounts in GCP IAM # Configuration for the use of Kubernetes Service Accounts in GCP IAM
+          # policies.
+          # policies.
+        "workloadPool": "A String", # The workload pool to attach all Kubernetes service accounts to.
+        "identityNamespace": "A String", # IAM Identity Namespace to attach all Kubernetes Service Accounts to.
+      },
+      "resourceUsageExportConfig": { # Configuration for exporting cluster resource usages. # Configuration for exporting resource usages. Resource usage export is
+          # disabled when this config unspecified.
+        "bigqueryDestination": { # Parameters for using BigQuery as the destination of resource usage export. # Configuration to use BigQuery as usage export destination.
+          "datasetId": "A String", # The ID of a BigQuery Dataset.
+        },
+        "enableNetworkEgressMetering": True or False, # Whether to enable network egress metering for this cluster. If enabled, a
+            # daemonset will be created in the cluster to meter network egress traffic.
+        "consumptionMeteringConfig": { # Parameters for controlling consumption metering. # Configuration to enable resource consumption metering.
+          "enabled": True or False, # Whether to enable consumption metering for this cluster. If enabled, a
+              # second BigQuery table will be created to hold resource consumption
+              # records.
+        },
+      },
+      "privateClusterConfig": { # Configuration options for private clusters. # Configuration for private cluster.
+        "enablePrivateEndpoint": True or False, # Whether the master's internal IP address is used as the cluster endpoint.
+        "publicEndpoint": "A String", # Output only. The external IP address of this cluster's master endpoint.
+        "masterGlobalAccessConfig": { # Configuration for controlling master global access settings. # Controls master global access settings.
+          "enabled": True or False, # Whenever master is accessible globally or not.
+        },
+        "enablePrivateNodes": True or False, # Whether nodes have internal IP addresses only. If enabled, all nodes are
+            # given only RFC 1918 private addresses and communicate with the master via
+            # private networking.
+        "privateEndpoint": "A String", # Output only. The internal IP address of this cluster's master endpoint.
+        "masterIpv4CidrBlock": "A String", # The IP range in CIDR notation to use for the hosted master network. This
+            # range will be used for assigning internal IP addresses to the master or
+            # set of masters, as well as the ILB VIP. This range must not overlap with
+            # any other ranges in use within the cluster's network.
+        "peeringName": "A String", # Output only. The peering name in the customer VPC used by this cluster.
+      },
+      "conditions": [ # Which conditions caused the current cluster state.
+        { # StatusCondition describes why a cluster or a node pool has a certain status
+            # (e.g., ERROR or DEGRADED).
+          "message": "A String", # Human-friendly representation of the condition
+          "code": "A String", # Machine-friendly representation of the condition
+        },
+      ],
+      "statusMessage": "A String", # [Output only] Additional information about the current status of this
+          # cluster, if available.
+      "servicesIpv4Cidr": "A String", # [Output only] The IP address range of the Kubernetes services in
+          # this cluster, in
+          # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+          # notation (e.g. `1.2.3.4/29`). Service addresses are
+          # typically put in the last `/16` from the container CIDR.
+      "status": "A String", # [Output only] The current status of this cluster.
       "ipAllocationPolicy": { # Configuration for controlling how IPs are allocated in the cluster. # Configuration for cluster IP allocation.
-        "clusterIpv4Cidr": "A String", # This field is deprecated, use cluster_ipv4_cidr_block.
+        "allowRouteOverlap": True or False, # If true, allow allocation of cluster CIDR ranges that overlap with certain
+            # kinds of network routes. By default we do not allow cluster CIDR ranges to
+            # intersect with any user declared routes. With allow_route_overlap == true,
+            # we allow overlapping with CIDR ranges that are larger than the cluster CIDR
+            # range.
+            #
+            # If this field is set to true, then cluster and services CIDRs must be
+            # fully-specified (e.g. `10.96.0.0/14`, but not `/14`), which means:
+            # 1) When `use_ip_aliases` is true, `cluster_ipv4_cidr_block` and
+            #    `services_ipv4_cidr_block` must be fully-specified.
+            # 2) When `use_ip_aliases` is false, `cluster.cluster_ipv4_cidr` muse be
+            #    fully-specified.
         "useIpAliases": True or False, # Whether alias IPs will be used for pod IPs in the cluster.
+            # This is used in conjunction with use_routes. It cannot
+            # be true if use_routes is true. If both use_ip_aliases and use_routes are
+            # false, then the server picks the default IP allocation mode
         "nodeIpv4Cidr": "A String", # This field is deprecated, use node_ipv4_cidr_block.
         "clusterIpv4CidrBlock": "A String", # The IP address range for the cluster pod IPs. If this field is set, then
             # `cluster.cluster_ipv4_cidr` must be left blank.
@@ -586,18 +780,12 @@
             # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
             # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
             # to use.
-        "allowRouteOverlap": True or False, # If true, allow allocation of cluster CIDR ranges that overlap with certain
-            # kinds of network routes. By default we do not allow cluster CIDR ranges to
-            # intersect with any user declared routes. With allow_route_overlap == true,
-            # we allow overlapping with CIDR ranges that are larger than the cluster CIDR
-            # range.
-            #
-            # If this field is set to true, then cluster and services CIDRs must be
-            # fully-specified (e.g. `10.96.0.0/14`, but not `/14`), which means:
-            # 1) When `use_ip_aliases` is true, `cluster_ipv4_cidr_block` and
-            #    `services_ipv4_cidr_block` must be fully-specified.
-            # 2) When `use_ip_aliases` is false, `cluster.cluster_ipv4_cidr` muse be
-            #    fully-specified.
+            # This field is deprecated, use cluster.tpu_config.ipv4_cidr_block instead.
+        "clusterIpv4Cidr": "A String", # This field is deprecated, use cluster_ipv4_cidr_block.
+        "useRoutes": True or False, # Whether routes will be used for pod IPs in the cluster.
+            # This is used in conjunction with use_ip_aliases. It cannot be true if
+            # use_ip_aliases is true. If both use_ip_aliases and use_routes are false,
+            # then the server picks the default IP allocation mode
         "subnetworkName": "A String", # A custom subnetwork name to be used if `create_subnetwork` is true.  If
             # this field is empty, then an automatic name will be chosen for the new
             # subnetwork.
@@ -610,92 +798,10 @@
             # create_subnetwork is false.
         "servicesIpv4Cidr": "A String", # This field is deprecated, use services_ipv4_cidr_block.
       },
-      "network": "A String", # The name of the Google Compute Engine
-          # [network](/compute/docs/networks-and-firewalls#networks) to which the
-          # cluster is connected. If left unspecified, the `default` network
-          # will be used. On output this shows the network ID instead of
-          # the name.
-      "zone": "A String", # [Output only] The name of the Google Compute Engine
-          # [zone](/compute/docs/zones#available) in which the cluster
-          # resides.
-          # This field is deprecated, use location instead.
-      "instanceGroupUrls": [ # Deprecated. Use node_pools.instance_group_urls.
-        "A String",
-      ],
-      "networkConfig": { # NetworkConfig reports the relative names of network & subnetwork. # Configuration for cluster networking.
-        "subnetwork": "A String", # Output only. The relative name of the Google Compute Engine
-            # [subnetwork](/compute/docs/vpc) to which the cluster is connected.
-            # Example: projects/my-project/regions/us-central1/subnetworks/my-subnet
-        "network": "A String", # Output only. The relative name of the Google Compute Engine
-            # network(/compute/docs/networks-and-firewalls#networks) to which
-            # the cluster is connected.
-            # Example: projects/my-project/global/networks/my-network
-        "enableIntraNodeVisibility": True or False, # Whether Intra-node visibility is enabled for this cluster.
-            # This makes same node pod to pod traffic visible for VPC network.
-      },
-      "privateCluster": True or False, # If this is a private cluster setup. Private clusters are clusters that, by
-          # default have no external IP addresses on the nodes and where nodes and the
-          # master communicate over private IP addresses.
-          # This field is deprecated, use private_cluster_config.enable_private_nodes
-          # instead.
-      "podSecurityPolicyConfig": { # Configuration for the PodSecurityPolicy feature. # Configuration for the PodSecurityPolicy feature.
-        "enabled": True or False, # Enable the PodSecurityPolicy controller for this cluster. If enabled, pods
-            # must be valid under a PodSecurityPolicy to be created.
-      },
-      "location": "A String", # [Output only] The name of the Google Compute Engine
-          # [zone](/compute/docs/regions-zones/regions-zones#available) or
-          # [region](/compute/docs/regions-zones/regions-zones#available) in which
-          # the cluster resides.
-      "workloadIdentityConfig": { # Configuration for the use of Kubernetes Service Accounts in GCP IAM # Configuration for the use of Kubernetes Service Accounts in GCP IAM
-          # policies.
-          # policies.
-        "identityNamespace": "A String", # IAM Identity Namespace to attach all Kubernetes Service Accounts to.
-      },
-      "resourceUsageExportConfig": { # Configuration for exporting cluster resource usages. # Configuration for exporting resource usages. Resource usage export is
-          # disabled when this config unspecified.
-        "bigqueryDestination": { # Parameters for using BigQuery as the destination of resource usage export. # Configuration to use BigQuery as usage export destination.
-          "datasetId": "A String", # The ID of a BigQuery Dataset.
-        },
-        "enableNetworkEgressMetering": True or False, # Whether to enable network egress metering for this cluster. If enabled, a
-            # daemonset will be created in the cluster to meter network egress traffic.
-        "consumptionMeteringConfig": { # Parameters for controlling consumption metering. # Configuration to enable resource consumption metering.
-          "enabled": True or False, # Whether to enable consumption metering for this cluster. If enabled, a
-              # second BigQuery table will be created to hold resource consumption
-              # records.
-        },
-      },
-      "masterIpv4CidrBlock": "A String", # The IP prefix in CIDR notation to use for the hosted master network.
-          # This prefix will be used for assigning private IP addresses to the
-          # master or set of masters, as well as the ILB VIP.
-          # This field is deprecated, use
-          # private_cluster_config.master_ipv4_cidr_block instead.
-      "conditions": [ # Which conditions caused the current cluster state.
-        { # StatusCondition describes why a cluster or a node pool has a certain status
-            # (e.g., ERROR or DEGRADED).
-          "message": "A String", # Human-friendly representation of the condition
-          "code": "A String", # Machine-friendly representation of the condition
-        },
-      ],
-      "servicesIpv4Cidr": "A String", # [Output only] The IP address range of the Kubernetes services in
-          # this cluster, in
-          # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
-          # notation (e.g. `1.2.3.4/29`). Service addresses are
-          # typically put in the last `/16` from the container CIDR.
-      "statusMessage": "A String", # [Output only] Additional information about the current status of this
-          # cluster, if available.
-      "tierSettings": { # Cluster tier settings. # Cluster tier settings.
-        "tier": "A String", # Cluster tier.
-      },
-      "status": "A String", # [Output only] The current status of this cluster.
       "currentMasterVersion": "A String", # [Output only] The current software version of the master endpoint.
       "description": "A String", # An optional description of this cluster.
-      "databaseEncryption": { # Configuration of etcd encryption. # Configuration of etcd encryption.
-        "state": "A String", # Denotes the state of etcd encryption.
-        "keyName": "A String", # Name of CloudKMS key to use for the encryption of secrets in etcd.
-            # Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key
-      },
       "currentNodeVersion": "A String", # [Output only] Deprecated, use
-          # [NodePool.version](/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters.nodePools)
+          # [NodePool.version](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters.nodePools)
           # instead. The current version of the node software components.
           # If they are currently at multiple versions because they're in the process
           # of being upgraded, this reflects the minimum version of all nodes.
@@ -711,12 +817,62 @@
         "autoprovisioningNodePoolDefaults": { # AutoprovisioningNodePoolDefaults contains defaults for a node pool created # AutoprovisioningNodePoolDefaults contains defaults for a node pool
             # created by NAP.
             # by NAP.
+          "minCpuPlatform": "A String", # Minimum CPU platform to be used for NAP created node pools.
+              # The instance may be scheduled on the specified or newer CPU platform.
+              # Applicable values are the friendly names of CPU platforms, such as
+              # &lt;code&gt;minCpuPlatform: &amp;quot;Intel Haswell&amp;quot;&lt;/code&gt; or
+              # &lt;code&gt;minCpuPlatform: &amp;quot;Intel Sandy Bridge&amp;quot;&lt;/code&gt;. For more
+              # information, read [how to specify min CPU
+              # platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
+              # To unset the min cpu platform field pass "automatic" as field value.
+          "management": { # NodeManagement defines the set of node management services turned on for the # Specifies the node management options for NAP created node-pools.
+              # node pool.
+            "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how # Specifies the Auto Upgrade knobs for the node pool.
+                # the Auto Upgrades will proceed.
+              "description": "A String", # [Output only] This field is set when upgrades are about to commence
+                  # with the description of the upgrade.
+              "autoUpgradeStartTime": "A String", # [Output only] This field is set when upgrades are about to commence
+                  # with the approximate start time for the upgrades, in
+                  # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+            },
+            "autoRepair": True or False, # Whether the nodes will be automatically repaired.
+            "autoUpgrade": True or False, # Whether the nodes will be automatically upgraded.
+          },
           "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If
               # service_account is specified, scopes should be empty.
           "oauthScopes": [ # Scopes that are used by NAP when creating node pools. If oauth_scopes are
               # specified, service_account should be empty.
             "A String",
           ],
+          "upgradeSettings": { # These upgrade settings control the level of parallelism and the level of # Specifies the upgrade settings for NAP created node pools
+              # disruption caused by an upgrade.
+              #
+              # maxUnavailable controls the number of nodes that can be simultaneously
+              # unavailable.
+              #
+              # maxSurge controls the number of additional nodes that can be added to the
+              # node pool temporarily for the time of the upgrade to increase the number of
+              # available nodes.
+              #
+              # (maxUnavailable + maxSurge) determines the level of parallelism (how many
+              # nodes are being upgraded at the same time).
+              #
+              # Note: upgrades inevitably introduce some disruption since workloads need to
+              # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
+              # this holds true. (Disruption stays within the limits of
+              # PodDisruptionBudget, if it is configured.)
+              #
+              # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
+              # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
+              # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
+              # down 3 old (not yet upgraded) nodes at the same time. This ensures that
+              # there are always at least 4 nodes available.
+            "maxSurge": 42, # The maximum number of nodes that can be created beyond the current size
+                # of the node pool during the upgrade process.
+            "maxUnavailable": 42, # The maximum number of nodes that can be simultaneously unavailable during
+                # the upgrade process. A node is considered available if its status is
+                # Ready.
+          },
         },
         "resourceLimits": [ # Contains global constraints regarding minimum and maximum
             # amount of resources in the cluster.
@@ -727,10 +883,12 @@
             "maximum": "A String", # Maximum amount of the resource in the cluster.
           },
         ],
-        "autoprovisioningLocations": [ # The list of Google Compute Engine [zones](/compute/docs/zones#available)
-            # in which the NodePool's nodes can be created by NAP.
+        "autoprovisioningLocations": [ # The list of Google Compute Engine
+            # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+            # NodePool's nodes can be created by NAP.
           "A String",
         ],
+        "autoscalingProfile": "A String", # Defines autoscaling behaviour.
         "enableNodeAutoprovisioning": True or False, # Enables automatic node pool creation and deletion.
       },
       "masterAuth": { # The authentication information for accessing the master endpoint. # The authentication information for accessing the master endpoint.
@@ -747,29 +905,30 @@
             # to the cluster endpoint.
         "clientCertificate": "A String", # [Output only] Base64-encoded public certificate used by clients to
             # authenticate to the cluster endpoint.
+        "clusterCaCertificate": "A String",
+        "password": "A String", # The password to use for HTTP basic authentication to the master endpoint.
+            # Because the master endpoint is open to the Internet, you should create a
+            # strong password.  If a password is provided for cluster creation, username
+            # must be non-empty.
         "clientCertificateConfig": { # Configuration for client certificates on the cluster. # Configuration for client certificate authentication on the cluster. For
             # clusters before v1.12, if no configuration is specified, a client
             # certificate is issued.
           "issueClientCertificate": True or False, # Issue a client certificate.
         },
-        "password": "A String", # The password to use for HTTP basic authentication to the master endpoint.
-            # Because the master endpoint is open to the Internet, you should create a
-            # strong password.  If a password is provided for cluster creation, username
-            # must be non-empty.
-        "clusterCaCertificate": "A String",
       },
       "expireTime": "A String", # [Output only] The time the cluster will be automatically
           # deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-      "initialNodeCount": 42, # The number of nodes to create in this cluster. You must ensure that your
-          # Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a>
-          # is sufficient for this number of instances. You must also have available
-          # firewall and routes quota.
-          # For requests, this field should only be used in lieu of a
-          # "node_pool" object, since this configuration (along with the
-          # "node_config") will be used to create a "NodePool" object with an
-          # auto-generated name. Do not use this and a node_pool at the same time.
-          #
-          # This field is deprecated, use node_pool.initial_node_count instead.
+      "masterIpv4CidrBlock": "A String", # The IP prefix in CIDR notation to use for the hosted master network.
+          # This prefix will be used for assigning private IP addresses to the
+          # master or set of masters, as well as the ILB VIP.
+          # This field is deprecated, use
+          # private_cluster_config.master_ipv4_cidr_block instead.
+      "clusterTelemetry": { # Telemetry integration for the cluster. # Telemetry integration for the cluster.
+        "type": "A String", # Type of the integration.
+      },
+      "tpuIpv4CidrBlock": "A String", # [Output only] The IP address range of the Cloud TPUs in this cluster, in
+          # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+          # notation (e.g. `1.2.3.4/29`).
       "nodePools": [ # The node pools associated with this cluster.
           # This field should not be set if "node_config" or "initial_node_count" are
           # specified.
@@ -780,11 +939,9 @@
             # during pod scheduling. They may also be resized up or down, to accommodate
             # the workload.
           "status": "A String", # [Output only] The status of the nodes in this pool instance.
-          "statusMessage": "A String", # [Output only] Additional information about the current status of this
-              # node pool instance, if available.
+          "selfLink": "A String", # [Output only] Server-defined URL for the resource.
           "management": { # NodeManagement defines the set of node management services turned on for the # NodeManagement configuration for this NodePool.
               # node pool.
-            "autoRepair": True or False, # Whether the nodes will be automatically repaired.
             "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how # Specifies the Auto Upgrade knobs for the node pool.
                 # the Auto Upgrades will proceed.
               "description": "A String", # [Output only] This field is set when upgrades are about to commence
@@ -793,26 +950,30 @@
                   # with the approximate start time for the upgrades, in
                   # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
             },
+            "autoRepair": True or False, # Whether the nodes will be automatically repaired.
             "autoUpgrade": True or False, # Whether the nodes will be automatically upgraded.
           },
           "name": "A String", # The name of the node pool.
-          "instanceGroupUrls": [ # [Output only] The resource URLs of the [managed instance
-              # groups](/compute/docs/instance-groups/creating-groups-of-managed-instances)
-              # associated with this node pool.
-            "A String",
+          "conditions": [ # Which conditions caused the current node pool state.
+            { # StatusCondition describes why a cluster or a node pool has a certain status
+                # (e.g., ERROR or DEGRADED).
+              "message": "A String", # Human-friendly representation of the condition
+              "code": "A String", # Machine-friendly representation of the condition
+            },
           ],
           "autoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to # Autoscaler configuration for this NodePool. Autoscaler is enabled
               # only if a valid configuration is present.
               # adjust the size of the node pool to the current cluster usage.
-            "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be >= 1 and <=
+            "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be &gt;= 1 and &lt;=
                 # max_node_count.
             "autoprovisioned": True or False, # Can this node pool be deleted automatically.
             "enabled": True or False, # Is autoscaling enabled for this node pool.
-            "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be >= min_node_count. There
+            "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be &gt;= min_node_count. There
                 # has to enough quota to scale up the cluster.
           },
-          "locations": [ # The list of Google Compute Engine [zones](/compute/docs/zones#available)
-              # in which the NodePool's nodes should be located.
+          "locations": [ # The list of Google Compute Engine
+              # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+              # NodePool's nodes should be located.
             "A String",
           ],
           "maxPodsConstraint": { # Constraints applied to pods. # The constraint on the maximum number of pods that can be run
@@ -820,17 +981,66 @@
             "maxPodsPerNode": "A String", # Constraint enforced on the max num of pods per node.
           },
           "version": "A String", # The version of the Kubernetes of this node.
+          "upgradeSettings": { # These upgrade settings control the level of parallelism and the level of # Upgrade settings control disruption and speed of the upgrade.
+              # disruption caused by an upgrade.
+              #
+              # maxUnavailable controls the number of nodes that can be simultaneously
+              # unavailable.
+              #
+              # maxSurge controls the number of additional nodes that can be added to the
+              # node pool temporarily for the time of the upgrade to increase the number of
+              # available nodes.
+              #
+              # (maxUnavailable + maxSurge) determines the level of parallelism (how many
+              # nodes are being upgraded at the same time).
+              #
+              # Note: upgrades inevitably introduce some disruption since workloads need to
+              # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
+              # this holds true. (Disruption stays within the limits of
+              # PodDisruptionBudget, if it is configured.)
+              #
+              # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
+              # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
+              # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
+              # down 3 old (not yet upgraded) nodes at the same time. This ensures that
+              # there are always at least 4 nodes available.
+            "maxSurge": 42, # The maximum number of nodes that can be created beyond the current size
+                # of the node pool during the upgrade process.
+            "maxUnavailable": 42, # The maximum number of nodes that can be simultaneously unavailable during
+                # the upgrade process. A node is considered available if its status is
+                # Ready.
+          },
           "initialNodeCount": 42, # The initial node count for the pool. You must ensure that your
-              # Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a>
+              # Compute Engine &lt;a href="/compute/docs/resource-quotas"&gt;resource quota&lt;/a&gt;
               # is sufficient for this number of instances. You must also have available
               # firewall and routes quota.
           "podIpv4CidrSize": 42, # [Output only] The pod CIDR block size per node in this node pool.
+          "instanceGroupUrls": [ # [Output only] The resource URLs of the [managed instance
+              # groups](https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances)
+              # associated with this node pool.
+            "A String",
+          ],
           "config": { # Parameters that describe the nodes in a cluster. # The node configuration of the pool.
+            "reservationAffinity": { # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # The optional reservation affinity. Setting this field will apply
+                # the specified [Zonal Compute
+                # Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources)
+                # to this node pool.
+                # is the configuration of desired reservation which instances could take
+                # capacity from.
+              "values": [ # Corresponds to the label value(s) of reservation resource(s).
+                "A String",
+              ],
+              "consumeReservationType": "A String", # Corresponds to the type of reservation consumption.
+              "key": "A String", # Corresponds to the label key of a reservation resource. To target a
+                  # SPECIFIC_RESERVATION by name, specify "googleapis.com/reservation-name" as
+                  # the key and specify the name of your reservation as its value.
+            },
             "sandboxConfig": { # SandboxConfig contains configurations of the sandbox to use for the node. # Sandbox configuration for this node.
+              "type": "A String", # Type of the sandbox to use for the node.
               "sandboxType": "A String", # Type of the sandbox to use for the node (e.g. 'gvisor')
             },
             "machineType": "A String", # The name of a Google Compute Engine [machine
-                # type](/compute/docs/machine-types) (e.g.
+                # type](https://cloud.google.com/compute/docs/machine-types) (e.g.
                 # `n1-standard-1`).
                 #
                 # If unspecified, the default machine type is
@@ -870,8 +1080,9 @@
                 # https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
               "a_key": "A String",
             },
-            "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If
-                # no Service Account is specified, the "default" service account is used.
+            "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs.
+                # Specify the email address of the Service Account; otherwise, if no Service
+                # Account is specified, the "default" service account is used.
             "oauthScopes": [ # The set of Google API scopes to be made available on all of the
                 # node VMs under the "default" service account.
                 #
@@ -882,7 +1093,8 @@
                 # persistent storage on your nodes.
                 # * `https://www.googleapis.com/auth/devstorage.read_only` is required for
                 # communicating with **gcr.io**
-                # (the [Google Container Registry](/container-registry/)).
+                # (the [Google Container
+                # Registry](https://cloud.google.com/container-registry/)).
                 #
                 # If unspecified, no scopes are added, unless Cloud Logging or Cloud
                 # Monitoring are enabled, in which case their required scopes will be added.
@@ -897,13 +1109,15 @@
                   #
                   # For more information, including usage and the valid values, see:
                   # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
+                "value": "A String", # Value for taint.
                 "key": "A String", # Key for taint.
                 "effect": "A String", # Effect for taint.
-                "value": "A String", # Value for taint.
               },
             ],
             "workloadMetadataConfig": { # WorkloadMetadataConfig defines the metadata configuration to expose to # The workload metadata configuration for this node.
                 # workloads on the node pool.
+              "mode": "A String", # Mode is the configuration for how to expose metadata to workloads running
+                  # on the node pool.
               "nodeMetadata": "A String", # NodeMetadata is the configuration for how to expose metadata to the
                   # workloads running on the node.
             },
@@ -917,21 +1131,28 @@
               { # AcceleratorConfig represents a Hardware Accelerator request.
                 "acceleratorCount": "A String", # The number of the accelerator cards exposed to an instance.
                 "acceleratorType": "A String", # The accelerator type resource name. List of supported accelerators
-                    # [here](/compute/docs/gpus/#Introduction)
+                    # [here](https://cloud.google.com/compute/docs/gpus)
               },
             ],
             "minCpuPlatform": "A String", # Minimum CPU platform to be used by this instance. The instance may be
                 # scheduled on the specified or newer CPU platform. Applicable values are the
                 # friendly names of CPU platforms, such as
-                # <code>minCpuPlatform: &quot;Intel Haswell&quot;</code> or
-                # <code>minCpuPlatform: &quot;Intel Sandy Bridge&quot;</code>. For more
+                # &lt;code&gt;minCpuPlatform: &amp;quot;Intel Haswell&amp;quot;&lt;/code&gt; or
+                # &lt;code&gt;minCpuPlatform: &amp;quot;Intel Sandy Bridge&amp;quot;&lt;/code&gt;. For more
                 # information, read [how to specify min CPU
                 # platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
+            "bootDiskKmsKey": "A String", #
+                # The Customer Managed Encryption Key used to encrypt the boot disk attached
+                # to each node in the node pool. This should be of the form
+                # projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME].
+                # For more information about protecting resources with Cloud KMS Keys please
+                # see:
+                # https://cloud.google.com/compute/docs/disks/customer-managed-encryption
             "localSsdCount": 42, # The number of local SSD disks to be attached to the node.
                 #
-                # The limit for this value is dependant upon the maximum number of
+                # The limit for this value is dependent upon the maximum number of
                 # disks available on a machine per zone. See:
-                # https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits
+                # https://cloud.google.com/compute/docs/disks/local-ssd
                 # for more information.
             "imageType": "A String", # The image type to use for this node. Note that for a given image type,
                 # the latest version of it will be used.
@@ -948,6 +1169,7 @@
                 #  "containerd-configure-sh"
                 #  "enable-oslogin"
                 #  "gci-ensure-gke-docker"
+                #  "gci-metrics-enabled"
                 #  "gci-update-strategy"
                 #  "instance-template"
                 #  "kube-env"
@@ -968,42 +1190,41 @@
               "a_key": "A String",
             },
           },
-          "conditions": [ # Which conditions caused the current node pool state.
-            { # StatusCondition describes why a cluster or a node pool has a certain status
-                # (e.g., ERROR or DEGRADED).
-              "message": "A String", # Human-friendly representation of the condition
-              "code": "A String", # Machine-friendly representation of the condition
-            },
-          ],
-          "selfLink": "A String", # [Output only] Server-defined URL for the resource.
+          "statusMessage": "A String", # [Output only] Additional information about the current status of this
+              # node pool instance, if available.
         },
       ],
       "monitoringService": "A String", # The monitoring service the cluster should use to write metrics.
           # Currently available options:
           #
-          # * `monitoring.googleapis.com` - the Google Cloud Monitoring service.
-          # * `none` - no metrics will be exported from the cluster.
-          # * if left as an empty string, `monitoring.googleapis.com` will be used.
+          # * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
+          # service with a Kubernetes-native resource model
+          # * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
+          #   longer available as of GKE 1.15).
+          # * `none` - No metrics will be exported from the cluster.
+          #
+          # If left as an empty string,`monitoring.googleapis.com/kubernetes` will be
+          # used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
       "createTime": "A String", # [Output only] The time the cluster was created, in
           # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-      "authenticatorGroupsConfig": { # Configuration for returning group information from authenticators. # Configuration controlling RBAC group membership information.
-        "enabled": True or False, # Whether this cluster should return group membership lookups
-            # during authentication using a group of security groups.
-        "securityGroup": "A String", # The name of the security group-of-groups to be used. Only relevant
-            # if enabled = true.
+      "databaseEncryption": { # Configuration of etcd encryption. # Configuration of etcd encryption.
+        "state": "A String", # Denotes the state of etcd encryption.
+        "keyName": "A String", # Name of CloudKMS key to use for the encryption of secrets in etcd.
+            # Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key
       },
-      "privateClusterConfig": { # Configuration options for private clusters. # Configuration for private cluster.
-        "enablePrivateEndpoint": True or False, # Whether the master's internal IP address is used as the cluster endpoint.
-        "publicEndpoint": "A String", # Output only. The external IP address of this cluster's master endpoint.
-        "enablePrivateNodes": True or False, # Whether nodes have internal IP addresses only. If enabled, all nodes are
-            # given only RFC 1918 private addresses and communicate with the master via
-            # private networking.
-        "privateEndpoint": "A String", # Output only. The internal IP address of this cluster's master endpoint.
-        "masterIpv4CidrBlock": "A String", # The IP range in CIDR notation to use for the hosted master network. This
-            # range will be used for assigning internal IP addresses to the master or
-            # set of masters, as well as the ILB VIP. This range must not overlap with
-            # any other ranges in use within the cluster's network.
-        "enablePeeringRouteSharing": True or False, # Whether to enable route sharing over the network peering.
+      "name": "A String", # The name of this cluster. The name must be unique within this project
+          # and location (e.g. zone or region), and can be up to 40 characters with
+          # the following restrictions:
+          #
+          # * Lowercase letters, numbers, and hyphens only.
+          # * Must start with a letter.
+          # * Must end with a number or a letter.
+      "legacyAbac": { # Configuration for the legacy Attribute Based Access Control authorization # Configuration for the legacy ABAC authorization mode.
+          # mode.
+        "enabled": True or False, # Whether the ABAC authorizer is enabled for this cluster. When enabled,
+            # identities in the system, including service accounts, nodes, and
+            # controllers, will have statically granted permissions beyond those
+            # provided by the RBAC configuration or IAM.
       },
       "endpoint": "A String", # [Output only] The IP address of this cluster's master endpoint.
           # The endpoint can be accessed from the internet at
@@ -1013,23 +1234,19 @@
           # password information.
       "currentNodeCount": 42, # [Output only]  The number of nodes currently in the cluster. Deprecated.
           # Call Kubernetes API directly to retrieve node information.
-      "name": "A String", # The name of this cluster. The name must be unique within this project
-          # and zone, and can be up to 40 characters with the following restrictions:
-          #
-          # * Lowercase letters, numbers, and hyphens only.
-          # * Must start with a letter.
-          # * Must end with a number or a letter.
+      "zone": "A String", # [Output only] The name of the Google Compute Engine
+          # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+          # cluster resides. This field is deprecated, use location instead.
       "verticalPodAutoscaling": { # VerticalPodAutoscaling contains global, per-cluster information # Cluster-level Vertical Pod Autoscaling configuration.
           # required by Vertical Pod Autoscaler to automatically adjust
           # the resources of pods controlled by it.
         "enabled": True or False, # Enables vertical pod autoscaling.
       },
-      "enableKubernetesAlpha": True or False, # Kubernetes alpha features are enabled on this cluster. This includes alpha
-          # API groups (e.g. v1beta1) and features that may not be production ready in
-          # the kubernetes version of the master and nodes.
-          # The cluster has no SLA for uptime and master/node upgrades are disabled.
-          # Alpha enabled clusters are automatically deleted thirty days after
-          # creation.
+      "tpuConfig": { # Configuration for Cloud TPU. # Configuration for Cloud TPU support;
+        "useServiceNetworking": True or False, # Whether to use service networking for Cloud TPU or not.
+        "ipv4CidrBlock": "A String", # IPv4 CIDR block reserved for Cloud TPU in the VPC.
+        "enabled": True or False, # Whether Cloud TPU integration is enabled or not.
+      },
       "initialClusterVersion": "A String", # The initial Kubernetes version for this cluster.  Valid versions are those
           # found in validMasterVersions returned by getServerConfig.  The version can
           # be upgraded over time; such upgrades are reflected in
@@ -1054,11 +1271,26 @@
           #
           # If unspecified, the defaults are used.
           # This field is deprecated, use node_pool.config instead.
+        "reservationAffinity": { # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # The optional reservation affinity. Setting this field will apply
+            # the specified [Zonal Compute
+            # Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources)
+            # to this node pool.
+            # is the configuration of desired reservation which instances could take
+            # capacity from.
+          "values": [ # Corresponds to the label value(s) of reservation resource(s).
+            "A String",
+          ],
+          "consumeReservationType": "A String", # Corresponds to the type of reservation consumption.
+          "key": "A String", # Corresponds to the label key of a reservation resource. To target a
+              # SPECIFIC_RESERVATION by name, specify "googleapis.com/reservation-name" as
+              # the key and specify the name of your reservation as its value.
+        },
         "sandboxConfig": { # SandboxConfig contains configurations of the sandbox to use for the node. # Sandbox configuration for this node.
+          "type": "A String", # Type of the sandbox to use for the node.
           "sandboxType": "A String", # Type of the sandbox to use for the node (e.g. 'gvisor')
         },
         "machineType": "A String", # The name of a Google Compute Engine [machine
-            # type](/compute/docs/machine-types) (e.g.
+            # type](https://cloud.google.com/compute/docs/machine-types) (e.g.
             # `n1-standard-1`).
             #
             # If unspecified, the default machine type is
@@ -1098,8 +1330,9 @@
             # https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
           "a_key": "A String",
         },
-        "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If
-            # no Service Account is specified, the "default" service account is used.
+        "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs.
+            # Specify the email address of the Service Account; otherwise, if no Service
+            # Account is specified, the "default" service account is used.
         "oauthScopes": [ # The set of Google API scopes to be made available on all of the
             # node VMs under the "default" service account.
             #
@@ -1110,7 +1343,8 @@
             # persistent storage on your nodes.
             # * `https://www.googleapis.com/auth/devstorage.read_only` is required for
             # communicating with **gcr.io**
-            # (the [Google Container Registry](/container-registry/)).
+            # (the [Google Container
+            # Registry](https://cloud.google.com/container-registry/)).
             #
             # If unspecified, no scopes are added, unless Cloud Logging or Cloud
             # Monitoring are enabled, in which case their required scopes will be added.
@@ -1125,13 +1359,15 @@
               #
               # For more information, including usage and the valid values, see:
               # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
+            "value": "A String", # Value for taint.
             "key": "A String", # Key for taint.
             "effect": "A String", # Effect for taint.
-            "value": "A String", # Value for taint.
           },
         ],
         "workloadMetadataConfig": { # WorkloadMetadataConfig defines the metadata configuration to expose to # The workload metadata configuration for this node.
             # workloads on the node pool.
+          "mode": "A String", # Mode is the configuration for how to expose metadata to workloads running
+              # on the node pool.
           "nodeMetadata": "A String", # NodeMetadata is the configuration for how to expose metadata to the
               # workloads running on the node.
         },
@@ -1145,21 +1381,28 @@
           { # AcceleratorConfig represents a Hardware Accelerator request.
             "acceleratorCount": "A String", # The number of the accelerator cards exposed to an instance.
             "acceleratorType": "A String", # The accelerator type resource name. List of supported accelerators
-                # [here](/compute/docs/gpus/#Introduction)
+                # [here](https://cloud.google.com/compute/docs/gpus)
           },
         ],
         "minCpuPlatform": "A String", # Minimum CPU platform to be used by this instance. The instance may be
             # scheduled on the specified or newer CPU platform. Applicable values are the
             # friendly names of CPU platforms, such as
-            # <code>minCpuPlatform: &quot;Intel Haswell&quot;</code> or
-            # <code>minCpuPlatform: &quot;Intel Sandy Bridge&quot;</code>. For more
+            # &lt;code&gt;minCpuPlatform: &amp;quot;Intel Haswell&amp;quot;&lt;/code&gt; or
+            # &lt;code&gt;minCpuPlatform: &amp;quot;Intel Sandy Bridge&amp;quot;&lt;/code&gt;. For more
             # information, read [how to specify min CPU
             # platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
+        "bootDiskKmsKey": "A String", #
+            # The Customer Managed Encryption Key used to encrypt the boot disk attached
+            # to each node in the node pool. This should be of the form
+            # projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME].
+            # For more information about protecting resources with Cloud KMS Keys please
+            # see:
+            # https://cloud.google.com/compute/docs/disks/customer-managed-encryption
         "localSsdCount": 42, # The number of local SSD disks to be attached to the node.
             #
-            # The limit for this value is dependant upon the maximum number of
+            # The limit for this value is dependent upon the maximum number of
             # disks available on a machine per zone. See:
-            # https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits
+            # https://cloud.google.com/compute/docs/disks/local-ssd
             # for more information.
         "imageType": "A String", # The image type to use for this node. Note that for a given image type,
             # the latest version of it will be used.
@@ -1176,6 +1419,7 @@
             #  "containerd-configure-sh"
             #  "enable-oslogin"
             #  "gci-ensure-gke-docker"
+            #  "gci-metrics-enabled"
             #  "gci-update-strategy"
             #  "instance-template"
             #  "kube-env"
@@ -1200,18 +1444,31 @@
           # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
           # notation (e.g. `10.96.0.0/14`). Leave blank to have
           # one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
+      "authenticatorGroupsConfig": { # Configuration for returning group information from authenticators. # Configuration controlling RBAC group membership information.
+        "enabled": True or False, # Whether this cluster should return group membership lookups
+            # during authentication using a group of security groups.
+        "securityGroup": "A String", # The name of the security group-of-groups to be used. Only relevant
+            # if enabled = true.
+      },
       "subnetwork": "A String", # The name of the Google Compute Engine
-          # [subnetwork](/compute/docs/subnetworks) to which the
-          # cluster is connected. On output this shows the subnetwork ID instead of
+          # [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which
+          # the cluster is connected. On output this shows the subnetwork ID instead of
           # the name.
       "resourceLabels": { # The resource labels for the cluster to use to annotate any related
           # Google Compute Engine resources.
         "a_key": "A String",
       },
       "selfLink": "A String", # [Output only] Server-defined URL for the resource.
-      "tpuIpv4CidrBlock": "A String", # [Output only] The IP address range of the Cloud TPUs in this cluster, in
-          # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
-          # notation (e.g. `1.2.3.4/29`).
+      "initialNodeCount": 42, # The number of nodes to create in this cluster. You must ensure that your
+          # Compute Engine &lt;a href="/compute/docs/resource-quotas"&gt;resource quota&lt;/a&gt;
+          # is sufficient for this number of instances. You must also have available
+          # firewall and routes quota.
+          # For requests, this field should only be used in lieu of a
+          # "node_pool" object, since this configuration (along with the
+          # "node_config") will be used to create a "NodePool" object with an
+          # auto-generated name. Do not use this and a node_pool at the same time.
+          #
+          # This field is deprecated, use node_pool.initial_node_count instead.
     },
   }
 
@@ -1226,20 +1483,13 @@
     { # This operation resource represents operations that may have happened or are
       # happening on the cluster. All fields are output only.
     "status": "A String", # The current status of the operation.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
     "endTime": "A String", # [Output only] The time the operation completed, in
         # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     "name": "A String", # The server-assigned ID for the operation.
     "zone": "A String", # The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the operation
-        # is taking place.
-        # This field is deprecated, use location instead.
-    "location": "A String", # [Output only] The name of the Google Compute Engine
-        # [zone](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "detail": "A String", # Detailed operation progress, if available.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "clusterConditions": [ # Which conditions caused the current cluster state.
       { # StatusCondition describes why a cluster or a node pool has a certain status
           # (e.g., ERROR or DEGRADED).
@@ -1247,9 +1497,12 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "detail": "A String", # Detailed operation progress, if available.
+    "targetLink": "A String", # Server-defined URL for the target of the operation.
     "operationType": "A String", # The operation type.
-    "progress": { # Information about operation (or operation stage) progress. # [Output only] Progress information for an operation.
+    "progress": { # Information about operation (or operation stage) progress. # Output only. [Output only] Progress information for an operation.
       "status": "A String", # Status of an operation stage.
           # Unset for single-stage operations.
       "metrics": [ # Progress metric bundle, for example:
@@ -1261,8 +1514,7 @@
         { # Progress metric is (string, int|float|string) pair.
           "stringValue": "A String", # For metrics with custom values (ratios, visual progress, etc.).
           "intValue": "A String", # For metrics with integer value.
-          "name": "A String", # Metric name, required.
-              # e.g., "nodes total", "percent done"
+          "name": "A String", # Required. Metric name, e.g., "nodes total", "percent done".
           "doubleValue": 3.14, # For metrics with floating point value.
         },
       ],
@@ -1280,7 +1532,11 @@
       },
     ],
     "selfLink": "A String", # Server-defined URL for the resource.
-    "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "location": "A String", # [Output only] The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # or
+        # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # in which the cluster resides.
   }</pre>
 </div>
 
@@ -1297,14 +1553,14 @@
 when the cluster was initially created.
 
 Args:
-  projectId: string, Deprecated. The Google Developers Console [project ID or project
+  projectId: string, Required. Deprecated. The Google Developers Console [project ID or project
 number](https://support.google.com/cloud/answer/6158840).
 This field has been deprecated and replaced by the name field. (required)
-  zone: string, Deprecated. The name of the Google Compute Engine
-[zone](/compute/docs/zones#available) in which the cluster
-resides.
-This field has been deprecated and replaced by the name field. (required)
-  clusterId: string, Deprecated. The name of the cluster to delete.
+  zone: string, Required. Deprecated. The name of the Google Compute Engine
+[zone](https://cloud.google.com/compute/docs/zones#available) in which the
+cluster resides. This field has been deprecated and replaced by the name
+field. (required)
+  clusterId: string, Required. Deprecated. The name of the cluster to delete.
 This field has been deprecated and replaced by the name field. (required)
   name: string, The name (project, location, cluster) of the cluster to delete.
 Specified in the format 'projects/*/locations/*/clusters/*'.
@@ -1319,20 +1575,13 @@
     { # This operation resource represents operations that may have happened or are
       # happening on the cluster. All fields are output only.
     "status": "A String", # The current status of the operation.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
     "endTime": "A String", # [Output only] The time the operation completed, in
         # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     "name": "A String", # The server-assigned ID for the operation.
     "zone": "A String", # The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the operation
-        # is taking place.
-        # This field is deprecated, use location instead.
-    "location": "A String", # [Output only] The name of the Google Compute Engine
-        # [zone](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "detail": "A String", # Detailed operation progress, if available.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "clusterConditions": [ # Which conditions caused the current cluster state.
       { # StatusCondition describes why a cluster or a node pool has a certain status
           # (e.g., ERROR or DEGRADED).
@@ -1340,9 +1589,12 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "detail": "A String", # Detailed operation progress, if available.
+    "targetLink": "A String", # Server-defined URL for the target of the operation.
     "operationType": "A String", # The operation type.
-    "progress": { # Information about operation (or operation stage) progress. # [Output only] Progress information for an operation.
+    "progress": { # Information about operation (or operation stage) progress. # Output only. [Output only] Progress information for an operation.
       "status": "A String", # Status of an operation stage.
           # Unset for single-stage operations.
       "metrics": [ # Progress metric bundle, for example:
@@ -1354,8 +1606,7 @@
         { # Progress metric is (string, int|float|string) pair.
           "stringValue": "A String", # For metrics with custom values (ratios, visual progress, etc.).
           "intValue": "A String", # For metrics with integer value.
-          "name": "A String", # Metric name, required.
-              # e.g., "nodes total", "percent done"
+          "name": "A String", # Required. Metric name, e.g., "nodes total", "percent done".
           "doubleValue": 3.14, # For metrics with floating point value.
         },
       ],
@@ -1373,7 +1624,11 @@
       },
     ],
     "selfLink": "A String", # Server-defined URL for the resource.
-    "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "location": "A String", # [Output only] The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # or
+        # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # in which the cluster resides.
   }</pre>
 </div>
 
@@ -1382,14 +1637,14 @@
   <pre>Gets the details for a specific cluster.
 
 Args:
-  projectId: string, Deprecated. The Google Developers Console [project ID or project
+  projectId: string, Required. Deprecated. The Google Developers Console [project ID or project
 number](https://support.google.com/cloud/answer/6158840).
 This field has been deprecated and replaced by the name field. (required)
-  zone: string, Deprecated. The name of the Google Compute Engine
-[zone](/compute/docs/zones#available) in which the cluster
-resides.
-This field has been deprecated and replaced by the name field. (required)
-  clusterId: string, Deprecated. The name of the cluster to retrieve.
+  zone: string, Required. Deprecated. The name of the Google Compute Engine
+[zone](https://cloud.google.com/compute/docs/zones#available) in which the
+cluster resides. This field has been deprecated and replaced by the name
+field. (required)
+  clusterId: string, Required. Deprecated. The name of the cluster to retrieve.
 This field has been deprecated and replaced by the name field. (required)
   name: string, The name (project, location, cluster) of the cluster to retrieve.
 Specified in the format 'projects/*/locations/*/clusters/*'.
@@ -1408,25 +1663,68 @@
         # mode.
     "maintenancePolicy": { # MaintenancePolicy defines the maintenance policy to be used for the cluster. # Configure the maintenance policy for this cluster.
       "window": { # MaintenanceWindow defines the maintenance window to be used for the cluster. # Specifies the maintenance window in which maintenance may be performed.
+        "recurringWindow": { # Represents an arbitrary window of time that recurs. # RecurringWindow specifies some number of recurring time periods for
+            # maintenance to occur. The time windows may be overlapping. If no
+            # maintenance windows are set, maintenance can occur at any time.
+          "recurrence": "A String", # An RRULE (https://tools.ietf.org/html/rfc5545#section-3.8.5.3) for how
+              # this window reccurs. They go on for the span of time between the start and
+              # end time.
+              #
+              # For example, to have something repeat every weekday, you'd use:
+              #   &lt;code&gt;FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR&lt;/code&gt;
+              # To repeat some window daily (equivalent to the DailyMaintenanceWindow):
+              #   &lt;code&gt;FREQ=DAILY&lt;/code&gt;
+              # For the first weekend of every month:
+              #   &lt;code&gt;FREQ=MONTHLY;BYSETPOS=1;BYDAY=SA,SU&lt;/code&gt;
+              # This specifies how frequently the window starts. Eg, if you wanted to have
+              # a 9-5 UTC-4 window every weekday, you'd use something like:
+              # &lt;code&gt;
+              #   start time = 2019-01-01T09:00:00-0400
+              #   end time = 2019-01-01T17:00:00-0400
+              #   recurrence = FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR
+              # &lt;/code&gt;
+              # Windows can span multiple days. Eg, to make the window encompass every
+              # weekend from midnight Saturday till the last minute of Sunday UTC:
+              # &lt;code&gt;
+              #   start time = 2019-01-05T00:00:00Z
+              #   end time = 2019-01-07T23:59:00Z
+              #   recurrence = FREQ=WEEKLY;BYDAY=SA
+              # &lt;/code&gt;
+              # Note the start and end time's specific dates are largely arbitrary except
+              # to specify duration of the window and when it first starts.
+              # The FREQ values of HOURLY, MINUTELY, and SECONDLY are not supported.
+          "window": { # Represents an arbitrary window of time. # The window of the first recurrence.
+            "endTime": "A String", # The time that the window ends. The end time should take place after the
+                # start time.
+            "startTime": "A String", # The time that the window first starts.
+          },
+        },
         "dailyMaintenanceWindow": { # Time window specified for daily maintenance operations. # DailyMaintenanceWindow specifies a daily maintenance operation window.
           "duration": "A String", # [Output only] Duration of the time window, automatically chosen to be
               # smallest possible in the given scenario.
           "startTime": "A String", # Time within the maintenance window to start the maintenance operations.
               # It must be in format "HH:MM", where HH : [00-23] and MM : [00-59] GMT.
         },
+        "maintenanceExclusions": { # Exceptions to maintenance window. Non-emergency maintenance should not
+            # occur in these windows.
+          "a_key": { # Represents an arbitrary window of time.
+            "endTime": "A String", # The time that the window ends. The end time should take place after the
+                # start time.
+            "startTime": "A String", # The time that the window first starts.
+          },
+        },
       },
+      "resourceVersion": "A String", # A hash identifying the version of this policy, so that updates to fields of
+          # the policy won't accidentally undo intermediate changes (and so that users
+          # of the API unaware of some fields won't accidentally remove other fields).
+          # Make a &lt;code&gt;get()&lt;/code&gt; request to the cluster to get the current
+          # resource version and include it with requests to set the policy.
     },
     "networkPolicy": { # Configuration options for the NetworkPolicy feature. # Configuration options for the NetworkPolicy feature.
         # https://kubernetes.io/docs/concepts/services-networking/networkpolicies/
       "enabled": True or False, # Whether network policy is enabled on the cluster.
       "provider": "A String", # The selected network policy provider.
     },
-    "loggingService": "A String", # The logging service the cluster should use to write logs.
-        # Currently available options:
-        #
-        # * `logging.googleapis.com` - the Google Cloud Logging service.
-        # * `none` - no logs will be exported from the cluster.
-        # * if left as an empty string,`logging.googleapis.com` will be used.
     "masterAuthorizedNetworksConfig": { # Configuration options for the master authorized networks feature. Enabled # The configuration options for master authorized networks feature.
         # master authorized networks will disallow all external traffic to access
         # Kubernetes master through HTTPS except traffic from the given CIDR blocks,
@@ -1435,8 +1733,8 @@
       "cidrBlocks": [ # cidr_blocks define up to 10 external networks that could access
           # Kubernetes master through HTTPS.
         { # CidrBlock contains an optional name and one CIDR block.
-          "displayName": "A String", # display_name is an optional field for users to identify CIDR blocks.
           "cidrBlock": "A String", # cidr_block must be specified in CIDR notation.
+          "displayName": "A String", # display_name is an optional field for users to identify CIDR blocks.
         },
       ],
     },
@@ -1461,14 +1759,29 @@
             # When enabled, it runs a small pod in the cluster that manages the load
             # balancers.
       },
+      "kalmConfig": { # Configuration options for the KALM addon. # Configuration for the KALM addon, which manages the lifecycle of k8s
+          # applications.
+        "enabled": True or False, # Whether KALM is enabled for this cluster.
+      },
       "horizontalPodAutoscaling": { # Configuration options for the horizontal pod autoscaling feature, which # Configuration for the horizontal pod autoscaling feature, which
           # increases or decreases the number of replica pods a replication controller
           # has based on the resource usage of the existing pods.
           # increases or decreases the number of replica pods a replication controller
           # has based on the resource usage of the existing pods.
         "disabled": True or False, # Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.
-            # When enabled, it ensures that a Heapster pod is running in the cluster,
-            # which is also used by the Cloud Monitoring service.
+            # When enabled, it ensures that metrics are collected into Stackdriver
+            # Monitoring.
+      },
+      "gcePersistentDiskCsiDriverConfig": { # Configuration for the Compute Engine PD CSI driver. This option can only be # Configuration for the Compute Engine Persistent Disk CSI driver.
+          # enabled at cluster creation time.
+        "enabled": True or False, # Whether the Compute Engine PD CSI driver is enabled for this cluster.
+      },
+      "configConnectorConfig": { # Configuration options for the Config Connector add-on. # Configuration for the ConfigConnector add-on, a Kubernetes
+          # extension to manage hosted GCP services through the Kubernetes API
+        "enabled": True or False, # Whether Cloud Connector is enabled for this cluster.
+      },
+      "dnsCacheConfig": { # Configuration for NodeLocal DNSCache # Configuration for NodeLocalDNS, a dns cache running on cluster nodes
+        "enabled": True or False, # Whether NodeLocal DNSCache is enabled for this cluster.
       },
       "istioConfig": { # Configuration options for Istio addon. # Configuration for Istio, an open platform to connect, manage, and secure
           # microservices.
@@ -1484,26 +1797,148 @@
       },
     },
     "locations": [ # The list of Google Compute Engine
-        # [zones](/compute/docs/zones#available) in which the cluster's nodes
-        # should be located.
+        # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+        # cluster's nodes should be located.
       "A String",
     ],
-    "legacyAbac": { # Configuration for the legacy Attribute Based Access Control authorization # Configuration for the legacy ABAC authorization mode.
-        # mode.
-      "enabled": True or False, # Whether the ABAC authorizer is enabled for this cluster. When enabled,
-          # identities in the system, including service accounts, nodes, and
-          # controllers, will have statically granted permissions beyond those
-          # provided by the RBAC configuration or IAM.
-    },
+    "enableKubernetesAlpha": True or False, # Kubernetes alpha features are enabled on this cluster. This includes alpha
+        # API groups (e.g. v1beta1) and features that may not be production ready in
+        # the kubernetes version of the master and nodes.
+        # The cluster has no SLA for uptime and master/node upgrades are disabled.
+        # Alpha enabled clusters are automatically deleted thirty days after
+        # creation.
     "enableTpu": True or False, # Enable the ability to use Cloud TPUs in this cluster.
+        # This field is deprecated, use tpu_config.enabled instead.
+    "releaseChannel": { # ReleaseChannel indicates which release channel a cluster is # Release channel configuration.
+        # subscribed to. Release channels are arranged in order of risk and
+        # frequency of updates.
+        #
+        # When a cluster is subscribed to a release channel, Google maintains
+        # both the master version and the node version. Node auto-upgrade
+        # defaults to true and cannot be disabled. Updates to version related
+        # fields (e.g. current_master_version) return an error.
+      "channel": "A String", # channel specifies which release channel the cluster is subscribed to.
+    },
     "defaultMaxPodsConstraint": { # Constraints applied to pods. # The default constraint on the maximum number of pods that can be run
         # simultaneously on a node in the node pool of this cluster. Only honored
         # if cluster created with IP Alias support.
       "maxPodsPerNode": "A String", # Constraint enforced on the max num of pods per node.
     },
+    "network": "A String", # The name of the Google Compute Engine
+        # [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks)
+        # to which the cluster is connected. If left unspecified, the `default`
+        # network will be used. On output this shows the network ID instead of the
+        # name.
+    "loggingService": "A String", # The logging service the cluster should use to write logs.
+        # Currently available options:
+        #
+        # * `logging.googleapis.com/kubernetes` - The Cloud Logging
+        # service with a Kubernetes-native resource model
+        # * `logging.googleapis.com` - The legacy Cloud Logging service (no longer
+        #   available as of GKE 1.15).
+        # * `none` - no logs will be exported from the cluster.
+        #
+        # If left as an empty string,`logging.googleapis.com/kubernetes` will be
+        # used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
+    "instanceGroupUrls": [ # Deprecated. Use node_pools.instance_group_urls.
+      "A String",
+    ],
+    "networkConfig": { # NetworkConfig reports the relative names of network &amp; subnetwork. # Configuration for cluster networking.
+      "subnetwork": "A String", # Output only. The relative name of the Google Compute Engine
+          # [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the
+          # cluster is connected. Example:
+          # projects/my-project/regions/us-central1/subnetworks/my-subnet
+      "network": "A String", # Output only. The relative name of the Google Compute Engine
+          # network(https://cloud.google.com/compute/docs/networks-and-firewalls#networks)
+          # to which the cluster is connected. Example:
+          # projects/my-project/global/networks/my-network
+      "enableIntraNodeVisibility": True or False, # Whether Intra-node visibility is enabled for this cluster.
+          # This makes same node pod to pod traffic visible for VPC network.
+    },
+    "privateCluster": True or False, # If this is a private cluster setup. Private clusters are clusters that, by
+        # default have no external IP addresses on the nodes and where nodes and the
+        # master communicate over private IP addresses.
+        # This field is deprecated, use private_cluster_config.enable_private_nodes
+        # instead.
+    "podSecurityPolicyConfig": { # Configuration for the PodSecurityPolicy feature. # Configuration for the PodSecurityPolicy feature.
+      "enabled": True or False, # Enable the PodSecurityPolicy controller for this cluster. If enabled, pods
+          # must be valid under a PodSecurityPolicy to be created.
+    },
+    "shieldedNodes": { # Configuration of Shielded Nodes feature. # Shielded Nodes configuration.
+      "enabled": True or False, # Whether Shielded Nodes features are enabled on all nodes in this cluster.
+    },
+    "location": "A String", # [Output only] The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # or
+        # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # in which the cluster resides.
+    "workloadIdentityConfig": { # Configuration for the use of Kubernetes Service Accounts in GCP IAM # Configuration for the use of Kubernetes Service Accounts in GCP IAM
+        # policies.
+        # policies.
+      "workloadPool": "A String", # The workload pool to attach all Kubernetes service accounts to.
+      "identityNamespace": "A String", # IAM Identity Namespace to attach all Kubernetes Service Accounts to.
+    },
+    "resourceUsageExportConfig": { # Configuration for exporting cluster resource usages. # Configuration for exporting resource usages. Resource usage export is
+        # disabled when this config unspecified.
+      "bigqueryDestination": { # Parameters for using BigQuery as the destination of resource usage export. # Configuration to use BigQuery as usage export destination.
+        "datasetId": "A String", # The ID of a BigQuery Dataset.
+      },
+      "enableNetworkEgressMetering": True or False, # Whether to enable network egress metering for this cluster. If enabled, a
+          # daemonset will be created in the cluster to meter network egress traffic.
+      "consumptionMeteringConfig": { # Parameters for controlling consumption metering. # Configuration to enable resource consumption metering.
+        "enabled": True or False, # Whether to enable consumption metering for this cluster. If enabled, a
+            # second BigQuery table will be created to hold resource consumption
+            # records.
+      },
+    },
+    "privateClusterConfig": { # Configuration options for private clusters. # Configuration for private cluster.
+      "enablePrivateEndpoint": True or False, # Whether the master's internal IP address is used as the cluster endpoint.
+      "publicEndpoint": "A String", # Output only. The external IP address of this cluster's master endpoint.
+      "masterGlobalAccessConfig": { # Configuration for controlling master global access settings. # Controls master global access settings.
+        "enabled": True or False, # Whenever master is accessible globally or not.
+      },
+      "enablePrivateNodes": True or False, # Whether nodes have internal IP addresses only. If enabled, all nodes are
+          # given only RFC 1918 private addresses and communicate with the master via
+          # private networking.
+      "privateEndpoint": "A String", # Output only. The internal IP address of this cluster's master endpoint.
+      "masterIpv4CidrBlock": "A String", # The IP range in CIDR notation to use for the hosted master network. This
+          # range will be used for assigning internal IP addresses to the master or
+          # set of masters, as well as the ILB VIP. This range must not overlap with
+          # any other ranges in use within the cluster's network.
+      "peeringName": "A String", # Output only. The peering name in the customer VPC used by this cluster.
+    },
+    "conditions": [ # Which conditions caused the current cluster state.
+      { # StatusCondition describes why a cluster or a node pool has a certain status
+          # (e.g., ERROR or DEGRADED).
+        "message": "A String", # Human-friendly representation of the condition
+        "code": "A String", # Machine-friendly representation of the condition
+      },
+    ],
+    "statusMessage": "A String", # [Output only] Additional information about the current status of this
+        # cluster, if available.
+    "servicesIpv4Cidr": "A String", # [Output only] The IP address range of the Kubernetes services in
+        # this cluster, in
+        # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+        # notation (e.g. `1.2.3.4/29`). Service addresses are
+        # typically put in the last `/16` from the container CIDR.
+    "status": "A String", # [Output only] The current status of this cluster.
     "ipAllocationPolicy": { # Configuration for controlling how IPs are allocated in the cluster. # Configuration for cluster IP allocation.
-      "clusterIpv4Cidr": "A String", # This field is deprecated, use cluster_ipv4_cidr_block.
+      "allowRouteOverlap": True or False, # If true, allow allocation of cluster CIDR ranges that overlap with certain
+          # kinds of network routes. By default we do not allow cluster CIDR ranges to
+          # intersect with any user declared routes. With allow_route_overlap == true,
+          # we allow overlapping with CIDR ranges that are larger than the cluster CIDR
+          # range.
+          #
+          # If this field is set to true, then cluster and services CIDRs must be
+          # fully-specified (e.g. `10.96.0.0/14`, but not `/14`), which means:
+          # 1) When `use_ip_aliases` is true, `cluster_ipv4_cidr_block` and
+          #    `services_ipv4_cidr_block` must be fully-specified.
+          # 2) When `use_ip_aliases` is false, `cluster.cluster_ipv4_cidr` muse be
+          #    fully-specified.
       "useIpAliases": True or False, # Whether alias IPs will be used for pod IPs in the cluster.
+          # This is used in conjunction with use_routes. It cannot
+          # be true if use_routes is true. If both use_ip_aliases and use_routes are
+          # false, then the server picks the default IP allocation mode
       "nodeIpv4Cidr": "A String", # This field is deprecated, use node_ipv4_cidr_block.
       "clusterIpv4CidrBlock": "A String", # The IP address range for the cluster pod IPs. If this field is set, then
           # `cluster.cluster_ipv4_cidr` must be left blank.
@@ -1574,18 +2009,12 @@
           # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
           # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
           # to use.
-      "allowRouteOverlap": True or False, # If true, allow allocation of cluster CIDR ranges that overlap with certain
-          # kinds of network routes. By default we do not allow cluster CIDR ranges to
-          # intersect with any user declared routes. With allow_route_overlap == true,
-          # we allow overlapping with CIDR ranges that are larger than the cluster CIDR
-          # range.
-          #
-          # If this field is set to true, then cluster and services CIDRs must be
-          # fully-specified (e.g. `10.96.0.0/14`, but not `/14`), which means:
-          # 1) When `use_ip_aliases` is true, `cluster_ipv4_cidr_block` and
-          #    `services_ipv4_cidr_block` must be fully-specified.
-          # 2) When `use_ip_aliases` is false, `cluster.cluster_ipv4_cidr` muse be
-          #    fully-specified.
+          # This field is deprecated, use cluster.tpu_config.ipv4_cidr_block instead.
+      "clusterIpv4Cidr": "A String", # This field is deprecated, use cluster_ipv4_cidr_block.
+      "useRoutes": True or False, # Whether routes will be used for pod IPs in the cluster.
+          # This is used in conjunction with use_ip_aliases. It cannot be true if
+          # use_ip_aliases is true. If both use_ip_aliases and use_routes are false,
+          # then the server picks the default IP allocation mode
       "subnetworkName": "A String", # A custom subnetwork name to be used if `create_subnetwork` is true.  If
           # this field is empty, then an automatic name will be chosen for the new
           # subnetwork.
@@ -1598,92 +2027,10 @@
           # create_subnetwork is false.
       "servicesIpv4Cidr": "A String", # This field is deprecated, use services_ipv4_cidr_block.
     },
-    "network": "A String", # The name of the Google Compute Engine
-        # [network](/compute/docs/networks-and-firewalls#networks) to which the
-        # cluster is connected. If left unspecified, the `default` network
-        # will be used. On output this shows the network ID instead of
-        # the name.
-    "zone": "A String", # [Output only] The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the cluster
-        # resides.
-        # This field is deprecated, use location instead.
-    "instanceGroupUrls": [ # Deprecated. Use node_pools.instance_group_urls.
-      "A String",
-    ],
-    "networkConfig": { # NetworkConfig reports the relative names of network & subnetwork. # Configuration for cluster networking.
-      "subnetwork": "A String", # Output only. The relative name of the Google Compute Engine
-          # [subnetwork](/compute/docs/vpc) to which the cluster is connected.
-          # Example: projects/my-project/regions/us-central1/subnetworks/my-subnet
-      "network": "A String", # Output only. The relative name of the Google Compute Engine
-          # network(/compute/docs/networks-and-firewalls#networks) to which
-          # the cluster is connected.
-          # Example: projects/my-project/global/networks/my-network
-      "enableIntraNodeVisibility": True or False, # Whether Intra-node visibility is enabled for this cluster.
-          # This makes same node pod to pod traffic visible for VPC network.
-    },
-    "privateCluster": True or False, # If this is a private cluster setup. Private clusters are clusters that, by
-        # default have no external IP addresses on the nodes and where nodes and the
-        # master communicate over private IP addresses.
-        # This field is deprecated, use private_cluster_config.enable_private_nodes
-        # instead.
-    "podSecurityPolicyConfig": { # Configuration for the PodSecurityPolicy feature. # Configuration for the PodSecurityPolicy feature.
-      "enabled": True or False, # Enable the PodSecurityPolicy controller for this cluster. If enabled, pods
-          # must be valid under a PodSecurityPolicy to be created.
-    },
-    "location": "A String", # [Output only] The name of the Google Compute Engine
-        # [zone](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
-    "workloadIdentityConfig": { # Configuration for the use of Kubernetes Service Accounts in GCP IAM # Configuration for the use of Kubernetes Service Accounts in GCP IAM
-        # policies.
-        # policies.
-      "identityNamespace": "A String", # IAM Identity Namespace to attach all Kubernetes Service Accounts to.
-    },
-    "resourceUsageExportConfig": { # Configuration for exporting cluster resource usages. # Configuration for exporting resource usages. Resource usage export is
-        # disabled when this config unspecified.
-      "bigqueryDestination": { # Parameters for using BigQuery as the destination of resource usage export. # Configuration to use BigQuery as usage export destination.
-        "datasetId": "A String", # The ID of a BigQuery Dataset.
-      },
-      "enableNetworkEgressMetering": True or False, # Whether to enable network egress metering for this cluster. If enabled, a
-          # daemonset will be created in the cluster to meter network egress traffic.
-      "consumptionMeteringConfig": { # Parameters for controlling consumption metering. # Configuration to enable resource consumption metering.
-        "enabled": True or False, # Whether to enable consumption metering for this cluster. If enabled, a
-            # second BigQuery table will be created to hold resource consumption
-            # records.
-      },
-    },
-    "masterIpv4CidrBlock": "A String", # The IP prefix in CIDR notation to use for the hosted master network.
-        # This prefix will be used for assigning private IP addresses to the
-        # master or set of masters, as well as the ILB VIP.
-        # This field is deprecated, use
-        # private_cluster_config.master_ipv4_cidr_block instead.
-    "conditions": [ # Which conditions caused the current cluster state.
-      { # StatusCondition describes why a cluster or a node pool has a certain status
-          # (e.g., ERROR or DEGRADED).
-        "message": "A String", # Human-friendly representation of the condition
-        "code": "A String", # Machine-friendly representation of the condition
-      },
-    ],
-    "servicesIpv4Cidr": "A String", # [Output only] The IP address range of the Kubernetes services in
-        # this cluster, in
-        # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
-        # notation (e.g. `1.2.3.4/29`). Service addresses are
-        # typically put in the last `/16` from the container CIDR.
-    "statusMessage": "A String", # [Output only] Additional information about the current status of this
-        # cluster, if available.
-    "tierSettings": { # Cluster tier settings. # Cluster tier settings.
-      "tier": "A String", # Cluster tier.
-    },
-    "status": "A String", # [Output only] The current status of this cluster.
     "currentMasterVersion": "A String", # [Output only] The current software version of the master endpoint.
     "description": "A String", # An optional description of this cluster.
-    "databaseEncryption": { # Configuration of etcd encryption. # Configuration of etcd encryption.
-      "state": "A String", # Denotes the state of etcd encryption.
-      "keyName": "A String", # Name of CloudKMS key to use for the encryption of secrets in etcd.
-          # Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key
-    },
     "currentNodeVersion": "A String", # [Output only] Deprecated, use
-        # [NodePool.version](/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters.nodePools)
+        # [NodePool.version](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters.nodePools)
         # instead. The current version of the node software components.
         # If they are currently at multiple versions because they're in the process
         # of being upgraded, this reflects the minimum version of all nodes.
@@ -1699,12 +2046,62 @@
       "autoprovisioningNodePoolDefaults": { # AutoprovisioningNodePoolDefaults contains defaults for a node pool created # AutoprovisioningNodePoolDefaults contains defaults for a node pool
           # created by NAP.
           # by NAP.
+        "minCpuPlatform": "A String", # Minimum CPU platform to be used for NAP created node pools.
+            # The instance may be scheduled on the specified or newer CPU platform.
+            # Applicable values are the friendly names of CPU platforms, such as
+            # &lt;code&gt;minCpuPlatform: &amp;quot;Intel Haswell&amp;quot;&lt;/code&gt; or
+            # &lt;code&gt;minCpuPlatform: &amp;quot;Intel Sandy Bridge&amp;quot;&lt;/code&gt;. For more
+            # information, read [how to specify min CPU
+            # platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
+            # To unset the min cpu platform field pass "automatic" as field value.
+        "management": { # NodeManagement defines the set of node management services turned on for the # Specifies the node management options for NAP created node-pools.
+            # node pool.
+          "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how # Specifies the Auto Upgrade knobs for the node pool.
+              # the Auto Upgrades will proceed.
+            "description": "A String", # [Output only] This field is set when upgrades are about to commence
+                # with the description of the upgrade.
+            "autoUpgradeStartTime": "A String", # [Output only] This field is set when upgrades are about to commence
+                # with the approximate start time for the upgrades, in
+                # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+          },
+          "autoRepair": True or False, # Whether the nodes will be automatically repaired.
+          "autoUpgrade": True or False, # Whether the nodes will be automatically upgraded.
+        },
         "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If
             # service_account is specified, scopes should be empty.
         "oauthScopes": [ # Scopes that are used by NAP when creating node pools. If oauth_scopes are
             # specified, service_account should be empty.
           "A String",
         ],
+        "upgradeSettings": { # These upgrade settings control the level of parallelism and the level of # Specifies the upgrade settings for NAP created node pools
+            # disruption caused by an upgrade.
+            #
+            # maxUnavailable controls the number of nodes that can be simultaneously
+            # unavailable.
+            #
+            # maxSurge controls the number of additional nodes that can be added to the
+            # node pool temporarily for the time of the upgrade to increase the number of
+            # available nodes.
+            #
+            # (maxUnavailable + maxSurge) determines the level of parallelism (how many
+            # nodes are being upgraded at the same time).
+            #
+            # Note: upgrades inevitably introduce some disruption since workloads need to
+            # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
+            # this holds true. (Disruption stays within the limits of
+            # PodDisruptionBudget, if it is configured.)
+            #
+            # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
+            # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
+            # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
+            # down 3 old (not yet upgraded) nodes at the same time. This ensures that
+            # there are always at least 4 nodes available.
+          "maxSurge": 42, # The maximum number of nodes that can be created beyond the current size
+              # of the node pool during the upgrade process.
+          "maxUnavailable": 42, # The maximum number of nodes that can be simultaneously unavailable during
+              # the upgrade process. A node is considered available if its status is
+              # Ready.
+        },
       },
       "resourceLimits": [ # Contains global constraints regarding minimum and maximum
           # amount of resources in the cluster.
@@ -1715,10 +2112,12 @@
           "maximum": "A String", # Maximum amount of the resource in the cluster.
         },
       ],
-      "autoprovisioningLocations": [ # The list of Google Compute Engine [zones](/compute/docs/zones#available)
-          # in which the NodePool's nodes can be created by NAP.
+      "autoprovisioningLocations": [ # The list of Google Compute Engine
+          # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+          # NodePool's nodes can be created by NAP.
         "A String",
       ],
+      "autoscalingProfile": "A String", # Defines autoscaling behaviour.
       "enableNodeAutoprovisioning": True or False, # Enables automatic node pool creation and deletion.
     },
     "masterAuth": { # The authentication information for accessing the master endpoint. # The authentication information for accessing the master endpoint.
@@ -1735,29 +2134,30 @@
           # to the cluster endpoint.
       "clientCertificate": "A String", # [Output only] Base64-encoded public certificate used by clients to
           # authenticate to the cluster endpoint.
+      "clusterCaCertificate": "A String",
+      "password": "A String", # The password to use for HTTP basic authentication to the master endpoint.
+          # Because the master endpoint is open to the Internet, you should create a
+          # strong password.  If a password is provided for cluster creation, username
+          # must be non-empty.
       "clientCertificateConfig": { # Configuration for client certificates on the cluster. # Configuration for client certificate authentication on the cluster. For
           # clusters before v1.12, if no configuration is specified, a client
           # certificate is issued.
         "issueClientCertificate": True or False, # Issue a client certificate.
       },
-      "password": "A String", # The password to use for HTTP basic authentication to the master endpoint.
-          # Because the master endpoint is open to the Internet, you should create a
-          # strong password.  If a password is provided for cluster creation, username
-          # must be non-empty.
-      "clusterCaCertificate": "A String",
     },
     "expireTime": "A String", # [Output only] The time the cluster will be automatically
         # deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "initialNodeCount": 42, # The number of nodes to create in this cluster. You must ensure that your
-        # Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a>
-        # is sufficient for this number of instances. You must also have available
-        # firewall and routes quota.
-        # For requests, this field should only be used in lieu of a
-        # "node_pool" object, since this configuration (along with the
-        # "node_config") will be used to create a "NodePool" object with an
-        # auto-generated name. Do not use this and a node_pool at the same time.
-        #
-        # This field is deprecated, use node_pool.initial_node_count instead.
+    "masterIpv4CidrBlock": "A String", # The IP prefix in CIDR notation to use for the hosted master network.
+        # This prefix will be used for assigning private IP addresses to the
+        # master or set of masters, as well as the ILB VIP.
+        # This field is deprecated, use
+        # private_cluster_config.master_ipv4_cidr_block instead.
+    "clusterTelemetry": { # Telemetry integration for the cluster. # Telemetry integration for the cluster.
+      "type": "A String", # Type of the integration.
+    },
+    "tpuIpv4CidrBlock": "A String", # [Output only] The IP address range of the Cloud TPUs in this cluster, in
+        # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+        # notation (e.g. `1.2.3.4/29`).
     "nodePools": [ # The node pools associated with this cluster.
         # This field should not be set if "node_config" or "initial_node_count" are
         # specified.
@@ -1768,11 +2168,9 @@
           # during pod scheduling. They may also be resized up or down, to accommodate
           # the workload.
         "status": "A String", # [Output only] The status of the nodes in this pool instance.
-        "statusMessage": "A String", # [Output only] Additional information about the current status of this
-            # node pool instance, if available.
+        "selfLink": "A String", # [Output only] Server-defined URL for the resource.
         "management": { # NodeManagement defines the set of node management services turned on for the # NodeManagement configuration for this NodePool.
             # node pool.
-          "autoRepair": True or False, # Whether the nodes will be automatically repaired.
           "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how # Specifies the Auto Upgrade knobs for the node pool.
               # the Auto Upgrades will proceed.
             "description": "A String", # [Output only] This field is set when upgrades are about to commence
@@ -1781,26 +2179,30 @@
                 # with the approximate start time for the upgrades, in
                 # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
           },
+          "autoRepair": True or False, # Whether the nodes will be automatically repaired.
           "autoUpgrade": True or False, # Whether the nodes will be automatically upgraded.
         },
         "name": "A String", # The name of the node pool.
-        "instanceGroupUrls": [ # [Output only] The resource URLs of the [managed instance
-            # groups](/compute/docs/instance-groups/creating-groups-of-managed-instances)
-            # associated with this node pool.
-          "A String",
+        "conditions": [ # Which conditions caused the current node pool state.
+          { # StatusCondition describes why a cluster or a node pool has a certain status
+              # (e.g., ERROR or DEGRADED).
+            "message": "A String", # Human-friendly representation of the condition
+            "code": "A String", # Machine-friendly representation of the condition
+          },
         ],
         "autoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to # Autoscaler configuration for this NodePool. Autoscaler is enabled
             # only if a valid configuration is present.
             # adjust the size of the node pool to the current cluster usage.
-          "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be >= 1 and <=
+          "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be &gt;= 1 and &lt;=
               # max_node_count.
           "autoprovisioned": True or False, # Can this node pool be deleted automatically.
           "enabled": True or False, # Is autoscaling enabled for this node pool.
-          "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be >= min_node_count. There
+          "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be &gt;= min_node_count. There
               # has to enough quota to scale up the cluster.
         },
-        "locations": [ # The list of Google Compute Engine [zones](/compute/docs/zones#available)
-            # in which the NodePool's nodes should be located.
+        "locations": [ # The list of Google Compute Engine
+            # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+            # NodePool's nodes should be located.
           "A String",
         ],
         "maxPodsConstraint": { # Constraints applied to pods. # The constraint on the maximum number of pods that can be run
@@ -1808,17 +2210,66 @@
           "maxPodsPerNode": "A String", # Constraint enforced on the max num of pods per node.
         },
         "version": "A String", # The version of the Kubernetes of this node.
+        "upgradeSettings": { # These upgrade settings control the level of parallelism and the level of # Upgrade settings control disruption and speed of the upgrade.
+            # disruption caused by an upgrade.
+            #
+            # maxUnavailable controls the number of nodes that can be simultaneously
+            # unavailable.
+            #
+            # maxSurge controls the number of additional nodes that can be added to the
+            # node pool temporarily for the time of the upgrade to increase the number of
+            # available nodes.
+            #
+            # (maxUnavailable + maxSurge) determines the level of parallelism (how many
+            # nodes are being upgraded at the same time).
+            #
+            # Note: upgrades inevitably introduce some disruption since workloads need to
+            # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
+            # this holds true. (Disruption stays within the limits of
+            # PodDisruptionBudget, if it is configured.)
+            #
+            # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
+            # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
+            # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
+            # down 3 old (not yet upgraded) nodes at the same time. This ensures that
+            # there are always at least 4 nodes available.
+          "maxSurge": 42, # The maximum number of nodes that can be created beyond the current size
+              # of the node pool during the upgrade process.
+          "maxUnavailable": 42, # The maximum number of nodes that can be simultaneously unavailable during
+              # the upgrade process. A node is considered available if its status is
+              # Ready.
+        },
         "initialNodeCount": 42, # The initial node count for the pool. You must ensure that your
-            # Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a>
+            # Compute Engine &lt;a href="/compute/docs/resource-quotas"&gt;resource quota&lt;/a&gt;
             # is sufficient for this number of instances. You must also have available
             # firewall and routes quota.
         "podIpv4CidrSize": 42, # [Output only] The pod CIDR block size per node in this node pool.
+        "instanceGroupUrls": [ # [Output only] The resource URLs of the [managed instance
+            # groups](https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances)
+            # associated with this node pool.
+          "A String",
+        ],
         "config": { # Parameters that describe the nodes in a cluster. # The node configuration of the pool.
+          "reservationAffinity": { # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # The optional reservation affinity. Setting this field will apply
+              # the specified [Zonal Compute
+              # Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources)
+              # to this node pool.
+              # is the configuration of desired reservation which instances could take
+              # capacity from.
+            "values": [ # Corresponds to the label value(s) of reservation resource(s).
+              "A String",
+            ],
+            "consumeReservationType": "A String", # Corresponds to the type of reservation consumption.
+            "key": "A String", # Corresponds to the label key of a reservation resource. To target a
+                # SPECIFIC_RESERVATION by name, specify "googleapis.com/reservation-name" as
+                # the key and specify the name of your reservation as its value.
+          },
           "sandboxConfig": { # SandboxConfig contains configurations of the sandbox to use for the node. # Sandbox configuration for this node.
+            "type": "A String", # Type of the sandbox to use for the node.
             "sandboxType": "A String", # Type of the sandbox to use for the node (e.g. 'gvisor')
           },
           "machineType": "A String", # The name of a Google Compute Engine [machine
-              # type](/compute/docs/machine-types) (e.g.
+              # type](https://cloud.google.com/compute/docs/machine-types) (e.g.
               # `n1-standard-1`).
               #
               # If unspecified, the default machine type is
@@ -1858,8 +2309,9 @@
               # https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
             "a_key": "A String",
           },
-          "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If
-              # no Service Account is specified, the "default" service account is used.
+          "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs.
+              # Specify the email address of the Service Account; otherwise, if no Service
+              # Account is specified, the "default" service account is used.
           "oauthScopes": [ # The set of Google API scopes to be made available on all of the
               # node VMs under the "default" service account.
               #
@@ -1870,7 +2322,8 @@
               # persistent storage on your nodes.
               # * `https://www.googleapis.com/auth/devstorage.read_only` is required for
               # communicating with **gcr.io**
-              # (the [Google Container Registry](/container-registry/)).
+              # (the [Google Container
+              # Registry](https://cloud.google.com/container-registry/)).
               #
               # If unspecified, no scopes are added, unless Cloud Logging or Cloud
               # Monitoring are enabled, in which case their required scopes will be added.
@@ -1885,13 +2338,15 @@
                 #
                 # For more information, including usage and the valid values, see:
                 # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
+              "value": "A String", # Value for taint.
               "key": "A String", # Key for taint.
               "effect": "A String", # Effect for taint.
-              "value": "A String", # Value for taint.
             },
           ],
           "workloadMetadataConfig": { # WorkloadMetadataConfig defines the metadata configuration to expose to # The workload metadata configuration for this node.
               # workloads on the node pool.
+            "mode": "A String", # Mode is the configuration for how to expose metadata to workloads running
+                # on the node pool.
             "nodeMetadata": "A String", # NodeMetadata is the configuration for how to expose metadata to the
                 # workloads running on the node.
           },
@@ -1905,21 +2360,28 @@
             { # AcceleratorConfig represents a Hardware Accelerator request.
               "acceleratorCount": "A String", # The number of the accelerator cards exposed to an instance.
               "acceleratorType": "A String", # The accelerator type resource name. List of supported accelerators
-                  # [here](/compute/docs/gpus/#Introduction)
+                  # [here](https://cloud.google.com/compute/docs/gpus)
             },
           ],
           "minCpuPlatform": "A String", # Minimum CPU platform to be used by this instance. The instance may be
               # scheduled on the specified or newer CPU platform. Applicable values are the
               # friendly names of CPU platforms, such as
-              # <code>minCpuPlatform: &quot;Intel Haswell&quot;</code> or
-              # <code>minCpuPlatform: &quot;Intel Sandy Bridge&quot;</code>. For more
+              # &lt;code&gt;minCpuPlatform: &amp;quot;Intel Haswell&amp;quot;&lt;/code&gt; or
+              # &lt;code&gt;minCpuPlatform: &amp;quot;Intel Sandy Bridge&amp;quot;&lt;/code&gt;. For more
               # information, read [how to specify min CPU
               # platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
+          "bootDiskKmsKey": "A String", #
+              # The Customer Managed Encryption Key used to encrypt the boot disk attached
+              # to each node in the node pool. This should be of the form
+              # projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME].
+              # For more information about protecting resources with Cloud KMS Keys please
+              # see:
+              # https://cloud.google.com/compute/docs/disks/customer-managed-encryption
           "localSsdCount": 42, # The number of local SSD disks to be attached to the node.
               #
-              # The limit for this value is dependant upon the maximum number of
+              # The limit for this value is dependent upon the maximum number of
               # disks available on a machine per zone. See:
-              # https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits
+              # https://cloud.google.com/compute/docs/disks/local-ssd
               # for more information.
           "imageType": "A String", # The image type to use for this node. Note that for a given image type,
               # the latest version of it will be used.
@@ -1936,6 +2398,7 @@
               #  "containerd-configure-sh"
               #  "enable-oslogin"
               #  "gci-ensure-gke-docker"
+              #  "gci-metrics-enabled"
               #  "gci-update-strategy"
               #  "instance-template"
               #  "kube-env"
@@ -1956,42 +2419,41 @@
             "a_key": "A String",
           },
         },
-        "conditions": [ # Which conditions caused the current node pool state.
-          { # StatusCondition describes why a cluster or a node pool has a certain status
-              # (e.g., ERROR or DEGRADED).
-            "message": "A String", # Human-friendly representation of the condition
-            "code": "A String", # Machine-friendly representation of the condition
-          },
-        ],
-        "selfLink": "A String", # [Output only] Server-defined URL for the resource.
+        "statusMessage": "A String", # [Output only] Additional information about the current status of this
+            # node pool instance, if available.
       },
     ],
     "monitoringService": "A String", # The monitoring service the cluster should use to write metrics.
         # Currently available options:
         #
-        # * `monitoring.googleapis.com` - the Google Cloud Monitoring service.
-        # * `none` - no metrics will be exported from the cluster.
-        # * if left as an empty string, `monitoring.googleapis.com` will be used.
+        # * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
+        # service with a Kubernetes-native resource model
+        # * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
+        #   longer available as of GKE 1.15).
+        # * `none` - No metrics will be exported from the cluster.
+        #
+        # If left as an empty string,`monitoring.googleapis.com/kubernetes` will be
+        # used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
     "createTime": "A String", # [Output only] The time the cluster was created, in
         # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "authenticatorGroupsConfig": { # Configuration for returning group information from authenticators. # Configuration controlling RBAC group membership information.
-      "enabled": True or False, # Whether this cluster should return group membership lookups
-          # during authentication using a group of security groups.
-      "securityGroup": "A String", # The name of the security group-of-groups to be used. Only relevant
-          # if enabled = true.
+    "databaseEncryption": { # Configuration of etcd encryption. # Configuration of etcd encryption.
+      "state": "A String", # Denotes the state of etcd encryption.
+      "keyName": "A String", # Name of CloudKMS key to use for the encryption of secrets in etcd.
+          # Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key
     },
-    "privateClusterConfig": { # Configuration options for private clusters. # Configuration for private cluster.
-      "enablePrivateEndpoint": True or False, # Whether the master's internal IP address is used as the cluster endpoint.
-      "publicEndpoint": "A String", # Output only. The external IP address of this cluster's master endpoint.
-      "enablePrivateNodes": True or False, # Whether nodes have internal IP addresses only. If enabled, all nodes are
-          # given only RFC 1918 private addresses and communicate with the master via
-          # private networking.
-      "privateEndpoint": "A String", # Output only. The internal IP address of this cluster's master endpoint.
-      "masterIpv4CidrBlock": "A String", # The IP range in CIDR notation to use for the hosted master network. This
-          # range will be used for assigning internal IP addresses to the master or
-          # set of masters, as well as the ILB VIP. This range must not overlap with
-          # any other ranges in use within the cluster's network.
-      "enablePeeringRouteSharing": True or False, # Whether to enable route sharing over the network peering.
+    "name": "A String", # The name of this cluster. The name must be unique within this project
+        # and location (e.g. zone or region), and can be up to 40 characters with
+        # the following restrictions:
+        #
+        # * Lowercase letters, numbers, and hyphens only.
+        # * Must start with a letter.
+        # * Must end with a number or a letter.
+    "legacyAbac": { # Configuration for the legacy Attribute Based Access Control authorization # Configuration for the legacy ABAC authorization mode.
+        # mode.
+      "enabled": True or False, # Whether the ABAC authorizer is enabled for this cluster. When enabled,
+          # identities in the system, including service accounts, nodes, and
+          # controllers, will have statically granted permissions beyond those
+          # provided by the RBAC configuration or IAM.
     },
     "endpoint": "A String", # [Output only] The IP address of this cluster's master endpoint.
         # The endpoint can be accessed from the internet at
@@ -2001,23 +2463,19 @@
         # password information.
     "currentNodeCount": 42, # [Output only]  The number of nodes currently in the cluster. Deprecated.
         # Call Kubernetes API directly to retrieve node information.
-    "name": "A String", # The name of this cluster. The name must be unique within this project
-        # and zone, and can be up to 40 characters with the following restrictions:
-        #
-        # * Lowercase letters, numbers, and hyphens only.
-        # * Must start with a letter.
-        # * Must end with a number or a letter.
+    "zone": "A String", # [Output only] The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # cluster resides. This field is deprecated, use location instead.
     "verticalPodAutoscaling": { # VerticalPodAutoscaling contains global, per-cluster information # Cluster-level Vertical Pod Autoscaling configuration.
         # required by Vertical Pod Autoscaler to automatically adjust
         # the resources of pods controlled by it.
       "enabled": True or False, # Enables vertical pod autoscaling.
     },
-    "enableKubernetesAlpha": True or False, # Kubernetes alpha features are enabled on this cluster. This includes alpha
-        # API groups (e.g. v1beta1) and features that may not be production ready in
-        # the kubernetes version of the master and nodes.
-        # The cluster has no SLA for uptime and master/node upgrades are disabled.
-        # Alpha enabled clusters are automatically deleted thirty days after
-        # creation.
+    "tpuConfig": { # Configuration for Cloud TPU. # Configuration for Cloud TPU support;
+      "useServiceNetworking": True or False, # Whether to use service networking for Cloud TPU or not.
+      "ipv4CidrBlock": "A String", # IPv4 CIDR block reserved for Cloud TPU in the VPC.
+      "enabled": True or False, # Whether Cloud TPU integration is enabled or not.
+    },
     "initialClusterVersion": "A String", # The initial Kubernetes version for this cluster.  Valid versions are those
         # found in validMasterVersions returned by getServerConfig.  The version can
         # be upgraded over time; such upgrades are reflected in
@@ -2042,11 +2500,26 @@
         #
         # If unspecified, the defaults are used.
         # This field is deprecated, use node_pool.config instead.
+      "reservationAffinity": { # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # The optional reservation affinity. Setting this field will apply
+          # the specified [Zonal Compute
+          # Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources)
+          # to this node pool.
+          # is the configuration of desired reservation which instances could take
+          # capacity from.
+        "values": [ # Corresponds to the label value(s) of reservation resource(s).
+          "A String",
+        ],
+        "consumeReservationType": "A String", # Corresponds to the type of reservation consumption.
+        "key": "A String", # Corresponds to the label key of a reservation resource. To target a
+            # SPECIFIC_RESERVATION by name, specify "googleapis.com/reservation-name" as
+            # the key and specify the name of your reservation as its value.
+      },
       "sandboxConfig": { # SandboxConfig contains configurations of the sandbox to use for the node. # Sandbox configuration for this node.
+        "type": "A String", # Type of the sandbox to use for the node.
         "sandboxType": "A String", # Type of the sandbox to use for the node (e.g. 'gvisor')
       },
       "machineType": "A String", # The name of a Google Compute Engine [machine
-          # type](/compute/docs/machine-types) (e.g.
+          # type](https://cloud.google.com/compute/docs/machine-types) (e.g.
           # `n1-standard-1`).
           #
           # If unspecified, the default machine type is
@@ -2086,8 +2559,9 @@
           # https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
         "a_key": "A String",
       },
-      "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If
-          # no Service Account is specified, the "default" service account is used.
+      "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs.
+          # Specify the email address of the Service Account; otherwise, if no Service
+          # Account is specified, the "default" service account is used.
       "oauthScopes": [ # The set of Google API scopes to be made available on all of the
           # node VMs under the "default" service account.
           #
@@ -2098,7 +2572,8 @@
           # persistent storage on your nodes.
           # * `https://www.googleapis.com/auth/devstorage.read_only` is required for
           # communicating with **gcr.io**
-          # (the [Google Container Registry](/container-registry/)).
+          # (the [Google Container
+          # Registry](https://cloud.google.com/container-registry/)).
           #
           # If unspecified, no scopes are added, unless Cloud Logging or Cloud
           # Monitoring are enabled, in which case their required scopes will be added.
@@ -2113,13 +2588,15 @@
             #
             # For more information, including usage and the valid values, see:
             # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
+          "value": "A String", # Value for taint.
           "key": "A String", # Key for taint.
           "effect": "A String", # Effect for taint.
-          "value": "A String", # Value for taint.
         },
       ],
       "workloadMetadataConfig": { # WorkloadMetadataConfig defines the metadata configuration to expose to # The workload metadata configuration for this node.
           # workloads on the node pool.
+        "mode": "A String", # Mode is the configuration for how to expose metadata to workloads running
+            # on the node pool.
         "nodeMetadata": "A String", # NodeMetadata is the configuration for how to expose metadata to the
             # workloads running on the node.
       },
@@ -2133,21 +2610,28 @@
         { # AcceleratorConfig represents a Hardware Accelerator request.
           "acceleratorCount": "A String", # The number of the accelerator cards exposed to an instance.
           "acceleratorType": "A String", # The accelerator type resource name. List of supported accelerators
-              # [here](/compute/docs/gpus/#Introduction)
+              # [here](https://cloud.google.com/compute/docs/gpus)
         },
       ],
       "minCpuPlatform": "A String", # Minimum CPU platform to be used by this instance. The instance may be
           # scheduled on the specified or newer CPU platform. Applicable values are the
           # friendly names of CPU platforms, such as
-          # <code>minCpuPlatform: &quot;Intel Haswell&quot;</code> or
-          # <code>minCpuPlatform: &quot;Intel Sandy Bridge&quot;</code>. For more
+          # &lt;code&gt;minCpuPlatform: &amp;quot;Intel Haswell&amp;quot;&lt;/code&gt; or
+          # &lt;code&gt;minCpuPlatform: &amp;quot;Intel Sandy Bridge&amp;quot;&lt;/code&gt;. For more
           # information, read [how to specify min CPU
           # platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
+      "bootDiskKmsKey": "A String", #
+          # The Customer Managed Encryption Key used to encrypt the boot disk attached
+          # to each node in the node pool. This should be of the form
+          # projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME].
+          # For more information about protecting resources with Cloud KMS Keys please
+          # see:
+          # https://cloud.google.com/compute/docs/disks/customer-managed-encryption
       "localSsdCount": 42, # The number of local SSD disks to be attached to the node.
           #
-          # The limit for this value is dependant upon the maximum number of
+          # The limit for this value is dependent upon the maximum number of
           # disks available on a machine per zone. See:
-          # https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits
+          # https://cloud.google.com/compute/docs/disks/local-ssd
           # for more information.
       "imageType": "A String", # The image type to use for this node. Note that for a given image type,
           # the latest version of it will be used.
@@ -2164,6 +2648,7 @@
           #  "containerd-configure-sh"
           #  "enable-oslogin"
           #  "gci-ensure-gke-docker"
+          #  "gci-metrics-enabled"
           #  "gci-update-strategy"
           #  "instance-template"
           #  "kube-env"
@@ -2188,52 +2673,65 @@
         # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
         # notation (e.g. `10.96.0.0/14`). Leave blank to have
         # one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
+    "authenticatorGroupsConfig": { # Configuration for returning group information from authenticators. # Configuration controlling RBAC group membership information.
+      "enabled": True or False, # Whether this cluster should return group membership lookups
+          # during authentication using a group of security groups.
+      "securityGroup": "A String", # The name of the security group-of-groups to be used. Only relevant
+          # if enabled = true.
+    },
     "subnetwork": "A String", # The name of the Google Compute Engine
-        # [subnetwork](/compute/docs/subnetworks) to which the
-        # cluster is connected. On output this shows the subnetwork ID instead of
+        # [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which
+        # the cluster is connected. On output this shows the subnetwork ID instead of
         # the name.
     "resourceLabels": { # The resource labels for the cluster to use to annotate any related
         # Google Compute Engine resources.
       "a_key": "A String",
     },
     "selfLink": "A String", # [Output only] Server-defined URL for the resource.
-    "tpuIpv4CidrBlock": "A String", # [Output only] The IP address range of the Cloud TPUs in this cluster, in
-        # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
-        # notation (e.g. `1.2.3.4/29`).
+    "initialNodeCount": 42, # The number of nodes to create in this cluster. You must ensure that your
+        # Compute Engine &lt;a href="/compute/docs/resource-quotas"&gt;resource quota&lt;/a&gt;
+        # is sufficient for this number of instances. You must also have available
+        # firewall and routes quota.
+        # For requests, this field should only be used in lieu of a
+        # "node_pool" object, since this configuration (along with the
+        # "node_config") will be used to create a "NodePool" object with an
+        # auto-generated name. Do not use this and a node_pool at the same time.
+        #
+        # This field is deprecated, use node_pool.initial_node_count instead.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="legacyAbac">legacyAbac(projectId, zone, clusterId, body, x__xgafv=None)</code>
+    <code class="details" id="legacyAbac">legacyAbac(projectId, zone, clusterId, body=None, x__xgafv=None)</code>
   <pre>Enables or disables the ABAC authorization mechanism on a cluster.
 
 Args:
-  projectId: string, Deprecated. The Google Developers Console [project ID or project
+  projectId: string, Required. Deprecated. The Google Developers Console [project ID or project
 number](https://support.google.com/cloud/answer/6158840).
 This field has been deprecated and replaced by the name field. (required)
-  zone: string, Deprecated. The name of the Google Compute Engine
-[zone](/compute/docs/zones#available) in which the cluster
-resides.
+  zone: string, Required. Deprecated. The name of the Google Compute Engine
+[zone](https://cloud.google.com/compute/docs/zones#available) in which the
+cluster resides. This field has been deprecated and replaced by the name
+field. (required)
+  clusterId: string, Required. Deprecated. The name of the cluster to update.
 This field has been deprecated and replaced by the name field. (required)
-  clusterId: string, Deprecated. The name of the cluster to update.
-This field has been deprecated and replaced by the name field. (required)
-  body: object, The request body. (required)
+  body: object, The request body.
     The object takes the form of:
 
 { # SetLegacyAbacRequest enables or disables the ABAC authorization mechanism for
       # a cluster.
-    "projectId": "A String", # Deprecated. The Google Developers Console [project ID or project
+    "projectId": "A String", # Required. Deprecated. The Google Developers Console [project ID or project
         # number](https://support.google.com/cloud/answer/6158840).
         # This field has been deprecated and replaced by the name field.
-    "clusterId": "A String", # Deprecated. The name of the cluster to update.
+    "clusterId": "A String", # Required. Deprecated. The name of the cluster to update.
         # This field has been deprecated and replaced by the name field.
-    "enabled": True or False, # Whether ABAC authorization will be enabled in the cluster.
+    "enabled": True or False, # Required. Whether ABAC authorization will be enabled in the cluster.
     "name": "A String", # The name (project, location, cluster id) of the cluster to set legacy abac.
         # Specified in the format 'projects/*/locations/*/clusters/*'.
-    "zone": "A String", # Deprecated. The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the cluster
-        # resides.
-        # This field has been deprecated and replaced by the name field.
+    "zone": "A String", # Required. Deprecated. The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # cluster resides. This field has been deprecated and replaced by the name
+        # field.
   }
 
   x__xgafv: string, V1 error format.
@@ -2247,20 +2745,13 @@
     { # This operation resource represents operations that may have happened or are
       # happening on the cluster. All fields are output only.
     "status": "A String", # The current status of the operation.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
     "endTime": "A String", # [Output only] The time the operation completed, in
         # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     "name": "A String", # The server-assigned ID for the operation.
     "zone": "A String", # The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the operation
-        # is taking place.
-        # This field is deprecated, use location instead.
-    "location": "A String", # [Output only] The name of the Google Compute Engine
-        # [zone](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "detail": "A String", # Detailed operation progress, if available.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "clusterConditions": [ # Which conditions caused the current cluster state.
       { # StatusCondition describes why a cluster or a node pool has a certain status
           # (e.g., ERROR or DEGRADED).
@@ -2268,9 +2759,12 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "detail": "A String", # Detailed operation progress, if available.
+    "targetLink": "A String", # Server-defined URL for the target of the operation.
     "operationType": "A String", # The operation type.
-    "progress": { # Information about operation (or operation stage) progress. # [Output only] Progress information for an operation.
+    "progress": { # Information about operation (or operation stage) progress. # Output only. [Output only] Progress information for an operation.
       "status": "A String", # Status of an operation stage.
           # Unset for single-stage operations.
       "metrics": [ # Progress metric bundle, for example:
@@ -2282,8 +2776,7 @@
         { # Progress metric is (string, int|float|string) pair.
           "stringValue": "A String", # For metrics with custom values (ratios, visual progress, etc.).
           "intValue": "A String", # For metrics with integer value.
-          "name": "A String", # Metric name, required.
-              # e.g., "nodes total", "percent done"
+          "name": "A String", # Required. Metric name, e.g., "nodes total", "percent done".
           "doubleValue": 3.14, # For metrics with floating point value.
         },
       ],
@@ -2301,7 +2794,11 @@
       },
     ],
     "selfLink": "A String", # Server-defined URL for the resource.
-    "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "location": "A String", # [Output only] The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # or
+        # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # in which the cluster resides.
   }</pre>
 </div>
 
@@ -2311,13 +2808,13 @@
 zones.
 
 Args:
-  projectId: string, Deprecated. The Google Developers Console [project ID or project
+  projectId: string, Required. Deprecated. The Google Developers Console [project ID or project
 number](https://support.google.com/cloud/answer/6158840).
 This field has been deprecated and replaced by the parent field. (required)
-  zone: string, Deprecated. The name of the Google Compute Engine
-[zone](/compute/docs/zones#available) in which the cluster
-resides, or "-" for all zones.
-This field has been deprecated and replaced by the parent field. (required)
+  zone: string, Required. Deprecated. The name of the Google Compute Engine
+[zone](https://cloud.google.com/compute/docs/zones#available) in which the
+cluster resides, or "-" for all zones. This field has been deprecated and
+replaced by the parent field. (required)
   parent: string, The parent (project and location) where the clusters will be listed.
 Specified in the format 'projects/*/locations/*'.
 Location "-" matches all zones and all regions.
@@ -2339,25 +2836,68 @@
             # mode.
         "maintenancePolicy": { # MaintenancePolicy defines the maintenance policy to be used for the cluster. # Configure the maintenance policy for this cluster.
           "window": { # MaintenanceWindow defines the maintenance window to be used for the cluster. # Specifies the maintenance window in which maintenance may be performed.
+            "recurringWindow": { # Represents an arbitrary window of time that recurs. # RecurringWindow specifies some number of recurring time periods for
+                # maintenance to occur. The time windows may be overlapping. If no
+                # maintenance windows are set, maintenance can occur at any time.
+              "recurrence": "A String", # An RRULE (https://tools.ietf.org/html/rfc5545#section-3.8.5.3) for how
+                  # this window reccurs. They go on for the span of time between the start and
+                  # end time.
+                  #
+                  # For example, to have something repeat every weekday, you'd use:
+                  #   &lt;code&gt;FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR&lt;/code&gt;
+                  # To repeat some window daily (equivalent to the DailyMaintenanceWindow):
+                  #   &lt;code&gt;FREQ=DAILY&lt;/code&gt;
+                  # For the first weekend of every month:
+                  #   &lt;code&gt;FREQ=MONTHLY;BYSETPOS=1;BYDAY=SA,SU&lt;/code&gt;
+                  # This specifies how frequently the window starts. Eg, if you wanted to have
+                  # a 9-5 UTC-4 window every weekday, you'd use something like:
+                  # &lt;code&gt;
+                  #   start time = 2019-01-01T09:00:00-0400
+                  #   end time = 2019-01-01T17:00:00-0400
+                  #   recurrence = FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR
+                  # &lt;/code&gt;
+                  # Windows can span multiple days. Eg, to make the window encompass every
+                  # weekend from midnight Saturday till the last minute of Sunday UTC:
+                  # &lt;code&gt;
+                  #   start time = 2019-01-05T00:00:00Z
+                  #   end time = 2019-01-07T23:59:00Z
+                  #   recurrence = FREQ=WEEKLY;BYDAY=SA
+                  # &lt;/code&gt;
+                  # Note the start and end time's specific dates are largely arbitrary except
+                  # to specify duration of the window and when it first starts.
+                  # The FREQ values of HOURLY, MINUTELY, and SECONDLY are not supported.
+              "window": { # Represents an arbitrary window of time. # The window of the first recurrence.
+                "endTime": "A String", # The time that the window ends. The end time should take place after the
+                    # start time.
+                "startTime": "A String", # The time that the window first starts.
+              },
+            },
             "dailyMaintenanceWindow": { # Time window specified for daily maintenance operations. # DailyMaintenanceWindow specifies a daily maintenance operation window.
               "duration": "A String", # [Output only] Duration of the time window, automatically chosen to be
                   # smallest possible in the given scenario.
               "startTime": "A String", # Time within the maintenance window to start the maintenance operations.
                   # It must be in format "HH:MM", where HH : [00-23] and MM : [00-59] GMT.
             },
+            "maintenanceExclusions": { # Exceptions to maintenance window. Non-emergency maintenance should not
+                # occur in these windows.
+              "a_key": { # Represents an arbitrary window of time.
+                "endTime": "A String", # The time that the window ends. The end time should take place after the
+                    # start time.
+                "startTime": "A String", # The time that the window first starts.
+              },
+            },
           },
+          "resourceVersion": "A String", # A hash identifying the version of this policy, so that updates to fields of
+              # the policy won't accidentally undo intermediate changes (and so that users
+              # of the API unaware of some fields won't accidentally remove other fields).
+              # Make a &lt;code&gt;get()&lt;/code&gt; request to the cluster to get the current
+              # resource version and include it with requests to set the policy.
         },
         "networkPolicy": { # Configuration options for the NetworkPolicy feature. # Configuration options for the NetworkPolicy feature.
             # https://kubernetes.io/docs/concepts/services-networking/networkpolicies/
           "enabled": True or False, # Whether network policy is enabled on the cluster.
           "provider": "A String", # The selected network policy provider.
         },
-        "loggingService": "A String", # The logging service the cluster should use to write logs.
-            # Currently available options:
-            #
-            # * `logging.googleapis.com` - the Google Cloud Logging service.
-            # * `none` - no logs will be exported from the cluster.
-            # * if left as an empty string,`logging.googleapis.com` will be used.
         "masterAuthorizedNetworksConfig": { # Configuration options for the master authorized networks feature. Enabled # The configuration options for master authorized networks feature.
             # master authorized networks will disallow all external traffic to access
             # Kubernetes master through HTTPS except traffic from the given CIDR blocks,
@@ -2366,8 +2906,8 @@
           "cidrBlocks": [ # cidr_blocks define up to 10 external networks that could access
               # Kubernetes master through HTTPS.
             { # CidrBlock contains an optional name and one CIDR block.
-              "displayName": "A String", # display_name is an optional field for users to identify CIDR blocks.
               "cidrBlock": "A String", # cidr_block must be specified in CIDR notation.
+              "displayName": "A String", # display_name is an optional field for users to identify CIDR blocks.
             },
           ],
         },
@@ -2392,14 +2932,29 @@
                 # When enabled, it runs a small pod in the cluster that manages the load
                 # balancers.
           },
+          "kalmConfig": { # Configuration options for the KALM addon. # Configuration for the KALM addon, which manages the lifecycle of k8s
+              # applications.
+            "enabled": True or False, # Whether KALM is enabled for this cluster.
+          },
           "horizontalPodAutoscaling": { # Configuration options for the horizontal pod autoscaling feature, which # Configuration for the horizontal pod autoscaling feature, which
               # increases or decreases the number of replica pods a replication controller
               # has based on the resource usage of the existing pods.
               # increases or decreases the number of replica pods a replication controller
               # has based on the resource usage of the existing pods.
             "disabled": True or False, # Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.
-                # When enabled, it ensures that a Heapster pod is running in the cluster,
-                # which is also used by the Cloud Monitoring service.
+                # When enabled, it ensures that metrics are collected into Stackdriver
+                # Monitoring.
+          },
+          "gcePersistentDiskCsiDriverConfig": { # Configuration for the Compute Engine PD CSI driver. This option can only be # Configuration for the Compute Engine Persistent Disk CSI driver.
+              # enabled at cluster creation time.
+            "enabled": True or False, # Whether the Compute Engine PD CSI driver is enabled for this cluster.
+          },
+          "configConnectorConfig": { # Configuration options for the Config Connector add-on. # Configuration for the ConfigConnector add-on, a Kubernetes
+              # extension to manage hosted GCP services through the Kubernetes API
+            "enabled": True or False, # Whether Cloud Connector is enabled for this cluster.
+          },
+          "dnsCacheConfig": { # Configuration for NodeLocal DNSCache # Configuration for NodeLocalDNS, a dns cache running on cluster nodes
+            "enabled": True or False, # Whether NodeLocal DNSCache is enabled for this cluster.
           },
           "istioConfig": { # Configuration options for Istio addon. # Configuration for Istio, an open platform to connect, manage, and secure
               # microservices.
@@ -2415,26 +2970,148 @@
           },
         },
         "locations": [ # The list of Google Compute Engine
-            # [zones](/compute/docs/zones#available) in which the cluster's nodes
-            # should be located.
+            # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+            # cluster's nodes should be located.
           "A String",
         ],
-        "legacyAbac": { # Configuration for the legacy Attribute Based Access Control authorization # Configuration for the legacy ABAC authorization mode.
-            # mode.
-          "enabled": True or False, # Whether the ABAC authorizer is enabled for this cluster. When enabled,
-              # identities in the system, including service accounts, nodes, and
-              # controllers, will have statically granted permissions beyond those
-              # provided by the RBAC configuration or IAM.
-        },
+        "enableKubernetesAlpha": True or False, # Kubernetes alpha features are enabled on this cluster. This includes alpha
+            # API groups (e.g. v1beta1) and features that may not be production ready in
+            # the kubernetes version of the master and nodes.
+            # The cluster has no SLA for uptime and master/node upgrades are disabled.
+            # Alpha enabled clusters are automatically deleted thirty days after
+            # creation.
         "enableTpu": True or False, # Enable the ability to use Cloud TPUs in this cluster.
+            # This field is deprecated, use tpu_config.enabled instead.
+        "releaseChannel": { # ReleaseChannel indicates which release channel a cluster is # Release channel configuration.
+            # subscribed to. Release channels are arranged in order of risk and
+            # frequency of updates.
+            #
+            # When a cluster is subscribed to a release channel, Google maintains
+            # both the master version and the node version. Node auto-upgrade
+            # defaults to true and cannot be disabled. Updates to version related
+            # fields (e.g. current_master_version) return an error.
+          "channel": "A String", # channel specifies which release channel the cluster is subscribed to.
+        },
         "defaultMaxPodsConstraint": { # Constraints applied to pods. # The default constraint on the maximum number of pods that can be run
             # simultaneously on a node in the node pool of this cluster. Only honored
             # if cluster created with IP Alias support.
           "maxPodsPerNode": "A String", # Constraint enforced on the max num of pods per node.
         },
+        "network": "A String", # The name of the Google Compute Engine
+            # [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks)
+            # to which the cluster is connected. If left unspecified, the `default`
+            # network will be used. On output this shows the network ID instead of the
+            # name.
+        "loggingService": "A String", # The logging service the cluster should use to write logs.
+            # Currently available options:
+            #
+            # * `logging.googleapis.com/kubernetes` - The Cloud Logging
+            # service with a Kubernetes-native resource model
+            # * `logging.googleapis.com` - The legacy Cloud Logging service (no longer
+            #   available as of GKE 1.15).
+            # * `none` - no logs will be exported from the cluster.
+            #
+            # If left as an empty string,`logging.googleapis.com/kubernetes` will be
+            # used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
+        "instanceGroupUrls": [ # Deprecated. Use node_pools.instance_group_urls.
+          "A String",
+        ],
+        "networkConfig": { # NetworkConfig reports the relative names of network &amp; subnetwork. # Configuration for cluster networking.
+          "subnetwork": "A String", # Output only. The relative name of the Google Compute Engine
+              # [subnetwork](https://cloud.google.com/compute/docs/vpc) to which the
+              # cluster is connected. Example:
+              # projects/my-project/regions/us-central1/subnetworks/my-subnet
+          "network": "A String", # Output only. The relative name of the Google Compute Engine
+              # network(https://cloud.google.com/compute/docs/networks-and-firewalls#networks)
+              # to which the cluster is connected. Example:
+              # projects/my-project/global/networks/my-network
+          "enableIntraNodeVisibility": True or False, # Whether Intra-node visibility is enabled for this cluster.
+              # This makes same node pod to pod traffic visible for VPC network.
+        },
+        "privateCluster": True or False, # If this is a private cluster setup. Private clusters are clusters that, by
+            # default have no external IP addresses on the nodes and where nodes and the
+            # master communicate over private IP addresses.
+            # This field is deprecated, use private_cluster_config.enable_private_nodes
+            # instead.
+        "podSecurityPolicyConfig": { # Configuration for the PodSecurityPolicy feature. # Configuration for the PodSecurityPolicy feature.
+          "enabled": True or False, # Enable the PodSecurityPolicy controller for this cluster. If enabled, pods
+              # must be valid under a PodSecurityPolicy to be created.
+        },
+        "shieldedNodes": { # Configuration of Shielded Nodes feature. # Shielded Nodes configuration.
+          "enabled": True or False, # Whether Shielded Nodes features are enabled on all nodes in this cluster.
+        },
+        "location": "A String", # [Output only] The name of the Google Compute Engine
+            # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+            # or
+            # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+            # in which the cluster resides.
+        "workloadIdentityConfig": { # Configuration for the use of Kubernetes Service Accounts in GCP IAM # Configuration for the use of Kubernetes Service Accounts in GCP IAM
+            # policies.
+            # policies.
+          "workloadPool": "A String", # The workload pool to attach all Kubernetes service accounts to.
+          "identityNamespace": "A String", # IAM Identity Namespace to attach all Kubernetes Service Accounts to.
+        },
+        "resourceUsageExportConfig": { # Configuration for exporting cluster resource usages. # Configuration for exporting resource usages. Resource usage export is
+            # disabled when this config unspecified.
+          "bigqueryDestination": { # Parameters for using BigQuery as the destination of resource usage export. # Configuration to use BigQuery as usage export destination.
+            "datasetId": "A String", # The ID of a BigQuery Dataset.
+          },
+          "enableNetworkEgressMetering": True or False, # Whether to enable network egress metering for this cluster. If enabled, a
+              # daemonset will be created in the cluster to meter network egress traffic.
+          "consumptionMeteringConfig": { # Parameters for controlling consumption metering. # Configuration to enable resource consumption metering.
+            "enabled": True or False, # Whether to enable consumption metering for this cluster. If enabled, a
+                # second BigQuery table will be created to hold resource consumption
+                # records.
+          },
+        },
+        "privateClusterConfig": { # Configuration options for private clusters. # Configuration for private cluster.
+          "enablePrivateEndpoint": True or False, # Whether the master's internal IP address is used as the cluster endpoint.
+          "publicEndpoint": "A String", # Output only. The external IP address of this cluster's master endpoint.
+          "masterGlobalAccessConfig": { # Configuration for controlling master global access settings. # Controls master global access settings.
+            "enabled": True or False, # Whenever master is accessible globally or not.
+          },
+          "enablePrivateNodes": True or False, # Whether nodes have internal IP addresses only. If enabled, all nodes are
+              # given only RFC 1918 private addresses and communicate with the master via
+              # private networking.
+          "privateEndpoint": "A String", # Output only. The internal IP address of this cluster's master endpoint.
+          "masterIpv4CidrBlock": "A String", # The IP range in CIDR notation to use for the hosted master network. This
+              # range will be used for assigning internal IP addresses to the master or
+              # set of masters, as well as the ILB VIP. This range must not overlap with
+              # any other ranges in use within the cluster's network.
+          "peeringName": "A String", # Output only. The peering name in the customer VPC used by this cluster.
+        },
+        "conditions": [ # Which conditions caused the current cluster state.
+          { # StatusCondition describes why a cluster or a node pool has a certain status
+              # (e.g., ERROR or DEGRADED).
+            "message": "A String", # Human-friendly representation of the condition
+            "code": "A String", # Machine-friendly representation of the condition
+          },
+        ],
+        "statusMessage": "A String", # [Output only] Additional information about the current status of this
+            # cluster, if available.
+        "servicesIpv4Cidr": "A String", # [Output only] The IP address range of the Kubernetes services in
+            # this cluster, in
+            # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+            # notation (e.g. `1.2.3.4/29`). Service addresses are
+            # typically put in the last `/16` from the container CIDR.
+        "status": "A String", # [Output only] The current status of this cluster.
         "ipAllocationPolicy": { # Configuration for controlling how IPs are allocated in the cluster. # Configuration for cluster IP allocation.
-          "clusterIpv4Cidr": "A String", # This field is deprecated, use cluster_ipv4_cidr_block.
+          "allowRouteOverlap": True or False, # If true, allow allocation of cluster CIDR ranges that overlap with certain
+              # kinds of network routes. By default we do not allow cluster CIDR ranges to
+              # intersect with any user declared routes. With allow_route_overlap == true,
+              # we allow overlapping with CIDR ranges that are larger than the cluster CIDR
+              # range.
+              #
+              # If this field is set to true, then cluster and services CIDRs must be
+              # fully-specified (e.g. `10.96.0.0/14`, but not `/14`), which means:
+              # 1) When `use_ip_aliases` is true, `cluster_ipv4_cidr_block` and
+              #    `services_ipv4_cidr_block` must be fully-specified.
+              # 2) When `use_ip_aliases` is false, `cluster.cluster_ipv4_cidr` muse be
+              #    fully-specified.
           "useIpAliases": True or False, # Whether alias IPs will be used for pod IPs in the cluster.
+              # This is used in conjunction with use_routes. It cannot
+              # be true if use_routes is true. If both use_ip_aliases and use_routes are
+              # false, then the server picks the default IP allocation mode
           "nodeIpv4Cidr": "A String", # This field is deprecated, use node_ipv4_cidr_block.
           "clusterIpv4CidrBlock": "A String", # The IP address range for the cluster pod IPs. If this field is set, then
               # `cluster.cluster_ipv4_cidr` must be left blank.
@@ -2505,18 +3182,12 @@
               # notation (e.g. `10.96.0.0/14`) from the RFC-1918 private networks (e.g.
               # `10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`) to pick a specific range
               # to use.
-          "allowRouteOverlap": True or False, # If true, allow allocation of cluster CIDR ranges that overlap with certain
-              # kinds of network routes. By default we do not allow cluster CIDR ranges to
-              # intersect with any user declared routes. With allow_route_overlap == true,
-              # we allow overlapping with CIDR ranges that are larger than the cluster CIDR
-              # range.
-              #
-              # If this field is set to true, then cluster and services CIDRs must be
-              # fully-specified (e.g. `10.96.0.0/14`, but not `/14`), which means:
-              # 1) When `use_ip_aliases` is true, `cluster_ipv4_cidr_block` and
-              #    `services_ipv4_cidr_block` must be fully-specified.
-              # 2) When `use_ip_aliases` is false, `cluster.cluster_ipv4_cidr` muse be
-              #    fully-specified.
+              # This field is deprecated, use cluster.tpu_config.ipv4_cidr_block instead.
+          "clusterIpv4Cidr": "A String", # This field is deprecated, use cluster_ipv4_cidr_block.
+          "useRoutes": True or False, # Whether routes will be used for pod IPs in the cluster.
+              # This is used in conjunction with use_ip_aliases. It cannot be true if
+              # use_ip_aliases is true. If both use_ip_aliases and use_routes are false,
+              # then the server picks the default IP allocation mode
           "subnetworkName": "A String", # A custom subnetwork name to be used if `create_subnetwork` is true.  If
               # this field is empty, then an automatic name will be chosen for the new
               # subnetwork.
@@ -2529,92 +3200,10 @@
               # create_subnetwork is false.
           "servicesIpv4Cidr": "A String", # This field is deprecated, use services_ipv4_cidr_block.
         },
-        "network": "A String", # The name of the Google Compute Engine
-            # [network](/compute/docs/networks-and-firewalls#networks) to which the
-            # cluster is connected. If left unspecified, the `default` network
-            # will be used. On output this shows the network ID instead of
-            # the name.
-        "zone": "A String", # [Output only] The name of the Google Compute Engine
-            # [zone](/compute/docs/zones#available) in which the cluster
-            # resides.
-            # This field is deprecated, use location instead.
-        "instanceGroupUrls": [ # Deprecated. Use node_pools.instance_group_urls.
-          "A String",
-        ],
-        "networkConfig": { # NetworkConfig reports the relative names of network & subnetwork. # Configuration for cluster networking.
-          "subnetwork": "A String", # Output only. The relative name of the Google Compute Engine
-              # [subnetwork](/compute/docs/vpc) to which the cluster is connected.
-              # Example: projects/my-project/regions/us-central1/subnetworks/my-subnet
-          "network": "A String", # Output only. The relative name of the Google Compute Engine
-              # network(/compute/docs/networks-and-firewalls#networks) to which
-              # the cluster is connected.
-              # Example: projects/my-project/global/networks/my-network
-          "enableIntraNodeVisibility": True or False, # Whether Intra-node visibility is enabled for this cluster.
-              # This makes same node pod to pod traffic visible for VPC network.
-        },
-        "privateCluster": True or False, # If this is a private cluster setup. Private clusters are clusters that, by
-            # default have no external IP addresses on the nodes and where nodes and the
-            # master communicate over private IP addresses.
-            # This field is deprecated, use private_cluster_config.enable_private_nodes
-            # instead.
-        "podSecurityPolicyConfig": { # Configuration for the PodSecurityPolicy feature. # Configuration for the PodSecurityPolicy feature.
-          "enabled": True or False, # Enable the PodSecurityPolicy controller for this cluster. If enabled, pods
-              # must be valid under a PodSecurityPolicy to be created.
-        },
-        "location": "A String", # [Output only] The name of the Google Compute Engine
-            # [zone](/compute/docs/regions-zones/regions-zones#available) or
-            # [region](/compute/docs/regions-zones/regions-zones#available) in which
-            # the cluster resides.
-        "workloadIdentityConfig": { # Configuration for the use of Kubernetes Service Accounts in GCP IAM # Configuration for the use of Kubernetes Service Accounts in GCP IAM
-            # policies.
-            # policies.
-          "identityNamespace": "A String", # IAM Identity Namespace to attach all Kubernetes Service Accounts to.
-        },
-        "resourceUsageExportConfig": { # Configuration for exporting cluster resource usages. # Configuration for exporting resource usages. Resource usage export is
-            # disabled when this config unspecified.
-          "bigqueryDestination": { # Parameters for using BigQuery as the destination of resource usage export. # Configuration to use BigQuery as usage export destination.
-            "datasetId": "A String", # The ID of a BigQuery Dataset.
-          },
-          "enableNetworkEgressMetering": True or False, # Whether to enable network egress metering for this cluster. If enabled, a
-              # daemonset will be created in the cluster to meter network egress traffic.
-          "consumptionMeteringConfig": { # Parameters for controlling consumption metering. # Configuration to enable resource consumption metering.
-            "enabled": True or False, # Whether to enable consumption metering for this cluster. If enabled, a
-                # second BigQuery table will be created to hold resource consumption
-                # records.
-          },
-        },
-        "masterIpv4CidrBlock": "A String", # The IP prefix in CIDR notation to use for the hosted master network.
-            # This prefix will be used for assigning private IP addresses to the
-            # master or set of masters, as well as the ILB VIP.
-            # This field is deprecated, use
-            # private_cluster_config.master_ipv4_cidr_block instead.
-        "conditions": [ # Which conditions caused the current cluster state.
-          { # StatusCondition describes why a cluster or a node pool has a certain status
-              # (e.g., ERROR or DEGRADED).
-            "message": "A String", # Human-friendly representation of the condition
-            "code": "A String", # Machine-friendly representation of the condition
-          },
-        ],
-        "servicesIpv4Cidr": "A String", # [Output only] The IP address range of the Kubernetes services in
-            # this cluster, in
-            # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
-            # notation (e.g. `1.2.3.4/29`). Service addresses are
-            # typically put in the last `/16` from the container CIDR.
-        "statusMessage": "A String", # [Output only] Additional information about the current status of this
-            # cluster, if available.
-        "tierSettings": { # Cluster tier settings. # Cluster tier settings.
-          "tier": "A String", # Cluster tier.
-        },
-        "status": "A String", # [Output only] The current status of this cluster.
         "currentMasterVersion": "A String", # [Output only] The current software version of the master endpoint.
         "description": "A String", # An optional description of this cluster.
-        "databaseEncryption": { # Configuration of etcd encryption. # Configuration of etcd encryption.
-          "state": "A String", # Denotes the state of etcd encryption.
-          "keyName": "A String", # Name of CloudKMS key to use for the encryption of secrets in etcd.
-              # Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key
-        },
         "currentNodeVersion": "A String", # [Output only] Deprecated, use
-            # [NodePool.version](/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters.nodePools)
+            # [NodePool.version](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters.nodePools)
             # instead. The current version of the node software components.
             # If they are currently at multiple versions because they're in the process
             # of being upgraded, this reflects the minimum version of all nodes.
@@ -2630,12 +3219,62 @@
           "autoprovisioningNodePoolDefaults": { # AutoprovisioningNodePoolDefaults contains defaults for a node pool created # AutoprovisioningNodePoolDefaults contains defaults for a node pool
               # created by NAP.
               # by NAP.
+            "minCpuPlatform": "A String", # Minimum CPU platform to be used for NAP created node pools.
+                # The instance may be scheduled on the specified or newer CPU platform.
+                # Applicable values are the friendly names of CPU platforms, such as
+                # &lt;code&gt;minCpuPlatform: &amp;quot;Intel Haswell&amp;quot;&lt;/code&gt; or
+                # &lt;code&gt;minCpuPlatform: &amp;quot;Intel Sandy Bridge&amp;quot;&lt;/code&gt;. For more
+                # information, read [how to specify min CPU
+                # platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
+                # To unset the min cpu platform field pass "automatic" as field value.
+            "management": { # NodeManagement defines the set of node management services turned on for the # Specifies the node management options for NAP created node-pools.
+                # node pool.
+              "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how # Specifies the Auto Upgrade knobs for the node pool.
+                  # the Auto Upgrades will proceed.
+                "description": "A String", # [Output only] This field is set when upgrades are about to commence
+                    # with the description of the upgrade.
+                "autoUpgradeStartTime": "A String", # [Output only] This field is set when upgrades are about to commence
+                    # with the approximate start time for the upgrades, in
+                    # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+              },
+              "autoRepair": True or False, # Whether the nodes will be automatically repaired.
+              "autoUpgrade": True or False, # Whether the nodes will be automatically upgraded.
+            },
             "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If
                 # service_account is specified, scopes should be empty.
             "oauthScopes": [ # Scopes that are used by NAP when creating node pools. If oauth_scopes are
                 # specified, service_account should be empty.
               "A String",
             ],
+            "upgradeSettings": { # These upgrade settings control the level of parallelism and the level of # Specifies the upgrade settings for NAP created node pools
+                # disruption caused by an upgrade.
+                #
+                # maxUnavailable controls the number of nodes that can be simultaneously
+                # unavailable.
+                #
+                # maxSurge controls the number of additional nodes that can be added to the
+                # node pool temporarily for the time of the upgrade to increase the number of
+                # available nodes.
+                #
+                # (maxUnavailable + maxSurge) determines the level of parallelism (how many
+                # nodes are being upgraded at the same time).
+                #
+                # Note: upgrades inevitably introduce some disruption since workloads need to
+                # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
+                # this holds true. (Disruption stays within the limits of
+                # PodDisruptionBudget, if it is configured.)
+                #
+                # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
+                # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
+                # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
+                # down 3 old (not yet upgraded) nodes at the same time. This ensures that
+                # there are always at least 4 nodes available.
+              "maxSurge": 42, # The maximum number of nodes that can be created beyond the current size
+                  # of the node pool during the upgrade process.
+              "maxUnavailable": 42, # The maximum number of nodes that can be simultaneously unavailable during
+                  # the upgrade process. A node is considered available if its status is
+                  # Ready.
+            },
           },
           "resourceLimits": [ # Contains global constraints regarding minimum and maximum
               # amount of resources in the cluster.
@@ -2646,10 +3285,12 @@
               "maximum": "A String", # Maximum amount of the resource in the cluster.
             },
           ],
-          "autoprovisioningLocations": [ # The list of Google Compute Engine [zones](/compute/docs/zones#available)
-              # in which the NodePool's nodes can be created by NAP.
+          "autoprovisioningLocations": [ # The list of Google Compute Engine
+              # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+              # NodePool's nodes can be created by NAP.
             "A String",
           ],
+          "autoscalingProfile": "A String", # Defines autoscaling behaviour.
           "enableNodeAutoprovisioning": True or False, # Enables automatic node pool creation and deletion.
         },
         "masterAuth": { # The authentication information for accessing the master endpoint. # The authentication information for accessing the master endpoint.
@@ -2666,29 +3307,30 @@
               # to the cluster endpoint.
           "clientCertificate": "A String", # [Output only] Base64-encoded public certificate used by clients to
               # authenticate to the cluster endpoint.
+          "clusterCaCertificate": "A String",
+          "password": "A String", # The password to use for HTTP basic authentication to the master endpoint.
+              # Because the master endpoint is open to the Internet, you should create a
+              # strong password.  If a password is provided for cluster creation, username
+              # must be non-empty.
           "clientCertificateConfig": { # Configuration for client certificates on the cluster. # Configuration for client certificate authentication on the cluster. For
               # clusters before v1.12, if no configuration is specified, a client
               # certificate is issued.
             "issueClientCertificate": True or False, # Issue a client certificate.
           },
-          "password": "A String", # The password to use for HTTP basic authentication to the master endpoint.
-              # Because the master endpoint is open to the Internet, you should create a
-              # strong password.  If a password is provided for cluster creation, username
-              # must be non-empty.
-          "clusterCaCertificate": "A String",
         },
         "expireTime": "A String", # [Output only] The time the cluster will be automatically
             # deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-        "initialNodeCount": 42, # The number of nodes to create in this cluster. You must ensure that your
-            # Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a>
-            # is sufficient for this number of instances. You must also have available
-            # firewall and routes quota.
-            # For requests, this field should only be used in lieu of a
-            # "node_pool" object, since this configuration (along with the
-            # "node_config") will be used to create a "NodePool" object with an
-            # auto-generated name. Do not use this and a node_pool at the same time.
-            #
-            # This field is deprecated, use node_pool.initial_node_count instead.
+        "masterIpv4CidrBlock": "A String", # The IP prefix in CIDR notation to use for the hosted master network.
+            # This prefix will be used for assigning private IP addresses to the
+            # master or set of masters, as well as the ILB VIP.
+            # This field is deprecated, use
+            # private_cluster_config.master_ipv4_cidr_block instead.
+        "clusterTelemetry": { # Telemetry integration for the cluster. # Telemetry integration for the cluster.
+          "type": "A String", # Type of the integration.
+        },
+        "tpuIpv4CidrBlock": "A String", # [Output only] The IP address range of the Cloud TPUs in this cluster, in
+            # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
+            # notation (e.g. `1.2.3.4/29`).
         "nodePools": [ # The node pools associated with this cluster.
             # This field should not be set if "node_config" or "initial_node_count" are
             # specified.
@@ -2699,11 +3341,9 @@
               # during pod scheduling. They may also be resized up or down, to accommodate
               # the workload.
             "status": "A String", # [Output only] The status of the nodes in this pool instance.
-            "statusMessage": "A String", # [Output only] Additional information about the current status of this
-                # node pool instance, if available.
+            "selfLink": "A String", # [Output only] Server-defined URL for the resource.
             "management": { # NodeManagement defines the set of node management services turned on for the # NodeManagement configuration for this NodePool.
                 # node pool.
-              "autoRepair": True or False, # Whether the nodes will be automatically repaired.
               "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how # Specifies the Auto Upgrade knobs for the node pool.
                   # the Auto Upgrades will proceed.
                 "description": "A String", # [Output only] This field is set when upgrades are about to commence
@@ -2712,26 +3352,30 @@
                     # with the approximate start time for the upgrades, in
                     # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
               },
+              "autoRepair": True or False, # Whether the nodes will be automatically repaired.
               "autoUpgrade": True or False, # Whether the nodes will be automatically upgraded.
             },
             "name": "A String", # The name of the node pool.
-            "instanceGroupUrls": [ # [Output only] The resource URLs of the [managed instance
-                # groups](/compute/docs/instance-groups/creating-groups-of-managed-instances)
-                # associated with this node pool.
-              "A String",
+            "conditions": [ # Which conditions caused the current node pool state.
+              { # StatusCondition describes why a cluster or a node pool has a certain status
+                  # (e.g., ERROR or DEGRADED).
+                "message": "A String", # Human-friendly representation of the condition
+                "code": "A String", # Machine-friendly representation of the condition
+              },
             ],
             "autoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to # Autoscaler configuration for this NodePool. Autoscaler is enabled
                 # only if a valid configuration is present.
                 # adjust the size of the node pool to the current cluster usage.
-              "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be >= 1 and <=
+              "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be &gt;= 1 and &lt;=
                   # max_node_count.
               "autoprovisioned": True or False, # Can this node pool be deleted automatically.
               "enabled": True or False, # Is autoscaling enabled for this node pool.
-              "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be >= min_node_count. There
+              "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be &gt;= min_node_count. There
                   # has to enough quota to scale up the cluster.
             },
-            "locations": [ # The list of Google Compute Engine [zones](/compute/docs/zones#available)
-                # in which the NodePool's nodes should be located.
+            "locations": [ # The list of Google Compute Engine
+                # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+                # NodePool's nodes should be located.
               "A String",
             ],
             "maxPodsConstraint": { # Constraints applied to pods. # The constraint on the maximum number of pods that can be run
@@ -2739,17 +3383,66 @@
               "maxPodsPerNode": "A String", # Constraint enforced on the max num of pods per node.
             },
             "version": "A String", # The version of the Kubernetes of this node.
+            "upgradeSettings": { # These upgrade settings control the level of parallelism and the level of # Upgrade settings control disruption and speed of the upgrade.
+                # disruption caused by an upgrade.
+                #
+                # maxUnavailable controls the number of nodes that can be simultaneously
+                # unavailable.
+                #
+                # maxSurge controls the number of additional nodes that can be added to the
+                # node pool temporarily for the time of the upgrade to increase the number of
+                # available nodes.
+                #
+                # (maxUnavailable + maxSurge) determines the level of parallelism (how many
+                # nodes are being upgraded at the same time).
+                #
+                # Note: upgrades inevitably introduce some disruption since workloads need to
+                # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
+                # this holds true. (Disruption stays within the limits of
+                # PodDisruptionBudget, if it is configured.)
+                #
+                # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
+                # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
+                # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
+                # down 3 old (not yet upgraded) nodes at the same time. This ensures that
+                # there are always at least 4 nodes available.
+              "maxSurge": 42, # The maximum number of nodes that can be created beyond the current size
+                  # of the node pool during the upgrade process.
+              "maxUnavailable": 42, # The maximum number of nodes that can be simultaneously unavailable during
+                  # the upgrade process. A node is considered available if its status is
+                  # Ready.
+            },
             "initialNodeCount": 42, # The initial node count for the pool. You must ensure that your
-                # Compute Engine <a href="/compute/docs/resource-quotas">resource quota</a>
+                # Compute Engine &lt;a href="/compute/docs/resource-quotas"&gt;resource quota&lt;/a&gt;
                 # is sufficient for this number of instances. You must also have available
                 # firewall and routes quota.
             "podIpv4CidrSize": 42, # [Output only] The pod CIDR block size per node in this node pool.
+            "instanceGroupUrls": [ # [Output only] The resource URLs of the [managed instance
+                # groups](https://cloud.google.com/compute/docs/instance-groups/creating-groups-of-managed-instances)
+                # associated with this node pool.
+              "A String",
+            ],
             "config": { # Parameters that describe the nodes in a cluster. # The node configuration of the pool.
+              "reservationAffinity": { # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # The optional reservation affinity. Setting this field will apply
+                  # the specified [Zonal Compute
+                  # Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources)
+                  # to this node pool.
+                  # is the configuration of desired reservation which instances could take
+                  # capacity from.
+                "values": [ # Corresponds to the label value(s) of reservation resource(s).
+                  "A String",
+                ],
+                "consumeReservationType": "A String", # Corresponds to the type of reservation consumption.
+                "key": "A String", # Corresponds to the label key of a reservation resource. To target a
+                    # SPECIFIC_RESERVATION by name, specify "googleapis.com/reservation-name" as
+                    # the key and specify the name of your reservation as its value.
+              },
               "sandboxConfig": { # SandboxConfig contains configurations of the sandbox to use for the node. # Sandbox configuration for this node.
+                "type": "A String", # Type of the sandbox to use for the node.
                 "sandboxType": "A String", # Type of the sandbox to use for the node (e.g. 'gvisor')
               },
               "machineType": "A String", # The name of a Google Compute Engine [machine
-                  # type](/compute/docs/machine-types) (e.g.
+                  # type](https://cloud.google.com/compute/docs/machine-types) (e.g.
                   # `n1-standard-1`).
                   #
                   # If unspecified, the default machine type is
@@ -2789,8 +3482,9 @@
                   # https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
                 "a_key": "A String",
               },
-              "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If
-                  # no Service Account is specified, the "default" service account is used.
+              "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs.
+                  # Specify the email address of the Service Account; otherwise, if no Service
+                  # Account is specified, the "default" service account is used.
               "oauthScopes": [ # The set of Google API scopes to be made available on all of the
                   # node VMs under the "default" service account.
                   #
@@ -2801,7 +3495,8 @@
                   # persistent storage on your nodes.
                   # * `https://www.googleapis.com/auth/devstorage.read_only` is required for
                   # communicating with **gcr.io**
-                  # (the [Google Container Registry](/container-registry/)).
+                  # (the [Google Container
+                  # Registry](https://cloud.google.com/container-registry/)).
                   #
                   # If unspecified, no scopes are added, unless Cloud Logging or Cloud
                   # Monitoring are enabled, in which case their required scopes will be added.
@@ -2816,13 +3511,15 @@
                     #
                     # For more information, including usage and the valid values, see:
                     # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
+                  "value": "A String", # Value for taint.
                   "key": "A String", # Key for taint.
                   "effect": "A String", # Effect for taint.
-                  "value": "A String", # Value for taint.
                 },
               ],
               "workloadMetadataConfig": { # WorkloadMetadataConfig defines the metadata configuration to expose to # The workload metadata configuration for this node.
                   # workloads on the node pool.
+                "mode": "A String", # Mode is the configuration for how to expose metadata to workloads running
+                    # on the node pool.
                 "nodeMetadata": "A String", # NodeMetadata is the configuration for how to expose metadata to the
                     # workloads running on the node.
               },
@@ -2836,21 +3533,28 @@
                 { # AcceleratorConfig represents a Hardware Accelerator request.
                   "acceleratorCount": "A String", # The number of the accelerator cards exposed to an instance.
                   "acceleratorType": "A String", # The accelerator type resource name. List of supported accelerators
-                      # [here](/compute/docs/gpus/#Introduction)
+                      # [here](https://cloud.google.com/compute/docs/gpus)
                 },
               ],
               "minCpuPlatform": "A String", # Minimum CPU platform to be used by this instance. The instance may be
                   # scheduled on the specified or newer CPU platform. Applicable values are the
                   # friendly names of CPU platforms, such as
-                  # <code>minCpuPlatform: &quot;Intel Haswell&quot;</code> or
-                  # <code>minCpuPlatform: &quot;Intel Sandy Bridge&quot;</code>. For more
+                  # &lt;code&gt;minCpuPlatform: &amp;quot;Intel Haswell&amp;quot;&lt;/code&gt; or
+                  # &lt;code&gt;minCpuPlatform: &amp;quot;Intel Sandy Bridge&amp;quot;&lt;/code&gt;. For more
                   # information, read [how to specify min CPU
                   # platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
+              "bootDiskKmsKey": "A String", #
+                  # The Customer Managed Encryption Key used to encrypt the boot disk attached
+                  # to each node in the node pool. This should be of the form
+                  # projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME].
+                  # For more information about protecting resources with Cloud KMS Keys please
+                  # see:
+                  # https://cloud.google.com/compute/docs/disks/customer-managed-encryption
               "localSsdCount": 42, # The number of local SSD disks to be attached to the node.
                   #
-                  # The limit for this value is dependant upon the maximum number of
+                  # The limit for this value is dependent upon the maximum number of
                   # disks available on a machine per zone. See:
-                  # https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits
+                  # https://cloud.google.com/compute/docs/disks/local-ssd
                   # for more information.
               "imageType": "A String", # The image type to use for this node. Note that for a given image type,
                   # the latest version of it will be used.
@@ -2867,6 +3571,7 @@
                   #  "containerd-configure-sh"
                   #  "enable-oslogin"
                   #  "gci-ensure-gke-docker"
+                  #  "gci-metrics-enabled"
                   #  "gci-update-strategy"
                   #  "instance-template"
                   #  "kube-env"
@@ -2887,42 +3592,41 @@
                 "a_key": "A String",
               },
             },
-            "conditions": [ # Which conditions caused the current node pool state.
-              { # StatusCondition describes why a cluster or a node pool has a certain status
-                  # (e.g., ERROR or DEGRADED).
-                "message": "A String", # Human-friendly representation of the condition
-                "code": "A String", # Machine-friendly representation of the condition
-              },
-            ],
-            "selfLink": "A String", # [Output only] Server-defined URL for the resource.
+            "statusMessage": "A String", # [Output only] Additional information about the current status of this
+                # node pool instance, if available.
           },
         ],
         "monitoringService": "A String", # The monitoring service the cluster should use to write metrics.
             # Currently available options:
             #
-            # * `monitoring.googleapis.com` - the Google Cloud Monitoring service.
-            # * `none` - no metrics will be exported from the cluster.
-            # * if left as an empty string, `monitoring.googleapis.com` will be used.
+            # * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
+            # service with a Kubernetes-native resource model
+            # * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
+            #   longer available as of GKE 1.15).
+            # * `none` - No metrics will be exported from the cluster.
+            #
+            # If left as an empty string,`monitoring.googleapis.com/kubernetes` will be
+            # used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
         "createTime": "A String", # [Output only] The time the cluster was created, in
             # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-        "authenticatorGroupsConfig": { # Configuration for returning group information from authenticators. # Configuration controlling RBAC group membership information.
-          "enabled": True or False, # Whether this cluster should return group membership lookups
-              # during authentication using a group of security groups.
-          "securityGroup": "A String", # The name of the security group-of-groups to be used. Only relevant
-              # if enabled = true.
+        "databaseEncryption": { # Configuration of etcd encryption. # Configuration of etcd encryption.
+          "state": "A String", # Denotes the state of etcd encryption.
+          "keyName": "A String", # Name of CloudKMS key to use for the encryption of secrets in etcd.
+              # Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key
         },
-        "privateClusterConfig": { # Configuration options for private clusters. # Configuration for private cluster.
-          "enablePrivateEndpoint": True or False, # Whether the master's internal IP address is used as the cluster endpoint.
-          "publicEndpoint": "A String", # Output only. The external IP address of this cluster's master endpoint.
-          "enablePrivateNodes": True or False, # Whether nodes have internal IP addresses only. If enabled, all nodes are
-              # given only RFC 1918 private addresses and communicate with the master via
-              # private networking.
-          "privateEndpoint": "A String", # Output only. The internal IP address of this cluster's master endpoint.
-          "masterIpv4CidrBlock": "A String", # The IP range in CIDR notation to use for the hosted master network. This
-              # range will be used for assigning internal IP addresses to the master or
-              # set of masters, as well as the ILB VIP. This range must not overlap with
-              # any other ranges in use within the cluster's network.
-          "enablePeeringRouteSharing": True or False, # Whether to enable route sharing over the network peering.
+        "name": "A String", # The name of this cluster. The name must be unique within this project
+            # and location (e.g. zone or region), and can be up to 40 characters with
+            # the following restrictions:
+            #
+            # * Lowercase letters, numbers, and hyphens only.
+            # * Must start with a letter.
+            # * Must end with a number or a letter.
+        "legacyAbac": { # Configuration for the legacy Attribute Based Access Control authorization # Configuration for the legacy ABAC authorization mode.
+            # mode.
+          "enabled": True or False, # Whether the ABAC authorizer is enabled for this cluster. When enabled,
+              # identities in the system, including service accounts, nodes, and
+              # controllers, will have statically granted permissions beyond those
+              # provided by the RBAC configuration or IAM.
         },
         "endpoint": "A String", # [Output only] The IP address of this cluster's master endpoint.
             # The endpoint can be accessed from the internet at
@@ -2932,23 +3636,19 @@
             # password information.
         "currentNodeCount": 42, # [Output only]  The number of nodes currently in the cluster. Deprecated.
             # Call Kubernetes API directly to retrieve node information.
-        "name": "A String", # The name of this cluster. The name must be unique within this project
-            # and zone, and can be up to 40 characters with the following restrictions:
-            #
-            # * Lowercase letters, numbers, and hyphens only.
-            # * Must start with a letter.
-            # * Must end with a number or a letter.
+        "zone": "A String", # [Output only] The name of the Google Compute Engine
+            # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+            # cluster resides. This field is deprecated, use location instead.
         "verticalPodAutoscaling": { # VerticalPodAutoscaling contains global, per-cluster information # Cluster-level Vertical Pod Autoscaling configuration.
             # required by Vertical Pod Autoscaler to automatically adjust
             # the resources of pods controlled by it.
           "enabled": True or False, # Enables vertical pod autoscaling.
         },
-        "enableKubernetesAlpha": True or False, # Kubernetes alpha features are enabled on this cluster. This includes alpha
-            # API groups (e.g. v1beta1) and features that may not be production ready in
-            # the kubernetes version of the master and nodes.
-            # The cluster has no SLA for uptime and master/node upgrades are disabled.
-            # Alpha enabled clusters are automatically deleted thirty days after
-            # creation.
+        "tpuConfig": { # Configuration for Cloud TPU. # Configuration for Cloud TPU support;
+          "useServiceNetworking": True or False, # Whether to use service networking for Cloud TPU or not.
+          "ipv4CidrBlock": "A String", # IPv4 CIDR block reserved for Cloud TPU in the VPC.
+          "enabled": True or False, # Whether Cloud TPU integration is enabled or not.
+        },
         "initialClusterVersion": "A String", # The initial Kubernetes version for this cluster.  Valid versions are those
             # found in validMasterVersions returned by getServerConfig.  The version can
             # be upgraded over time; such upgrades are reflected in
@@ -2973,11 +3673,26 @@
             #
             # If unspecified, the defaults are used.
             # This field is deprecated, use node_pool.config instead.
+          "reservationAffinity": { # [ReservationAffinity](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources) # The optional reservation affinity. Setting this field will apply
+              # the specified [Zonal Compute
+              # Reservation](https://cloud.google.com/compute/docs/instances/reserving-zonal-resources)
+              # to this node pool.
+              # is the configuration of desired reservation which instances could take
+              # capacity from.
+            "values": [ # Corresponds to the label value(s) of reservation resource(s).
+              "A String",
+            ],
+            "consumeReservationType": "A String", # Corresponds to the type of reservation consumption.
+            "key": "A String", # Corresponds to the label key of a reservation resource. To target a
+                # SPECIFIC_RESERVATION by name, specify "googleapis.com/reservation-name" as
+                # the key and specify the name of your reservation as its value.
+          },
           "sandboxConfig": { # SandboxConfig contains configurations of the sandbox to use for the node. # Sandbox configuration for this node.
+            "type": "A String", # Type of the sandbox to use for the node.
             "sandboxType": "A String", # Type of the sandbox to use for the node (e.g. 'gvisor')
           },
           "machineType": "A String", # The name of a Google Compute Engine [machine
-              # type](/compute/docs/machine-types) (e.g.
+              # type](https://cloud.google.com/compute/docs/machine-types) (e.g.
               # `n1-standard-1`).
               #
               # If unspecified, the default machine type is
@@ -3017,8 +3732,9 @@
               # https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/
             "a_key": "A String",
           },
-          "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If
-              # no Service Account is specified, the "default" service account is used.
+          "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs.
+              # Specify the email address of the Service Account; otherwise, if no Service
+              # Account is specified, the "default" service account is used.
           "oauthScopes": [ # The set of Google API scopes to be made available on all of the
               # node VMs under the "default" service account.
               #
@@ -3029,7 +3745,8 @@
               # persistent storage on your nodes.
               # * `https://www.googleapis.com/auth/devstorage.read_only` is required for
               # communicating with **gcr.io**
-              # (the [Google Container Registry](/container-registry/)).
+              # (the [Google Container
+              # Registry](https://cloud.google.com/container-registry/)).
               #
               # If unspecified, no scopes are added, unless Cloud Logging or Cloud
               # Monitoring are enabled, in which case their required scopes will be added.
@@ -3044,13 +3761,15 @@
                 #
                 # For more information, including usage and the valid values, see:
                 # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
+              "value": "A String", # Value for taint.
               "key": "A String", # Key for taint.
               "effect": "A String", # Effect for taint.
-              "value": "A String", # Value for taint.
             },
           ],
           "workloadMetadataConfig": { # WorkloadMetadataConfig defines the metadata configuration to expose to # The workload metadata configuration for this node.
               # workloads on the node pool.
+            "mode": "A String", # Mode is the configuration for how to expose metadata to workloads running
+                # on the node pool.
             "nodeMetadata": "A String", # NodeMetadata is the configuration for how to expose metadata to the
                 # workloads running on the node.
           },
@@ -3064,21 +3783,28 @@
             { # AcceleratorConfig represents a Hardware Accelerator request.
               "acceleratorCount": "A String", # The number of the accelerator cards exposed to an instance.
               "acceleratorType": "A String", # The accelerator type resource name. List of supported accelerators
-                  # [here](/compute/docs/gpus/#Introduction)
+                  # [here](https://cloud.google.com/compute/docs/gpus)
             },
           ],
           "minCpuPlatform": "A String", # Minimum CPU platform to be used by this instance. The instance may be
               # scheduled on the specified or newer CPU platform. Applicable values are the
               # friendly names of CPU platforms, such as
-              # <code>minCpuPlatform: &quot;Intel Haswell&quot;</code> or
-              # <code>minCpuPlatform: &quot;Intel Sandy Bridge&quot;</code>. For more
+              # &lt;code&gt;minCpuPlatform: &amp;quot;Intel Haswell&amp;quot;&lt;/code&gt; or
+              # &lt;code&gt;minCpuPlatform: &amp;quot;Intel Sandy Bridge&amp;quot;&lt;/code&gt;. For more
               # information, read [how to specify min CPU
               # platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
+          "bootDiskKmsKey": "A String", #
+              # The Customer Managed Encryption Key used to encrypt the boot disk attached
+              # to each node in the node pool. This should be of the form
+              # projects/[KEY_PROJECT_ID]/locations/[LOCATION]/keyRings/[RING_NAME]/cryptoKeys/[KEY_NAME].
+              # For more information about protecting resources with Cloud KMS Keys please
+              # see:
+              # https://cloud.google.com/compute/docs/disks/customer-managed-encryption
           "localSsdCount": 42, # The number of local SSD disks to be attached to the node.
               #
-              # The limit for this value is dependant upon the maximum number of
+              # The limit for this value is dependent upon the maximum number of
               # disks available on a machine per zone. See:
-              # https://cloud.google.com/compute/docs/disks/local-ssd#local_ssd_limits
+              # https://cloud.google.com/compute/docs/disks/local-ssd
               # for more information.
           "imageType": "A String", # The image type to use for this node. Note that for a given image type,
               # the latest version of it will be used.
@@ -3095,6 +3821,7 @@
               #  "containerd-configure-sh"
               #  "enable-oslogin"
               #  "gci-ensure-gke-docker"
+              #  "gci-metrics-enabled"
               #  "gci-update-strategy"
               #  "instance-template"
               #  "kube-env"
@@ -3119,18 +3846,31 @@
             # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
             # notation (e.g. `10.96.0.0/14`). Leave blank to have
             # one automatically chosen or specify a `/14` block in `10.0.0.0/8`.
+        "authenticatorGroupsConfig": { # Configuration for returning group information from authenticators. # Configuration controlling RBAC group membership information.
+          "enabled": True or False, # Whether this cluster should return group membership lookups
+              # during authentication using a group of security groups.
+          "securityGroup": "A String", # The name of the security group-of-groups to be used. Only relevant
+              # if enabled = true.
+        },
         "subnetwork": "A String", # The name of the Google Compute Engine
-            # [subnetwork](/compute/docs/subnetworks) to which the
-            # cluster is connected. On output this shows the subnetwork ID instead of
+            # [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which
+            # the cluster is connected. On output this shows the subnetwork ID instead of
             # the name.
         "resourceLabels": { # The resource labels for the cluster to use to annotate any related
             # Google Compute Engine resources.
           "a_key": "A String",
         },
         "selfLink": "A String", # [Output only] Server-defined URL for the resource.
-        "tpuIpv4CidrBlock": "A String", # [Output only] The IP address range of the Cloud TPUs in this cluster, in
-            # [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)
-            # notation (e.g. `1.2.3.4/29`).
+        "initialNodeCount": 42, # The number of nodes to create in this cluster. You must ensure that your
+            # Compute Engine &lt;a href="/compute/docs/resource-quotas"&gt;resource quota&lt;/a&gt;
+            # is sufficient for this number of instances. You must also have available
+            # firewall and routes quota.
+            # For requests, this field should only be used in lieu of a
+            # "node_pool" object, since this configuration (along with the
+            # "node_config") will be used to create a "NodePool" object with an
+            # auto-generated name. Do not use this and a node_pool at the same time.
+            #
+            # This field is deprecated, use node_pool.initial_node_count instead.
       },
     ],
     "missingZones": [ # If any zones are listed here, the list of clusters returned
@@ -3141,43 +3881,46 @@
 </div>
 
 <div class="method">
-    <code class="details" id="locations">locations(projectId, zone, clusterId, body, x__xgafv=None)</code>
+    <code class="details" id="locations">locations(projectId, zone, clusterId, body=None, x__xgafv=None)</code>
   <pre>Sets the locations for a specific cluster.
+Deprecated. Use
+[projects.locations.clusters.update](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1beta1/projects.locations.clusters/update)
+instead.
 
 Args:
-  projectId: string, Deprecated. The Google Developers Console [project ID or project
+  projectId: string, Required. Deprecated. The Google Developers Console [project ID or project
 number](https://support.google.com/cloud/answer/6158840).
 This field has been deprecated and replaced by the name field. (required)
-  zone: string, Deprecated. The name of the Google Compute Engine
-[zone](/compute/docs/zones#available) in which the cluster
-resides.
+  zone: string, Required. Deprecated. The name of the Google Compute Engine
+[zone](https://cloud.google.com/compute/docs/zones#available) in which the
+cluster resides. This field has been deprecated and replaced by the name
+field. (required)
+  clusterId: string, Required. Deprecated. The name of the cluster to upgrade.
 This field has been deprecated and replaced by the name field. (required)
-  clusterId: string, Deprecated. The name of the cluster to upgrade.
-This field has been deprecated and replaced by the name field. (required)
-  body: object, The request body. (required)
+  body: object, The request body.
     The object takes the form of:
 
 { # SetLocationsRequest sets the locations of the cluster.
-    "projectId": "A String", # Deprecated. The Google Developers Console [project ID or project
+    "projectId": "A String", # Required. Deprecated. The Google Developers Console [project ID or project
         # number](https://support.google.com/cloud/answer/6158840).
         # This field has been deprecated and replaced by the name field.
-    "clusterId": "A String", # Deprecated. The name of the cluster to upgrade.
+    "clusterId": "A String", # Required. Deprecated. The name of the cluster to upgrade.
         # This field has been deprecated and replaced by the name field.
-    "locations": [ # The desired list of Google Compute Engine
-        # [zones](/compute/docs/zones#available) in which the cluster's nodes
-        # should be located. Changing the locations a cluster is in will result
-        # in nodes being either created or removed from the cluster, depending on
-        # whether locations are being added or removed.
+    "name": "A String", # The name (project, location, cluster) of the cluster to set locations.
+        # Specified in the format 'projects/*/locations/*/clusters/*'.
+    "zone": "A String", # Required. Deprecated. The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # cluster resides. This field has been deprecated and replaced by the name
+        # field.
+    "locations": [ # Required. The desired list of Google Compute Engine
+        # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+        # cluster's nodes should be located. Changing the locations a cluster is in
+        # will result in nodes being either created or removed from the cluster,
+        # depending on whether locations are being added or removed.
         # 
         # This list must always include the cluster's primary zone.
       "A String",
     ],
-    "zone": "A String", # Deprecated. The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the cluster
-        # resides.
-        # This field has been deprecated and replaced by the name field.
-    "name": "A String", # The name (project, location, cluster) of the cluster to set locations.
-        # Specified in the format 'projects/*/locations/*/clusters/*'.
   }
 
   x__xgafv: string, V1 error format.
@@ -3191,20 +3934,13 @@
     { # This operation resource represents operations that may have happened or are
       # happening on the cluster. All fields are output only.
     "status": "A String", # The current status of the operation.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
     "endTime": "A String", # [Output only] The time the operation completed, in
         # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     "name": "A String", # The server-assigned ID for the operation.
     "zone": "A String", # The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the operation
-        # is taking place.
-        # This field is deprecated, use location instead.
-    "location": "A String", # [Output only] The name of the Google Compute Engine
-        # [zone](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "detail": "A String", # Detailed operation progress, if available.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "clusterConditions": [ # Which conditions caused the current cluster state.
       { # StatusCondition describes why a cluster or a node pool has a certain status
           # (e.g., ERROR or DEGRADED).
@@ -3212,9 +3948,12 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "detail": "A String", # Detailed operation progress, if available.
+    "targetLink": "A String", # Server-defined URL for the target of the operation.
     "operationType": "A String", # The operation type.
-    "progress": { # Information about operation (or operation stage) progress. # [Output only] Progress information for an operation.
+    "progress": { # Information about operation (or operation stage) progress. # Output only. [Output only] Progress information for an operation.
       "status": "A String", # Status of an operation stage.
           # Unset for single-stage operations.
       "metrics": [ # Progress metric bundle, for example:
@@ -3226,8 +3965,7 @@
         { # Progress metric is (string, int|float|string) pair.
           "stringValue": "A String", # For metrics with custom values (ratios, visual progress, etc.).
           "intValue": "A String", # For metrics with integer value.
-          "name": "A String", # Metric name, required.
-              # e.g., "nodes total", "percent done"
+          "name": "A String", # Required. Metric name, e.g., "nodes total", "percent done".
           "doubleValue": 3.14, # For metrics with floating point value.
         },
       ],
@@ -3245,44 +3983,54 @@
       },
     ],
     "selfLink": "A String", # Server-defined URL for the resource.
-    "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "location": "A String", # [Output only] The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # or
+        # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # in which the cluster resides.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="logging">logging(projectId, zone, clusterId, body, x__xgafv=None)</code>
+    <code class="details" id="logging">logging(projectId, zone, clusterId, body=None, x__xgafv=None)</code>
   <pre>Sets the logging service for a specific cluster.
 
 Args:
-  projectId: string, Deprecated. The Google Developers Console [project ID or project
+  projectId: string, Required. Deprecated. The Google Developers Console [project ID or project
 number](https://support.google.com/cloud/answer/6158840).
 This field has been deprecated and replaced by the name field. (required)
-  zone: string, Deprecated. The name of the Google Compute Engine
-[zone](/compute/docs/zones#available) in which the cluster
-resides.
+  zone: string, Required. Deprecated. The name of the Google Compute Engine
+[zone](https://cloud.google.com/compute/docs/zones#available) in which the
+cluster resides. This field has been deprecated and replaced by the name
+field. (required)
+  clusterId: string, Required. Deprecated. The name of the cluster to upgrade.
 This field has been deprecated and replaced by the name field. (required)
-  clusterId: string, Deprecated. The name of the cluster to upgrade.
-This field has been deprecated and replaced by the name field. (required)
-  body: object, The request body. (required)
+  body: object, The request body.
     The object takes the form of:
 
 { # SetLoggingServiceRequest sets the logging service of a cluster.
-    "projectId": "A String", # Deprecated. The Google Developers Console [project ID or project
+    "projectId": "A String", # Required. Deprecated. The Google Developers Console [project ID or project
         # number](https://support.google.com/cloud/answer/6158840).
         # This field has been deprecated and replaced by the name field.
-    "clusterId": "A String", # Deprecated. The name of the cluster to upgrade.
-        # This field has been deprecated and replaced by the name field.
-    "loggingService": "A String", # The logging service the cluster should use to write metrics.
+    "loggingService": "A String", # Required. The logging service the cluster should use to write logs.
         # Currently available options:
         # 
-        # * "logging.googleapis.com" - the Google Cloud Logging service
-        # * "none" - no metrics will be exported from the cluster
-    "zone": "A String", # Deprecated. The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the cluster
-        # resides.
+        # * `logging.googleapis.com/kubernetes` - The Cloud Logging
+        # service with a Kubernetes-native resource model
+        # * `logging.googleapis.com` - The legacy Cloud Logging service (no longer
+        #   available as of GKE 1.15).
+        # * `none` - no logs will be exported from the cluster.
+        # 
+        # If left as an empty string,`logging.googleapis.com/kubernetes` will be
+        # used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
+    "clusterId": "A String", # Required. Deprecated. The name of the cluster to upgrade.
         # This field has been deprecated and replaced by the name field.
     "name": "A String", # The name (project, location, cluster) of the cluster to set logging.
         # Specified in the format 'projects/*/locations/*/clusters/*'.
+    "zone": "A String", # Required. Deprecated. The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # cluster resides. This field has been deprecated and replaced by the name
+        # field.
   }
 
   x__xgafv: string, V1 error format.
@@ -3296,20 +4044,13 @@
     { # This operation resource represents operations that may have happened or are
       # happening on the cluster. All fields are output only.
     "status": "A String", # The current status of the operation.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
     "endTime": "A String", # [Output only] The time the operation completed, in
         # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     "name": "A String", # The server-assigned ID for the operation.
     "zone": "A String", # The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the operation
-        # is taking place.
-        # This field is deprecated, use location instead.
-    "location": "A String", # [Output only] The name of the Google Compute Engine
-        # [zone](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "detail": "A String", # Detailed operation progress, if available.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "clusterConditions": [ # Which conditions caused the current cluster state.
       { # StatusCondition describes why a cluster or a node pool has a certain status
           # (e.g., ERROR or DEGRADED).
@@ -3317,9 +4058,12 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "detail": "A String", # Detailed operation progress, if available.
+    "targetLink": "A String", # Server-defined URL for the target of the operation.
     "operationType": "A String", # The operation type.
-    "progress": { # Information about operation (or operation stage) progress. # [Output only] Progress information for an operation.
+    "progress": { # Information about operation (or operation stage) progress. # Output only. [Output only] Progress information for an operation.
       "status": "A String", # Status of an operation stage.
           # Unset for single-stage operations.
       "metrics": [ # Progress metric bundle, for example:
@@ -3331,8 +4075,7 @@
         { # Progress metric is (string, int|float|string) pair.
           "stringValue": "A String", # For metrics with custom values (ratios, visual progress, etc.).
           "intValue": "A String", # For metrics with integer value.
-          "name": "A String", # Metric name, required.
-              # e.g., "nodes total", "percent done"
+          "name": "A String", # Required. Metric name, e.g., "nodes total", "percent done".
           "doubleValue": 3.14, # For metrics with floating point value.
         },
       ],
@@ -3350,32 +4093,36 @@
       },
     ],
     "selfLink": "A String", # Server-defined URL for the resource.
-    "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "location": "A String", # [Output only] The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # or
+        # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # in which the cluster resides.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="master">master(projectId, zone, clusterId, body, x__xgafv=None)</code>
+    <code class="details" id="master">master(projectId, zone, clusterId, body=None, x__xgafv=None)</code>
   <pre>Updates the master for a specific cluster.
 
 Args:
-  projectId: string, Deprecated. The Google Developers Console [project ID or project
+  projectId: string, Required. Deprecated. The Google Developers Console [project ID or project
 number](https://support.google.com/cloud/answer/6158840).
 This field has been deprecated and replaced by the name field. (required)
-  zone: string, Deprecated. The name of the Google Compute Engine
-[zone](/compute/docs/zones#available) in which the cluster
-resides.
+  zone: string, Required. Deprecated. The name of the Google Compute Engine
+[zone](https://cloud.google.com/compute/docs/zones#available) in which the
+cluster resides. This field has been deprecated and replaced by the name
+field. (required)
+  clusterId: string, Required. Deprecated. The name of the cluster to upgrade.
 This field has been deprecated and replaced by the name field. (required)
-  clusterId: string, Deprecated. The name of the cluster to upgrade.
-This field has been deprecated and replaced by the name field. (required)
-  body: object, The request body. (required)
+  body: object, The request body.
     The object takes the form of:
 
 { # UpdateMasterRequest updates the master of the cluster.
-    "projectId": "A String", # Deprecated. The Google Developers Console [project ID or project
+    "projectId": "A String", # Required. Deprecated. The Google Developers Console [project ID or project
         # number](https://support.google.com/cloud/answer/6158840).
         # This field has been deprecated and replaced by the name field.
-    "masterVersion": "A String", # The Kubernetes version to change the master to.
+    "masterVersion": "A String", # Required. The Kubernetes version to change the master to.
         # 
         # Users may specify either explicit versions offered by
         # Kubernetes Engine or version aliases, which have the following behavior:
@@ -3385,14 +4132,14 @@
         # - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
         # - "1.X.Y-gke.N": picks an explicit Kubernetes version
         # - "-": picks the default Kubernetes version
-    "clusterId": "A String", # Deprecated. The name of the cluster to upgrade.
+    "clusterId": "A String", # Required. Deprecated. The name of the cluster to upgrade.
         # This field has been deprecated and replaced by the name field.
     "name": "A String", # The name (project, location, cluster) of the cluster to update.
         # Specified in the format 'projects/*/locations/*/clusters/*'.
-    "zone": "A String", # Deprecated. The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the cluster
-        # resides.
-        # This field has been deprecated and replaced by the name field.
+    "zone": "A String", # Required. Deprecated. The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # cluster resides. This field has been deprecated and replaced by the name
+        # field.
   }
 
   x__xgafv: string, V1 error format.
@@ -3406,20 +4153,13 @@
     { # This operation resource represents operations that may have happened or are
       # happening on the cluster. All fields are output only.
     "status": "A String", # The current status of the operation.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
     "endTime": "A String", # [Output only] The time the operation completed, in
         # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     "name": "A String", # The server-assigned ID for the operation.
     "zone": "A String", # The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the operation
-        # is taking place.
-        # This field is deprecated, use location instead.
-    "location": "A String", # [Output only] The name of the Google Compute Engine
-        # [zone](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "detail": "A String", # Detailed operation progress, if available.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "clusterConditions": [ # Which conditions caused the current cluster state.
       { # StatusCondition describes why a cluster or a node pool has a certain status
           # (e.g., ERROR or DEGRADED).
@@ -3427,9 +4167,12 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "detail": "A String", # Detailed operation progress, if available.
+    "targetLink": "A String", # Server-defined URL for the target of the operation.
     "operationType": "A String", # The operation type.
-    "progress": { # Information about operation (or operation stage) progress. # [Output only] Progress information for an operation.
+    "progress": { # Information about operation (or operation stage) progress. # Output only. [Output only] Progress information for an operation.
       "status": "A String", # Status of an operation stage.
           # Unset for single-stage operations.
       "metrics": [ # Progress metric bundle, for example:
@@ -3441,8 +4184,7 @@
         { # Progress metric is (string, int|float|string) pair.
           "stringValue": "A String", # For metrics with custom values (ratios, visual progress, etc.).
           "intValue": "A String", # For metrics with integer value.
-          "name": "A String", # Metric name, required.
-              # e.g., "nodes total", "percent done"
+          "name": "A String", # Required. Metric name, e.g., "nodes total", "percent done".
           "doubleValue": 3.14, # For metrics with floating point value.
         },
       ],
@@ -3460,44 +4202,54 @@
       },
     ],
     "selfLink": "A String", # Server-defined URL for the resource.
-    "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "location": "A String", # [Output only] The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # or
+        # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # in which the cluster resides.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="monitoring">monitoring(projectId, zone, clusterId, body, x__xgafv=None)</code>
+    <code class="details" id="monitoring">monitoring(projectId, zone, clusterId, body=None, x__xgafv=None)</code>
   <pre>Sets the monitoring service for a specific cluster.
 
 Args:
-  projectId: string, Deprecated. The Google Developers Console [project ID or project
+  projectId: string, Required. Deprecated. The Google Developers Console [project ID or project
 number](https://support.google.com/cloud/answer/6158840).
 This field has been deprecated and replaced by the name field. (required)
-  zone: string, Deprecated. The name of the Google Compute Engine
-[zone](/compute/docs/zones#available) in which the cluster
-resides.
+  zone: string, Required. Deprecated. The name of the Google Compute Engine
+[zone](https://cloud.google.com/compute/docs/zones#available) in which the
+cluster resides. This field has been deprecated and replaced by the name
+field. (required)
+  clusterId: string, Required. Deprecated. The name of the cluster to upgrade.
 This field has been deprecated and replaced by the name field. (required)
-  clusterId: string, Deprecated. The name of the cluster to upgrade.
-This field has been deprecated and replaced by the name field. (required)
-  body: object, The request body. (required)
+  body: object, The request body.
     The object takes the form of:
 
 { # SetMonitoringServiceRequest sets the monitoring service of a cluster.
-    "projectId": "A String", # Deprecated. The Google Developers Console [project ID or project
+    "projectId": "A String", # Required. Deprecated. The Google Developers Console [project ID or project
         # number](https://support.google.com/cloud/answer/6158840).
         # This field has been deprecated and replaced by the name field.
-    "monitoringService": "A String", # The monitoring service the cluster should use to write metrics.
+    "monitoringService": "A String", # Required. The monitoring service the cluster should use to write metrics.
         # Currently available options:
         # 
-        # * "monitoring.googleapis.com" - the Google Cloud Monitoring service
-        # * "none" - no metrics will be exported from the cluster
-    "clusterId": "A String", # Deprecated. The name of the cluster to upgrade.
+        # * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
+        # service with a Kubernetes-native resource model
+        # * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
+        #   longer available as of GKE 1.15).
+        # * `none` - No metrics will be exported from the cluster.
+        # 
+        # If left as an empty string,`monitoring.googleapis.com/kubernetes` will be
+        # used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
+    "clusterId": "A String", # Required. Deprecated. The name of the cluster to upgrade.
         # This field has been deprecated and replaced by the name field.
     "name": "A String", # The name (project, location, cluster) of the cluster to set monitoring.
         # Specified in the format 'projects/*/locations/*/clusters/*'.
-    "zone": "A String", # Deprecated. The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the cluster
-        # resides.
-        # This field has been deprecated and replaced by the name field.
+    "zone": "A String", # Required. Deprecated. The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # cluster resides. This field has been deprecated and replaced by the name
+        # field.
   }
 
   x__xgafv: string, V1 error format.
@@ -3511,20 +4263,13 @@
     { # This operation resource represents operations that may have happened or are
       # happening on the cluster. All fields are output only.
     "status": "A String", # The current status of the operation.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
     "endTime": "A String", # [Output only] The time the operation completed, in
         # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     "name": "A String", # The server-assigned ID for the operation.
     "zone": "A String", # The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the operation
-        # is taking place.
-        # This field is deprecated, use location instead.
-    "location": "A String", # [Output only] The name of the Google Compute Engine
-        # [zone](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "detail": "A String", # Detailed operation progress, if available.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "clusterConditions": [ # Which conditions caused the current cluster state.
       { # StatusCondition describes why a cluster or a node pool has a certain status
           # (e.g., ERROR or DEGRADED).
@@ -3532,9 +4277,12 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "detail": "A String", # Detailed operation progress, if available.
+    "targetLink": "A String", # Server-defined URL for the target of the operation.
     "operationType": "A String", # The operation type.
-    "progress": { # Information about operation (or operation stage) progress. # [Output only] Progress information for an operation.
+    "progress": { # Information about operation (or operation stage) progress. # Output only. [Output only] Progress information for an operation.
       "status": "A String", # Status of an operation stage.
           # Unset for single-stage operations.
       "metrics": [ # Progress metric bundle, for example:
@@ -3546,8 +4294,7 @@
         { # Progress metric is (string, int|float|string) pair.
           "stringValue": "A String", # For metrics with custom values (ratios, visual progress, etc.).
           "intValue": "A String", # For metrics with integer value.
-          "name": "A String", # Metric name, required.
-              # e.g., "nodes total", "percent done"
+          "name": "A String", # Required. Metric name, e.g., "nodes total", "percent done".
           "doubleValue": 3.14, # For metrics with floating point value.
         },
       ],
@@ -3565,25 +4312,29 @@
       },
     ],
     "selfLink": "A String", # Server-defined URL for the resource.
-    "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "location": "A String", # [Output only] The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # or
+        # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # in which the cluster resides.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="resourceLabels">resourceLabels(projectId, zone, clusterId, body, x__xgafv=None)</code>
+    <code class="details" id="resourceLabels">resourceLabels(projectId, zone, clusterId, body=None, x__xgafv=None)</code>
   <pre>Sets labels on a cluster.
 
 Args:
-  projectId: string, Deprecated. The Google Developers Console [project ID or project
+  projectId: string, Required. Deprecated. The Google Developers Console [project ID or project
 number](https://developers.google.com/console/help/new/#projectnumber).
 This field has been deprecated and replaced by the name field. (required)
-  zone: string, Deprecated. The name of the Google Compute Engine
-[zone](/compute/docs/zones#available) in which the cluster
-resides.
+  zone: string, Required. Deprecated. The name of the Google Compute Engine
+[zone](https://cloud.google.com/compute/docs/zones#available) in which the
+cluster resides. This field has been deprecated and replaced by the name
+field. (required)
+  clusterId: string, Required. Deprecated. The name of the cluster.
 This field has been deprecated and replaced by the name field. (required)
-  clusterId: string, Deprecated. The name of the cluster.
-This field has been deprecated and replaced by the name field. (required)
-  body: object, The request body. (required)
+  body: object, The request body.
     The object takes the form of:
 
 { # SetLabelsRequest sets the Google Cloud Platform labels on a Google Container
@@ -3591,22 +4342,22 @@
       # resources used by that cluster
     "name": "A String", # The name (project, location, cluster id) of the cluster to set labels.
         # Specified in the format 'projects/*/locations/*/clusters/*'.
-    "zone": "A String", # Deprecated. The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the cluster
-        # resides.
-        # This field has been deprecated and replaced by the name field.
-    "projectId": "A String", # Deprecated. The Google Developers Console [project ID or project
+    "zone": "A String", # Required. Deprecated. The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # cluster resides. This field has been deprecated and replaced by the name
+        # field.
+    "projectId": "A String", # Required. Deprecated. The Google Developers Console [project ID or project
         # number](https://developers.google.com/console/help/new/#projectnumber).
         # This field has been deprecated and replaced by the name field.
-    "labelFingerprint": "A String", # The fingerprint of the previous set of labels for this resource,
+    "labelFingerprint": "A String", # Required. The fingerprint of the previous set of labels for this resource,
         # used to detect conflicts. The fingerprint is initially generated by
         # Kubernetes Engine and changes after every request to modify or update
         # labels. You must always provide an up-to-date fingerprint hash when
-        # updating or changing labels. Make a <code>get()</code> request to the
+        # updating or changing labels. Make a &lt;code&gt;get()&lt;/code&gt; request to the
         # resource to get the latest fingerprint.
-    "clusterId": "A String", # Deprecated. The name of the cluster.
+    "clusterId": "A String", # Required. Deprecated. The name of the cluster.
         # This field has been deprecated and replaced by the name field.
-    "resourceLabels": { # The labels to set for that cluster.
+    "resourceLabels": { # Required. The labels to set for that cluster.
       "a_key": "A String",
     },
   }
@@ -3622,20 +4373,13 @@
     { # This operation resource represents operations that may have happened or are
       # happening on the cluster. All fields are output only.
     "status": "A String", # The current status of the operation.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
     "endTime": "A String", # [Output only] The time the operation completed, in
         # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     "name": "A String", # The server-assigned ID for the operation.
     "zone": "A String", # The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the operation
-        # is taking place.
-        # This field is deprecated, use location instead.
-    "location": "A String", # [Output only] The name of the Google Compute Engine
-        # [zone](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "detail": "A String", # Detailed operation progress, if available.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "clusterConditions": [ # Which conditions caused the current cluster state.
       { # StatusCondition describes why a cluster or a node pool has a certain status
           # (e.g., ERROR or DEGRADED).
@@ -3643,9 +4387,12 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "detail": "A String", # Detailed operation progress, if available.
+    "targetLink": "A String", # Server-defined URL for the target of the operation.
     "operationType": "A String", # The operation type.
-    "progress": { # Information about operation (or operation stage) progress. # [Output only] Progress information for an operation.
+    "progress": { # Information about operation (or operation stage) progress. # Output only. [Output only] Progress information for an operation.
       "status": "A String", # Status of an operation stage.
           # Unset for single-stage operations.
       "metrics": [ # Progress metric bundle, for example:
@@ -3657,8 +4404,7 @@
         { # Progress metric is (string, int|float|string) pair.
           "stringValue": "A String", # For metrics with custom values (ratios, visual progress, etc.).
           "intValue": "A String", # For metrics with integer value.
-          "name": "A String", # Metric name, required.
-              # e.g., "nodes total", "percent done"
+          "name": "A String", # Required. Metric name, e.g., "nodes total", "percent done".
           "doubleValue": 3.14, # For metrics with floating point value.
         },
       ],
@@ -3676,45 +4422,98 @@
       },
     ],
     "selfLink": "A String", # Server-defined URL for the resource.
-    "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "location": "A String", # [Output only] The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # or
+        # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # in which the cluster resides.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="setMaintenancePolicy">setMaintenancePolicy(projectId, zone, clusterId, body, x__xgafv=None)</code>
+    <code class="details" id="setMaintenancePolicy">setMaintenancePolicy(projectId, zone, clusterId, body=None, x__xgafv=None)</code>
   <pre>Sets the maintenance policy for a cluster.
 
 Args:
-  projectId: string, The Google Developers Console [project ID or project
+  projectId: string, Required. The Google Developers Console [project ID or project
 number](https://support.google.com/cloud/answer/6158840). (required)
-  zone: string, The name of the Google Compute Engine
-[zone](/compute/docs/zones#available) in which the cluster
-resides. (required)
-  clusterId: string, The name of the cluster to update. (required)
-  body: object, The request body. (required)
+  zone: string, Required. The name of the Google Compute Engine
+[zone](https://cloud.google.com/compute/docs/zones#available) in which the
+cluster resides. (required)
+  clusterId: string, Required. The name of the cluster to update. (required)
+  body: object, The request body.
     The object takes the form of:
 
 { # SetMaintenancePolicyRequest sets the maintenance policy for a cluster.
-    "projectId": "A String", # The Google Developers Console [project ID or project
+    "projectId": "A String", # Required. The Google Developers Console [project ID or project
         # number](https://support.google.com/cloud/answer/6158840).
-    "maintenancePolicy": { # MaintenancePolicy defines the maintenance policy to be used for the cluster. # The maintenance policy to be set for the cluster. An empty field
+    "maintenancePolicy": { # MaintenancePolicy defines the maintenance policy to be used for the cluster. # Required. The maintenance policy to be set for the cluster. An empty field
         # clears the existing maintenance policy.
       "window": { # MaintenanceWindow defines the maintenance window to be used for the cluster. # Specifies the maintenance window in which maintenance may be performed.
+        "recurringWindow": { # Represents an arbitrary window of time that recurs. # RecurringWindow specifies some number of recurring time periods for
+            # maintenance to occur. The time windows may be overlapping. If no
+            # maintenance windows are set, maintenance can occur at any time.
+          "recurrence": "A String", # An RRULE (https://tools.ietf.org/html/rfc5545#section-3.8.5.3) for how
+              # this window reccurs. They go on for the span of time between the start and
+              # end time.
+              #
+              # For example, to have something repeat every weekday, you'd use:
+              #   &lt;code&gt;FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR&lt;/code&gt;
+              # To repeat some window daily (equivalent to the DailyMaintenanceWindow):
+              #   &lt;code&gt;FREQ=DAILY&lt;/code&gt;
+              # For the first weekend of every month:
+              #   &lt;code&gt;FREQ=MONTHLY;BYSETPOS=1;BYDAY=SA,SU&lt;/code&gt;
+              # This specifies how frequently the window starts. Eg, if you wanted to have
+              # a 9-5 UTC-4 window every weekday, you'd use something like:
+              # &lt;code&gt;
+              #   start time = 2019-01-01T09:00:00-0400
+              #   end time = 2019-01-01T17:00:00-0400
+              #   recurrence = FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR
+              # &lt;/code&gt;
+              # Windows can span multiple days. Eg, to make the window encompass every
+              # weekend from midnight Saturday till the last minute of Sunday UTC:
+              # &lt;code&gt;
+              #   start time = 2019-01-05T00:00:00Z
+              #   end time = 2019-01-07T23:59:00Z
+              #   recurrence = FREQ=WEEKLY;BYDAY=SA
+              # &lt;/code&gt;
+              # Note the start and end time's specific dates are largely arbitrary except
+              # to specify duration of the window and when it first starts.
+              # The FREQ values of HOURLY, MINUTELY, and SECONDLY are not supported.
+          "window": { # Represents an arbitrary window of time. # The window of the first recurrence.
+            "endTime": "A String", # The time that the window ends. The end time should take place after the
+                # start time.
+            "startTime": "A String", # The time that the window first starts.
+          },
+        },
         "dailyMaintenanceWindow": { # Time window specified for daily maintenance operations. # DailyMaintenanceWindow specifies a daily maintenance operation window.
           "duration": "A String", # [Output only] Duration of the time window, automatically chosen to be
               # smallest possible in the given scenario.
           "startTime": "A String", # Time within the maintenance window to start the maintenance operations.
               # It must be in format "HH:MM", where HH : [00-23] and MM : [00-59] GMT.
         },
+        "maintenanceExclusions": { # Exceptions to maintenance window. Non-emergency maintenance should not
+            # occur in these windows.
+          "a_key": { # Represents an arbitrary window of time.
+            "endTime": "A String", # The time that the window ends. The end time should take place after the
+                # start time.
+            "startTime": "A String", # The time that the window first starts.
+          },
+        },
       },
+      "resourceVersion": "A String", # A hash identifying the version of this policy, so that updates to fields of
+          # the policy won't accidentally undo intermediate changes (and so that users
+          # of the API unaware of some fields won't accidentally remove other fields).
+          # Make a &lt;code&gt;get()&lt;/code&gt; request to the cluster to get the current
+          # resource version and include it with requests to set the policy.
     },
-    "clusterId": "A String", # The name of the cluster to update.
+    "clusterId": "A String", # Required. The name of the cluster to update.
     "name": "A String", # The name (project, location, cluster id) of the cluster to set maintenance
         # policy.
         # Specified in the format 'projects/*/locations/*/clusters/*'.
-    "zone": "A String", # The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the cluster
-        # resides.
+    "zone": "A String", # Required. The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # cluster resides.
   }
 
   x__xgafv: string, V1 error format.
@@ -3728,20 +4527,13 @@
     { # This operation resource represents operations that may have happened or are
       # happening on the cluster. All fields are output only.
     "status": "A String", # The current status of the operation.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
     "endTime": "A String", # [Output only] The time the operation completed, in
         # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     "name": "A String", # The server-assigned ID for the operation.
     "zone": "A String", # The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the operation
-        # is taking place.
-        # This field is deprecated, use location instead.
-    "location": "A String", # [Output only] The name of the Google Compute Engine
-        # [zone](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "detail": "A String", # Detailed operation progress, if available.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "clusterConditions": [ # Which conditions caused the current cluster state.
       { # StatusCondition describes why a cluster or a node pool has a certain status
           # (e.g., ERROR or DEGRADED).
@@ -3749,9 +4541,12 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "detail": "A String", # Detailed operation progress, if available.
+    "targetLink": "A String", # Server-defined URL for the target of the operation.
     "operationType": "A String", # The operation type.
-    "progress": { # Information about operation (or operation stage) progress. # [Output only] Progress information for an operation.
+    "progress": { # Information about operation (or operation stage) progress. # Output only. [Output only] Progress information for an operation.
       "status": "A String", # Status of an operation stage.
           # Unset for single-stage operations.
       "metrics": [ # Progress metric bundle, for example:
@@ -3763,8 +4558,7 @@
         { # Progress metric is (string, int|float|string) pair.
           "stringValue": "A String", # For metrics with custom values (ratios, visual progress, etc.).
           "intValue": "A String", # For metrics with integer value.
-          "name": "A String", # Metric name, required.
-              # e.g., "nodes total", "percent done"
+          "name": "A String", # Required. Metric name, e.g., "nodes total", "percent done".
           "doubleValue": 3.14, # For metrics with floating point value.
         },
       ],
@@ -3782,42 +4576,46 @@
       },
     ],
     "selfLink": "A String", # Server-defined URL for the resource.
-    "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "location": "A String", # [Output only] The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # or
+        # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # in which the cluster resides.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="setMasterAuth">setMasterAuth(projectId, zone, clusterId, body, x__xgafv=None)</code>
+    <code class="details" id="setMasterAuth">setMasterAuth(projectId, zone, clusterId, body=None, x__xgafv=None)</code>
   <pre>Sets master auth materials. Currently supports changing the admin password
 or a specific cluster, either via password generation or explicitly setting
 the password.
 
 Args:
-  projectId: string, Deprecated. The Google Developers Console [project ID or project
+  projectId: string, Required. Deprecated. The Google Developers Console [project ID or project
 number](https://support.google.com/cloud/answer/6158840).
 This field has been deprecated and replaced by the name field. (required)
-  zone: string, Deprecated. The name of the Google Compute Engine
-[zone](/compute/docs/zones#available) in which the cluster
-resides.
+  zone: string, Required. Deprecated. The name of the Google Compute Engine
+[zone](https://cloud.google.com/compute/docs/zones#available) in which the
+cluster resides. This field has been deprecated and replaced by the name
+field. (required)
+  clusterId: string, Required. Deprecated. The name of the cluster to upgrade.
 This field has been deprecated and replaced by the name field. (required)
-  clusterId: string, Deprecated. The name of the cluster to upgrade.
-This field has been deprecated and replaced by the name field. (required)
-  body: object, The request body. (required)
+  body: object, The request body.
     The object takes the form of:
 
 { # SetMasterAuthRequest updates the admin password of a cluster.
     "name": "A String", # The name (project, location, cluster) of the cluster to set auth.
         # Specified in the format 'projects/*/locations/*/clusters/*'.
-    "zone": "A String", # Deprecated. The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the cluster
-        # resides.
-        # This field has been deprecated and replaced by the name field.
-    "projectId": "A String", # Deprecated. The Google Developers Console [project ID or project
+    "zone": "A String", # Required. Deprecated. The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # cluster resides. This field has been deprecated and replaced by the name
+        # field.
+    "projectId": "A String", # Required. Deprecated. The Google Developers Console [project ID or project
         # number](https://support.google.com/cloud/answer/6158840).
         # This field has been deprecated and replaced by the name field.
-    "clusterId": "A String", # Deprecated. The name of the cluster to upgrade.
+    "clusterId": "A String", # Required. Deprecated. The name of the cluster to upgrade.
         # This field has been deprecated and replaced by the name field.
-    "update": { # The authentication information for accessing the master endpoint. # A description of the update.
+    "update": { # The authentication information for accessing the master endpoint. # Required. A description of the update.
         # Authentication can be done using HTTP basic auth or using client
         # certificates.
       "username": "A String", # The username to use for HTTP basic authentication to the master endpoint.
@@ -3827,18 +4625,18 @@
           # to the cluster endpoint.
       "clientCertificate": "A String", # [Output only] Base64-encoded public certificate used by clients to
           # authenticate to the cluster endpoint.
+      "clusterCaCertificate": "A String",
+      "password": "A String", # The password to use for HTTP basic authentication to the master endpoint.
+          # Because the master endpoint is open to the Internet, you should create a
+          # strong password.  If a password is provided for cluster creation, username
+          # must be non-empty.
       "clientCertificateConfig": { # Configuration for client certificates on the cluster. # Configuration for client certificate authentication on the cluster. For
           # clusters before v1.12, if no configuration is specified, a client
           # certificate is issued.
         "issueClientCertificate": True or False, # Issue a client certificate.
       },
-      "password": "A String", # The password to use for HTTP basic authentication to the master endpoint.
-          # Because the master endpoint is open to the Internet, you should create a
-          # strong password.  If a password is provided for cluster creation, username
-          # must be non-empty.
-      "clusterCaCertificate": "A String",
     },
-    "action": "A String", # The exact form of action to be taken on the master auth.
+    "action": "A String", # Required. The exact form of action to be taken on the master auth.
   }
 
   x__xgafv: string, V1 error format.
@@ -3852,20 +4650,13 @@
     { # This operation resource represents operations that may have happened or are
       # happening on the cluster. All fields are output only.
     "status": "A String", # The current status of the operation.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
     "endTime": "A String", # [Output only] The time the operation completed, in
         # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     "name": "A String", # The server-assigned ID for the operation.
     "zone": "A String", # The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the operation
-        # is taking place.
-        # This field is deprecated, use location instead.
-    "location": "A String", # [Output only] The name of the Google Compute Engine
-        # [zone](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "detail": "A String", # Detailed operation progress, if available.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "clusterConditions": [ # Which conditions caused the current cluster state.
       { # StatusCondition describes why a cluster or a node pool has a certain status
           # (e.g., ERROR or DEGRADED).
@@ -3873,9 +4664,12 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "detail": "A String", # Detailed operation progress, if available.
+    "targetLink": "A String", # Server-defined URL for the target of the operation.
     "operationType": "A String", # The operation type.
-    "progress": { # Information about operation (or operation stage) progress. # [Output only] Progress information for an operation.
+    "progress": { # Information about operation (or operation stage) progress. # Output only. [Output only] Progress information for an operation.
       "status": "A String", # Status of an operation stage.
           # Unset for single-stage operations.
       "metrics": [ # Progress metric bundle, for example:
@@ -3887,8 +4681,7 @@
         { # Progress metric is (string, int|float|string) pair.
           "stringValue": "A String", # For metrics with custom values (ratios, visual progress, etc.).
           "intValue": "A String", # For metrics with integer value.
-          "name": "A String", # Metric name, required.
-              # e.g., "nodes total", "percent done"
+          "name": "A String", # Required. Metric name, e.g., "nodes total", "percent done".
           "doubleValue": 3.14, # For metrics with floating point value.
         },
       ],
@@ -3906,42 +4699,46 @@
       },
     ],
     "selfLink": "A String", # Server-defined URL for the resource.
-    "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "location": "A String", # [Output only] The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # or
+        # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # in which the cluster resides.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="setNetworkPolicy">setNetworkPolicy(projectId, zone, clusterId, body, x__xgafv=None)</code>
+    <code class="details" id="setNetworkPolicy">setNetworkPolicy(projectId, zone, clusterId, body=None, x__xgafv=None)</code>
   <pre>Enables or disables Network Policy for a cluster.
 
 Args:
-  projectId: string, Deprecated. The Google Developers Console [project ID or project
+  projectId: string, Required. Deprecated. The Google Developers Console [project ID or project
 number](https://developers.google.com/console/help/new/#projectnumber).
 This field has been deprecated and replaced by the name field. (required)
-  zone: string, Deprecated. The name of the Google Compute Engine
-[zone](/compute/docs/zones#available) in which the cluster
-resides.
+  zone: string, Required. Deprecated. The name of the Google Compute Engine
+[zone](https://cloud.google.com/compute/docs/zones#available) in which the
+cluster resides. This field has been deprecated and replaced by the name
+field. (required)
+  clusterId: string, Required. Deprecated. The name of the cluster.
 This field has been deprecated and replaced by the name field. (required)
-  clusterId: string, Deprecated. The name of the cluster.
-This field has been deprecated and replaced by the name field. (required)
-  body: object, The request body. (required)
+  body: object, The request body.
     The object takes the form of:
 
 { # SetNetworkPolicyRequest enables/disables network policy for a cluster.
-    "projectId": "A String", # Deprecated. The Google Developers Console [project ID or project
+    "projectId": "A String", # Required. Deprecated. The Google Developers Console [project ID or project
         # number](https://developers.google.com/console/help/new/#projectnumber).
         # This field has been deprecated and replaced by the name field.
-    "clusterId": "A String", # Deprecated. The name of the cluster.
+    "clusterId": "A String", # Required. Deprecated. The name of the cluster.
         # This field has been deprecated and replaced by the name field.
-    "networkPolicy": { # Configuration options for the NetworkPolicy feature. # Configuration options for the NetworkPolicy feature.
+    "networkPolicy": { # Configuration options for the NetworkPolicy feature. # Required. Configuration options for the NetworkPolicy feature.
         # https://kubernetes.io/docs/concepts/services-networking/networkpolicies/
       "enabled": True or False, # Whether network policy is enabled on the cluster.
       "provider": "A String", # The selected network policy provider.
     },
-    "zone": "A String", # Deprecated. The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the cluster
-        # resides.
-        # This field has been deprecated and replaced by the name field.
+    "zone": "A String", # Required. Deprecated. The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # cluster resides. This field has been deprecated and replaced by the name
+        # field.
     "name": "A String", # The name (project, location, cluster id) of the cluster to set networking
         # policy. Specified in the format 'projects/*/locations/*/clusters/*'.
   }
@@ -3957,20 +4754,13 @@
     { # This operation resource represents operations that may have happened or are
       # happening on the cluster. All fields are output only.
     "status": "A String", # The current status of the operation.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
     "endTime": "A String", # [Output only] The time the operation completed, in
         # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     "name": "A String", # The server-assigned ID for the operation.
     "zone": "A String", # The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the operation
-        # is taking place.
-        # This field is deprecated, use location instead.
-    "location": "A String", # [Output only] The name of the Google Compute Engine
-        # [zone](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "detail": "A String", # Detailed operation progress, if available.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "clusterConditions": [ # Which conditions caused the current cluster state.
       { # StatusCondition describes why a cluster or a node pool has a certain status
           # (e.g., ERROR or DEGRADED).
@@ -3978,9 +4768,12 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "detail": "A String", # Detailed operation progress, if available.
+    "targetLink": "A String", # Server-defined URL for the target of the operation.
     "operationType": "A String", # The operation type.
-    "progress": { # Information about operation (or operation stage) progress. # [Output only] Progress information for an operation.
+    "progress": { # Information about operation (or operation stage) progress. # Output only. [Output only] Progress information for an operation.
       "status": "A String", # Status of an operation stage.
           # Unset for single-stage operations.
       "metrics": [ # Progress metric bundle, for example:
@@ -3992,8 +4785,7 @@
         { # Progress metric is (string, int|float|string) pair.
           "stringValue": "A String", # For metrics with custom values (ratios, visual progress, etc.).
           "intValue": "A String", # For metrics with integer value.
-          "name": "A String", # Metric name, required.
-              # e.g., "nodes total", "percent done"
+          "name": "A String", # Required. Metric name, e.g., "nodes total", "percent done".
           "doubleValue": 3.14, # For metrics with floating point value.
         },
       ],
@@ -4011,41 +4803,45 @@
       },
     ],
     "selfLink": "A String", # Server-defined URL for the resource.
-    "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "location": "A String", # [Output only] The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # or
+        # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # in which the cluster resides.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="startIpRotation">startIpRotation(projectId, zone, clusterId, body, x__xgafv=None)</code>
+    <code class="details" id="startIpRotation">startIpRotation(projectId, zone, clusterId, body=None, x__xgafv=None)</code>
   <pre>Starts master IP rotation.
 
 Args:
-  projectId: string, Deprecated. The Google Developers Console [project ID or project
+  projectId: string, Required. Deprecated. The Google Developers Console [project ID or project
 number](https://developers.google.com/console/help/new/#projectnumber).
 This field has been deprecated and replaced by the name field. (required)
-  zone: string, Deprecated. The name of the Google Compute Engine
-[zone](/compute/docs/zones#available) in which the cluster
-resides.
+  zone: string, Required. Deprecated. The name of the Google Compute Engine
+[zone](https://cloud.google.com/compute/docs/zones#available) in which the
+cluster resides. This field has been deprecated and replaced by the name
+field. (required)
+  clusterId: string, Required. Deprecated. The name of the cluster.
 This field has been deprecated and replaced by the name field. (required)
-  clusterId: string, Deprecated. The name of the cluster.
-This field has been deprecated and replaced by the name field. (required)
-  body: object, The request body. (required)
+  body: object, The request body.
     The object takes the form of:
 
 { # StartIPRotationRequest creates a new IP for the cluster and then performs
       # a node upgrade on each node pool to point to the new IP.
-    "projectId": "A String", # Deprecated. The Google Developers Console [project ID or project
+    "projectId": "A String", # Required. Deprecated. The Google Developers Console [project ID or project
         # number](https://developers.google.com/console/help/new/#projectnumber).
         # This field has been deprecated and replaced by the name field.
     "rotateCredentials": True or False, # Whether to rotate credentials during IP rotation.
-    "clusterId": "A String", # Deprecated. The name of the cluster.
+    "clusterId": "A String", # Required. Deprecated. The name of the cluster.
         # This field has been deprecated and replaced by the name field.
     "name": "A String", # The name (project, location, cluster id) of the cluster to start IP
         # rotation. Specified in the format 'projects/*/locations/*/clusters/*'.
-    "zone": "A String", # Deprecated. The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the cluster
-        # resides.
-        # This field has been deprecated and replaced by the name field.
+    "zone": "A String", # Required. Deprecated. The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # cluster resides. This field has been deprecated and replaced by the name
+        # field.
   }
 
   x__xgafv: string, V1 error format.
@@ -4059,20 +4855,13 @@
     { # This operation resource represents operations that may have happened or are
       # happening on the cluster. All fields are output only.
     "status": "A String", # The current status of the operation.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
     "endTime": "A String", # [Output only] The time the operation completed, in
         # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     "name": "A String", # The server-assigned ID for the operation.
     "zone": "A String", # The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the operation
-        # is taking place.
-        # This field is deprecated, use location instead.
-    "location": "A String", # [Output only] The name of the Google Compute Engine
-        # [zone](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "detail": "A String", # Detailed operation progress, if available.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "clusterConditions": [ # Which conditions caused the current cluster state.
       { # StatusCondition describes why a cluster or a node pool has a certain status
           # (e.g., ERROR or DEGRADED).
@@ -4080,9 +4869,12 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "detail": "A String", # Detailed operation progress, if available.
+    "targetLink": "A String", # Server-defined URL for the target of the operation.
     "operationType": "A String", # The operation type.
-    "progress": { # Information about operation (or operation stage) progress. # [Output only] Progress information for an operation.
+    "progress": { # Information about operation (or operation stage) progress. # Output only. [Output only] Progress information for an operation.
       "status": "A String", # Status of an operation stage.
           # Unset for single-stage operations.
       "metrics": [ # Progress metric bundle, for example:
@@ -4094,8 +4886,7 @@
         { # Progress metric is (string, int|float|string) pair.
           "stringValue": "A String", # For metrics with custom values (ratios, visual progress, etc.).
           "intValue": "A String", # For metrics with integer value.
-          "name": "A String", # Metric name, required.
-              # e.g., "nodes total", "percent done"
+          "name": "A String", # Required. Metric name, e.g., "nodes total", "percent done".
           "doubleValue": 3.14, # For metrics with floating point value.
         },
       ],
@@ -4113,70 +4904,178 @@
       },
     ],
     "selfLink": "A String", # Server-defined URL for the resource.
-    "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "location": "A String", # [Output only] The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # or
+        # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # in which the cluster resides.
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="update">update(projectId, zone, clusterId, body, x__xgafv=None)</code>
+    <code class="details" id="update">update(projectId, zone, clusterId, body=None, x__xgafv=None)</code>
   <pre>Updates the settings for a specific cluster.
 
 Args:
-  projectId: string, Deprecated. The Google Developers Console [project ID or project
+  projectId: string, Required. Deprecated. The Google Developers Console [project ID or project
 number](https://support.google.com/cloud/answer/6158840).
 This field has been deprecated and replaced by the name field. (required)
-  zone: string, Deprecated. The name of the Google Compute Engine
-[zone](/compute/docs/zones#available) in which the cluster
-resides.
+  zone: string, Required. Deprecated. The name of the Google Compute Engine
+[zone](https://cloud.google.com/compute/docs/zones#available) in which the
+cluster resides. This field has been deprecated and replaced by the name
+field. (required)
+  clusterId: string, Required. Deprecated. The name of the cluster to upgrade.
 This field has been deprecated and replaced by the name field. (required)
-  clusterId: string, Deprecated. The name of the cluster to upgrade.
-This field has been deprecated and replaced by the name field. (required)
-  body: object, The request body. (required)
+  body: object, The request body.
     The object takes the form of:
 
 { # UpdateClusterRequest updates the settings of a cluster.
-    "projectId": "A String", # Deprecated. The Google Developers Console [project ID or project
+    "projectId": "A String", # Required. Deprecated. The Google Developers Console [project ID or project
         # number](https://support.google.com/cloud/answer/6158840).
         # This field has been deprecated and replaced by the name field.
-    "clusterId": "A String", # Deprecated. The name of the cluster to upgrade.
+    "clusterId": "A String", # Required. Deprecated. The name of the cluster to upgrade.
         # This field has been deprecated and replaced by the name field.
-    "update": { # ClusterUpdate describes an update to the cluster. Exactly one update can # A description of the update.
+    "update": { # ClusterUpdate describes an update to the cluster. Exactly one update can # Required. A description of the update.
         # be applied to a cluster with each request, so at most one field can be
         # provided.
-      "desiredPodSecurityPolicyConfig": { # Configuration for the PodSecurityPolicy feature. # The desired configuration options for the PodSecurityPolicy feature.
-        "enabled": True or False, # Enable the PodSecurityPolicy controller for this cluster. If enabled, pods
-            # must be valid under a PodSecurityPolicy to be created.
-      },
-      "desiredIntraNodeVisibilityConfig": { # IntraNodeVisibilityConfig contains the desired config of the intra-node # The desired config of Intra-node visibility.
-          # visibility on this cluster.
-        "enabled": True or False, # Enables intra node visibility for this cluster.
-      },
-      "desiredLoggingService": "A String", # The logging service the cluster should use to write metrics.
+      "desiredLoggingService": "A String", # The logging service the cluster should use to write logs.
           # Currently available options:
           #
-          # * "logging.googleapis.com/kubernetes" - the Google Cloud Logging
-          # service with Kubernetes-native resource model in Stackdriver
-          # * "logging.googleapis.com" - the Google Cloud Logging service
-          # * "none" - no logs will be exported from the cluster
-      "desiredMasterAuthorizedNetworksConfig": { # Configuration options for the master authorized networks feature. Enabled # The desired configuration options for master authorized networks feature.
-          # master authorized networks will disallow all external traffic to access
-          # Kubernetes master through HTTPS except traffic from the given CIDR blocks,
-          # Google Compute Engine Public IPs and Google Prod IPs.
-        "enabled": True or False, # Whether or not master authorized networks is enabled.
-        "cidrBlocks": [ # cidr_blocks define up to 10 external networks that could access
-            # Kubernetes master through HTTPS.
-          { # CidrBlock contains an optional name and one CIDR block.
-            "displayName": "A String", # display_name is an optional field for users to identify CIDR blocks.
-            "cidrBlock": "A String", # cidr_block must be specified in CIDR notation.
-          },
-        ],
-      },
-      "desiredImageType": "A String", # The desired image type for the node pool.
-          # NOTE: Set the "desired_node_pool" field as well.
+          # * `logging.googleapis.com/kubernetes` - The Cloud Logging
+          # service with a Kubernetes-native resource model
+          # * `logging.googleapis.com` - The legacy Cloud Logging service (no longer
+          #   available as of GKE 1.15).
+          # * `none` - no logs will be exported from the cluster.
+          #
+          # If left as an empty string,`logging.googleapis.com/kubernetes` will be
+          # used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
       "desiredNodePoolId": "A String", # The node pool to be upgraded. This field is mandatory if
           # "desired_node_version", "desired_image_family",
           # "desired_node_pool_autoscaling", or "desired_workload_metadata_config"
           # is specified and there is more than one node pool on the cluster.
+      "desiredImageType": "A String", # The desired image type for the node pool.
+          # NOTE: Set the "desired_node_pool" field as well.
+      "desiredClusterTelemetry": { # Telemetry integration for the cluster. # The desired telemetry integration for the cluster.
+        "type": "A String", # Type of the integration.
+      },
+      "desiredClusterAutoscaling": { # ClusterAutoscaling contains global, per-cluster information # Cluster-level autoscaling configuration.
+          # required by Cluster Autoscaler to automatically adjust
+          # the size of the cluster and create/delete
+          # node pools based on the current needs.
+        "autoprovisioningNodePoolDefaults": { # AutoprovisioningNodePoolDefaults contains defaults for a node pool created # AutoprovisioningNodePoolDefaults contains defaults for a node pool
+            # created by NAP.
+            # by NAP.
+          "minCpuPlatform": "A String", # Minimum CPU platform to be used for NAP created node pools.
+              # The instance may be scheduled on the specified or newer CPU platform.
+              # Applicable values are the friendly names of CPU platforms, such as
+              # &lt;code&gt;minCpuPlatform: &amp;quot;Intel Haswell&amp;quot;&lt;/code&gt; or
+              # &lt;code&gt;minCpuPlatform: &amp;quot;Intel Sandy Bridge&amp;quot;&lt;/code&gt;. For more
+              # information, read [how to specify min CPU
+              # platform](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
+              # To unset the min cpu platform field pass "automatic" as field value.
+          "management": { # NodeManagement defines the set of node management services turned on for the # Specifies the node management options for NAP created node-pools.
+              # node pool.
+            "upgradeOptions": { # AutoUpgradeOptions defines the set of options for the user to control how # Specifies the Auto Upgrade knobs for the node pool.
+                # the Auto Upgrades will proceed.
+              "description": "A String", # [Output only] This field is set when upgrades are about to commence
+                  # with the description of the upgrade.
+              "autoUpgradeStartTime": "A String", # [Output only] This field is set when upgrades are about to commence
+                  # with the approximate start time for the upgrades, in
+                  # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+            },
+            "autoRepair": True or False, # Whether the nodes will be automatically repaired.
+            "autoUpgrade": True or False, # Whether the nodes will be automatically upgraded.
+          },
+          "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If
+              # service_account is specified, scopes should be empty.
+          "oauthScopes": [ # Scopes that are used by NAP when creating node pools. If oauth_scopes are
+              # specified, service_account should be empty.
+            "A String",
+          ],
+          "upgradeSettings": { # These upgrade settings control the level of parallelism and the level of # Specifies the upgrade settings for NAP created node pools
+              # disruption caused by an upgrade.
+              #
+              # maxUnavailable controls the number of nodes that can be simultaneously
+              # unavailable.
+              #
+              # maxSurge controls the number of additional nodes that can be added to the
+              # node pool temporarily for the time of the upgrade to increase the number of
+              # available nodes.
+              #
+              # (maxUnavailable + maxSurge) determines the level of parallelism (how many
+              # nodes are being upgraded at the same time).
+              #
+              # Note: upgrades inevitably introduce some disruption since workloads need to
+              # be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0,
+              # this holds true. (Disruption stays within the limits of
+              # PodDisruptionBudget, if it is configured.)
+              #
+              # Consider a hypothetical node pool with 5 nodes having maxSurge=2,
+              # maxUnavailable=1. This means the upgrade process upgrades 3 nodes
+              # simultaneously. It creates 2 additional (upgraded) nodes, then it brings
+              # down 3 old (not yet upgraded) nodes at the same time. This ensures that
+              # there are always at least 4 nodes available.
+            "maxSurge": 42, # The maximum number of nodes that can be created beyond the current size
+                # of the node pool during the upgrade process.
+            "maxUnavailable": 42, # The maximum number of nodes that can be simultaneously unavailable during
+                # the upgrade process. A node is considered available if its status is
+                # Ready.
+          },
+        },
+        "resourceLimits": [ # Contains global constraints regarding minimum and maximum
+            # amount of resources in the cluster.
+          { # Contains information about amount of some resource in the cluster.
+              # For memory, value should be in GB.
+            "resourceType": "A String", # Resource name "cpu", "memory" or gpu-specific string.
+            "minimum": "A String", # Minimum amount of the resource in the cluster.
+            "maximum": "A String", # Maximum amount of the resource in the cluster.
+          },
+        ],
+        "autoprovisioningLocations": [ # The list of Google Compute Engine
+            # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+            # NodePool's nodes can be created by NAP.
+          "A String",
+        ],
+        "autoscalingProfile": "A String", # Defines autoscaling behaviour.
+        "enableNodeAutoprovisioning": True or False, # Enables automatic node pool creation and deletion.
+      },
+      "desiredNodePoolAutoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to # Autoscaler configuration for the node pool specified in
+          # desired_node_pool_id. If there is only one pool in the
+          # cluster and desired_node_pool_id is not provided then
+          # the change applies to that single node pool.
+          # adjust the size of the node pool to the current cluster usage.
+        "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be &gt;= 1 and &lt;=
+            # max_node_count.
+        "autoprovisioned": True or False, # Can this node pool be deleted automatically.
+        "enabled": True or False, # Is autoscaling enabled for this node pool.
+        "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be &gt;= min_node_count. There
+            # has to enough quota to scale up the cluster.
+      },
+      "desiredVerticalPodAutoscaling": { # VerticalPodAutoscaling contains global, per-cluster information # Cluster-level Vertical Pod Autoscaling configuration.
+          # required by Vertical Pod Autoscaler to automatically adjust
+          # the resources of pods controlled by it.
+        "enabled": True or False, # Enables vertical pod autoscaling.
+      },
+      "desiredNodeVersion": "A String", # The Kubernetes version to change the nodes to (typically an
+          # upgrade).
+          #
+          # Users may specify either explicit versions offered by
+          # Kubernetes Engine or version aliases, which have the following behavior:
+          #
+          # - "latest": picks the highest valid Kubernetes version
+          # - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
+          # - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
+          # - "1.X.Y-gke.N": picks an explicit Kubernetes version
+          # - "-": picks the Kubernetes master version
+      "desiredWorkloadIdentityConfig": { # Configuration for the use of Kubernetes Service Accounts in GCP IAM # Configuration for Workload Identity.
+          # policies.
+        "workloadPool": "A String", # The workload pool to attach all Kubernetes service accounts to.
+        "identityNamespace": "A String", # IAM Identity Namespace to attach all Kubernetes Service Accounts to.
+      },
+      "desiredPodSecurityPolicyConfig": { # Configuration for the PodSecurityPolicy feature. # The desired configuration options for the PodSecurityPolicy feature.
+        "enabled": True or False, # Enable the PodSecurityPolicy controller for this cluster. If enabled, pods
+            # must be valid under a PodSecurityPolicy to be created.
+      },
       "desiredAddonsConfig": { # Configuration for the addons that can be automatically spun up in the # Configurations for the various addons available to run in the cluster.
           # cluster, enabling additional functionality.
         "networkPolicyConfig": { # Configuration for NetworkPolicy. This only tracks whether the addon # Configuration for NetworkPolicy. This only tracks whether the addon
@@ -4198,14 +5097,29 @@
               # When enabled, it runs a small pod in the cluster that manages the load
               # balancers.
         },
+        "kalmConfig": { # Configuration options for the KALM addon. # Configuration for the KALM addon, which manages the lifecycle of k8s
+            # applications.
+          "enabled": True or False, # Whether KALM is enabled for this cluster.
+        },
         "horizontalPodAutoscaling": { # Configuration options for the horizontal pod autoscaling feature, which # Configuration for the horizontal pod autoscaling feature, which
             # increases or decreases the number of replica pods a replication controller
             # has based on the resource usage of the existing pods.
             # increases or decreases the number of replica pods a replication controller
             # has based on the resource usage of the existing pods.
           "disabled": True or False, # Whether the Horizontal Pod Autoscaling feature is enabled in the cluster.
-              # When enabled, it ensures that a Heapster pod is running in the cluster,
-              # which is also used by the Cloud Monitoring service.
+              # When enabled, it ensures that metrics are collected into Stackdriver
+              # Monitoring.
+        },
+        "gcePersistentDiskCsiDriverConfig": { # Configuration for the Compute Engine PD CSI driver. This option can only be # Configuration for the Compute Engine Persistent Disk CSI driver.
+            # enabled at cluster creation time.
+          "enabled": True or False, # Whether the Compute Engine PD CSI driver is enabled for this cluster.
+        },
+        "configConnectorConfig": { # Configuration options for the Config Connector add-on. # Configuration for the ConfigConnector add-on, a Kubernetes
+            # extension to manage hosted GCP services through the Kubernetes API
+          "enabled": True or False, # Whether Cloud Connector is enabled for this cluster.
+        },
+        "dnsCacheConfig": { # Configuration for NodeLocal DNSCache # Configuration for NodeLocalDNS, a dns cache running on cluster nodes
+          "enabled": True or False, # Whether NodeLocal DNSCache is enabled for this cluster.
         },
         "istioConfig": { # Configuration options for Istio addon. # Configuration for Istio, an open platform to connect, manage, and secure
             # microservices.
@@ -4220,65 +5134,10 @@
           "disabled": True or False, # Whether the Kubernetes Dashboard is enabled for this cluster.
         },
       },
-      "desiredVerticalPodAutoscaling": { # VerticalPodAutoscaling contains global, per-cluster information # Cluster-level Vertical Pod Autoscaling configuration.
-          # required by Vertical Pod Autoscaler to automatically adjust
-          # the resources of pods controlled by it.
-        "enabled": True or False, # Enables vertical pod autoscaling.
-      },
-      "desiredMasterVersion": "A String", # The Kubernetes version to change the master to. The only valid value is the
-          # latest supported version.
-          #
-          # Users may specify either explicit versions offered by
-          # Kubernetes Engine or version aliases, which have the following behavior:
-          #
-          # - "latest": picks the highest valid Kubernetes version
-          # - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
-          # - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
-          # - "1.X.Y-gke.N": picks an explicit Kubernetes version
-          # - "-": picks the default Kubernetes version
-      "desiredLocations": [ # The desired list of Google Compute Engine
-          # [zones](/compute/docs/zones#available) in which the cluster's nodes
-          # should be located. Changing the locations a cluster is in will result
-          # in nodes being either created or removed from the cluster, depending on
-          # whether locations are being added or removed.
-          #
-          # This list must always include the cluster's primary zone.
-        "A String",
-      ],
-      "desiredNodeVersion": "A String", # The Kubernetes version to change the nodes to (typically an
-          # upgrade).
-          #
-          # Users may specify either explicit versions offered by
-          # Kubernetes Engine or version aliases, which have the following behavior:
-          #
-          # - "latest": picks the highest valid Kubernetes version
-          # - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
-          # - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
-          # - "1.X.Y-gke.N": picks an explicit Kubernetes version
-          # - "-": picks the Kubernetes master version
-      "desiredMonitoringService": "A String", # The monitoring service the cluster should use to write metrics.
-          # Currently available options:
-          #
-          # * "monitoring.googleapis.com/kubernetes" - the Google Cloud Monitoring
-          # service with Kubernetes-native resource model in Stackdriver
-          # * "monitoring.googleapis.com" - the Google Cloud Monitoring service
-          # * "none" - no metrics will be exported from the cluster
-      "desiredBinaryAuthorization": { # Configuration for Binary Authorization. # The desired configuration options for the Binary Authorization feature.
-        "enabled": True or False, # Enable Binary Authorization for this cluster. If enabled, all container
-            # images will be validated by Google Binauthz.
-      },
-      "desiredPrivateClusterConfig": { # Configuration options for private clusters. # The desired private cluster configuration.
-        "enablePrivateEndpoint": True or False, # Whether the master's internal IP address is used as the cluster endpoint.
-        "publicEndpoint": "A String", # Output only. The external IP address of this cluster's master endpoint.
-        "enablePrivateNodes": True or False, # Whether nodes have internal IP addresses only. If enabled, all nodes are
-            # given only RFC 1918 private addresses and communicate with the master via
-            # private networking.
-        "privateEndpoint": "A String", # Output only. The internal IP address of this cluster's master endpoint.
-        "masterIpv4CidrBlock": "A String", # The IP range in CIDR notation to use for the hosted master network. This
-            # range will be used for assigning internal IP addresses to the master or
-            # set of masters, as well as the ILB VIP. This range must not overlap with
-            # any other ranges in use within the cluster's network.
-        "enablePeeringRouteSharing": True or False, # Whether to enable route sharing over the network peering.
+      "desiredTpuConfig": { # Configuration for Cloud TPU. # The desired Cloud TPU configuration.
+        "useServiceNetworking": True or False, # Whether to use service networking for Cloud TPU or not.
+        "ipv4CidrBlock": "A String", # IPv4 CIDR block reserved for Cloud TPU in the VPC.
+        "enabled": True or False, # Whether Cloud TPU integration is enabled or not.
       },
       "desiredResourceUsageExportConfig": { # Configuration for exporting cluster resource usages. # The desired configuration for exporting resource usage.
         "bigqueryDestination": { # Parameters for using BigQuery as the destination of resource usage export. # Configuration to use BigQuery as usage export destination.
@@ -4292,50 +5151,86 @@
               # records.
         },
       },
-      "desiredWorkloadIdentityConfig": { # Configuration for the use of Kubernetes Service Accounts in GCP IAM # Configuration for Workload Identity.
-          # policies.
-        "identityNamespace": "A String", # IAM Identity Namespace to attach all Kubernetes Service Accounts to.
+      "desiredIntraNodeVisibilityConfig": { # IntraNodeVisibilityConfig contains the desired config of the intra-node # The desired config of Intra-node visibility.
+          # visibility on this cluster.
+        "enabled": True or False, # Enables intra node visibility for this cluster.
       },
-      "desiredClusterAutoscaling": { # ClusterAutoscaling contains global, per-cluster information # Cluster-level autoscaling configuration.
-          # required by Cluster Autoscaler to automatically adjust
-          # the size of the cluster and create/delete
-          # node pools based on the current needs.
-        "autoprovisioningNodePoolDefaults": { # AutoprovisioningNodePoolDefaults contains defaults for a node pool created # AutoprovisioningNodePoolDefaults contains defaults for a node pool
-            # created by NAP.
-            # by NAP.
-          "serviceAccount": "A String", # The Google Cloud Platform Service Account to be used by the node VMs. If
-              # service_account is specified, scopes should be empty.
-          "oauthScopes": [ # Scopes that are used by NAP when creating node pools. If oauth_scopes are
-              # specified, service_account should be empty.
-            "A String",
-          ],
-        },
-        "resourceLimits": [ # Contains global constraints regarding minimum and maximum
-            # amount of resources in the cluster.
-          { # Contains information about amount of some resource in the cluster.
-              # For memory, value should be in GB.
-            "resourceType": "A String", # Resource name "cpu", "memory" or gpu-specific string.
-            "minimum": "A String", # Minimum amount of the resource in the cluster.
-            "maximum": "A String", # Maximum amount of the resource in the cluster.
+      "desiredMasterAuthorizedNetworksConfig": { # Configuration options for the master authorized networks feature. Enabled # The desired configuration options for master authorized networks feature.
+          # master authorized networks will disallow all external traffic to access
+          # Kubernetes master through HTTPS except traffic from the given CIDR blocks,
+          # Google Compute Engine Public IPs and Google Prod IPs.
+        "enabled": True or False, # Whether or not master authorized networks is enabled.
+        "cidrBlocks": [ # cidr_blocks define up to 10 external networks that could access
+            # Kubernetes master through HTTPS.
+          { # CidrBlock contains an optional name and one CIDR block.
+            "cidrBlock": "A String", # cidr_block must be specified in CIDR notation.
+            "displayName": "A String", # display_name is an optional field for users to identify CIDR blocks.
           },
         ],
-        "autoprovisioningLocations": [ # The list of Google Compute Engine [zones](/compute/docs/zones#available)
-            # in which the NodePool's nodes can be created by NAP.
-          "A String",
-        ],
-        "enableNodeAutoprovisioning": True or False, # Enables automatic node pool creation and deletion.
       },
-      "desiredNodePoolAutoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to # Autoscaler configuration for the node pool specified in
-          # desired_node_pool_id. If there is only one pool in the
-          # cluster and desired_node_pool_id is not provided then
-          # the change applies to that single node pool.
-          # adjust the size of the node pool to the current cluster usage.
-        "minNodeCount": 42, # Minimum number of nodes in the NodePool. Must be >= 1 and <=
-            # max_node_count.
-        "autoprovisioned": True or False, # Can this node pool be deleted automatically.
-        "enabled": True or False, # Is autoscaling enabled for this node pool.
-        "maxNodeCount": 42, # Maximum number of nodes in the NodePool. Must be >= min_node_count. There
-            # has to enough quota to scale up the cluster.
+      "desiredReleaseChannel": { # ReleaseChannel indicates which release channel a cluster is # The desired release channel configuration.
+          # subscribed to. Release channels are arranged in order of risk and
+          # frequency of updates.
+          #
+          # When a cluster is subscribed to a release channel, Google maintains
+          # both the master version and the node version. Node auto-upgrade
+          # defaults to true and cannot be disabled. Updates to version related
+          # fields (e.g. current_master_version) return an error.
+        "channel": "A String", # channel specifies which release channel the cluster is subscribed to.
+      },
+      "desiredLocations": [ # The desired list of Google Compute Engine
+          # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+          # cluster's nodes should be located. Changing the locations a cluster is in
+          # will result in nodes being either created or removed from the cluster,
+          # depending on whether locations are being added or removed.
+          #
+          # This list must always include the cluster's primary zone.
+        "A String",
+      ],
+      "desiredMasterVersion": "A String", # The Kubernetes version to change the master to. The only valid value is the
+          # latest supported version.
+          #
+          # Users may specify either explicit versions offered by
+          # Kubernetes Engine or version aliases, which have the following behavior:
+          #
+          # - "latest": picks the highest valid Kubernetes version
+          # - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
+          # - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
+          # - "1.X.Y-gke.N": picks an explicit Kubernetes version
+          # - "-": picks the default Kubernetes version
+      "desiredMonitoringService": "A String", # The monitoring service the cluster should use to write metrics.
+          # Currently available options:
+          #
+          # * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
+          # service with a Kubernetes-native resource model
+          # * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
+          #   longer available as of GKE 1.15).
+          # * `none` - No metrics will be exported from the cluster.
+          #
+          # If left as an empty string,`monitoring.googleapis.com/kubernetes` will be
+          # used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
+      "desiredBinaryAuthorization": { # Configuration for Binary Authorization. # The desired configuration options for the Binary Authorization feature.
+        "enabled": True or False, # Enable Binary Authorization for this cluster. If enabled, all container
+            # images will be validated by Google Binauthz.
+      },
+      "desiredPrivateClusterConfig": { # Configuration options for private clusters. # The desired private cluster configuration.
+        "enablePrivateEndpoint": True or False, # Whether the master's internal IP address is used as the cluster endpoint.
+        "publicEndpoint": "A String", # Output only. The external IP address of this cluster's master endpoint.
+        "masterGlobalAccessConfig": { # Configuration for controlling master global access settings. # Controls master global access settings.
+          "enabled": True or False, # Whenever master is accessible globally or not.
+        },
+        "enablePrivateNodes": True or False, # Whether nodes have internal IP addresses only. If enabled, all nodes are
+            # given only RFC 1918 private addresses and communicate with the master via
+            # private networking.
+        "privateEndpoint": "A String", # Output only. The internal IP address of this cluster's master endpoint.
+        "masterIpv4CidrBlock": "A String", # The IP range in CIDR notation to use for the hosted master network. This
+            # range will be used for assigning internal IP addresses to the master or
+            # set of masters, as well as the ILB VIP. This range must not overlap with
+            # any other ranges in use within the cluster's network.
+        "peeringName": "A String", # Output only. The peering name in the customer VPC used by this cluster.
+      },
+      "desiredShieldedNodes": { # Configuration of Shielded Nodes feature. # Configuration for Shielded Nodes.
+        "enabled": True or False, # Whether Shielded Nodes features are enabled on all nodes in this cluster.
       },
       "desiredDatabaseEncryption": { # Configuration of etcd encryption. # Configuration of etcd encryption.
         "state": "A String", # Denotes the state of etcd encryption.
@@ -4343,10 +5238,10 @@
             # Ex. projects/my-project/locations/global/keyRings/my-ring/cryptoKeys/my-key
       },
     },
-    "zone": "A String", # Deprecated. The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the cluster
-        # resides.
-        # This field has been deprecated and replaced by the name field.
+    "zone": "A String", # Required. Deprecated. The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # cluster resides. This field has been deprecated and replaced by the name
+        # field.
     "name": "A String", # The name (project, location, cluster) of the cluster to update.
         # Specified in the format 'projects/*/locations/*/clusters/*'.
   }
@@ -4362,20 +5257,13 @@
     { # This operation resource represents operations that may have happened or are
       # happening on the cluster. All fields are output only.
     "status": "A String", # The current status of the operation.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
     "endTime": "A String", # [Output only] The time the operation completed, in
         # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
     "name": "A String", # The server-assigned ID for the operation.
     "zone": "A String", # The name of the Google Compute Engine
-        # [zone](/compute/docs/zones#available) in which the operation
-        # is taking place.
-        # This field is deprecated, use location instead.
-    "location": "A String", # [Output only] The name of the Google Compute Engine
-        # [zone](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "detail": "A String", # Detailed operation progress, if available.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "clusterConditions": [ # Which conditions caused the current cluster state.
       { # StatusCondition describes why a cluster or a node pool has a certain status
           # (e.g., ERROR or DEGRADED).
@@ -4383,9 +5271,12 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "detail": "A String", # Detailed operation progress, if available.
+    "targetLink": "A String", # Server-defined URL for the target of the operation.
     "operationType": "A String", # The operation type.
-    "progress": { # Information about operation (or operation stage) progress. # [Output only] Progress information for an operation.
+    "progress": { # Information about operation (or operation stage) progress. # Output only. [Output only] Progress information for an operation.
       "status": "A String", # Status of an operation stage.
           # Unset for single-stage operations.
       "metrics": [ # Progress metric bundle, for example:
@@ -4397,8 +5288,7 @@
         { # Progress metric is (string, int|float|string) pair.
           "stringValue": "A String", # For metrics with custom values (ratios, visual progress, etc.).
           "intValue": "A String", # For metrics with integer value.
-          "name": "A String", # Metric name, required.
-              # e.g., "nodes total", "percent done"
+          "name": "A String", # Required. Metric name, e.g., "nodes total", "percent done".
           "doubleValue": 3.14, # For metrics with floating point value.
         },
       ],
@@ -4416,7 +5306,11 @@
       },
     ],
     "selfLink": "A String", # Server-defined URL for the resource.
-    "targetLink": "A String", # Server-defined URL for the target of the operation.
+    "location": "A String", # [Output only] The name of the Google Compute Engine
+        # [zone](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # or
+        # [region](https://cloud.google.com/compute/docs/regions-zones/regions-zones#available)
+        # in which the cluster resides.
   }</pre>
 </div>