chore: regens API reference docs (#889)

diff --git a/docs/dyn/container_v1.projects.zones.clusters.nodePools.html b/docs/dyn/container_v1.projects.zones.clusters.nodePools.html
index 370160e..092a50e 100644
--- a/docs/dyn/container_v1.projects.zones.clusters.nodePools.html
+++ b/docs/dyn/container_v1.projects.zones.clusters.nodePools.html
@@ -75,10 +75,10 @@
 <h1><a href="container_v1.html">Kubernetes Engine API</a> . <a href="container_v1.projects.html">projects</a> . <a href="container_v1.projects.zones.html">zones</a> . <a href="container_v1.projects.zones.clusters.html">clusters</a> . <a href="container_v1.projects.zones.clusters.nodePools.html">nodePools</a></h1>
 <h2>Instance Methods</h2>
 <p class="toc_element">
-  <code><a href="#autoscaling">autoscaling(projectId, zone, clusterId, nodePoolId, body, x__xgafv=None)</a></code></p>
+  <code><a href="#autoscaling">autoscaling(projectId, zone, clusterId, nodePoolId, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Sets the autoscaling settings for the specified node pool.</p>
 <p class="toc_element">
-  <code><a href="#create">create(projectId, zone, clusterId, body, x__xgafv=None)</a></code></p>
+  <code><a href="#create">create(projectId, zone, clusterId, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Creates a node pool for a cluster.</p>
 <p class="toc_element">
   <code><a href="#delete">delete(projectId, zone, clusterId, nodePoolId, name=None, x__xgafv=None)</a></code></p>
@@ -90,20 +90,20 @@
   <code><a href="#list">list(projectId, zone, clusterId, parent=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Lists the node pools for a cluster.</p>
 <p class="toc_element">
-  <code><a href="#rollback">rollback(projectId, zone, clusterId, nodePoolId, body, x__xgafv=None)</a></code></p>
+  <code><a href="#rollback">rollback(projectId, zone, clusterId, nodePoolId, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Rolls back a previously Aborted or Failed NodePool upgrade.</p>
 <p class="toc_element">
-  <code><a href="#setManagement">setManagement(projectId, zone, clusterId, nodePoolId, body, x__xgafv=None)</a></code></p>
+  <code><a href="#setManagement">setManagement(projectId, zone, clusterId, nodePoolId, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Sets the NodeManagement options for a node pool.</p>
 <p class="toc_element">
-  <code><a href="#setSize">setSize(projectId, zone, clusterId, nodePoolId, body, x__xgafv=None)</a></code></p>
+  <code><a href="#setSize">setSize(projectId, zone, clusterId, nodePoolId, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Sets the size for a specific node pool.</p>
 <p class="toc_element">
-  <code><a href="#update">update(projectId, zone, clusterId, nodePoolId, body, x__xgafv=None)</a></code></p>
+  <code><a href="#update">update(projectId, zone, clusterId, nodePoolId, body=None, x__xgafv=None)</a></code></p>
 <p class="firstline">Updates the version and/or image type for the specified node pool.</p>
 <h3>Method Details</h3>
 <div class="method">
-    <code class="details" id="autoscaling">autoscaling(projectId, zone, clusterId, nodePoolId, body, x__xgafv=None)</code>
+    <code class="details" id="autoscaling">autoscaling(projectId, zone, clusterId, nodePoolId, body=None, x__xgafv=None)</code>
   <pre>Sets the autoscaling settings for the specified node pool.
 
 Args:
@@ -111,14 +111,14 @@
 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)
   nodePoolId: string, Deprecated. The name of the node pool 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:
 
 { # SetNodePoolAutoscalingRequest sets the autoscaler settings of a node pool.
@@ -126,18 +126,19 @@
         # autoscaler settings. Specified in the format
         # 'projects/*/locations/*/clusters/*/nodePools/*'.
     "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.
-    "autoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to # Autoscaling configuration for the node pool.
+    "autoscaling": { # NodePoolAutoscaling contains information required by cluster autoscaler to # Required. Autoscaling configuration for the 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.
     },
     "clusterId": "A String", # Deprecated. The name of the cluster to upgrade.
@@ -160,18 +161,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).
@@ -179,9 +173,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).
@@ -189,11 +180,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="create">create(projectId, zone, clusterId, body, x__xgafv=None)</code>
+    <code class="details" id="create">create(projectId, zone, clusterId, body=None, x__xgafv=None)</code>
   <pre>Creates a node pool for a cluster.
 
 Args:
@@ -201,12 +224,12 @@
 number](https://developers.google.com/console/help/new/#projectnumber).
 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)
+[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)
   clusterId: string, Deprecated. The name of the cluster.
 This field has been deprecated and replaced by the parent field. (required)
-  body: object, The request body. (required)
+  body: object, The request body.
     The object takes the form of:
 
 { # CreateNodePoolRequest creates a node pool for a cluster.
@@ -218,40 +241,14 @@
         # This field has been deprecated and replaced by the parent field.
     "clusterId": "A String", # Deprecated. The name of the cluster.
         # This field has been deprecated and replaced by the parent field.
-    "nodePool": { # NodePool contains the name and configuration for a cluster's node pool. # The node pool to create.
+    "nodePool": { # NodePool contains the name and configuration for a cluster's node pool. # Required. The node pool to create.
         # Node pools are a set of nodes (i.e. VM's), with a common configuration and
         # specification, under the control of the cluster master. They may have a set
         # of Kubernetes labels applied to them, which may be used to reference them
         # 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
@@ -270,27 +267,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
@@ -310,8 +383,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.
             #
@@ -322,7 +396,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.
@@ -331,6 +406,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.
             #
@@ -341,14 +421,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.
@@ -363,8 +443,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"
@@ -384,13 +465,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.
@@ -400,12 +495,13 @@
           "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.
     },
     "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.
+        # [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.
   }
 
   x__xgafv: string, V1 error format.
@@ -422,18 +518,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).
@@ -441,9 +530,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).
@@ -451,6 +537,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>
 
@@ -463,9 +581,9 @@
 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)
   nodePoolId: string, Deprecated. The name of the node pool to delete.
@@ -487,18 +605,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).
@@ -506,9 +617,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).
@@ -516,6 +624,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>
 
