chore: regens API reference docs (#889)

diff --git a/docs/dyn/container_v1.projects.zones.clusters.html b/docs/dyn/container_v1.projects.zones.clusters.html
index c89541e..bc8d0e2 100644
--- a/docs/dyn/container_v1.projects.zones.clusters.html
+++ b/docs/dyn/container_v1.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,44 +95,44 @@
   <code><a href="#get">get(projectId, zone, clusterId, name=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Gets the details of 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 of 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:
@@ -140,19 +140,19 @@
 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)
+[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, 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:
 
 { # SetAddonsConfigRequest sets the addons associated with the cluster.
     "projectId": "A String", # 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.
       "httpLoadBalancing": { # Configuration options for the HTTP (L7) load balancing controller addon, # Configuration for the HTTP (L7) load balancing controller addon, which
@@ -176,14 +176,18 @@
           # https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards
         "disabled": True or False, # Whether the Kubernetes Dashboard is enabled for this cluster.
       },
+      "cloudRunConfig": { # Configuration options for the Cloud Run feature. # Configuration for the Cloud Run addon, which allows the user to use a
+          # managed Knative service.
+        "disabled": True or False, # Whether Cloud Run addon 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.
       },
     },
     "clusterId": "A String", # Deprecated. The name of the cluster to upgrade.
@@ -191,9 +195,9 @@
     "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](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.
@@ -210,18 +214,11 @@
     "selfLink": "A String", # Server-defined URL for the resource.
     "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.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "detail": "A String", # Detailed operation progress, if available.
     "operationType": "A String", # The operation type.
     "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](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
     "nodepoolConditions": [ # 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).
@@ -229,9 +226,6 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "endTime": "A String", # [Output only] The time the operation completed, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
     "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).
@@ -239,11 +233,43 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "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:
+          #   metrics: [{name: "nodes done",     int_value: 15},
+          #             {name: "nodes total",    int_value: 32}]
+          # or
+          #   metrics: [{name: "progress",       double_value: 0.56},
+          #             {name: "progress scale", double_value: 1.0}]
+        { # 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", # Required. Metric name, e.g., "nodes total", "percent done".
+          "doubleValue": 3.14, # For metrics with floating point value.
+        },
+      ],
+      "stages": [ # Substages of an operation or a stage.
+        # Object with schema name: OperationProgress
+      ],
+      "name": "A String", # A non-parameterized string describing an operation stage.
+          # Unset for single-stage operations.
+    },
+    "endTime": "A String", # [Output only] The time the operation completed, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
+    "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:
@@ -251,12 +277,12 @@
 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.
-This field has been deprecated and replaced by the name field. (required)
+[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, 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.
@@ -268,9 +294,9 @@
     "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](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.
@@ -287,18 +313,11 @@
     "selfLink": "A String", # Server-defined URL for the resource.
     "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.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "detail": "A String", # Detailed operation progress, if available.
     "operationType": "A String", # The operation type.
     "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](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
     "nodepoolConditions": [ # 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).
@@ -306,9 +325,6 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "endTime": "A String", # [Output only] The time the operation completed, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
     "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).
@@ -316,16 +332,49 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "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:
+          #   metrics: [{name: "nodes done",     int_value: 15},
+          #             {name: "nodes total",    int_value: 32}]
+          # or
+          #   metrics: [{name: "progress",       double_value: 0.56},
+          #             {name: "progress scale", double_value: 1.0}]
+        { # 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", # Required. Metric name, e.g., "nodes total", "percent done".
+          "doubleValue": 3.14, # For metrics with floating point value.
+        },
+      ],
+      "stages": [ # Substages of an operation or a stage.
+        # Object with schema name: OperationProgress
+      ],
+      "name": "A String", # A non-parameterized string describing an operation stage.
+          # Unset for single-stage operations.
+    },
+    "endTime": "A String", # [Output only] The time the operation completed, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
+    "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
@@ -340,10 +389,10 @@
 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](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.
@@ -353,17 +402,53 @@
     "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/v1/projects.zones.clusters)
+        # [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/v1/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.
@@ -373,7 +458,20 @@
                 # Time format should be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt)
                 # 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/
@@ -388,8 +486,8 @@
         "cidrBlocks": [ # cidr_blocks define up to 50 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.
           },
         ],
       },
@@ -416,68 +514,77 @@
             # https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards
           "disabled": True or False, # Whether the Kubernetes Dashboard is enabled for this cluster.
         },
+        "cloudRunConfig": { # Configuration options for the Cloud Run feature. # Configuration for the Cloud Run addon, which allows the user to use a
+            # managed Knative service.
+          "disabled": True or False, # Whether Cloud Run addon 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.
         },
       },
       "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",
       ],
-      "enableKubernetesAlpha": True or False, # Kubernetes alpha features are enabled on this cluster. This includes alpha
-          # API groups (e.g. v1alpha1) 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.
+      "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.
+      },
       "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](/compute/docs/networks-and-firewalls#networks) to which the
-          # cluster is connected. If left unspecified, the `default` network
-          # will be used.
+          # [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.
       "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.
+          # [zone](https://cloud.google.com/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.
+      "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.
+      "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](/compute/docs/vpc) to which the cluster is connected.
-            # Example: projects/my-project/regions/us-central1/subnetworks/my-subnet
+            # [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(/compute/docs/networks-and-firewalls#networks) to which
-            # the cluster is connected.
-            # Example: projects/my-project/global/networks/my-network
+            # 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.
       },
       "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:
+          # 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.
+      "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.
+      },
       "ipAllocationPolicy": { # Configuration for controlling how IPs are allocated in the cluster. # Configuration for cluster IP allocation.
-        "nodeIpv4Cidr": "A String", # This field is deprecated, use node_ipv4_cidr_block.
         "useIpAliases": True or False, # Whether alias IPs will be used for pod IPs in the cluster.
-        "clusterSecondaryRangeName": "A String", # The name of the secondary range to be used for the cluster CIDR
-            # block.  The secondary range will be used for pod IP
-            # addresses. This must be an existing secondary range associated
-            # with the cluster subnetwork.
-            #
-            # This field is only applicable with use_ip_aliases is true and
-            # create_subnetwork is false.
+        "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.
             #
@@ -493,6 +600,13 @@
             # 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.
+        "clusterSecondaryRangeName": "A String", # The name of the secondary range to be used for the cluster CIDR
+            # block.  The secondary range will be used for pod IP
+            # addresses. This must be an existing secondary range associated
+            # with the cluster subnetwork.
+            #
+            # This field is only applicable with use_ip_aliases is true and
+            # create_subnetwork is false.
         "servicesIpv4CidrBlock": "A String", # The IP address range of the services IPs in this cluster. If blank, a range
             # will be automatically chosen with the default size.
             #
@@ -553,6 +667,11 @@
             # create_subnetwork is false.
         "servicesIpv4Cidr": "A String", # This field is deprecated, use services_ipv4_cidr_block.
       },
+      "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.
+      },
       "resourceUsageExportConfig": { # Configuration for exporting cluster resource usages. # Configuration for exporting resource usages. Resource usage export is
           # disabled when this config is unspecified.
         "bigqueryDestination": { # Parameters for using BigQuery as the destination of resource usage export. # Configuration to use BigQuery as usage export destination.
@@ -566,7 +685,19 @@
               # records.
         },
       },
-      "enableTpu": True or False, # Enable the ability to use Cloud TPUs in this cluster.
+      "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.
+        "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).
@@ -576,18 +707,103 @@
       ],
       "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.
+      "resourceLabels": { # The resource labels for the cluster to use to annotate any related
+          # Google Compute Engine resources.
+        "a_key": "A String",
+      },
       "status": "A String", # [Output only] The current status of this cluster.
+      "autoscaling": { # 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.
+          "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.
+            "autoRepair": True or False, # A flag that specifies whether the node auto-repair is enabled for the node
+                # pool. If enabled, the nodes in this node pool will be monitored and, if
+                # they fail health checks too many times, an automatic repair action will be
+                # triggered.
+            "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.
+            },
+            "autoUpgrade": True or False, # A flag that specifies whether node auto-upgrade is enabled for the node
+                # pool. If enabled, node auto-upgrade helps keep the nodes in your node pool
+                # up to date with the latest release version of Kubernetes.
+          },
+          "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.
+          },
+          "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.
+          },
+        ],
+        "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",
+        ],
+        "enableNodeAutoprovisioning": True or False, # Enables automatic node pool creation and deletion.
+      },
       "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