@@ -528,9 +668,9 @@
 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)
   nodePoolId: string, Deprecated. The name of the node pool.
@@ -553,33 +693,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
@@ -598,27 +712,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
@@ -638,8 +828,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.
           #
@@ -650,7 +841,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.
@@ -659,6 +851,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.
           #
@@ -669,14 +866,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.
@@ -691,8 +888,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"
@@ -712,13 +910,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.
@@ -728,7 +940,8 @@
         "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.
   }</pre>
 </div>
 
@@ -741,9 +954,9 @@
 number](https://developers.google.com/console/help/new/#projectnumber).
 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)
+[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)
   clusterId: string, Deprecated. The name of the cluster.
 This field has been deprecated and replaced by the parent field. (required)
   parent: string, The parent (project, location, cluster id) where the node pools will be
@@ -765,33 +978,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
@@ -810,27 +997,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
@@ -850,8 +1113,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.
               #
@@ -862,7 +1126,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.
@@ -871,6 +1136,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.
               #
@@ -881,14 +1151,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.
@@ -903,8 +1173,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"
@@ -924,13 +1195,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.
@@ -940,14 +1225,15 @@
             "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.
       },
     ],
   }</pre>
 </div>
 
 <div class="method">
-    <code class="details" id="rollback">rollback(projectId, zone, clusterId, nodePoolId, body, x__xgafv=None)</code>
+    <code class="details" id="rollback">rollback(projectId, zone, clusterId, nodePoolId, body=None, x__xgafv=None)</code>
   <pre>Rolls back a previously Aborted or Failed NodePool upgrade.
 This makes no changes if the last upgrade successfully completed.
 
@@ -956,14 +1242,14 @@
 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 rollback.
 This field has been deprecated and replaced by the name field. (required)
   nodePoolId: string, Deprecated. The name of the node pool to rollback.
 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:
 
 { # RollbackNodePoolUpgradeRequest rollbacks the previously Aborted or Failed
@@ -978,9 +1264,9 @@
         # rollback upgrade.
         # Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
     "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.
     "nodePoolId": "A String", # Deprecated. The name of the node pool to rollback.
         # This field has been deprecated and replaced by the name field.
   }