-          # [NodePools.version](/kubernetes-engine/docs/reference/rest/v1/projects.zones.clusters.nodePools)
+          # [NodePools.version](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.zones.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.
+      "binaryAuthorization": { # Configuration for Binary Authorization. # Configuration for Binary Authorization.
+        "enabled": True or False, # Enable Binary Authorization for this cluster. If enabled, all container
+            # images will be validated by Binary Authorization.
+      },
       "labelFingerprint": "A String", # The fingerprint of the set of labels for this cluster.
       "currentMasterVersion": "A String", # [Output only] The current software version of the master endpoint.
       "masterAuth": { # The authentication information for accessing the master endpoint. # The authentication information for accessing the master endpoint.
@@ -604,17 +820,17 @@
             # 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", # [Output only] Base64-encoded public certificate that is the root of
+            # trust for the cluster.
+        "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", # [Output only] Base64-encoded public certificate that is the root of
-            # trust for the cluster.
       },
       "expireTime": "A String", # [Output only] The time the cluster will be automatically
           # deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
@@ -631,33 +847,7 @@
             # 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.
-          "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",
-          ],
-          "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 <=
-                # max_node_count.
-            "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.
-          },
-          "maxPodsConstraint": { # Constraints applied to pods. # The constraint on the maximum number of pods that can be run
-              # simultaneously on a node in the node pool.
-            "maxPodsPerNode": "A String", # Constraint enforced on the max num of pods per node.
-          },
-          "version": "A String", # The version of the Kubernetes of this node.
-          "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>
-              # 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.
+          "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, # A flag that specifies whether the node auto-repair is enabled for the node
@@ -676,27 +866,103 @@
                 # pool. If enabled, node auto-upgrade helps keep the nodes in your node pool
                 # up to date with the latest release version of Kubernetes.
           },
+          "name": "A String", # The name of the 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",
+          ],
+          "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 &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.
+          },
+          "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
+              # simultaneously on a node in the node pool.
+            "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 &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.
           "config": { # Parameters that describe the nodes in a cluster. # The node configuration of the pool.
-            "taints": [ # List of kubernetes taints to be applied to each node.
-                #
-                # For more information, including usage and the valid values, see:
-                # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
-              { # Kubernetes taint is comprised of three fields: key, value, and effect. Effect
-                  # can only be one of three types:  NoSchedule, PreferNoSchedule or NoExecute.
-                  #
-                  # For more information, including usage and the valid values, see:
-                  # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
-                "key": "A String", # Key for taint.
-                "effect": "A String", # Effect for taint.
-                "value": "A String", # Value for taint.
-              },
-            ],
+            "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",
+              ],
+              "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.
+              "consumeReservationType": "A String", # Corresponds to the type of reservation consumption.
+            },
+            "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.
+            },
             "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
                 # `n1-standard-1`.
+            "shieldedInstanceConfig": { # A set of Shielded Instance options. # Shielded Instance options.
+              "enableIntegrityMonitoring": True or False, # Defines whether the instance has integrity monitoring enabled.
+                  #
+                  # Enables monitoring and attestation of the boot integrity of the instance.
+                  # The attestation is performed against the integrity policy baseline. This
+                  # baseline is initially derived from the implicitly trusted boot image when
+                  # the instance is created.
+              "enableSecureBoot": True or False, # Defines whether the instance has Secure Boot enabled.
+                  #
+                  # Secure Boot helps ensure that the system only runs authentic software by
+                  # verifying the digital signature of all boot components, and halting the
+                  # boot process if signature verification fails.
+            },
             "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify
                 # valid sources or targets for network firewalls and are specified by
                 # the client during cluster or node pool creation. Each tag within the list
@@ -716,8 +982,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.
                 #
@@ -728,7 +995,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.
@@ -737,6 +1005,11 @@
             "diskType": "A String", # Type of the disk attached to each node (e.g. 'pd-standard' or 'pd-ssd')
                 #
                 # If unspecified, the default disk type is 'pd-standard'
+            "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.
+            },
             "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB.
                 # The smallest allowed disk size is 10GB.
                 #
@@ -747,14 +1020,14 @@
               { # 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)
             "metadata": { # The metadata key/value pairs assigned to instances in the cluster.
@@ -769,8 +1042,9 @@
                 #  "configure-sh"
                 #  "containerd-configure-sh"
                 #  "enable-os-login"
-                #  "gci-update-strategy"
                 #  "gci-ensure-gke-docker"
+                #  "gci-metrics-enabled"
+                #  "gci-update-strategy"
                 #  "instance-template"
                 #  "kube-env"
                 #  "startup-script"
@@ -790,13 +1064,27 @@
                 # The total size of all keys and values must be less than 512 KB.
               "a_key": "A String",
             },
+            "taints": [ # List of kubernetes taints to be applied to each node.
+                #
+                # For more information, including usage and the valid values, see:
+                # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
+              { # Kubernetes taint is comprised of three fields: key, value, and effect. Effect
+                  # can only be one of three types:  NoSchedule, PreferNoSchedule or NoExecute.
+                  #
+                  # 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.
+              },
+            ],
             "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.
             "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.
           },
           "conditions": [ # Which conditions caused the current node pool state.
@@ -806,36 +1094,30 @@
               "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.
-      "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.
+      "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.
       },
-      "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.
-        "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.
-        "privateEndpoint": "A String", # Output only. The internal IP address of this cluster's master 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.
-      },
+      "enableTpu": True or False, # Enable the ability to use Cloud TPUs in this cluster.
       "endpoint": "A String", # [Output only] The IP address of this cluster's master endpoint.
           # The endpoint can be accessed from the internet at
           # `https://username:password@endpoint/`.
@@ -847,15 +1129,25 @@
       "loggingService": "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.
+          # * `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` will be used.
-      "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.
+          #
+          # If left as an empty string,`logging.googleapis.com/kubernetes` will be
+          # used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
+      "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. v1alpha1) 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.
       "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
@@ -880,26 +1172,42 @@
           #
           # If unspecified, the defaults are used.
           # This field is deprecated, use node_pool.config instead.
-        "taints": [ # List of kubernetes taints to be applied to each node.
-            #
-            # For more information, including usage and the valid values, see:
-            # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
-          { # Kubernetes taint is comprised of three fields: key, value, and effect. Effect
-              # can only be one of three types:  NoSchedule, PreferNoSchedule or NoExecute.
-              #
-              # For more information, including usage and the valid values, see:
-              # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
-            "key": "A String", # Key for taint.
-            "effect": "A String", # Effect for taint.
-            "value": "A String", # Value for taint.
-          },
-        ],
+        "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",
+          ],
+          "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.
+          "consumeReservationType": "A String", # Corresponds to the type of reservation consumption.
+        },
+        "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.
+        },
         "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
             # `n1-standard-1`.
+        "shieldedInstanceConfig": { # A set of Shielded Instance options. # Shielded Instance options.
+          "enableIntegrityMonitoring": True or False, # Defines whether the instance has integrity monitoring enabled.
+              #
+              # Enables monitoring and attestation of the boot integrity of the instance.
+              # The attestation is performed against the integrity policy baseline. This
+              # baseline is initially derived from the implicitly trusted boot image when
+              # the instance is created.
+          "enableSecureBoot": True or False, # Defines whether the instance has Secure Boot enabled.
+              #
+              # Secure Boot helps ensure that the system only runs authentic software by
+              # verifying the digital signature of all boot components, and halting the
+              # boot process if signature verification fails.
+        },
         "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify
             # valid sources or targets for network firewalls and are specified by
             # the client during cluster or node pool creation. Each tag within the list
@@ -919,8 +1227,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.
             #
@@ -931,7 +1240,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.
@@ -940,6 +1250,11 @@
         "diskType": "A String", # Type of the disk attached to each node (e.g. 'pd-standard' or 'pd-ssd')
             #
             # If unspecified, the default disk type is 'pd-standard'
+        "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.
+        },
         "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB.
             # The smallest allowed disk size is 10GB.
             #
@@ -950,14 +1265,14 @@
           { # 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)
         "metadata": { # The metadata key/value pairs assigned to instances in the cluster.
@@ -972,8 +1287,9 @@
             #  "configure-sh"
             #  "containerd-configure-sh"
             #  "enable-os-login"
-            #  "gci-update-strategy"
             #  "gci-ensure-gke-docker"
+            #  "gci-metrics-enabled"
+            #  "gci-update-strategy"
             #  "instance-template"
             #  "kube-env"
             #  "startup-script"
@@ -993,13 +1309,27 @@
             # The total size of all keys and values must be less than 512 KB.
           "a_key": "A String",
         },
+        "taints": [ # List of kubernetes taints to be applied to each node.
+            #
+            # For more information, including usage and the valid values, see:
+            # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
+          { # Kubernetes taint is comprised of three fields: key, value, and effect. Effect
+              # can only be one of three types:  NoSchedule, PreferNoSchedule or NoExecute.
+              #
+              # 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.
+          },
+        ],
         "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.
         "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.
       },
       "clusterIpv4Cidr": "A String", # The IP address range of the container pods in this cluster, in
@@ -1007,15 +1337,16 @@
           # 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`.
       "subnetwork": "A String", # The name of the Google Compute Engine
-          # [subnetwork](/compute/docs/subnetworks) to which the
-          # cluster is connected.
-      "resourceLabels": { # The resource labels for the cluster to use to annotate any related
-          # Google Compute Engine resources.
-        "a_key": "A String",
-      },
+          # [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which
+          # the cluster is connected.
+      "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.
       "selfLink": "A String", # [Output only] Server-defined URL for the resource.
       "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>
+          # 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
@@ -1041,18 +1372,11 @@
     "selfLink": "A String", # Server-defined URL for the resource.
     "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.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "detail": "A String", # Detailed operation progress, if available.
     "operationType": "A String", # The operation type.
     "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](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
     "nodepoolConditions": [ # 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).
@@ -1060,9 +1384,6 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "endTime": "A String", # [Output only] The time the operation completed, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
     "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).
@@ -1070,6 +1391,38 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "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:
+          #   metrics: [{name: "nodes done",     int_value: 15},
+          #             {name: "nodes total",    int_value: 32}]
+          # or
+          #   metrics: [{name: "progress",       double_value: 0.56},
+          #             {name: "progress scale", double_value: 1.0}]
+        { # 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", # Required. Metric name, e.g., "nodes total", "percent done".
+          "doubleValue": 3.14, # For metrics with floating point value.
+        },
+      ],
+      "stages": [ # Substages of an operation or a stage.
+        # Object with schema name: OperationProgress
+      ],
+      "name": "A String", # A non-parameterized string describing an operation stage.
+          # Unset for single-stage operations.
+    },
+    "endTime": "A String", # [Output only] The time the operation completed, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
+    "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>
 
@@ -1090,9 +1443,9 @@
 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)
+[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, 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.
@@ -1111,18 +1464,11 @@
     "selfLink": "A String", # Server-defined URL for the resource.
     "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.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "detail": "A String", # Detailed operation progress, if available.
     "operationType": "A String", # The operation type.
     "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](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
     "nodepoolConditions": [ # 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).
@@ -1130,9 +1476,6 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "endTime": "A String", # [Output only] The time the operation completed, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
     "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).
@@ -1140,6 +1483,38 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "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:
+          #   metrics: [{name: "nodes done",     int_value: 15},
+          #             {name: "nodes total",    int_value: 32}]
+          # or
+          #   metrics: [{name: "progress",       double_value: 0.56},
+          #             {name: "progress scale", double_value: 1.0}]
+        { # 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", # Required. Metric name, e.g., "nodes total", "percent done".
+          "doubleValue": 3.14, # For metrics with floating point value.
+        },
+      ],
+      "stages": [ # Substages of an operation or a stage.
+        # Object with schema name: OperationProgress
+      ],
+      "name": "A String", # A non-parameterized string describing an operation stage.
+          # Unset for single-stage operations.
+    },
+    "endTime": "A String", # [Output only] The time the operation completed, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
+    "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>
 
@@ -1152,9 +1527,9 @@
 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)
+[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, 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.
@@ -1174,6 +1549,42 @@
         # 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.
@@ -1183,7 +1594,20 @@
               # Time format should be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt)
               # 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/
@@ -1198,8 +1622,8 @@
       "cidrBlocks": [ # cidr_blocks define up to 50 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.
         },
       ],
     },
@@ -1226,68 +1650,77 @@
           # https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards
         "disabled": True or False, # Whether the Kubernetes Dashboard is enabled for this cluster.
       },
+      "cloudRunConfig": { # Configuration options for the Cloud Run feature. # Configuration for the Cloud Run addon, which allows the user to use a
+          # managed Knative service.
+        "disabled": True or False, # Whether Cloud Run addon 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.
       },
     },
     "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",
     ],
-    "enableKubernetesAlpha": True or False, # Kubernetes alpha features are enabled on this cluster. This includes alpha
-        # API groups (e.g. v1alpha1) 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.
+    "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.
+    },
     "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](/compute/docs/networks-and-firewalls#networks) to which the
-        # cluster is connected. If left unspecified, the `default` network
-        # will be used.
+        # [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.
     "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.
+        # [zone](https://cloud.google.com/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.
+    "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.
+    "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](/compute/docs/vpc) to which the cluster is connected.
-          # Example: projects/my-project/regions/us-central1/subnetworks/my-subnet
+          # [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(/compute/docs/networks-and-firewalls#networks) to which
-          # the cluster is connected.
-          # Example: projects/my-project/global/networks/my-network
+          # 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.
     },
     "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:
+        # 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.
+    "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.
+    },
     "ipAllocationPolicy": { # Configuration for controlling how IPs are allocated in the cluster. # Configuration for cluster IP allocation.
-      "nodeIpv4Cidr": "A String", # This field is deprecated, use node_ipv4_cidr_block.
       "useIpAliases": True or False, # Whether alias IPs will be used for pod IPs in the cluster.
-      "clusterSecondaryRangeName": "A String", # The name of the secondary range to be used for the cluster CIDR
-          # block.  The secondary range will be used for pod IP
-          # addresses. This must be an existing secondary range associated
-          # with the cluster subnetwork.
-          #
-          # This field is only applicable with use_ip_aliases is true and
-          # create_subnetwork is false.
+      "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.
           #
@@ -1303,6 +1736,13 @@
           # 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.
+      "clusterSecondaryRangeName": "A String", # The name of the secondary range to be used for the cluster CIDR
+          # block.  The secondary range will be used for pod IP
+          # addresses. This must be an existing secondary range associated
+          # with the cluster subnetwork.
+          #
+          # This field is only applicable with use_ip_aliases is true and
+          # create_subnetwork is false.
       "servicesIpv4CidrBlock": "A String", # The IP address range of the services IPs in this cluster. If blank, a range
           # will be automatically chosen with the default size.
           #
@@ -1363,6 +1803,11 @@
           # create_subnetwork is false.
       "servicesIpv4Cidr": "A String", # This field is deprecated, use services_ipv4_cidr_block.
     },
+    "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.
+    },
     "resourceUsageExportConfig": { # Configuration for exporting cluster resource usages. # Configuration for exporting resource usages. Resource usage export is
         # disabled when this config is unspecified.
       "bigqueryDestination": { # Parameters for using BigQuery as the destination of resource usage export. # Configuration to use BigQuery as usage export destination.
@@ -1376,7 +1821,19 @@
             # records.
       },
     },
-    "enableTpu": True or False, # Enable the ability to use Cloud TPUs in this cluster.
+    "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.
+      "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).
@@ -1386,18 +1843,103 @@
     ],
     "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.
+    "resourceLabels": { # The resource labels for the cluster to use to annotate any related
+        # Google Compute Engine resources.
+      "a_key": "A String",
+    },
     "status": "A String", # [Output only] The current status of this cluster.
+    "autoscaling": { # 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.
+        "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.
+          "autoRepair": True or False, # A flag that specifies whether the node auto-repair is enabled for the node
+              # pool. If enabled, the nodes in this node pool will be monitored and, if
+              # they fail health checks too many times, an automatic repair action will be
+              # triggered.
+          "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.
+          },
+          "autoUpgrade": True or False, # A flag that specifies whether node auto-upgrade is enabled for the node
+              # pool. If enabled, node auto-upgrade helps keep the nodes in your node pool
+              # up to date with the latest release version of Kubernetes.
+        },
+        "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.
+        },
+        "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.
+        },
+      ],
+      "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",
+      ],
+      "enableNodeAutoprovisioning": True or False, # Enables automatic node pool creation and deletion.
+    },
     "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