@@ -999,18 +1285,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).
@@ -1018,9 +1297,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).
@@ -1028,11 +1304,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="setManagement">setManagement(projectId, zone, clusterId, nodePoolId, body, x__xgafv=None)</code>
+    <code class="details" id="setManagement">setManagement(projectId, zone, clusterId, nodePoolId, body=None, x__xgafv=None)</code>
   <pre>Sets the NodeManagement options for a node pool.
 
 Args:
@@ -1040,19 +1348,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 update.
 This field has been deprecated and replaced by the name field. (required)
   nodePoolId: string, Deprecated. The name of the node pool 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:
 
 { # SetNodePoolManagementRequest sets the node management properties of a node
       # pool.
-    "management": { # NodeManagement defines the set of node management services turned on for the # NodeManagement configuration for the node pool.
+    "management": { # NodeManagement defines the set of node management services turned on for the # Required. NodeManagement configuration for the node pool.
         # 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
@@ -1074,9 +1382,9 @@
         # management properties. Specified in the format
         # 'projects/*/locations/*/clusters/*/nodePools/*'.
     "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.
@@ -1100,18 +1408,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).
@@ -1119,9 +1420,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).
@@ -1129,11 +1427,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="setSize">setSize(projectId, zone, clusterId, nodePoolId, body, x__xgafv=None)</code>
+    <code class="details" id="setSize">setSize(projectId, zone, clusterId, nodePoolId, body=None, x__xgafv=None)</code>
   <pre>Sets the size for a specific node pool.
 
 Args:
@@ -1141,14 +1471,14 @@
 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)
   nodePoolId: string, Deprecated. The name of the node pool 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:
 
 { # SetNodePoolSizeRequest sets the size a node
@@ -1157,9 +1487,9 @@
         # size.
         # Specified in the format 'projects/*/locations/*/clusters/*/nodePools/*'.
     "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.
@@ -1167,7 +1497,7 @@
         # This field has been deprecated and replaced by the name field.
     "nodePoolId": "A String", # Deprecated. The name of the node pool to update.
         # This field has been deprecated and replaced by the name field.
-    "nodeCount": 42, # The desired node count for the pool.
+    "nodeCount": 42, # Required. The desired node count for the pool.
   }
 
   x__xgafv: string, V1 error format.
@@ -1184,18 +1514,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).
@@ -1203,9 +1526,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).
@@ -1213,11 +1533,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, nodePoolId, body, x__xgafv=None)</code>
+    <code class="details" id="update">update(projectId, zone, clusterId, nodePoolId, body=None, x__xgafv=None)</code>
   <pre>Updates the version and/or image type for the specified node pool.
 
 Args:
@@ -1225,14 +1577,14 @@
 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)
   nodePoolId: string, Deprecated. The name of the node pool 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:
 
 { # UpdateNodePoolRequests update a node pool's image and/or version.
@@ -1240,17 +1592,58 @@
         # update. Specified in the format
         # 'projects/*/locations/*/clusters/*/nodePools/*'.
     "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.
+    "locations": [ # The desired list of Google Compute Engine
+        # [zones](https://cloud.google.com/compute/docs/zones#available) in which the
+        # node pool's nodes should be located. Changing the locations for a node pool
+        # will result in nodes being either created or removed from the node pool,
+        # depending on whether locations are being added or removed.
+      "A String",
+    ],
     "nodePoolId": "A String", # Deprecated. The name of the node pool to upgrade.
         # This field has been deprecated and replaced by the name field.
-    "nodeVersion": "A String", # The Kubernetes version to change the nodes to (typically an
+    "workloadMetadataConfig": { # WorkloadMetadataConfig defines the metadata configuration to expose to # The desired workload metadata config for the node pool.
+        # workloads on the node pool.
+      "mode": "A String", # Mode is the configuration for how to expose metadata to workloads running
+          # on the node pool.
+    },
+    "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.
+    },
+    "nodeVersion": "A String", # Required. The Kubernetes version to change the nodes to (typically an
         # upgrade).
         # 
         # Users may specify either explicit versions offered by Kubernetes Engine or
@@ -1261,7 +1654,7 @@
         # - "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
-    "imageType": "A String", # The desired image type for the node pool.
+    "imageType": "A String", # Required. The desired image type for the node pool.
   }
 
   x__xgafv: string, V1 error format.
@@ -1278,18 +1671,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).
@@ -1297,9 +1683,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).
@@ -1307,6 +1690,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>