-        # [NodePools.version](/kubernetes-engine/docs/reference/rest/v1/projects.zones.clusters.nodePools)
+        # [NodePools.version](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.zones.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.
+    "binaryAuthorization": { # Configuration for Binary Authorization. # Configuration for Binary Authorization.
+      "enabled": True or False, # Enable Binary Authorization for this cluster. If enabled, all container
+          # images will be validated by Binary Authorization.
+    },
     "labelFingerprint": "A String", # The fingerprint of the set of labels for this cluster.
     "currentMasterVersion": "A String", # [Output only] The current software version of the master endpoint.
     "masterAuth": { # The authentication information for accessing the master endpoint. # The authentication information for accessing the master endpoint.
@@ -1414,17 +1956,17 @@
           # 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", # [Output only] Base64-encoded public certificate that is the root of
+          # trust for the cluster.
+      "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", # [Output only] Base64-encoded public certificate that is the root of
-          # trust for the cluster.
     },
     "expireTime": "A String", # [Output only] The time the cluster will be automatically
         # deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
@@ -1441,33 +1983,7 @@
           # 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.
-        "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",
-        ],
-        "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 <=
-              # max_node_count.
-          "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.
-        },
-        "maxPodsConstraint": { # Constraints applied to pods. # The constraint on the maximum number of pods that can be run
-            # simultaneously on a node in the node pool.
-          "maxPodsPerNode": "A String", # Constraint enforced on the max num of pods per node.
-        },
-        "version": "A String", # The version of the Kubernetes of this node.
-        "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>
-            # 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.
+        "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, # A flag that specifies whether the node auto-repair is enabled for the node
@@ -1486,27 +2002,103 @@
               # pool. If enabled, node auto-upgrade helps keep the nodes in your node pool
               # up to date with the latest release version of Kubernetes.
         },
+        "name": "A String", # The name of the 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",
+        ],
+        "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 &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.
+        },
+        "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
+            # simultaneously on a node in the node pool.
+          "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 &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.
         "config": { # Parameters that describe the nodes in a cluster. # The node configuration of the pool.
-          "taints": [ # List of kubernetes taints to be applied to each node.
-              #
-              # For more information, including usage and the valid values, see:
-              # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
-            { # Kubernetes taint is comprised of three fields: key, value, and effect. Effect
-                # can only be one of three types:  NoSchedule, PreferNoSchedule or NoExecute.
-                #
-                # For more information, including usage and the valid values, see:
-                # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
-              "key": "A String", # Key for taint.
-              "effect": "A String", # Effect for taint.
-              "value": "A String", # Value for taint.
-            },
-          ],
+          "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",
+            ],
+            "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.
+            "consumeReservationType": "A String", # Corresponds to the type of reservation consumption.
+          },
+          "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.
+          },
           "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
               # `n1-standard-1`.
+          "shieldedInstanceConfig": { # A set of Shielded Instance options. # Shielded Instance options.
+            "enableIntegrityMonitoring": True or False, # Defines whether the instance has integrity monitoring enabled.
+                #
+                # Enables monitoring and attestation of the boot integrity of the instance.
+                # The attestation is performed against the integrity policy baseline. This
+                # baseline is initially derived from the implicitly trusted boot image when
+                # the instance is created.
+            "enableSecureBoot": True or False, # Defines whether the instance has Secure Boot enabled.
+                #
+                # Secure Boot helps ensure that the system only runs authentic software by
+                # verifying the digital signature of all boot components, and halting the
+                # boot process if signature verification fails.
+          },
           "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify
               # valid sources or targets for network firewalls and are specified by
               # the client during cluster or node pool creation. Each tag within the list
@@ -1526,8 +2118,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.
               #
@@ -1538,7 +2131,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.
@@ -1547,6 +2141,11 @@
           "diskType": "A String", # Type of the disk attached to each node (e.g. 'pd-standard' or 'pd-ssd')
               #
               # If unspecified, the default disk type is 'pd-standard'
+          "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.
+          },
           "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB.
               # The smallest allowed disk size is 10GB.
               #
@@ -1557,14 +2156,14 @@
             { # 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)
           "metadata": { # The metadata key/value pairs assigned to instances in the cluster.
@@ -1579,8 +2178,9 @@
               #  "configure-sh"
               #  "containerd-configure-sh"
               #  "enable-os-login"
-              #  "gci-update-strategy"
               #  "gci-ensure-gke-docker"
+              #  "gci-metrics-enabled"
+              #  "gci-update-strategy"
               #  "instance-template"
               #  "kube-env"
               #  "startup-script"
@@ -1600,13 +2200,27 @@
               # The total size of all keys and values must be less than 512 KB.
             "a_key": "A String",
           },
+          "taints": [ # List of kubernetes taints to be applied to each node.
+              #
+              # For more information, including usage and the valid values, see:
+              # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
+            { # Kubernetes taint is comprised of three fields: key, value, and effect. Effect
+                # can only be one of three types:  NoSchedule, PreferNoSchedule or NoExecute.
+                #
+                # 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.
+            },
+          ],
           "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.
           "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.
         },
         "conditions": [ # Which conditions caused the current node pool state.
@@ -1616,36 +2230,30 @@
             "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.
-    "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.
+    "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.
     },
-    "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.
-      "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.
-      "privateEndpoint": "A String", # Output only. The internal IP address of this cluster's master 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.
-    },
+    "enableTpu": True or False, # Enable the ability to use Cloud TPUs in this cluster.
     "endpoint": "A String", # [Output only] The IP address of this cluster's master endpoint.
         # The endpoint can be accessed from the internet at
         # `https://username:password@endpoint/`.
@@ -1657,15 +2265,25 @@
     "loggingService": "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.
+        # * `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` will be used.
-    "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.
+        #
+        # If left as an empty string,`logging.googleapis.com/kubernetes` will be
+        # used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
+    "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. v1alpha1) 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.
     "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
@@ -1690,26 +2308,42 @@
         #
         # If unspecified, the defaults are used.
         # This field is deprecated, use node_pool.config instead.
-      "taints": [ # List of kubernetes taints to be applied to each node.
-          #
-          # For more information, including usage and the valid values, see:
-          # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
-        { # Kubernetes taint is comprised of three fields: key, value, and effect. Effect
-            # can only be one of three types:  NoSchedule, PreferNoSchedule or NoExecute.
-            #
-            # For more information, including usage and the valid values, see:
-            # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
-          "key": "A String", # Key for taint.
-          "effect": "A String", # Effect for taint.
-          "value": "A String", # Value for taint.
-        },
-      ],
+      "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",
+        ],
+        "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.
+        "consumeReservationType": "A String", # Corresponds to the type of reservation consumption.
+      },
+      "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.
+      },
       "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
           # `n1-standard-1`.
+      "shieldedInstanceConfig": { # A set of Shielded Instance options. # Shielded Instance options.
+        "enableIntegrityMonitoring": True or False, # Defines whether the instance has integrity monitoring enabled.
+            #
+            # Enables monitoring and attestation of the boot integrity of the instance.
+            # The attestation is performed against the integrity policy baseline. This
+            # baseline is initially derived from the implicitly trusted boot image when
+            # the instance is created.
+        "enableSecureBoot": True or False, # Defines whether the instance has Secure Boot enabled.
+            #
+            # Secure Boot helps ensure that the system only runs authentic software by
+            # verifying the digital signature of all boot components, and halting the
+            # boot process if signature verification fails.
+      },
       "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify
           # valid sources or targets for network firewalls and are specified by
           # the client during cluster or node pool creation. Each tag within the list
@@ -1729,8 +2363,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.
           #
@@ -1741,7 +2376,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.
@@ -1750,6 +2386,11 @@
       "diskType": "A String", # Type of the disk attached to each node (e.g. 'pd-standard' or 'pd-ssd')
           #
           # If unspecified, the default disk type is 'pd-standard'
+      "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.
+      },
       "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB.
           # The smallest allowed disk size is 10GB.
           #
@@ -1760,14 +2401,14 @@
         { # 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)
       "metadata": { # The metadata key/value pairs assigned to instances in the cluster.
@@ -1782,8 +2423,9 @@
           #  "configure-sh"
           #  "containerd-configure-sh"
           #  "enable-os-login"
-          #  "gci-update-strategy"
           #  "gci-ensure-gke-docker"
+          #  "gci-metrics-enabled"
+          #  "gci-update-strategy"
           #  "instance-template"
           #  "kube-env"
           #  "startup-script"
@@ -1803,13 +2445,27 @@
           # The total size of all keys and values must be less than 512 KB.
         "a_key": "A String",
       },
+      "taints": [ # List of kubernetes taints to be applied to each node.
+          #
+          # For more information, including usage and the valid values, see:
+          # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
+        { # Kubernetes taint is comprised of three fields: key, value, and effect. Effect
+            # can only be one of three types:  NoSchedule, PreferNoSchedule or NoExecute.
+            #
+            # 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.
+        },
+      ],
       "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.
       "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.
     },
     "clusterIpv4Cidr": "A String", # The IP address range of the container pods in this cluster, in
@@ -1817,15 +2473,16 @@
         # 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`.
     "subnetwork": "A String", # The name of the Google Compute Engine
-        # [subnetwork](/compute/docs/subnetworks) to which the
-        # cluster is connected.
-    "resourceLabels": { # The resource labels for the cluster to use to annotate any related
-        # Google Compute Engine resources.
-      "a_key": "A String",
-    },
+        # [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which
+        # the cluster is connected.
+    "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.
     "selfLink": "A String", # [Output only] Server-defined URL for the resource.
     "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>
+        # 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
@@ -1838,7 +2495,7 @@
 </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:
@@ -1846,12 +2503,12 @@
 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)
+[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, 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
@@ -1861,13 +2518,13 @@
         # This field has been deprecated and replaced by the name field.
     "clusterId": "A String", # 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](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.
@@ -1884,18 +2541,11 @@
     "selfLink": "A String", # Server-defined URL for the resource.
     "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.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "detail": "A String", # Detailed operation progress, if available.
     "operationType": "A String", # The operation type.
     "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](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
     "nodepoolConditions": [ # 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).
@@ -1903,9 +2553,6 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "endTime": "A String", # [Output only] The time the operation completed, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
     "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).
@@ -1913,6 +2560,38 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "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:
+          #   metrics: [{name: "nodes done",     int_value: 15},
+          #             {name: "nodes total",    int_value: 32}]
+          # or
+          #   metrics: [{name: "progress",       double_value: 0.56},
+          #             {name: "progress scale", double_value: 1.0}]
+        { # 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", # Required. Metric name, e.g., "nodes total", "percent done".
+          "doubleValue": 3.14, # For metrics with floating point value.
+        },
+      ],
+      "stages": [ # Substages of an operation or a stage.
+        # Object with schema name: OperationProgress
+      ],
+      "name": "A String", # A non-parameterized string describing an operation stage.
+          # Unset for single-stage operations.
+    },
+    "endTime": "A String", # [Output only] The time the operation completed, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
+    "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>
 
@@ -1926,9 +2605,9 @@
 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](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.
@@ -1950,6 +2629,42 @@
             # 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.
@@ -1959,7 +2674,20 @@
                   # Time format should be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt)
                   # 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/
@@ -1974,8 +2702,8 @@
           "cidrBlocks": [ # cidr_blocks define up to 50 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.
             },
           ],
         },
@@ -2002,68 +2730,77 @@
               # https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards
             "disabled": True or False, # Whether the Kubernetes Dashboard is enabled for this cluster.
           },
+          "cloudRunConfig": { # Configuration options for the Cloud Run feature. # Configuration for the Cloud Run addon, which allows the user to use a
+              # managed Knative service.
+            "disabled": True or False, # Whether Cloud Run addon 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.
           },
         },
         "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",
         ],
-        "enableKubernetesAlpha": True or False, # Kubernetes alpha features are enabled on this cluster. This includes alpha
-            # API groups (e.g. v1alpha1) 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.
+        "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.
+        },
         "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](/compute/docs/networks-and-firewalls#networks) to which the
-            # cluster is connected. If left unspecified, the `default` network
-            # will be used.
+            # [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.
         "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.
+            # [zone](https://cloud.google.com/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.
+        "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.
+        "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](/compute/docs/vpc) to which the cluster is connected.
-              # Example: projects/my-project/regions/us-central1/subnetworks/my-subnet
+              # [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(/compute/docs/networks-and-firewalls#networks) to which
-              # the cluster is connected.
-              # Example: projects/my-project/global/networks/my-network
+              # 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.
         },
         "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:
+            # 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.
+        "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.
+        },
         "ipAllocationPolicy": { # Configuration for controlling how IPs are allocated in the cluster. # Configuration for cluster IP allocation.
-          "nodeIpv4Cidr": "A String", # This field is deprecated, use node_ipv4_cidr_block.
           "useIpAliases": True or False, # Whether alias IPs will be used for pod IPs in the cluster.
-          "clusterSecondaryRangeName": "A String", # The name of the secondary range to be used for the cluster CIDR
-              # block.  The secondary range will be used for pod IP
-              # addresses. This must be an existing secondary range associated
-              # with the cluster subnetwork.
-              #
-              # This field is only applicable with use_ip_aliases is true and
-              # create_subnetwork is false.
+          "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.
               #
@@ -2079,6 +2816,13 @@
               # 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.
+          "clusterSecondaryRangeName": "A String", # The name of the secondary range to be used for the cluster CIDR
+              # block.  The secondary range will be used for pod IP
+              # addresses. This must be an existing secondary range associated
+              # with the cluster subnetwork.
+              #
+              # This field is only applicable with use_ip_aliases is true and
+              # create_subnetwork is false.
           "servicesIpv4CidrBlock": "A String", # The IP address range of the services IPs in this cluster. If blank, a range
               # will be automatically chosen with the default size.
               #
@@ -2139,6 +2883,11 @@
               # create_subnetwork is false.
           "servicesIpv4Cidr": "A String", # This field is deprecated, use services_ipv4_cidr_block.
         },
+        "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.
+        },
         "resourceUsageExportConfig": { # Configuration for exporting cluster resource usages. # Configuration for exporting resource usages. Resource usage export is
             # disabled when this config is unspecified.
           "bigqueryDestination": { # Parameters for using BigQuery as the destination of resource usage export. # Configuration to use BigQuery as usage export destination.
@@ -2152,7 +2901,19 @@
                 # records.
           },
         },
-        "enableTpu": True or False, # Enable the ability to use Cloud TPUs in this cluster.
+        "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.
+          "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).
@@ -2162,18 +2923,103 @@
         ],
         "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.
+        "resourceLabels": { # The resource labels for the cluster to use to annotate any related
+            # Google Compute Engine resources.
+          "a_key": "A String",
+        },
         "status": "A String", # [Output only] The current status of this cluster.
+        "autoscaling": { # 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.
+            "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.
+              "autoRepair": True or False, # A flag that specifies whether the node auto-repair is enabled for the node
+                  # pool. If enabled, the nodes in this node pool will be monitored and, if
+                  # they fail health checks too many times, an automatic repair action will be
+                  # triggered.
+              "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.
+              },
+              "autoUpgrade": True or False, # A flag that specifies whether node auto-upgrade is enabled for the node
+                  # pool. If enabled, node auto-upgrade helps keep the nodes in your node pool
+                  # up to date with the latest release version of Kubernetes.
+            },
+            "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.
+            },
+            "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.
+            },
+          ],
+          "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",
+          ],
+          "enableNodeAutoprovisioning": True or False, # Enables automatic node pool creation and deletion.
+        },
         "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
-            # [NodePools.version](/kubernetes-engine/docs/reference/rest/v1/projects.zones.clusters.nodePools)
+            # [NodePools.version](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.zones.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.
+        "binaryAuthorization": { # Configuration for Binary Authorization. # Configuration for Binary Authorization.
+          "enabled": True or False, # Enable Binary Authorization for this cluster. If enabled, all container
+              # images will be validated by Binary Authorization.
+        },
         "labelFingerprint": "A String", # The fingerprint of the set of labels for this cluster.
         "currentMasterVersion": "A String", # [Output only] The current software version of the master endpoint.
         "masterAuth": { # The authentication information for accessing the master endpoint. # The authentication information for accessing the master endpoint.
@@ -2190,17 +3036,17 @@
               # 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", # [Output only] Base64-encoded public certificate that is the root of
+              # trust for the cluster.
+          "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", # [Output only] Base64-encoded public certificate that is the root of
-              # trust for the cluster.
         },
         "expireTime": "A String", # [Output only] The time the cluster will be automatically
             # deleted in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
@@ -2217,33 +3063,7 @@
               # 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.
-            "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",
-            ],
-            "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 <=
-                  # max_node_count.
-              "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.
-            },
-            "maxPodsConstraint": { # Constraints applied to pods. # The constraint on the maximum number of pods that can be run
-                # simultaneously on a node in the node pool.
-              "maxPodsPerNode": "A String", # Constraint enforced on the max num of pods per node.
-            },
-            "version": "A String", # The version of the Kubernetes of this node.
-            "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>
-                # 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.
+            "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, # A flag that specifies whether the node auto-repair is enabled for the node
@@ -2262,27 +3082,103 @@
                   # pool. If enabled, node auto-upgrade helps keep the nodes in your node pool
                   # up to date with the latest release version of Kubernetes.
             },
+            "name": "A String", # The name of the 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",
+            ],
+            "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 &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.
+            },
+            "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
+                # simultaneously on a node in the node pool.
+              "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 &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.
             "config": { # Parameters that describe the nodes in a cluster. # The node configuration of the pool.
-              "taints": [ # List of kubernetes taints to be applied to each node.
-                  #
-                  # For more information, including usage and the valid values, see:
-                  # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
-                { # Kubernetes taint is comprised of three fields: key, value, and effect. Effect
-                    # can only be one of three types:  NoSchedule, PreferNoSchedule or NoExecute.
-                    #
-                    # For more information, including usage and the valid values, see:
-                    # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
-                  "key": "A String", # Key for taint.
-                  "effect": "A String", # Effect for taint.
-                  "value": "A String", # Value for taint.
-                },
-              ],
+              "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",
+                ],
+                "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.
+                "consumeReservationType": "A String", # Corresponds to the type of reservation consumption.
+              },
+              "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.
+              },
               "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
                   # `n1-standard-1`.
+              "shieldedInstanceConfig": { # A set of Shielded Instance options. # Shielded Instance options.
+                "enableIntegrityMonitoring": True or False, # Defines whether the instance has integrity monitoring enabled.
+                    #
+                    # Enables monitoring and attestation of the boot integrity of the instance.
+                    # The attestation is performed against the integrity policy baseline. This
+                    # baseline is initially derived from the implicitly trusted boot image when
+                    # the instance is created.
+                "enableSecureBoot": True or False, # Defines whether the instance has Secure Boot enabled.
+                    #
+                    # Secure Boot helps ensure that the system only runs authentic software by
+                    # verifying the digital signature of all boot components, and halting the
+                    # boot process if signature verification fails.
+              },
               "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify
                   # valid sources or targets for network firewalls and are specified by
                   # the client during cluster or node pool creation. Each tag within the list
@@ -2302,8 +3198,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.
                   #
@@ -2314,7 +3211,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.
@@ -2323,6 +3221,11 @@
               "diskType": "A String", # Type of the disk attached to each node (e.g. 'pd-standard' or 'pd-ssd')
                   #
                   # If unspecified, the default disk type is 'pd-standard'
+              "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.
+              },
               "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB.
                   # The smallest allowed disk size is 10GB.
                   #
@@ -2333,14 +3236,14 @@
                 { # 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)
               "metadata": { # The metadata key/value pairs assigned to instances in the cluster.
@@ -2355,8 +3258,9 @@
                   #  "configure-sh"
                   #  "containerd-configure-sh"
                   #  "enable-os-login"
-                  #  "gci-update-strategy"
                   #  "gci-ensure-gke-docker"
+                  #  "gci-metrics-enabled"
+                  #  "gci-update-strategy"
                   #  "instance-template"
                   #  "kube-env"
                   #  "startup-script"
@@ -2376,13 +3280,27 @@
                   # The total size of all keys and values must be less than 512 KB.
                 "a_key": "A String",
               },
+              "taints": [ # List of kubernetes taints to be applied to each node.
+                  #
+                  # For more information, including usage and the valid values, see:
+                  # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
+                { # Kubernetes taint is comprised of three fields: key, value, and effect. Effect
+                    # can only be one of three types:  NoSchedule, PreferNoSchedule or NoExecute.
+                    #
+                    # 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.
+                },
+              ],
               "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.
               "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.
             },
             "conditions": [ # Which conditions caused the current node pool state.
@@ -2392,36 +3310,30 @@
                 "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.
-        "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.
+        "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.
         },
-        "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.
-          "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.
-          "privateEndpoint": "A String", # Output only. The internal IP address of this cluster's master 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.
-        },
+        "enableTpu": True or False, # Enable the ability to use Cloud TPUs in this cluster.
         "endpoint": "A String", # [Output only] The IP address of this cluster's master endpoint.
             # The endpoint can be accessed from the internet at
             # `https://username:password@endpoint/`.
@@ -2433,15 +3345,25 @@
         "loggingService": "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.
+            # * `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` will be used.
-        "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.
+            #
+            # If left as an empty string,`logging.googleapis.com/kubernetes` will be
+            # used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
+        "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. v1alpha1) 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.
         "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
@@ -2466,26 +3388,42 @@
             #
             # If unspecified, the defaults are used.
             # This field is deprecated, use node_pool.config instead.
-          "taints": [ # List of kubernetes taints to be applied to each node.
-              #
-              # For more information, including usage and the valid values, see:
-              # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
-            { # Kubernetes taint is comprised of three fields: key, value, and effect. Effect
-                # can only be one of three types:  NoSchedule, PreferNoSchedule or NoExecute.
-                #
-                # For more information, including usage and the valid values, see:
-                # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
-              "key": "A String", # Key for taint.
-              "effect": "A String", # Effect for taint.
-              "value": "A String", # Value for taint.
-            },
-          ],
+          "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",
+            ],
+            "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.
+            "consumeReservationType": "A String", # Corresponds to the type of reservation consumption.
+          },
+          "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.
+          },
           "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
               # `n1-standard-1`.
+          "shieldedInstanceConfig": { # A set of Shielded Instance options. # Shielded Instance options.
+            "enableIntegrityMonitoring": True or False, # Defines whether the instance has integrity monitoring enabled.
+                #
+                # Enables monitoring and attestation of the boot integrity of the instance.
+                # The attestation is performed against the integrity policy baseline. This
+                # baseline is initially derived from the implicitly trusted boot image when
+                # the instance is created.
+            "enableSecureBoot": True or False, # Defines whether the instance has Secure Boot enabled.
+                #
+                # Secure Boot helps ensure that the system only runs authentic software by
+                # verifying the digital signature of all boot components, and halting the
+                # boot process if signature verification fails.
+          },
           "tags": [ # The list of instance tags applied to all nodes. Tags are used to identify
               # valid sources or targets for network firewalls and are specified by
               # the client during cluster or node pool creation. Each tag within the list
@@ -2505,8 +3443,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.
               #
@@ -2517,7 +3456,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.
@@ -2526,6 +3466,11 @@
           "diskType": "A String", # Type of the disk attached to each node (e.g. 'pd-standard' or 'pd-ssd')
               #
               # If unspecified, the default disk type is 'pd-standard'
+          "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.
+          },
           "diskSizeGb": 42, # Size of the disk attached to each node, specified in GB.
               # The smallest allowed disk size is 10GB.
               #
@@ -2536,14 +3481,14 @@
             { # 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)
           "metadata": { # The metadata key/value pairs assigned to instances in the cluster.
@@ -2558,8 +3503,9 @@
               #  "configure-sh"
               #  "containerd-configure-sh"
               #  "enable-os-login"
-              #  "gci-update-strategy"
               #  "gci-ensure-gke-docker"
+              #  "gci-metrics-enabled"
+              #  "gci-update-strategy"
               #  "instance-template"
               #  "kube-env"
               #  "startup-script"
@@ -2579,13 +3525,27 @@
               # The total size of all keys and values must be less than 512 KB.
             "a_key": "A String",
           },
+          "taints": [ # List of kubernetes taints to be applied to each node.
+              #
+              # For more information, including usage and the valid values, see:
+              # https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
+            { # Kubernetes taint is comprised of three fields: key, value, and effect. Effect
+                # can only be one of three types:  NoSchedule, PreferNoSchedule or NoExecute.
+                #
+                # 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.
+            },
+          ],
           "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.
           "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.
         },
         "clusterIpv4Cidr": "A String", # The IP address range of the container pods in this cluster, in
@@ -2593,15 +3553,16 @@
             # 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`.
         "subnetwork": "A String", # The name of the Google Compute Engine
-            # [subnetwork](/compute/docs/subnetworks) to which the
-            # cluster is connected.
-        "resourceLabels": { # The resource labels for the cluster to use to annotate any related
-            # Google Compute Engine resources.
-          "a_key": "A String",
-        },
+            # [subnetwork](https://cloud.google.com/compute/docs/subnetworks) to which
+            # the cluster is connected.
+        "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.
         "selfLink": "A String", # [Output only] Server-defined URL for the resource.
         "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>
+            # 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
@@ -2620,20 +3581,23 @@
 </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/v1/projects.locations.clusters/update)
+instead.
 
 Args:
   projectId: string, 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)
+[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, 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.
@@ -2642,21 +3606,21 @@
         # 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.
-    "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", # 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.
@@ -2673,18 +3637,11 @@
     "selfLink": "A String", # Server-defined URL for the resource.
     "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.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "detail": "A String", # Detailed operation progress, if available.
     "operationType": "A String", # The operation type.
     "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](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
     "nodepoolConditions": [ # 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).
@@ -2692,9 +3649,6 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "endTime": "A String", # [Output only] The time the operation completed, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
     "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).
@@ -2702,11 +3656,43 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "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:
+          #   metrics: [{name: "nodes done",     int_value: 15},
+          #             {name: "nodes total",    int_value: 32}]
+          # or
+          #   metrics: [{name: "progress",       double_value: 0.56},
+          #             {name: "progress scale", double_value: 1.0}]
+        { # 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", # Required. Metric name, e.g., "nodes total", "percent done".
+          "doubleValue": 3.14, # For metrics with floating point value.
+        },
+      ],
+      "stages": [ # Substages of an operation or a stage.
+        # Object with schema name: OperationProgress
+      ],
+      "name": "A String", # A non-parameterized string describing an operation stage.
+          # Unset for single-stage operations.
+    },
+    "endTime": "A String", # [Output only] The time the operation completed, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
+    "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:
@@ -2714,31 +3700,37 @@
 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)
+[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, 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
         # 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", # 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", # 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.
@@ -2755,18 +3747,11 @@
     "selfLink": "A String", # Server-defined URL for the resource.
     "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.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "detail": "A String", # Detailed operation progress, if available.
     "operationType": "A String", # The operation type.
     "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](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
     "nodepoolConditions": [ # 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).
@@ -2774,9 +3759,6 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "endTime": "A String", # [Output only] The time the operation completed, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
     "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).
@@ -2784,11 +3766,43 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "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:
+          #   metrics: [{name: "nodes done",     int_value: 15},
+          #             {name: "nodes total",    int_value: 32}]
+          # or
+          #   metrics: [{name: "progress",       double_value: 0.56},
+          #             {name: "progress scale", double_value: 1.0}]
+        { # 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", # Required. Metric name, e.g., "nodes total", "percent done".
+          "doubleValue": 3.14, # For metrics with floating point value.
+        },
+      ],
+      "stages": [ # Substages of an operation or a stage.
+        # Object with schema name: OperationProgress
+      ],
+      "name": "A String", # A non-parameterized string describing an operation stage.
+          # Unset for single-stage operations.
+    },
+    "endTime": "A String", # [Output only] The time the operation completed, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
+    "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:
@@ -2796,19 +3810,19 @@
 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)
+[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, 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
         # 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:
@@ -2823,9 +3837,9 @@
     "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](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.
@@ -2842,18 +3856,11 @@
     "selfLink": "A String", # Server-defined URL for the resource.
     "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.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "detail": "A String", # Detailed operation progress, if available.
     "operationType": "A String", # The operation type.
     "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](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
     "nodepoolConditions": [ # 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).
@@ -2861,9 +3868,6 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "endTime": "A String", # [Output only] The time the operation completed, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
     "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).
@@ -2871,11 +3875,43 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "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:
+          #   metrics: [{name: "nodes done",     int_value: 15},
+          #             {name: "nodes total",    int_value: 32}]
+          # or
+          #   metrics: [{name: "progress",       double_value: 0.56},
+          #             {name: "progress scale", double_value: 1.0}]
+        { # 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", # Required. Metric name, e.g., "nodes total", "percent done".
+          "doubleValue": 3.14, # For metrics with floating point value.
+        },
+      ],
+      "stages": [ # Substages of an operation or a stage.
+        # Object with schema name: OperationProgress
+      ],
+      "name": "A String", # A non-parameterized string describing an operation stage.
+          # Unset for single-stage operations.
+    },
+    "endTime": "A String", # [Output only] The time the operation completed, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
+    "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:
@@ -2883,33 +3919,37 @@
 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)
+[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, 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
         # 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/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
+        # * "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", # 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](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.
@@ -2926,18 +3966,11 @@
     "selfLink": "A String", # Server-defined URL for the resource.
     "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.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "detail": "A String", # Detailed operation progress, if available.
     "operationType": "A String", # The operation type.
     "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](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
     "nodepoolConditions": [ # 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).
@@ -2945,9 +3978,6 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "endTime": "A String", # [Output only] The time the operation completed, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
     "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).
@@ -2955,11 +3985,43 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "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:
+          #   metrics: [{name: "nodes done",     int_value: 15},
+          #             {name: "nodes total",    int_value: 32}]
+          # or
+          #   metrics: [{name: "progress",       double_value: 0.56},
+          #             {name: "progress scale", double_value: 1.0}]
+        { # 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", # Required. Metric name, e.g., "nodes total", "percent done".
+          "doubleValue": 3.14, # For metrics with floating point value.
+        },
+      ],
+      "stages": [ # Substages of an operation or a stage.
+        # Object with schema name: OperationProgress
+      ],
+      "name": "A String", # A non-parameterized string describing an operation stage.
+          # Unset for single-stage operations.
+    },
+    "endTime": "A String", # [Output only] The time the operation completed, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
+    "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:
@@ -2967,12 +4029,12 @@
 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.
-This field has been deprecated and replaced by the name field. (required)
+[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, 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
@@ -2981,21 +4043,21 @@
     "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.
+        # [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", # 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.
         # 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",
     },
   }
@@ -3014,18 +4076,11 @@
     "selfLink": "A String", # Server-defined URL for the resource.
     "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.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "detail": "A String", # Detailed operation progress, if available.
     "operationType": "A String", # The operation type.
     "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](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
     "nodepoolConditions": [ # 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).
@@ -3033,9 +4088,6 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "endTime": "A String", # [Output only] The time the operation completed, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
     "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).
@@ -3043,29 +4095,97 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "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:
+          #   metrics: [{name: "nodes done",     int_value: 15},
+          #             {name: "nodes total",    int_value: 32}]
+          # or
+          #   metrics: [{name: "progress",       double_value: 0.56},
+          #             {name: "progress scale", double_value: 1.0}]
+        { # 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", # Required. Metric name, e.g., "nodes total", "percent done".
+          "doubleValue": 3.14, # For metrics with floating point value.
+        },
+      ],
+      "stages": [ # Substages of an operation or a stage.
+        # Object with schema name: OperationProgress
+      ],
+      "name": "A String", # A non-parameterized string describing an operation stage.
+          # Unset for single-stage operations.
+    },
+    "endTime": "A String", # [Output only] The time the operation completed, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
+    "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.
@@ -3075,15 +4195,28 @@
               # Time format should be in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt)
               # 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.
@@ -3100,18 +4233,11 @@
     "selfLink": "A String", # Server-defined URL for the resource.
     "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.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "detail": "A String", # Detailed operation progress, if available.
     "operationType": "A String", # The operation type.
     "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](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
     "nodepoolConditions": [ # 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).
@@ -3119,9 +4245,6 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "endTime": "A String", # [Output only] The time the operation completed, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
     "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).
@@ -3129,11 +4252,43 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "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:
+          #   metrics: [{name: "nodes done",     int_value: 15},
+          #             {name: "nodes total",    int_value: 32}]
+          # or
+          #   metrics: [{name: "progress",       double_value: 0.56},
+          #             {name: "progress scale", double_value: 1.0}]
+        { # 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", # Required. Metric name, e.g., "nodes total", "percent done".
+          "doubleValue": 3.14, # For metrics with floating point value.
+        },
+      ],
+      "stages": [ # Substages of an operation or a stage.
+        # Object with schema name: OperationProgress
+      ],
+      "name": "A String", # A non-parameterized string describing an operation stage.
+          # Unset for single-stage operations.
+    },
+    "endTime": "A String", # [Output only] The time the operation completed, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
+    "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.
@@ -3143,27 +4298,27 @@
 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)
+[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, 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.
+        # [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", # 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.
-    "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.
@@ -3173,19 +4328,19 @@
           # 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", # [Output only] Base64-encoded public certificate that is the root of
+          # trust for the cluster.
+      "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", # [Output only] Base64-encoded public certificate that is the root of
-          # trust for the cluster.
     },
-    "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.
@@ -3202,18 +4357,11 @@
     "selfLink": "A String", # Server-defined URL for the resource.
     "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.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "detail": "A String", # Detailed operation progress, if available.
     "operationType": "A String", # The operation type.
     "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](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
     "nodepoolConditions": [ # 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).
@@ -3221,9 +4369,6 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "endTime": "A String", # [Output only] The time the operation completed, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
     "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).
@@ -3231,11 +4376,43 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "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:
+          #   metrics: [{name: "nodes done",     int_value: 15},
+          #             {name: "nodes total",    int_value: 32}]
+          # or
+          #   metrics: [{name: "progress",       double_value: 0.56},
+          #             {name: "progress scale", double_value: 1.0}]
+        { # 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", # Required. Metric name, e.g., "nodes total", "percent done".
+          "doubleValue": 3.14, # For metrics with floating point value.
+        },
+      ],
+      "stages": [ # Substages of an operation or a stage.
+        # Object with schema name: OperationProgress
+      ],
+      "name": "A String", # A non-parameterized string describing an operation stage.
+          # Unset for single-stage operations.
+    },
+    "endTime": "A String", # [Output only] The time the operation completed, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
+    "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:
@@ -3243,12 +4420,12 @@
 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.
-This field has been deprecated and replaced by the name field. (required)
+[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, 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.
@@ -3257,15 +4434,15 @@
         # This field has been deprecated and replaced by the name field.
     "clusterId": "A String", # 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](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/*'.
   }
@@ -3284,18 +4461,11 @@
     "selfLink": "A String", # Server-defined URL for the resource.
     "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.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "detail": "A String", # Detailed operation progress, if available.
     "operationType": "A String", # The operation type.
     "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](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
     "nodepoolConditions": [ # 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).
@@ -3303,9 +4473,6 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "endTime": "A String", # [Output only] The time the operation completed, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
     "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).
@@ -3313,11 +4480,43 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "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:
+          #   metrics: [{name: "nodes done",     int_value: 15},
+          #             {name: "nodes total",    int_value: 32}]
+          # or
+          #   metrics: [{name: "progress",       double_value: 0.56},
+          #             {name: "progress scale", double_value: 1.0}]
+        { # 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", # Required. Metric name, e.g., "nodes total", "percent done".
+          "doubleValue": 3.14, # For metrics with floating point value.
+        },
+      ],
+      "stages": [ # Substages of an operation or a stage.
+        # Object with schema name: OperationProgress
+      ],
+      "name": "A String", # A non-parameterized string describing an operation stage.
+          # Unset for single-stage operations.
+    },
+    "endTime": "A String", # [Output only] The time the operation completed, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
+    "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:
@@ -3325,12 +4524,12 @@
 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.
-This field has been deprecated and replaced by the name field. (required)
+[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, 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
@@ -3344,9 +4543,9 @@
     "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](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.
@@ -3363,18 +4562,11 @@
     "selfLink": "A String", # Server-defined URL for the resource.
     "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.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "detail": "A String", # Detailed operation progress, if available.
     "operationType": "A String", # The operation type.
     "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](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
     "nodepoolConditions": [ # 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).
@@ -3382,9 +4574,6 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "endTime": "A String", # [Output only] The time the operation completed, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
     "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).
@@ -3392,11 +4581,43 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "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:
+          #   metrics: [{name: "nodes done",     int_value: 15},
+          #             {name: "nodes total",    int_value: 32}]
+          # or
+          #   metrics: [{name: "progress",       double_value: 0.56},
+          #             {name: "progress scale", double_value: 1.0}]
+        { # 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", # Required. Metric name, e.g., "nodes total", "percent done".
+          "doubleValue": 3.14, # For metrics with floating point value.
+        },
+      ],
+      "stages": [ # Substages of an operation or a stage.
+        # Object with schema name: OperationProgress
+      ],
+      "name": "A String", # A non-parameterized string describing an operation stage.
+          # Unset for single-stage operations.
+    },
+    "endTime": "A String", # [Output only] The time the operation completed, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
+    "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 of a specific cluster.
 
 Args:
@@ -3404,12 +4625,12 @@
 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)
+[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, 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.
@@ -3418,16 +4639,24 @@
         # 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.
-    "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.
+      "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 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
+          # * `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.
       "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,
@@ -3436,15 +4665,16 @@
         "cidrBlocks": [ # cidr_blocks define up to 50 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.
           },
         ],
       },
-      "desiredNodePoolId": "A String", # The node pool to be upgraded. This field is mandatory if
-          # "desired_node_version", "desired_image_family" or
-          # "desired_node_pool_autoscaling" is specified and there is more than one
-          # node pool on 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.
+      },
       "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.
         "httpLoadBalancing": { # Configuration options for the HTTP (L7) load balancing controller addon, # Configuration for the HTTP (L7) load balancing controller addon, which
@@ -3468,16 +4698,97 @@
             # https://cloud.google.com/kubernetes-engine/docs/concepts/dashboards
           "disabled": True or False, # Whether the Kubernetes Dashboard is enabled for this cluster.
         },
+        "cloudRunConfig": { # Configuration options for the Cloud Run feature. # Configuration for the Cloud Run addon, which allows the user to use a
+            # managed Knative service.
+          "disabled": True or False, # Whether Cloud Run addon 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.
         },
       },
+      "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.
+          "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.
+            "autoRepair": True or False, # A flag that specifies whether the node auto-repair is enabled for the node
+                # pool. If enabled, the nodes in this node pool will be monitored and, if
+                # they fail health checks too many times, an automatic repair action will be
+                # triggered.
+            "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.
+            },
+            "autoUpgrade": True or False, # A flag that specifies whether node auto-upgrade is enabled for the node
+                # pool. If enabled, node auto-upgrade helps keep the nodes in your node pool
+                # up to date with the latest release version of Kubernetes.
+          },
+          "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.
+          },
+          "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.
+          },
+        ],
+        "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",
+        ],
+        "enableNodeAutoprovisioning": True or False, # Enables automatic node pool creation and deletion.
+      },
       "desiredMasterVersion": "A String", # The Kubernetes version to change the master to.
           #
           # Users may specify either explicit versions offered by
@@ -3488,15 +4799,10 @@
           # - "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",
-      ],
+      "desiredNodePoolId": "A String", # The node pool to be upgraded. This field is mandatory if
+          # "desired_node_version", "desired_image_family" or
+          # "desired_node_pool_autoscaling" is specified and there is more than one
+          # node pool on the cluster.
       "desiredNodeVersion": "A String", # The Kubernetes version to change the nodes to (typically an
           # upgrade).
           #
@@ -3508,13 +4814,32 @@
           # - "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
+      "desiredImageType": "A String", # The desired image type for the node pool.
+          # NOTE: Set the "desired_node_pool" field as well.
+      "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 Binary Authorization.
+      },
       "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
+          # * "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.
+      "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",
+      ],
       "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.
           "datasetId": "A String", # The ID of a BigQuery Dataset.
@@ -3527,24 +4852,35 @@
               # records.
         },
       },
+      "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.
+      },
+      "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.
+      },
       "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 <=
+        "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.
       },
-      "desiredImageType": "A String", # The desired image type for the node pool.
-          # NOTE: Set the "desired_node_pool" field as well.
+      "desiredDatabaseEncryption": { # 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
+      },
     },
     "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](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/*'.
   }
@@ -3563,18 +4899,11 @@
     "selfLink": "A String", # Server-defined URL for the resource.
     "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.
-    "startTime": "A String", # [Output only] The time the operation started, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+        # [zone](https://cloud.google.com/compute/docs/zones#available) in which the
+        # operation is taking place. This field is deprecated, use location instead.
     "detail": "A String", # Detailed operation progress, if available.
     "operationType": "A String", # The operation type.
     "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](/compute/docs/regions-zones/regions-zones#available) or
-        # [region](/compute/docs/regions-zones/regions-zones#available) in which
-        # the cluster resides.
     "nodepoolConditions": [ # 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).
@@ -3582,9 +4911,6 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
-    "endTime": "A String", # [Output only] The time the operation completed, in
-        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
-    "statusMessage": "A String", # If an error has occurred, a textual description of the error.
     "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).
@@ -3592,6 +4918,38 @@
         "code": "A String", # Machine-friendly representation of the condition
       },
     ],
+    "startTime": "A String", # [Output only] The time the operation started, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "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:
+          #   metrics: [{name: "nodes done",     int_value: 15},
+          #             {name: "nodes total",    int_value: 32}]
+          # or
+          #   metrics: [{name: "progress",       double_value: 0.56},
+          #             {name: "progress scale", double_value: 1.0}]
+        { # 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", # Required. Metric name, e.g., "nodes total", "percent done".
+          "doubleValue": 3.14, # For metrics with floating point value.
+        },
+      ],
+      "stages": [ # Substages of an operation or a stage.
+        # Object with schema name: OperationProgress
+      ],
+      "name": "A String", # A non-parameterized string describing an operation stage.
+          # Unset for single-stage operations.
+    },
+    "endTime": "A String", # [Output only] The time the operation completed, in
+        # [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format.
+    "statusMessage": "A String", # Output only. If an error has occurred, a textual description of the error.
+    "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>