chore: Update discovery artifacts (#1195)

* chore(accesscontextmanager): update the api
* chore(adexchangebuyer2): update the api
* chore(admin): update the api
* chore(alertcenter): update the api
* chore(analyticsadmin): update the api
* chore(analyticsdata): update the api
* chore(androidmanagement): update the api
* chore(apigateway): update the api
* chore(apigee): update the api
* chore(appengine): update the api
* chore(area120tables): update the api
* chore(artifactregistry): update the api
* chore(bigquery): update the api
* chore(bigqueryconnection): update the api
* chore(bigqueryreservation): update the api
* chore(billingbudgets): update the api
* chore(binaryauthorization): update the api
* chore(blogger): update the api
* chore(calendar): update the api
* chore(chat): update the api
* chore(cloudasset): update the api
* chore(cloudbuild): update the api
* chore(cloudfunctions): update the api
* chore(cloudidentity): update the api
* chore(cloudkms): update the api
* chore(cloudresourcemanager): update the api
* chore(cloudscheduler): update the api
* chore(cloudtasks): update the api
* chore(composer): update the api
* chore(compute): update the api
* chore(container): update the api
* chore(containeranalysis): update the api
* chore(content): update the api
* chore(datacatalog): update the api
* chore(dataflow): update the api
* chore(datafusion): update the api
* chore(datamigration): update the api
* chore(dataproc): update the api
* chore(deploymentmanager): update the api
* chore(dialogflow): update the api
* chore(displayvideo): update the api
* chore(dlp): update the api
* chore(dns): update the api
* chore(documentai): update the api
* chore(eventarc): update the api
* chore(file): update the api
* chore(firebaseml): update the api
* chore(games): update the api
* chore(gameservices): update the api
* chore(genomics): update the api
* chore(healthcare): update the api
* chore(homegraph): update the api
* chore(iam): update the api
* chore(iap): update the api
* chore(jobs): update the api
* chore(lifesciences): update the api
* chore(localservices): update the api
* chore(managedidentities): update the api
* chore(manufacturers): update the api
* chore(memcache): update the api
* chore(ml): update the api
* chore(monitoring): update the api
* chore(notebooks): update the api
* chore(osconfig): update the api
* chore(pagespeedonline): update the api
* chore(people): update the api
* chore(privateca): update the api
* chore(prod_tt_sasportal): update the api
* chore(pubsub): update the api
* chore(pubsublite): update the api
* chore(recommender): update the api
* chore(remotebuildexecution): update the api
* chore(reseller): update the api
* chore(run): update the api
* chore(safebrowsing): update the api
* chore(sasportal): update the api
* chore(searchconsole): update the api
* chore(secretmanager): update the api
* chore(securitycenter): update the api
* chore(serviceconsumermanagement): update the api
* chore(servicecontrol): update the api
* chore(servicenetworking): update the api
* chore(serviceusage): update the api
* chore(sheets): update the api
* chore(slides): update the api
* chore(spanner): update the api
* chore(speech): update the api
* chore(sqladmin): update the api
* chore(storage): update the api
* chore(storagetransfer): update the api
* chore(sts): update the api
* chore(tagmanager): update the api
* chore(testing): update the api
* chore(toolresults): update the api
* chore(transcoder): update the api
* chore(vectortile): update the api
* chore(videointelligence): update the api
* chore(vision): update the api
* chore(webmasters): update the api
* chore(workflowexecutions): update the api
* chore(youtube): update the api
diff --git a/docs/dyn/compute_v1.regionBackendServices.html b/docs/dyn/compute_v1.regionBackendServices.html
index 66d0de4..feec88d 100644
--- a/docs/dyn/compute_v1.regionBackendServices.html
+++ b/docs/dyn/compute_v1.regionBackendServices.html
@@ -157,6 +157,7 @@
   "insertTime": "A String", # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   "kind": "compute#operation", # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
   "name": "A String", # [Output Only] Name of the operation.
+  "operationGroupId": "A String", # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   "operationType": "A String", # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
   "progress": 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
   "region": "A String", # [Output Only] The URL of the region where the operation resides. Only applicable when performing regional operations.
@@ -214,67 +215,51 @@
       # Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
   "backends": [ # The list of backends that serve this BackendService.
     { # Message containing information of one individual backend.
-      "balancingMode": "A String", # Specifies the balancing mode for the backend.
+      "balancingMode": "A String", # Specifies how to determine whether the backend of a load balancer can handle additional traffic or is fully loaded. For usage guidelines, see  Connection balancing mode.
+      "capacityScaler": 3.14, # A multiplier applied to the backend's target capacity of its balancing mode. The default value is 1, which means the group serves up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. The valid ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service.
           #
-          # When choosing a balancing mode, you need to consider the loadBalancingScheme, and protocol for the backend service, as well as the type of backend (instance group or NEG).
+          # Not supported by:
           #
-          #
-          # - If the load balancing mode is CONNECTION, then the load is spread based on how many concurrent connections the backend can handle.
-          # You can use the CONNECTION balancing mode if the protocol for the backend service is SSL, TCP, or UDP.
-          #
-          # If the loadBalancingScheme for the backend service is EXTERNAL (SSL Proxy and TCP Proxy load balancers), you must also specify exactly one of the following parameters: maxConnections (except for regional managed instance groups), maxConnectionsPerInstance, or maxConnectionsPerEndpoint.
-          #
-          # If the loadBalancingScheme for the backend service is INTERNAL (internal TCP/UDP load balancers), you cannot specify any additional parameters.
-          #
-          # - If the load balancing mode is RATE, the load is spread based on the rate of HTTP requests per second (RPS).
-          # You can use the RATE balancing mode if the protocol for the backend service is HTTP or HTTPS. You must specify exactly one of the following parameters: maxRate (except for regional managed instance groups), maxRatePerInstance, or maxRatePerEndpoint.
-          #
-          # - If the load balancing mode is UTILIZATION, the load is spread based on the backend utilization of instances in an instance group.
-          # You can use the UTILIZATION balancing mode if the loadBalancingScheme of the backend service is EXTERNAL, INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED and the backends are instance groups. There are no restrictions on the backend service protocol.
-      "capacityScaler": 3.14, # A multiplier applied to the group's maximum servicing capacity (based on UTILIZATION, RATE or CONNECTION). Default value is 1, which means the group will serve up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. Valid range is 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service.
-          #
-          # This cannot be used for internal load balancing.
+          # - Internal TCP/UDP Load Balancing - Network Load Balancing
       "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
       "failover": True or False, # This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService.
       "group": "A String", # The fully-qualified URL of an instance group or network endpoint group (NEG) resource. The type of backend that a backend service supports depends on the backend service's loadBalancingScheme.
           #
           #
-          # - When the loadBalancingScheme for the backend service is EXTERNAL, INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED, the backend can be either an instance group or a NEG. The backends on the backend service must be either all instance groups or all NEGs. You cannot mix instance group and NEG backends on the same backend service.
+          # - When the loadBalancingScheme for the backend service is EXTERNAL (except Network Load Balancing),  INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED , the backend can be either an instance group or a NEG. The backends on the backend service must be either all instance groups or all NEGs. You cannot mix instance group and NEG backends on the same backend service.
           #
           #
-          # - When the loadBalancingScheme for the backend service is INTERNAL, the backend must be an instance group in the same region as the backend service. NEGs are not supported.
+          # - When the loadBalancingScheme for the backend service is EXTERNAL for Network Load Balancing or INTERNAL for Internal TCP/UDP Load Balancing, the backend must be an instance group. NEGs are not supported.
+          #
+          # For regional services, the backend must be in the same region as the backend service.
           #
           # You must use the fully-qualified URL (starting with https://www.googleapis.com/) to specify the instance group or NEG. Partial URLs are not supported.
-      "maxConnections": 42, # Defines a target maximum number of simultaneous connections that the backend can handle. Valid for network endpoint group and instance group backends (except for regional managed instance groups). If the backend's balancingMode is UTILIZATION, this is an optional parameter. If the backend's balancingMode is CONNECTION, and backend is attached to a backend service whose loadBalancingScheme is EXTERNAL, you must specify either this parameter, maxConnectionsPerInstance, or maxConnectionsPerEndpoint.
+      "maxConnections": 42, # Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend's balancingMode is RATE. Not supported by:
           #
-          # Not available if the backend's balancingMode is RATE. If the loadBalancingScheme is INTERNAL, then maxConnections is not supported, even though the backend requires a balancing mode of CONNECTION.
-      "maxConnectionsPerEndpoint": 42, # Defines a target maximum number of simultaneous connections for an endpoint of a NEG. This is multiplied by the number of endpoints in the NEG to implicitly calculate a maximum number of target maximum simultaneous connections for the NEG. If the backend's balancingMode is CONNECTION, and the backend is attached to a backend service whose loadBalancingScheme is EXTERNAL, you must specify either this parameter, maxConnections, or maxConnectionsPerInstance.
+          # - Internal TCP/UDP Load Balancing - Network Load Balancing
+      "maxConnectionsPerEndpoint": 42, # Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode.
           #
-          # Not available if the backend's balancingMode is RATE. Internal TCP/UDP load balancing does not support setting maxConnectionsPerEndpoint even though its backends require a balancing mode of CONNECTION.
-      "maxConnectionsPerInstance": 42, # Defines a target maximum number of simultaneous connections for a single VM in a backend instance group. This is multiplied by the number of instances in the instance group to implicitly calculate a target maximum number of simultaneous connections for the whole instance group. If the backend's balancingMode is UTILIZATION, this is an optional parameter. If the backend's balancingMode is CONNECTION, and backend is attached to a backend service whose loadBalancingScheme is EXTERNAL, you must specify either this parameter, maxConnections, or maxConnectionsPerEndpoint.
+          # Not available if the backend's balancingMode is RATE. Not supported by:
           #
-          # Not available if the backend's balancingMode is RATE. Internal TCP/UDP load balancing does not support setting maxConnectionsPerInstance even though its backends require a balancing mode of CONNECTION.
-      "maxRate": 42, # Defines a maximum number of HTTP requests per second (RPS) that the backend can handle. Valid for network endpoint group and instance group backends (except for regional managed instance groups). Must not be defined if the backend is a managed instance group that uses autoscaling based on load balancing.
+          # - Internal TCP/UDP Load Balancing - Network Load Balancing.
+      "maxConnectionsPerInstance": 42, # Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode.
           #
-          # If the backend's balancingMode is UTILIZATION, this is an optional parameter. If the backend's balancingMode is RATE, you must specify maxRate, maxRatePerInstance, or maxRatePerEndpoint.
+          # Not available if the backend's balancingMode is RATE. Not supported by:
+          #
+          # - Internal TCP/UDP Load Balancing - Network Load Balancing.
+      "maxRate": 42, # Defines a maximum number of HTTP requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode.
           #
           # Not available if the backend's balancingMode is CONNECTION.
-      "maxRatePerEndpoint": 3.14, # Defines a maximum target for requests per second (RPS) for an endpoint of a NEG. This is multiplied by the number of endpoints in the NEG to implicitly calculate a target maximum rate for the NEG.
-          #
-          # If the backend's balancingMode is RATE, you must specify either this parameter, maxRate (except for regional managed instance groups), or maxRatePerInstance.
+      "maxRatePerEndpoint": 3.14, # Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode.
           #
           # Not available if the backend's balancingMode is CONNECTION.
-      "maxRatePerInstance": 3.14, # Defines a maximum target for requests per second (RPS) for a single VM in a backend instance group. This is multiplied by the number of instances in the instance group to implicitly calculate a target maximum rate for the whole instance group.
-          #
-          # If the backend's balancingMode is UTILIZATION, this is an optional parameter. If the backend's balancingMode is RATE, you must specify either this parameter, maxRate (except for regional managed instance groups), or maxRatePerEndpoint.
+      "maxRatePerInstance": 3.14, # Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode.
           #
           # Not available if the backend's balancingMode is CONNECTION.
-      "maxUtilization": 3.14, # Defines the maximum average backend utilization of a backend VM in an instance group. The valid range is [0.0, 1.0]. This is an optional parameter if the backend's balancingMode is UTILIZATION.
-          #
-          # This parameter can be used in conjunction with maxRate, maxRatePerInstance, maxConnections (except for regional managed instance groups), or maxConnectionsPerInstance.
+      "maxUtilization": 3.14,
     },
   ],
-  "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+  "cdnPolicy": { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService. Only available for  external HTTP(S) Load Balancing.
     "cacheKeyPolicy": { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
       "includeHost": True or False, # If true, requests to different hosts will be cached separately.
       "includeProtocol": True or False, # If true, http and https requests will be cached separately.
@@ -286,6 +271,16 @@
         "A String",
       ],
     },
+    "cacheMode": "A String", # Specifies the cache setting for all responses from this backend. The possible values are:
+        #
+        # USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google's edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server.
+        #
+        # FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store" or "no-cache" directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content.
+        #
+        # CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached.
+    "clientTtl": 42, # Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a "public" directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a "public" cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 86400s (1 day).
+    "defaultTtl": 42, # Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of "0" means "always revalidate". The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
+    "maxTtl": 42, # Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of "0" means "always revalidate". The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
     "signedUrlCacheMaxAgeSec": "A String", # Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a "Cache-Control: public, max-age=[TTL]" header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
     "signedUrlKeyNames": [ # [Output Only] Names of the keys for signing request URLs.
       "A String",
@@ -305,7 +300,7 @@
     "maxRetries": 42, # The maximum number of parallel retries allowed to the backend cluster. If not specified, the default is 1.
   },
   "connectionDraining": { # Message containing connection draining configuration.
-    "drainingTimeoutSec": 42, # The amount of time in seconds to allow existing connections to persist while on unhealthy backend VMs. Only applicable if the protocol is not UDP. The valid range is [0, 3600].
+    "drainingTimeoutSec": 42, # Configures a duration timeout for existing requests on a removed backend instance. For supported load balancers and protocols, as described in Enabling connection draining.
   },
   "consistentHash": { # This message defines settings for a consistent hash style load balancer. # Consistent Hash-based load balancing can be used to provide soft session affinity based on HTTP headers, cookies or other properties. This load balancing policy is applicable only for HTTP connections. The affinity to a particular destination host will be lost when one or more hosts are added/removed from the destination service. This field specifies parameters that control consistent hashing. This field is only applicable when localityLbPolicy is set to MAGLEV or RING_HASH.
       #
@@ -329,16 +324,17 @@
   "customRequestHeaders": [ # Headers that the HTTP/S load balancer should add to proxied requests.
     "A String",
   ],
+  "customResponseHeaders": [ # Headers that the HTTP/S load balancer should add to proxied responses.
+    "A String",
+  ],
   "description": "A String", # An optional description of this resource. Provide this property when you create the resource.
   "enableCDN": True or False, # If true, enables Cloud CDN for the backend service. Only applicable if the loadBalancingScheme is EXTERNAL and the protocol is HTTP or HTTPS.
-  "failoverPolicy": { # Applicable only to Failover for Internal TCP/UDP Load Balancing. On failover or failback, this field indicates whether connection draining will be honored. GCP has a fixed connection draining timeout of 10 minutes. A setting of true terminates existing TCP connections to the active pool during failover and failback, immediately draining traffic. A setting of false allows existing TCP connections to persist, even on VMs no longer in the active pool, for up to the duration of the connection draining timeout (10 minutes). # Applicable only to Failover for Internal TCP/UDP Load Balancing. Requires at least one backend instance group to be defined as a backup (failover) backend.
+  "failoverPolicy": { # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network Load Balancing. On failover or failback, this field indicates whether connection draining will be honored. GCP has a fixed connection draining timeout of 10 minutes. A setting of true terminates existing TCP connections to the active pool during failover and failback, immediately draining traffic. A setting of false allows existing TCP connections to persist, even on VMs no longer in the active pool, for up to the duration of the connection draining timeout (10 minutes). # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network Load Balancing. Requires at least one backend instance group to be defined as a backup (failover) backend.
     "disableConnectionDrainOnFailover": True or False, # This can be set to true only if the protocol is TCP.
         #
         # The default is false.
-    "dropTrafficIfUnhealthy": True or False, # Applicable only to Failover for Internal TCP/UDP Load Balancing. If set to true, connections to the load balancer are dropped when all primary and all backup backend VMs are unhealthy. If set to false, connections are distributed among all primary VMs when all primary and all backup backend VMs are unhealthy.
-        #
-        # The default is false.
-    "failoverRatio": 3.14, # Applicable only to Failover for Internal TCP/UDP Load Balancing. The value of the field must be in the range [0, 1]. If the value is 0, the load balancer performs a failover when the number of healthy primary VMs equals zero. For all other values, the load balancer performs a failover when the total number of healthy primary VMs is less than this ratio.
+    "dropTrafficIfUnhealthy": True or False, # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network Load Balancing, If set to true, connections to the load balancer are dropped when all primary and all backup backend VMs are unhealthy.If set to false, connections are distributed among all primary VMs when all primary and all backup backend VMs are unhealthy. The default is false.
+    "failoverRatio": 3.14, # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network Load Balancing. The value of the field must be in the range [0, 1]. If the value is 0, the load balancer performs a failover when the number of healthy primary VMs equals zero. For all other values, the load balancer performs a failover when the total number of healthy primary VMs is less than this ratio.
   },
   "fingerprint": "A String", # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService, otherwise the request will fail with error 412 conditionNotMet.
       #
@@ -346,7 +342,7 @@
   "healthChecks": [ # The list of URLs to the healthChecks, httpHealthChecks (legacy), or httpsHealthChecks (legacy) resource for health checking this backend service. Not all backend services support legacy health checks. See  Load balancer guide. Currently, at most one health check can be specified for each backend service. Backend services with instance group or zonal NEG backends must have a health check. Backend services with internet or serverless NEG backends must not have a health check.
     "A String",
   ],
-  "iap": { # Identity-Aware Proxy # The configurations for Identity-Aware Proxy on this resource.
+  "iap": { # Identity-Aware Proxy # The configurations for Identity-Aware Proxy on this resource. Not available for Internal TCP/UDP Load Balancing and Network Load Balancing.
     "enabled": True or False, # Whether the serving infrastructure will authenticate and authorize all incoming requests. If true, the oauth2ClientId and oauth2ClientSecret fields must be non-empty.
     "oauth2ClientId": "A String", # OAuth2 client ID to use for the authentication flow.
     "oauth2ClientSecret": "A String", # OAuth2 client secret to use for the authentication flow. For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2ClientSecretSha256 field.
@@ -354,7 +350,7 @@
   },
   "id": "A String", # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   "kind": "compute#backendService", # [Output Only] Type of resource. Always compute#backendService for backend services.
-  "loadBalancingScheme": "A String", # Specifies the load balancer type. Choose EXTERNAL for load balancers that receive traffic from external clients. Choose INTERNAL for Internal TCP/UDP Load Balancing. Choose INTERNAL_MANAGED for Internal HTTP(S) Load Balancing. Choose INTERNAL_SELF_MANAGED for Traffic Director. A backend service created for one type of load balancing cannot be used with another. For more information, refer to Choosing a load balancer.
+  "loadBalancingScheme": "A String", # Specifies the load balancer type. Choose EXTERNAL for external HTTP(S), SSL Proxy, TCP Proxy and Network Load Balancing. Choose  INTERNAL for Internal TCP/UDP Load Balancing. Choose  INTERNAL_MANAGED for Internal HTTP(S) Load Balancing.  INTERNAL_SELF_MANAGED for Traffic Director. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
   "localityLbPolicy": "A String", # The load balancing algorithm used within the scope of the locality. The possible values are:
       # - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
       # - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
@@ -375,7 +371,7 @@
     "sampleRate": 3.14, # This field can only be specified if logging is enabled for this backend service. The value of the field must be in [0, 1]. This configures the sampling rate of requests to the load balancer where 1.0 means all logged requests are reported and 0.0 means no logged requests are reported. The default value is 1.0.
   },
   "name": "A String", # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
-  "network": "A String", # The URL of the network to which this backend service belongs. This field can only be spcified when the load balancing scheme is set to INTERNAL.
+  "network": "A String", # The URL of the network to which this backend service belongs. This field can only be specified when the load balancing scheme is set to INTERNAL.
   "outlierDetection": { # Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. # Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. If not set, this feature is considered disabled.
       #
       # This field is applicable to either:
@@ -403,12 +399,12 @@
   },
   "port": 42, # Deprecated in favor of portName. The TCP port to connect on the backend. The default value is 80.
       #
-      # This cannot be used if the loadBalancingScheme is INTERNAL (Internal TCP/UDP Load Balancing).
-  "portName": "A String", # A named port on a backend instance group representing the port for communication to the backend VMs in that group. Required when the loadBalancingScheme is EXTERNAL, INTERNAL_MANAGED, or INTERNAL_SELF_MANAGED and the backends are instance groups. The named port must be defined on each backend instance group. This parameter has no meaning if the backends are NEGs.
+      # Backend services for Internal TCP/UDP Load Balancing and Network Load Balancing require you omit port.
+  "portName": "A String", # A named port on a backend instance group representing the port for communication to the backend VMs in that group. Required when the loadBalancingScheme is EXTERNAL (except Network Load Balancing), INTERNAL_MANAGED, or  INTERNAL_SELF_MANAGED and the backends are instance groups. The named port must be defined on each backend instance group. This parameter has no meaning if the backends are NEGs.
       #
       #
       #
-      # Must be omitted when the loadBalancingScheme is INTERNAL (Internal TCP/UDP Load Balancing).
+      # Backend services for Internal TCP/UDP Load Balancing and Network Load Balancing require you omit port_name.
   "protocol": "A String", # The protocol this BackendService uses to communicate with backends.
       #
       # Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancer or for Traffic Director for more information.
@@ -431,16 +427,16 @@
     ],
   },
   "selfLink": "A String", # [Output Only] Server-defined URL for the resource.
-  "sessionAffinity": "A String", # Type of session affinity to use. The default is NONE. Session affinity is not applicable if the --protocol is UDP.
+  "sessionAffinity": "A String", # Type of session affinity to use. The default is NONE.
       #
-      # When the loadBalancingScheme is EXTERNAL, possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. You can use GENERATED_COOKIE if the protocol is HTTP or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       #
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       #
       # When the loadBalancingScheme is INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED, possible values are NONE, CLIENT_IP, GENERATED_COOKIE, HEADER_FIELD, or HTTP_COOKIE.
       #
       # Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
-  "timeoutSec": 42, # The backend service timeout has a different meaning depending on the type of load balancer. For more information see,  Backend service settings The default is 30 seconds.
+  "timeoutSec": 42, # The backend service timeout has a different meaning depending on the type of load balancer. For more information see,  Backend service settings The default is 30 seconds. The full range of timeout values allowed is 1 - 2,147,483,647 seconds.
 }</pre>
 </div>
 
@@ -474,8 +470,10 @@
       },
       &quot;healthState&quot;: &quot;A String&quot;, # Health state of the instance.
       &quot;instance&quot;: &quot;A String&quot;, # URL of the instance resource.
-      &quot;ipAddress&quot;: &quot;A String&quot;, # A forwarding rule IP address assigned to this instance.
+      &quot;ipAddress&quot;: &quot;A String&quot;, # For target pool based Network Load Balancing, it indicates the forwarding rule&#x27;s IP address assigned to this instance. For other types of load balancing, the field indicates VM internal ip.
       &quot;port&quot;: 42, # The named port of the instance group, not necessarily the port that is health-checked.
+      &quot;weight&quot;: &quot;A String&quot;,
+      &quot;weightError&quot;: &quot;A String&quot;,
     },
   ],
   &quot;kind&quot;: &quot;compute#backendServiceGroupHealth&quot;, # [Output Only] Type of resource. Always compute#backendServiceGroupHealth for the health of backend services.
@@ -510,67 +508,51 @@
       # Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
   &quot;backends&quot;: [ # The list of backends that serve this BackendService.
     { # Message containing information of one individual backend.
-      &quot;balancingMode&quot;: &quot;A String&quot;, # Specifies the balancing mode for the backend.
+      &quot;balancingMode&quot;: &quot;A String&quot;, # Specifies how to determine whether the backend of a load balancer can handle additional traffic or is fully loaded. For usage guidelines, see  Connection balancing mode.
+      &quot;capacityScaler&quot;: 3.14, # A multiplier applied to the backend&#x27;s target capacity of its balancing mode. The default value is 1, which means the group serves up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. The valid ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service.
           #
-          # When choosing a balancing mode, you need to consider the loadBalancingScheme, and protocol for the backend service, as well as the type of backend (instance group or NEG).
+          # Not supported by:
           #
-          #
-          # - If the load balancing mode is CONNECTION, then the load is spread based on how many concurrent connections the backend can handle.
-          # You can use the CONNECTION balancing mode if the protocol for the backend service is SSL, TCP, or UDP.
-          #
-          # If the loadBalancingScheme for the backend service is EXTERNAL (SSL Proxy and TCP Proxy load balancers), you must also specify exactly one of the following parameters: maxConnections (except for regional managed instance groups), maxConnectionsPerInstance, or maxConnectionsPerEndpoint.
-          #
-          # If the loadBalancingScheme for the backend service is INTERNAL (internal TCP/UDP load balancers), you cannot specify any additional parameters.
-          #
-          # - If the load balancing mode is RATE, the load is spread based on the rate of HTTP requests per second (RPS).
-          # You can use the RATE balancing mode if the protocol for the backend service is HTTP or HTTPS. You must specify exactly one of the following parameters: maxRate (except for regional managed instance groups), maxRatePerInstance, or maxRatePerEndpoint.
-          #
-          # - If the load balancing mode is UTILIZATION, the load is spread based on the backend utilization of instances in an instance group.
-          # You can use the UTILIZATION balancing mode if the loadBalancingScheme of the backend service is EXTERNAL, INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED and the backends are instance groups. There are no restrictions on the backend service protocol.
-      &quot;capacityScaler&quot;: 3.14, # A multiplier applied to the group&#x27;s maximum servicing capacity (based on UTILIZATION, RATE or CONNECTION). Default value is 1, which means the group will serve up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. Valid range is 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service.
-          #
-          # This cannot be used for internal load balancing.
+          # - Internal TCP/UDP Load Balancing - Network Load Balancing
       &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
       &quot;failover&quot;: True or False, # This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService.
       &quot;group&quot;: &quot;A String&quot;, # The fully-qualified URL of an instance group or network endpoint group (NEG) resource. The type of backend that a backend service supports depends on the backend service&#x27;s loadBalancingScheme.
           #
           #
-          # - When the loadBalancingScheme for the backend service is EXTERNAL, INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED, the backend can be either an instance group or a NEG. The backends on the backend service must be either all instance groups or all NEGs. You cannot mix instance group and NEG backends on the same backend service.
+          # - When the loadBalancingScheme for the backend service is EXTERNAL (except Network Load Balancing),  INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED , the backend can be either an instance group or a NEG. The backends on the backend service must be either all instance groups or all NEGs. You cannot mix instance group and NEG backends on the same backend service.
           #
           #
-          # - When the loadBalancingScheme for the backend service is INTERNAL, the backend must be an instance group in the same region as the backend service. NEGs are not supported.
+          # - When the loadBalancingScheme for the backend service is EXTERNAL for Network Load Balancing or INTERNAL for Internal TCP/UDP Load Balancing, the backend must be an instance group. NEGs are not supported.
+          #
+          # For regional services, the backend must be in the same region as the backend service.
           #
           # You must use the fully-qualified URL (starting with https://www.googleapis.com/) to specify the instance group or NEG. Partial URLs are not supported.
-      &quot;maxConnections&quot;: 42, # Defines a target maximum number of simultaneous connections that the backend can handle. Valid for network endpoint group and instance group backends (except for regional managed instance groups). If the backend&#x27;s balancingMode is UTILIZATION, this is an optional parameter. If the backend&#x27;s balancingMode is CONNECTION, and backend is attached to a backend service whose loadBalancingScheme is EXTERNAL, you must specify either this parameter, maxConnectionsPerInstance, or maxConnectionsPerEndpoint.
+      &quot;maxConnections&quot;: 42, # Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend&#x27;s balancingMode is RATE. Not supported by:
           #
-          # Not available if the backend&#x27;s balancingMode is RATE. If the loadBalancingScheme is INTERNAL, then maxConnections is not supported, even though the backend requires a balancing mode of CONNECTION.
-      &quot;maxConnectionsPerEndpoint&quot;: 42, # Defines a target maximum number of simultaneous connections for an endpoint of a NEG. This is multiplied by the number of endpoints in the NEG to implicitly calculate a maximum number of target maximum simultaneous connections for the NEG. If the backend&#x27;s balancingMode is CONNECTION, and the backend is attached to a backend service whose loadBalancingScheme is EXTERNAL, you must specify either this parameter, maxConnections, or maxConnectionsPerInstance.
+          # - Internal TCP/UDP Load Balancing - Network Load Balancing
+      &quot;maxConnectionsPerEndpoint&quot;: 42, # Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode.
           #
-          # Not available if the backend&#x27;s balancingMode is RATE. Internal TCP/UDP load balancing does not support setting maxConnectionsPerEndpoint even though its backends require a balancing mode of CONNECTION.
-      &quot;maxConnectionsPerInstance&quot;: 42, # Defines a target maximum number of simultaneous connections for a single VM in a backend instance group. This is multiplied by the number of instances in the instance group to implicitly calculate a target maximum number of simultaneous connections for the whole instance group. If the backend&#x27;s balancingMode is UTILIZATION, this is an optional parameter. If the backend&#x27;s balancingMode is CONNECTION, and backend is attached to a backend service whose loadBalancingScheme is EXTERNAL, you must specify either this parameter, maxConnections, or maxConnectionsPerEndpoint.
+          # Not available if the backend&#x27;s balancingMode is RATE. Not supported by:
           #
-          # Not available if the backend&#x27;s balancingMode is RATE. Internal TCP/UDP load balancing does not support setting maxConnectionsPerInstance even though its backends require a balancing mode of CONNECTION.
-      &quot;maxRate&quot;: 42, # Defines a maximum number of HTTP requests per second (RPS) that the backend can handle. Valid for network endpoint group and instance group backends (except for regional managed instance groups). Must not be defined if the backend is a managed instance group that uses autoscaling based on load balancing.
+          # - Internal TCP/UDP Load Balancing - Network Load Balancing.
+      &quot;maxConnectionsPerInstance&quot;: 42, # Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode.
           #
-          # If the backend&#x27;s balancingMode is UTILIZATION, this is an optional parameter. If the backend&#x27;s balancingMode is RATE, you must specify maxRate, maxRatePerInstance, or maxRatePerEndpoint.
+          # Not available if the backend&#x27;s balancingMode is RATE. Not supported by:
+          #
+          # - Internal TCP/UDP Load Balancing - Network Load Balancing.
+      &quot;maxRate&quot;: 42, # Defines a maximum number of HTTP requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode.
           #
           # Not available if the backend&#x27;s balancingMode is CONNECTION.
-      &quot;maxRatePerEndpoint&quot;: 3.14, # Defines a maximum target for requests per second (RPS) for an endpoint of a NEG. This is multiplied by the number of endpoints in the NEG to implicitly calculate a target maximum rate for the NEG.
-          #
-          # If the backend&#x27;s balancingMode is RATE, you must specify either this parameter, maxRate (except for regional managed instance groups), or maxRatePerInstance.
+      &quot;maxRatePerEndpoint&quot;: 3.14, # Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode.
           #
           # Not available if the backend&#x27;s balancingMode is CONNECTION.
-      &quot;maxRatePerInstance&quot;: 3.14, # Defines a maximum target for requests per second (RPS) for a single VM in a backend instance group. This is multiplied by the number of instances in the instance group to implicitly calculate a target maximum rate for the whole instance group.
-          #
-          # If the backend&#x27;s balancingMode is UTILIZATION, this is an optional parameter. If the backend&#x27;s balancingMode is RATE, you must specify either this parameter, maxRate (except for regional managed instance groups), or maxRatePerEndpoint.
+      &quot;maxRatePerInstance&quot;: 3.14, # Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode.
           #
           # Not available if the backend&#x27;s balancingMode is CONNECTION.
-      &quot;maxUtilization&quot;: 3.14, # Defines the maximum average backend utilization of a backend VM in an instance group. The valid range is [0.0, 1.0]. This is an optional parameter if the backend&#x27;s balancingMode is UTILIZATION.
-          #
-          # This parameter can be used in conjunction with maxRate, maxRatePerInstance, maxConnections (except for regional managed instance groups), or maxConnectionsPerInstance.
+      &quot;maxUtilization&quot;: 3.14,
     },
   ],
-  &quot;cdnPolicy&quot;: { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+  &quot;cdnPolicy&quot;: { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService. Only available for  external HTTP(S) Load Balancing.
     &quot;cacheKeyPolicy&quot;: { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
       &quot;includeHost&quot;: True or False, # If true, requests to different hosts will be cached separately.
       &quot;includeProtocol&quot;: True or False, # If true, http and https requests will be cached separately.
@@ -582,6 +564,16 @@
         &quot;A String&quot;,
       ],
     },
+    &quot;cacheMode&quot;: &quot;A String&quot;, # Specifies the cache setting for all responses from this backend. The possible values are:
+        #
+        # USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google&#x27;s edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server.
+        #
+        # FORCE_CACHE_ALL Cache all content, ignoring any &quot;private&quot;, &quot;no-store&quot; or &quot;no-cache&quot; directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content.
+        #
+        # CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached.
+    &quot;clientTtl&quot;: 42, # Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a &quot;public&quot; directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a &quot;public&quot; cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 86400s (1 day).
+    &quot;defaultTtl&quot;: 42, # Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of &quot;0&quot; means &quot;always revalidate&quot;. The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
+    &quot;maxTtl&quot;: 42, # Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of &quot;0&quot; means &quot;always revalidate&quot;. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
     &quot;signedUrlCacheMaxAgeSec&quot;: &quot;A String&quot;, # Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a &quot;Cache-Control: public, max-age=[TTL]&quot; header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
     &quot;signedUrlKeyNames&quot;: [ # [Output Only] Names of the keys for signing request URLs.
       &quot;A String&quot;,
@@ -601,7 +593,7 @@
     &quot;maxRetries&quot;: 42, # The maximum number of parallel retries allowed to the backend cluster. If not specified, the default is 1.
   },
   &quot;connectionDraining&quot;: { # Message containing connection draining configuration.
-    &quot;drainingTimeoutSec&quot;: 42, # The amount of time in seconds to allow existing connections to persist while on unhealthy backend VMs. Only applicable if the protocol is not UDP. The valid range is [0, 3600].
+    &quot;drainingTimeoutSec&quot;: 42, # Configures a duration timeout for existing requests on a removed backend instance. For supported load balancers and protocols, as described in Enabling connection draining.
   },
   &quot;consistentHash&quot;: { # This message defines settings for a consistent hash style load balancer. # Consistent Hash-based load balancing can be used to provide soft session affinity based on HTTP headers, cookies or other properties. This load balancing policy is applicable only for HTTP connections. The affinity to a particular destination host will be lost when one or more hosts are added/removed from the destination service. This field specifies parameters that control consistent hashing. This field is only applicable when localityLbPolicy is set to MAGLEV or RING_HASH.
       # 
@@ -625,16 +617,17 @@
   &quot;customRequestHeaders&quot;: [ # Headers that the HTTP/S load balancer should add to proxied requests.
     &quot;A String&quot;,
   ],
+  &quot;customResponseHeaders&quot;: [ # Headers that the HTTP/S load balancer should add to proxied responses.
+    &quot;A String&quot;,
+  ],
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;enableCDN&quot;: True or False, # If true, enables Cloud CDN for the backend service. Only applicable if the loadBalancingScheme is EXTERNAL and the protocol is HTTP or HTTPS.
-  &quot;failoverPolicy&quot;: { # Applicable only to Failover for Internal TCP/UDP Load Balancing. On failover or failback, this field indicates whether connection draining will be honored. GCP has a fixed connection draining timeout of 10 minutes. A setting of true terminates existing TCP connections to the active pool during failover and failback, immediately draining traffic. A setting of false allows existing TCP connections to persist, even on VMs no longer in the active pool, for up to the duration of the connection draining timeout (10 minutes). # Applicable only to Failover for Internal TCP/UDP Load Balancing. Requires at least one backend instance group to be defined as a backup (failover) backend.
+  &quot;failoverPolicy&quot;: { # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network Load Balancing. On failover or failback, this field indicates whether connection draining will be honored. GCP has a fixed connection draining timeout of 10 minutes. A setting of true terminates existing TCP connections to the active pool during failover and failback, immediately draining traffic. A setting of false allows existing TCP connections to persist, even on VMs no longer in the active pool, for up to the duration of the connection draining timeout (10 minutes). # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network Load Balancing. Requires at least one backend instance group to be defined as a backup (failover) backend.
     &quot;disableConnectionDrainOnFailover&quot;: True or False, # This can be set to true only if the protocol is TCP.
         #
         # The default is false.
-    &quot;dropTrafficIfUnhealthy&quot;: True or False, # Applicable only to Failover for Internal TCP/UDP Load Balancing. If set to true, connections to the load balancer are dropped when all primary and all backup backend VMs are unhealthy. If set to false, connections are distributed among all primary VMs when all primary and all backup backend VMs are unhealthy.
-        #
-        # The default is false.
-    &quot;failoverRatio&quot;: 3.14, # Applicable only to Failover for Internal TCP/UDP Load Balancing. The value of the field must be in the range [0, 1]. If the value is 0, the load balancer performs a failover when the number of healthy primary VMs equals zero. For all other values, the load balancer performs a failover when the total number of healthy primary VMs is less than this ratio.
+    &quot;dropTrafficIfUnhealthy&quot;: True or False, # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network Load Balancing, If set to true, connections to the load balancer are dropped when all primary and all backup backend VMs are unhealthy.If set to false, connections are distributed among all primary VMs when all primary and all backup backend VMs are unhealthy. The default is false.
+    &quot;failoverRatio&quot;: 3.14, # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network Load Balancing. The value of the field must be in the range [0, 1]. If the value is 0, the load balancer performs a failover when the number of healthy primary VMs equals zero. For all other values, the load balancer performs a failover when the total number of healthy primary VMs is less than this ratio.
   },
   &quot;fingerprint&quot;: &quot;A String&quot;, # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService, otherwise the request will fail with error 412 conditionNotMet.
       # 
@@ -642,7 +635,7 @@
   &quot;healthChecks&quot;: [ # The list of URLs to the healthChecks, httpHealthChecks (legacy), or httpsHealthChecks (legacy) resource for health checking this backend service. Not all backend services support legacy health checks. See  Load balancer guide. Currently, at most one health check can be specified for each backend service. Backend services with instance group or zonal NEG backends must have a health check. Backend services with internet or serverless NEG backends must not have a health check.
     &quot;A String&quot;,
   ],
-  &quot;iap&quot;: { # Identity-Aware Proxy # The configurations for Identity-Aware Proxy on this resource.
+  &quot;iap&quot;: { # Identity-Aware Proxy # The configurations for Identity-Aware Proxy on this resource. Not available for Internal TCP/UDP Load Balancing and Network Load Balancing.
     &quot;enabled&quot;: True or False, # Whether the serving infrastructure will authenticate and authorize all incoming requests. If true, the oauth2ClientId and oauth2ClientSecret fields must be non-empty.
     &quot;oauth2ClientId&quot;: &quot;A String&quot;, # OAuth2 client ID to use for the authentication flow.
     &quot;oauth2ClientSecret&quot;: &quot;A String&quot;, # OAuth2 client secret to use for the authentication flow. For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2ClientSecretSha256 field.
@@ -650,7 +643,7 @@
   },
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;kind&quot;: &quot;compute#backendService&quot;, # [Output Only] Type of resource. Always compute#backendService for backend services.
-  &quot;loadBalancingScheme&quot;: &quot;A String&quot;, # Specifies the load balancer type. Choose EXTERNAL for load balancers that receive traffic from external clients. Choose INTERNAL for Internal TCP/UDP Load Balancing. Choose INTERNAL_MANAGED for Internal HTTP(S) Load Balancing. Choose INTERNAL_SELF_MANAGED for Traffic Director. A backend service created for one type of load balancing cannot be used with another. For more information, refer to Choosing a load balancer.
+  &quot;loadBalancingScheme&quot;: &quot;A String&quot;, # Specifies the load balancer type. Choose EXTERNAL for external HTTP(S), SSL Proxy, TCP Proxy and Network Load Balancing. Choose  INTERNAL for Internal TCP/UDP Load Balancing. Choose  INTERNAL_MANAGED for Internal HTTP(S) Load Balancing.  INTERNAL_SELF_MANAGED for Traffic Director. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
   &quot;localityLbPolicy&quot;: &quot;A String&quot;, # The load balancing algorithm used within the scope of the locality. The possible values are:
       # - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
       # - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
@@ -671,7 +664,7 @@
     &quot;sampleRate&quot;: 3.14, # This field can only be specified if logging is enabled for this backend service. The value of the field must be in [0, 1]. This configures the sampling rate of requests to the load balancer where 1.0 means all logged requests are reported and 0.0 means no logged requests are reported. The default value is 1.0.
   },
   &quot;name&quot;: &quot;A String&quot;, # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
-  &quot;network&quot;: &quot;A String&quot;, # The URL of the network to which this backend service belongs. This field can only be spcified when the load balancing scheme is set to INTERNAL.
+  &quot;network&quot;: &quot;A String&quot;, # The URL of the network to which this backend service belongs. This field can only be specified when the load balancing scheme is set to INTERNAL.
   &quot;outlierDetection&quot;: { # Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. # Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. If not set, this feature is considered disabled.
       # 
       # This field is applicable to either:
@@ -699,12 +692,12 @@
   },
   &quot;port&quot;: 42, # Deprecated in favor of portName. The TCP port to connect on the backend. The default value is 80.
       # 
-      # This cannot be used if the loadBalancingScheme is INTERNAL (Internal TCP/UDP Load Balancing).
-  &quot;portName&quot;: &quot;A String&quot;, # A named port on a backend instance group representing the port for communication to the backend VMs in that group. Required when the loadBalancingScheme is EXTERNAL, INTERNAL_MANAGED, or INTERNAL_SELF_MANAGED and the backends are instance groups. The named port must be defined on each backend instance group. This parameter has no meaning if the backends are NEGs.
+      # Backend services for Internal TCP/UDP Load Balancing and Network Load Balancing require you omit port.
+  &quot;portName&quot;: &quot;A String&quot;, # A named port on a backend instance group representing the port for communication to the backend VMs in that group. Required when the loadBalancingScheme is EXTERNAL (except Network Load Balancing), INTERNAL_MANAGED, or  INTERNAL_SELF_MANAGED and the backends are instance groups. The named port must be defined on each backend instance group. This parameter has no meaning if the backends are NEGs.
       # 
       # 
       # 
-      # Must be omitted when the loadBalancingScheme is INTERNAL (Internal TCP/UDP Load Balancing).
+      # Backend services for Internal TCP/UDP Load Balancing and Network Load Balancing require you omit port_name.
   &quot;protocol&quot;: &quot;A String&quot;, # The protocol this BackendService uses to communicate with backends.
       # 
       # Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancer or for Traffic Director for more information.
@@ -727,16 +720,16 @@
     ],
   },
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
-  &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE. Session affinity is not applicable if the --protocol is UDP.
+  &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       # 
-      # When the loadBalancingScheme is EXTERNAL, possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. You can use GENERATED_COOKIE if the protocol is HTTP or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       # 
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       # 
       # When the loadBalancingScheme is INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED, possible values are NONE, CLIENT_IP, GENERATED_COOKIE, HEADER_FIELD, or HTTP_COOKIE.
       # 
       # Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
-  &quot;timeoutSec&quot;: 42, # The backend service timeout has a different meaning depending on the type of load balancer. For more information see,  Backend service settings The default is 30 seconds.
+  &quot;timeoutSec&quot;: 42, # The backend service timeout has a different meaning depending on the type of load balancer. For more information see,  Backend service settings The default is 30 seconds. The full range of timeout values allowed is 1 - 2,147,483,647 seconds.
 }
 
   requestId: string, An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.
@@ -781,6 +774,7 @@
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
+  &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
   &quot;progress&quot;: 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
   &quot;region&quot;: &quot;A String&quot;, # [Output Only] The URL of the region where the operation resides. Only applicable when performing regional operations.
@@ -829,7 +823,7 @@
 
 Currently, only sorting by `name` or `creationTimestamp desc` is supported.
   pageToken: string, Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.
-  returnPartialSuccess: boolean, Opt-in for partial success behavior which provides partial results in case of failure. The default value is false and the logic is the same as today.
+  returnPartialSuccess: boolean, Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.
 
 Returns:
   An object of the form:
@@ -855,67 +849,51 @@
           # Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
       &quot;backends&quot;: [ # The list of backends that serve this BackendService.
         { # Message containing information of one individual backend.
-          &quot;balancingMode&quot;: &quot;A String&quot;, # Specifies the balancing mode for the backend.
+          &quot;balancingMode&quot;: &quot;A String&quot;, # Specifies how to determine whether the backend of a load balancer can handle additional traffic or is fully loaded. For usage guidelines, see  Connection balancing mode.
+          &quot;capacityScaler&quot;: 3.14, # A multiplier applied to the backend&#x27;s target capacity of its balancing mode. The default value is 1, which means the group serves up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. The valid ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service.
               #
-              # When choosing a balancing mode, you need to consider the loadBalancingScheme, and protocol for the backend service, as well as the type of backend (instance group or NEG).
+              # Not supported by:
               #
-              #
-              # - If the load balancing mode is CONNECTION, then the load is spread based on how many concurrent connections the backend can handle.
-              # You can use the CONNECTION balancing mode if the protocol for the backend service is SSL, TCP, or UDP.
-              #
-              # If the loadBalancingScheme for the backend service is EXTERNAL (SSL Proxy and TCP Proxy load balancers), you must also specify exactly one of the following parameters: maxConnections (except for regional managed instance groups), maxConnectionsPerInstance, or maxConnectionsPerEndpoint.
-              #
-              # If the loadBalancingScheme for the backend service is INTERNAL (internal TCP/UDP load balancers), you cannot specify any additional parameters.
-              #
-              # - If the load balancing mode is RATE, the load is spread based on the rate of HTTP requests per second (RPS).
-              # You can use the RATE balancing mode if the protocol for the backend service is HTTP or HTTPS. You must specify exactly one of the following parameters: maxRate (except for regional managed instance groups), maxRatePerInstance, or maxRatePerEndpoint.
-              #
-              # - If the load balancing mode is UTILIZATION, the load is spread based on the backend utilization of instances in an instance group.
-              # You can use the UTILIZATION balancing mode if the loadBalancingScheme of the backend service is EXTERNAL, INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED and the backends are instance groups. There are no restrictions on the backend service protocol.
-          &quot;capacityScaler&quot;: 3.14, # A multiplier applied to the group&#x27;s maximum servicing capacity (based on UTILIZATION, RATE or CONNECTION). Default value is 1, which means the group will serve up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. Valid range is 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service.
-              #
-              # This cannot be used for internal load balancing.
+              # - Internal TCP/UDP Load Balancing - Network Load Balancing
           &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
           &quot;failover&quot;: True or False, # This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService.
           &quot;group&quot;: &quot;A String&quot;, # The fully-qualified URL of an instance group or network endpoint group (NEG) resource. The type of backend that a backend service supports depends on the backend service&#x27;s loadBalancingScheme.
               #
               #
-              # - When the loadBalancingScheme for the backend service is EXTERNAL, INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED, the backend can be either an instance group or a NEG. The backends on the backend service must be either all instance groups or all NEGs. You cannot mix instance group and NEG backends on the same backend service.
+              # - When the loadBalancingScheme for the backend service is EXTERNAL (except Network Load Balancing),  INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED , the backend can be either an instance group or a NEG. The backends on the backend service must be either all instance groups or all NEGs. You cannot mix instance group and NEG backends on the same backend service.
               #
               #
-              # - When the loadBalancingScheme for the backend service is INTERNAL, the backend must be an instance group in the same region as the backend service. NEGs are not supported.
+              # - When the loadBalancingScheme for the backend service is EXTERNAL for Network Load Balancing or INTERNAL for Internal TCP/UDP Load Balancing, the backend must be an instance group. NEGs are not supported.
+              #
+              # For regional services, the backend must be in the same region as the backend service.
               #
               # You must use the fully-qualified URL (starting with https://www.googleapis.com/) to specify the instance group or NEG. Partial URLs are not supported.
-          &quot;maxConnections&quot;: 42, # Defines a target maximum number of simultaneous connections that the backend can handle. Valid for network endpoint group and instance group backends (except for regional managed instance groups). If the backend&#x27;s balancingMode is UTILIZATION, this is an optional parameter. If the backend&#x27;s balancingMode is CONNECTION, and backend is attached to a backend service whose loadBalancingScheme is EXTERNAL, you must specify either this parameter, maxConnectionsPerInstance, or maxConnectionsPerEndpoint.
+          &quot;maxConnections&quot;: 42, # Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend&#x27;s balancingMode is RATE. Not supported by:
               #
-              # Not available if the backend&#x27;s balancingMode is RATE. If the loadBalancingScheme is INTERNAL, then maxConnections is not supported, even though the backend requires a balancing mode of CONNECTION.
-          &quot;maxConnectionsPerEndpoint&quot;: 42, # Defines a target maximum number of simultaneous connections for an endpoint of a NEG. This is multiplied by the number of endpoints in the NEG to implicitly calculate a maximum number of target maximum simultaneous connections for the NEG. If the backend&#x27;s balancingMode is CONNECTION, and the backend is attached to a backend service whose loadBalancingScheme is EXTERNAL, you must specify either this parameter, maxConnections, or maxConnectionsPerInstance.
+              # - Internal TCP/UDP Load Balancing - Network Load Balancing
+          &quot;maxConnectionsPerEndpoint&quot;: 42, # Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode.
               #
-              # Not available if the backend&#x27;s balancingMode is RATE. Internal TCP/UDP load balancing does not support setting maxConnectionsPerEndpoint even though its backends require a balancing mode of CONNECTION.
-          &quot;maxConnectionsPerInstance&quot;: 42, # Defines a target maximum number of simultaneous connections for a single VM in a backend instance group. This is multiplied by the number of instances in the instance group to implicitly calculate a target maximum number of simultaneous connections for the whole instance group. If the backend&#x27;s balancingMode is UTILIZATION, this is an optional parameter. If the backend&#x27;s balancingMode is CONNECTION, and backend is attached to a backend service whose loadBalancingScheme is EXTERNAL, you must specify either this parameter, maxConnections, or maxConnectionsPerEndpoint.
+              # Not available if the backend&#x27;s balancingMode is RATE. Not supported by:
               #
-              # Not available if the backend&#x27;s balancingMode is RATE. Internal TCP/UDP load balancing does not support setting maxConnectionsPerInstance even though its backends require a balancing mode of CONNECTION.
-          &quot;maxRate&quot;: 42, # Defines a maximum number of HTTP requests per second (RPS) that the backend can handle. Valid for network endpoint group and instance group backends (except for regional managed instance groups). Must not be defined if the backend is a managed instance group that uses autoscaling based on load balancing.
+              # - Internal TCP/UDP Load Balancing - Network Load Balancing.
+          &quot;maxConnectionsPerInstance&quot;: 42, # Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode.
               #
-              # If the backend&#x27;s balancingMode is UTILIZATION, this is an optional parameter. If the backend&#x27;s balancingMode is RATE, you must specify maxRate, maxRatePerInstance, or maxRatePerEndpoint.
+              # Not available if the backend&#x27;s balancingMode is RATE. Not supported by:
+              #
+              # - Internal TCP/UDP Load Balancing - Network Load Balancing.
+          &quot;maxRate&quot;: 42, # Defines a maximum number of HTTP requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode.
               #
               # Not available if the backend&#x27;s balancingMode is CONNECTION.
-          &quot;maxRatePerEndpoint&quot;: 3.14, # Defines a maximum target for requests per second (RPS) for an endpoint of a NEG. This is multiplied by the number of endpoints in the NEG to implicitly calculate a target maximum rate for the NEG.
-              #
-              # If the backend&#x27;s balancingMode is RATE, you must specify either this parameter, maxRate (except for regional managed instance groups), or maxRatePerInstance.
+          &quot;maxRatePerEndpoint&quot;: 3.14, # Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode.
               #
               # Not available if the backend&#x27;s balancingMode is CONNECTION.
-          &quot;maxRatePerInstance&quot;: 3.14, # Defines a maximum target for requests per second (RPS) for a single VM in a backend instance group. This is multiplied by the number of instances in the instance group to implicitly calculate a target maximum rate for the whole instance group.
-              #
-              # If the backend&#x27;s balancingMode is UTILIZATION, this is an optional parameter. If the backend&#x27;s balancingMode is RATE, you must specify either this parameter, maxRate (except for regional managed instance groups), or maxRatePerEndpoint.
+          &quot;maxRatePerInstance&quot;: 3.14, # Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode.
               #
               # Not available if the backend&#x27;s balancingMode is CONNECTION.
-          &quot;maxUtilization&quot;: 3.14, # Defines the maximum average backend utilization of a backend VM in an instance group. The valid range is [0.0, 1.0]. This is an optional parameter if the backend&#x27;s balancingMode is UTILIZATION.
-              #
-              # This parameter can be used in conjunction with maxRate, maxRatePerInstance, maxConnections (except for regional managed instance groups), or maxConnectionsPerInstance.
+          &quot;maxUtilization&quot;: 3.14,
         },
       ],
-      &quot;cdnPolicy&quot;: { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+      &quot;cdnPolicy&quot;: { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService. Only available for  external HTTP(S) Load Balancing.
         &quot;cacheKeyPolicy&quot;: { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
           &quot;includeHost&quot;: True or False, # If true, requests to different hosts will be cached separately.
           &quot;includeProtocol&quot;: True or False, # If true, http and https requests will be cached separately.
@@ -927,6 +905,16 @@
             &quot;A String&quot;,
           ],
         },
+        &quot;cacheMode&quot;: &quot;A String&quot;, # Specifies the cache setting for all responses from this backend. The possible values are:
+            #
+            # USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google&#x27;s edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server.
+            #
+            # FORCE_CACHE_ALL Cache all content, ignoring any &quot;private&quot;, &quot;no-store&quot; or &quot;no-cache&quot; directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content.
+            #
+            # CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached.
+        &quot;clientTtl&quot;: 42, # Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a &quot;public&quot; directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a &quot;public&quot; cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 86400s (1 day).
+        &quot;defaultTtl&quot;: 42, # Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of &quot;0&quot; means &quot;always revalidate&quot;. The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
+        &quot;maxTtl&quot;: 42, # Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of &quot;0&quot; means &quot;always revalidate&quot;. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
         &quot;signedUrlCacheMaxAgeSec&quot;: &quot;A String&quot;, # Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a &quot;Cache-Control: public, max-age=[TTL]&quot; header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
         &quot;signedUrlKeyNames&quot;: [ # [Output Only] Names of the keys for signing request URLs.
           &quot;A String&quot;,
@@ -946,7 +934,7 @@
         &quot;maxRetries&quot;: 42, # The maximum number of parallel retries allowed to the backend cluster. If not specified, the default is 1.
       },
       &quot;connectionDraining&quot;: { # Message containing connection draining configuration.
-        &quot;drainingTimeoutSec&quot;: 42, # The amount of time in seconds to allow existing connections to persist while on unhealthy backend VMs. Only applicable if the protocol is not UDP. The valid range is [0, 3600].
+        &quot;drainingTimeoutSec&quot;: 42, # Configures a duration timeout for existing requests on a removed backend instance. For supported load balancers and protocols, as described in Enabling connection draining.
       },
       &quot;consistentHash&quot;: { # This message defines settings for a consistent hash style load balancer. # Consistent Hash-based load balancing can be used to provide soft session affinity based on HTTP headers, cookies or other properties. This load balancing policy is applicable only for HTTP connections. The affinity to a particular destination host will be lost when one or more hosts are added/removed from the destination service. This field specifies parameters that control consistent hashing. This field is only applicable when localityLbPolicy is set to MAGLEV or RING_HASH.
           #
@@ -970,16 +958,17 @@
       &quot;customRequestHeaders&quot;: [ # Headers that the HTTP/S load balancer should add to proxied requests.
         &quot;A String&quot;,
       ],
+      &quot;customResponseHeaders&quot;: [ # Headers that the HTTP/S load balancer should add to proxied responses.
+        &quot;A String&quot;,
+      ],
       &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
       &quot;enableCDN&quot;: True or False, # If true, enables Cloud CDN for the backend service. Only applicable if the loadBalancingScheme is EXTERNAL and the protocol is HTTP or HTTPS.
-      &quot;failoverPolicy&quot;: { # Applicable only to Failover for Internal TCP/UDP Load Balancing. On failover or failback, this field indicates whether connection draining will be honored. GCP has a fixed connection draining timeout of 10 minutes. A setting of true terminates existing TCP connections to the active pool during failover and failback, immediately draining traffic. A setting of false allows existing TCP connections to persist, even on VMs no longer in the active pool, for up to the duration of the connection draining timeout (10 minutes). # Applicable only to Failover for Internal TCP/UDP Load Balancing. Requires at least one backend instance group to be defined as a backup (failover) backend.
+      &quot;failoverPolicy&quot;: { # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network Load Balancing. On failover or failback, this field indicates whether connection draining will be honored. GCP has a fixed connection draining timeout of 10 minutes. A setting of true terminates existing TCP connections to the active pool during failover and failback, immediately draining traffic. A setting of false allows existing TCP connections to persist, even on VMs no longer in the active pool, for up to the duration of the connection draining timeout (10 minutes). # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network Load Balancing. Requires at least one backend instance group to be defined as a backup (failover) backend.
         &quot;disableConnectionDrainOnFailover&quot;: True or False, # This can be set to true only if the protocol is TCP.
             #
             # The default is false.
-        &quot;dropTrafficIfUnhealthy&quot;: True or False, # Applicable only to Failover for Internal TCP/UDP Load Balancing. If set to true, connections to the load balancer are dropped when all primary and all backup backend VMs are unhealthy. If set to false, connections are distributed among all primary VMs when all primary and all backup backend VMs are unhealthy.
-            #
-            # The default is false.
-        &quot;failoverRatio&quot;: 3.14, # Applicable only to Failover for Internal TCP/UDP Load Balancing. The value of the field must be in the range [0, 1]. If the value is 0, the load balancer performs a failover when the number of healthy primary VMs equals zero. For all other values, the load balancer performs a failover when the total number of healthy primary VMs is less than this ratio.
+        &quot;dropTrafficIfUnhealthy&quot;: True or False, # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network Load Balancing, If set to true, connections to the load balancer are dropped when all primary and all backup backend VMs are unhealthy.If set to false, connections are distributed among all primary VMs when all primary and all backup backend VMs are unhealthy. The default is false.
+        &quot;failoverRatio&quot;: 3.14, # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network Load Balancing. The value of the field must be in the range [0, 1]. If the value is 0, the load balancer performs a failover when the number of healthy primary VMs equals zero. For all other values, the load balancer performs a failover when the total number of healthy primary VMs is less than this ratio.
       },
       &quot;fingerprint&quot;: &quot;A String&quot;, # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService, otherwise the request will fail with error 412 conditionNotMet.
           #
@@ -987,7 +976,7 @@
       &quot;healthChecks&quot;: [ # The list of URLs to the healthChecks, httpHealthChecks (legacy), or httpsHealthChecks (legacy) resource for health checking this backend service. Not all backend services support legacy health checks. See  Load balancer guide. Currently, at most one health check can be specified for each backend service. Backend services with instance group or zonal NEG backends must have a health check. Backend services with internet or serverless NEG backends must not have a health check.
         &quot;A String&quot;,
       ],
-      &quot;iap&quot;: { # Identity-Aware Proxy # The configurations for Identity-Aware Proxy on this resource.
+      &quot;iap&quot;: { # Identity-Aware Proxy # The configurations for Identity-Aware Proxy on this resource. Not available for Internal TCP/UDP Load Balancing and Network Load Balancing.
         &quot;enabled&quot;: True or False, # Whether the serving infrastructure will authenticate and authorize all incoming requests. If true, the oauth2ClientId and oauth2ClientSecret fields must be non-empty.
         &quot;oauth2ClientId&quot;: &quot;A String&quot;, # OAuth2 client ID to use for the authentication flow.
         &quot;oauth2ClientSecret&quot;: &quot;A String&quot;, # OAuth2 client secret to use for the authentication flow. For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2ClientSecretSha256 field.
@@ -995,7 +984,7 @@
       },
       &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
       &quot;kind&quot;: &quot;compute#backendService&quot;, # [Output Only] Type of resource. Always compute#backendService for backend services.
-      &quot;loadBalancingScheme&quot;: &quot;A String&quot;, # Specifies the load balancer type. Choose EXTERNAL for load balancers that receive traffic from external clients. Choose INTERNAL for Internal TCP/UDP Load Balancing. Choose INTERNAL_MANAGED for Internal HTTP(S) Load Balancing. Choose INTERNAL_SELF_MANAGED for Traffic Director. A backend service created for one type of load balancing cannot be used with another. For more information, refer to Choosing a load balancer.
+      &quot;loadBalancingScheme&quot;: &quot;A String&quot;, # Specifies the load balancer type. Choose EXTERNAL for external HTTP(S), SSL Proxy, TCP Proxy and Network Load Balancing. Choose  INTERNAL for Internal TCP/UDP Load Balancing. Choose  INTERNAL_MANAGED for Internal HTTP(S) Load Balancing.  INTERNAL_SELF_MANAGED for Traffic Director. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
       &quot;localityLbPolicy&quot;: &quot;A String&quot;, # The load balancing algorithm used within the scope of the locality. The possible values are:
           # - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
           # - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
@@ -1016,7 +1005,7 @@
         &quot;sampleRate&quot;: 3.14, # This field can only be specified if logging is enabled for this backend service. The value of the field must be in [0, 1]. This configures the sampling rate of requests to the load balancer where 1.0 means all logged requests are reported and 0.0 means no logged requests are reported. The default value is 1.0.
       },
       &quot;name&quot;: &quot;A String&quot;, # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
-      &quot;network&quot;: &quot;A String&quot;, # The URL of the network to which this backend service belongs. This field can only be spcified when the load balancing scheme is set to INTERNAL.
+      &quot;network&quot;: &quot;A String&quot;, # The URL of the network to which this backend service belongs. This field can only be specified when the load balancing scheme is set to INTERNAL.
       &quot;outlierDetection&quot;: { # Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. # Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. If not set, this feature is considered disabled.
           #
           # This field is applicable to either:
@@ -1044,12 +1033,12 @@
       },
       &quot;port&quot;: 42, # Deprecated in favor of portName. The TCP port to connect on the backend. The default value is 80.
           #
-          # This cannot be used if the loadBalancingScheme is INTERNAL (Internal TCP/UDP Load Balancing).
-      &quot;portName&quot;: &quot;A String&quot;, # A named port on a backend instance group representing the port for communication to the backend VMs in that group. Required when the loadBalancingScheme is EXTERNAL, INTERNAL_MANAGED, or INTERNAL_SELF_MANAGED and the backends are instance groups. The named port must be defined on each backend instance group. This parameter has no meaning if the backends are NEGs.
+          # Backend services for Internal TCP/UDP Load Balancing and Network Load Balancing require you omit port.
+      &quot;portName&quot;: &quot;A String&quot;, # A named port on a backend instance group representing the port for communication to the backend VMs in that group. Required when the loadBalancingScheme is EXTERNAL (except Network Load Balancing), INTERNAL_MANAGED, or  INTERNAL_SELF_MANAGED and the backends are instance groups. The named port must be defined on each backend instance group. This parameter has no meaning if the backends are NEGs.
           #
           #
           #
-          # Must be omitted when the loadBalancingScheme is INTERNAL (Internal TCP/UDP Load Balancing).
+          # Backend services for Internal TCP/UDP Load Balancing and Network Load Balancing require you omit port_name.
       &quot;protocol&quot;: &quot;A String&quot;, # The protocol this BackendService uses to communicate with backends.
           #
           # Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancer or for Traffic Director for more information.
@@ -1072,16 +1061,16 @@
         ],
       },
       &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
-      &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE. Session affinity is not applicable if the --protocol is UDP.
+      &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
           #
-          # When the loadBalancingScheme is EXTERNAL, possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. You can use GENERATED_COOKIE if the protocol is HTTP or HTTPS.
+          # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
           #
           # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
           #
           # When the loadBalancingScheme is INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED, possible values are NONE, CLIENT_IP, GENERATED_COOKIE, HEADER_FIELD, or HTTP_COOKIE.
           #
           # Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
-      &quot;timeoutSec&quot;: 42, # The backend service timeout has a different meaning depending on the type of load balancer. For more information see,  Backend service settings The default is 30 seconds.
+      &quot;timeoutSec&quot;: 42, # The backend service timeout has a different meaning depending on the type of load balancer. For more information see,  Backend service settings The default is 30 seconds. The full range of timeout values allowed is 1 - 2,147,483,647 seconds.
     },
   ],
   &quot;kind&quot;: &quot;compute#backendServiceList&quot;, # [Output Only] Type of resource. Always compute#backendServiceList for lists of backend services.
@@ -1144,67 +1133,51 @@
       # Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
   &quot;backends&quot;: [ # The list of backends that serve this BackendService.
     { # Message containing information of one individual backend.
-      &quot;balancingMode&quot;: &quot;A String&quot;, # Specifies the balancing mode for the backend.
+      &quot;balancingMode&quot;: &quot;A String&quot;, # Specifies how to determine whether the backend of a load balancer can handle additional traffic or is fully loaded. For usage guidelines, see  Connection balancing mode.
+      &quot;capacityScaler&quot;: 3.14, # A multiplier applied to the backend&#x27;s target capacity of its balancing mode. The default value is 1, which means the group serves up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. The valid ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service.
           #
-          # When choosing a balancing mode, you need to consider the loadBalancingScheme, and protocol for the backend service, as well as the type of backend (instance group or NEG).
+          # Not supported by:
           #
-          #
-          # - If the load balancing mode is CONNECTION, then the load is spread based on how many concurrent connections the backend can handle.
-          # You can use the CONNECTION balancing mode if the protocol for the backend service is SSL, TCP, or UDP.
-          #
-          # If the loadBalancingScheme for the backend service is EXTERNAL (SSL Proxy and TCP Proxy load balancers), you must also specify exactly one of the following parameters: maxConnections (except for regional managed instance groups), maxConnectionsPerInstance, or maxConnectionsPerEndpoint.
-          #
-          # If the loadBalancingScheme for the backend service is INTERNAL (internal TCP/UDP load balancers), you cannot specify any additional parameters.
-          #
-          # - If the load balancing mode is RATE, the load is spread based on the rate of HTTP requests per second (RPS).
-          # You can use the RATE balancing mode if the protocol for the backend service is HTTP or HTTPS. You must specify exactly one of the following parameters: maxRate (except for regional managed instance groups), maxRatePerInstance, or maxRatePerEndpoint.
-          #
-          # - If the load balancing mode is UTILIZATION, the load is spread based on the backend utilization of instances in an instance group.
-          # You can use the UTILIZATION balancing mode if the loadBalancingScheme of the backend service is EXTERNAL, INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED and the backends are instance groups. There are no restrictions on the backend service protocol.
-      &quot;capacityScaler&quot;: 3.14, # A multiplier applied to the group&#x27;s maximum servicing capacity (based on UTILIZATION, RATE or CONNECTION). Default value is 1, which means the group will serve up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. Valid range is 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service.
-          #
-          # This cannot be used for internal load balancing.
+          # - Internal TCP/UDP Load Balancing - Network Load Balancing
       &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
       &quot;failover&quot;: True or False, # This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService.
       &quot;group&quot;: &quot;A String&quot;, # The fully-qualified URL of an instance group or network endpoint group (NEG) resource. The type of backend that a backend service supports depends on the backend service&#x27;s loadBalancingScheme.
           #
           #
-          # - When the loadBalancingScheme for the backend service is EXTERNAL, INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED, the backend can be either an instance group or a NEG. The backends on the backend service must be either all instance groups or all NEGs. You cannot mix instance group and NEG backends on the same backend service.
+          # - When the loadBalancingScheme for the backend service is EXTERNAL (except Network Load Balancing),  INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED , the backend can be either an instance group or a NEG. The backends on the backend service must be either all instance groups or all NEGs. You cannot mix instance group and NEG backends on the same backend service.
           #
           #
-          # - When the loadBalancingScheme for the backend service is INTERNAL, the backend must be an instance group in the same region as the backend service. NEGs are not supported.
+          # - When the loadBalancingScheme for the backend service is EXTERNAL for Network Load Balancing or INTERNAL for Internal TCP/UDP Load Balancing, the backend must be an instance group. NEGs are not supported.
+          #
+          # For regional services, the backend must be in the same region as the backend service.
           #
           # You must use the fully-qualified URL (starting with https://www.googleapis.com/) to specify the instance group or NEG. Partial URLs are not supported.
-      &quot;maxConnections&quot;: 42, # Defines a target maximum number of simultaneous connections that the backend can handle. Valid for network endpoint group and instance group backends (except for regional managed instance groups). If the backend&#x27;s balancingMode is UTILIZATION, this is an optional parameter. If the backend&#x27;s balancingMode is CONNECTION, and backend is attached to a backend service whose loadBalancingScheme is EXTERNAL, you must specify either this parameter, maxConnectionsPerInstance, or maxConnectionsPerEndpoint.
+      &quot;maxConnections&quot;: 42, # Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend&#x27;s balancingMode is RATE. Not supported by:
           #
-          # Not available if the backend&#x27;s balancingMode is RATE. If the loadBalancingScheme is INTERNAL, then maxConnections is not supported, even though the backend requires a balancing mode of CONNECTION.
-      &quot;maxConnectionsPerEndpoint&quot;: 42, # Defines a target maximum number of simultaneous connections for an endpoint of a NEG. This is multiplied by the number of endpoints in the NEG to implicitly calculate a maximum number of target maximum simultaneous connections for the NEG. If the backend&#x27;s balancingMode is CONNECTION, and the backend is attached to a backend service whose loadBalancingScheme is EXTERNAL, you must specify either this parameter, maxConnections, or maxConnectionsPerInstance.
+          # - Internal TCP/UDP Load Balancing - Network Load Balancing
+      &quot;maxConnectionsPerEndpoint&quot;: 42, # Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode.
           #
-          # Not available if the backend&#x27;s balancingMode is RATE. Internal TCP/UDP load balancing does not support setting maxConnectionsPerEndpoint even though its backends require a balancing mode of CONNECTION.
-      &quot;maxConnectionsPerInstance&quot;: 42, # Defines a target maximum number of simultaneous connections for a single VM in a backend instance group. This is multiplied by the number of instances in the instance group to implicitly calculate a target maximum number of simultaneous connections for the whole instance group. If the backend&#x27;s balancingMode is UTILIZATION, this is an optional parameter. If the backend&#x27;s balancingMode is CONNECTION, and backend is attached to a backend service whose loadBalancingScheme is EXTERNAL, you must specify either this parameter, maxConnections, or maxConnectionsPerEndpoint.
+          # Not available if the backend&#x27;s balancingMode is RATE. Not supported by:
           #
-          # Not available if the backend&#x27;s balancingMode is RATE. Internal TCP/UDP load balancing does not support setting maxConnectionsPerInstance even though its backends require a balancing mode of CONNECTION.
-      &quot;maxRate&quot;: 42, # Defines a maximum number of HTTP requests per second (RPS) that the backend can handle. Valid for network endpoint group and instance group backends (except for regional managed instance groups). Must not be defined if the backend is a managed instance group that uses autoscaling based on load balancing.
+          # - Internal TCP/UDP Load Balancing - Network Load Balancing.
+      &quot;maxConnectionsPerInstance&quot;: 42, # Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode.
           #
-          # If the backend&#x27;s balancingMode is UTILIZATION, this is an optional parameter. If the backend&#x27;s balancingMode is RATE, you must specify maxRate, maxRatePerInstance, or maxRatePerEndpoint.
+          # Not available if the backend&#x27;s balancingMode is RATE. Not supported by:
+          #
+          # - Internal TCP/UDP Load Balancing - Network Load Balancing.
+      &quot;maxRate&quot;: 42, # Defines a maximum number of HTTP requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode.
           #
           # Not available if the backend&#x27;s balancingMode is CONNECTION.
-      &quot;maxRatePerEndpoint&quot;: 3.14, # Defines a maximum target for requests per second (RPS) for an endpoint of a NEG. This is multiplied by the number of endpoints in the NEG to implicitly calculate a target maximum rate for the NEG.
-          #
-          # If the backend&#x27;s balancingMode is RATE, you must specify either this parameter, maxRate (except for regional managed instance groups), or maxRatePerInstance.
+      &quot;maxRatePerEndpoint&quot;: 3.14, # Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode.
           #
           # Not available if the backend&#x27;s balancingMode is CONNECTION.
-      &quot;maxRatePerInstance&quot;: 3.14, # Defines a maximum target for requests per second (RPS) for a single VM in a backend instance group. This is multiplied by the number of instances in the instance group to implicitly calculate a target maximum rate for the whole instance group.
-          #
-          # If the backend&#x27;s balancingMode is UTILIZATION, this is an optional parameter. If the backend&#x27;s balancingMode is RATE, you must specify either this parameter, maxRate (except for regional managed instance groups), or maxRatePerEndpoint.
+      &quot;maxRatePerInstance&quot;: 3.14, # Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode.
           #
           # Not available if the backend&#x27;s balancingMode is CONNECTION.
-      &quot;maxUtilization&quot;: 3.14, # Defines the maximum average backend utilization of a backend VM in an instance group. The valid range is [0.0, 1.0]. This is an optional parameter if the backend&#x27;s balancingMode is UTILIZATION.
-          #
-          # This parameter can be used in conjunction with maxRate, maxRatePerInstance, maxConnections (except for regional managed instance groups), or maxConnectionsPerInstance.
+      &quot;maxUtilization&quot;: 3.14,
     },
   ],
-  &quot;cdnPolicy&quot;: { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+  &quot;cdnPolicy&quot;: { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService. Only available for  external HTTP(S) Load Balancing.
     &quot;cacheKeyPolicy&quot;: { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
       &quot;includeHost&quot;: True or False, # If true, requests to different hosts will be cached separately.
       &quot;includeProtocol&quot;: True or False, # If true, http and https requests will be cached separately.
@@ -1216,6 +1189,16 @@
         &quot;A String&quot;,
       ],
     },
+    &quot;cacheMode&quot;: &quot;A String&quot;, # Specifies the cache setting for all responses from this backend. The possible values are:
+        #
+        # USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google&#x27;s edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server.
+        #
+        # FORCE_CACHE_ALL Cache all content, ignoring any &quot;private&quot;, &quot;no-store&quot; or &quot;no-cache&quot; directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content.
+        #
+        # CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached.
+    &quot;clientTtl&quot;: 42, # Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a &quot;public&quot; directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a &quot;public&quot; cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 86400s (1 day).
+    &quot;defaultTtl&quot;: 42, # Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of &quot;0&quot; means &quot;always revalidate&quot;. The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
+    &quot;maxTtl&quot;: 42, # Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of &quot;0&quot; means &quot;always revalidate&quot;. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
     &quot;signedUrlCacheMaxAgeSec&quot;: &quot;A String&quot;, # Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a &quot;Cache-Control: public, max-age=[TTL]&quot; header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
     &quot;signedUrlKeyNames&quot;: [ # [Output Only] Names of the keys for signing request URLs.
       &quot;A String&quot;,
@@ -1235,7 +1218,7 @@
     &quot;maxRetries&quot;: 42, # The maximum number of parallel retries allowed to the backend cluster. If not specified, the default is 1.
   },
   &quot;connectionDraining&quot;: { # Message containing connection draining configuration.
-    &quot;drainingTimeoutSec&quot;: 42, # The amount of time in seconds to allow existing connections to persist while on unhealthy backend VMs. Only applicable if the protocol is not UDP. The valid range is [0, 3600].
+    &quot;drainingTimeoutSec&quot;: 42, # Configures a duration timeout for existing requests on a removed backend instance. For supported load balancers and protocols, as described in Enabling connection draining.
   },
   &quot;consistentHash&quot;: { # This message defines settings for a consistent hash style load balancer. # Consistent Hash-based load balancing can be used to provide soft session affinity based on HTTP headers, cookies or other properties. This load balancing policy is applicable only for HTTP connections. The affinity to a particular destination host will be lost when one or more hosts are added/removed from the destination service. This field specifies parameters that control consistent hashing. This field is only applicable when localityLbPolicy is set to MAGLEV or RING_HASH.
       # 
@@ -1259,16 +1242,17 @@
   &quot;customRequestHeaders&quot;: [ # Headers that the HTTP/S load balancer should add to proxied requests.
     &quot;A String&quot;,
   ],
+  &quot;customResponseHeaders&quot;: [ # Headers that the HTTP/S load balancer should add to proxied responses.
+    &quot;A String&quot;,
+  ],
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;enableCDN&quot;: True or False, # If true, enables Cloud CDN for the backend service. Only applicable if the loadBalancingScheme is EXTERNAL and the protocol is HTTP or HTTPS.
-  &quot;failoverPolicy&quot;: { # Applicable only to Failover for Internal TCP/UDP Load Balancing. On failover or failback, this field indicates whether connection draining will be honored. GCP has a fixed connection draining timeout of 10 minutes. A setting of true terminates existing TCP connections to the active pool during failover and failback, immediately draining traffic. A setting of false allows existing TCP connections to persist, even on VMs no longer in the active pool, for up to the duration of the connection draining timeout (10 minutes). # Applicable only to Failover for Internal TCP/UDP Load Balancing. Requires at least one backend instance group to be defined as a backup (failover) backend.
+  &quot;failoverPolicy&quot;: { # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network Load Balancing. On failover or failback, this field indicates whether connection draining will be honored. GCP has a fixed connection draining timeout of 10 minutes. A setting of true terminates existing TCP connections to the active pool during failover and failback, immediately draining traffic. A setting of false allows existing TCP connections to persist, even on VMs no longer in the active pool, for up to the duration of the connection draining timeout (10 minutes). # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network Load Balancing. Requires at least one backend instance group to be defined as a backup (failover) backend.
     &quot;disableConnectionDrainOnFailover&quot;: True or False, # This can be set to true only if the protocol is TCP.
         #
         # The default is false.
-    &quot;dropTrafficIfUnhealthy&quot;: True or False, # Applicable only to Failover for Internal TCP/UDP Load Balancing. If set to true, connections to the load balancer are dropped when all primary and all backup backend VMs are unhealthy. If set to false, connections are distributed among all primary VMs when all primary and all backup backend VMs are unhealthy.
-        #
-        # The default is false.
-    &quot;failoverRatio&quot;: 3.14, # Applicable only to Failover for Internal TCP/UDP Load Balancing. The value of the field must be in the range [0, 1]. If the value is 0, the load balancer performs a failover when the number of healthy primary VMs equals zero. For all other values, the load balancer performs a failover when the total number of healthy primary VMs is less than this ratio.
+    &quot;dropTrafficIfUnhealthy&quot;: True or False, # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network Load Balancing, If set to true, connections to the load balancer are dropped when all primary and all backup backend VMs are unhealthy.If set to false, connections are distributed among all primary VMs when all primary and all backup backend VMs are unhealthy. The default is false.
+    &quot;failoverRatio&quot;: 3.14, # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network Load Balancing. The value of the field must be in the range [0, 1]. If the value is 0, the load balancer performs a failover when the number of healthy primary VMs equals zero. For all other values, the load balancer performs a failover when the total number of healthy primary VMs is less than this ratio.
   },
   &quot;fingerprint&quot;: &quot;A String&quot;, # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService, otherwise the request will fail with error 412 conditionNotMet.
       # 
@@ -1276,7 +1260,7 @@
   &quot;healthChecks&quot;: [ # The list of URLs to the healthChecks, httpHealthChecks (legacy), or httpsHealthChecks (legacy) resource for health checking this backend service. Not all backend services support legacy health checks. See  Load balancer guide. Currently, at most one health check can be specified for each backend service. Backend services with instance group or zonal NEG backends must have a health check. Backend services with internet or serverless NEG backends must not have a health check.
     &quot;A String&quot;,
   ],
-  &quot;iap&quot;: { # Identity-Aware Proxy # The configurations for Identity-Aware Proxy on this resource.
+  &quot;iap&quot;: { # Identity-Aware Proxy # The configurations for Identity-Aware Proxy on this resource. Not available for Internal TCP/UDP Load Balancing and Network Load Balancing.
     &quot;enabled&quot;: True or False, # Whether the serving infrastructure will authenticate and authorize all incoming requests. If true, the oauth2ClientId and oauth2ClientSecret fields must be non-empty.
     &quot;oauth2ClientId&quot;: &quot;A String&quot;, # OAuth2 client ID to use for the authentication flow.
     &quot;oauth2ClientSecret&quot;: &quot;A String&quot;, # OAuth2 client secret to use for the authentication flow. For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2ClientSecretSha256 field.
@@ -1284,7 +1268,7 @@
   },
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;kind&quot;: &quot;compute#backendService&quot;, # [Output Only] Type of resource. Always compute#backendService for backend services.
-  &quot;loadBalancingScheme&quot;: &quot;A String&quot;, # Specifies the load balancer type. Choose EXTERNAL for load balancers that receive traffic from external clients. Choose INTERNAL for Internal TCP/UDP Load Balancing. Choose INTERNAL_MANAGED for Internal HTTP(S) Load Balancing. Choose INTERNAL_SELF_MANAGED for Traffic Director. A backend service created for one type of load balancing cannot be used with another. For more information, refer to Choosing a load balancer.
+  &quot;loadBalancingScheme&quot;: &quot;A String&quot;, # Specifies the load balancer type. Choose EXTERNAL for external HTTP(S), SSL Proxy, TCP Proxy and Network Load Balancing. Choose  INTERNAL for Internal TCP/UDP Load Balancing. Choose  INTERNAL_MANAGED for Internal HTTP(S) Load Balancing.  INTERNAL_SELF_MANAGED for Traffic Director. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
   &quot;localityLbPolicy&quot;: &quot;A String&quot;, # The load balancing algorithm used within the scope of the locality. The possible values are:
       # - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
       # - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
@@ -1305,7 +1289,7 @@
     &quot;sampleRate&quot;: 3.14, # This field can only be specified if logging is enabled for this backend service. The value of the field must be in [0, 1]. This configures the sampling rate of requests to the load balancer where 1.0 means all logged requests are reported and 0.0 means no logged requests are reported. The default value is 1.0.
   },
   &quot;name&quot;: &quot;A String&quot;, # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
-  &quot;network&quot;: &quot;A String&quot;, # The URL of the network to which this backend service belongs. This field can only be spcified when the load balancing scheme is set to INTERNAL.
+  &quot;network&quot;: &quot;A String&quot;, # The URL of the network to which this backend service belongs. This field can only be specified when the load balancing scheme is set to INTERNAL.
   &quot;outlierDetection&quot;: { # Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. # Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. If not set, this feature is considered disabled.
       # 
       # This field is applicable to either:
@@ -1333,12 +1317,12 @@
   },
   &quot;port&quot;: 42, # Deprecated in favor of portName. The TCP port to connect on the backend. The default value is 80.
       # 
-      # This cannot be used if the loadBalancingScheme is INTERNAL (Internal TCP/UDP Load Balancing).
-  &quot;portName&quot;: &quot;A String&quot;, # A named port on a backend instance group representing the port for communication to the backend VMs in that group. Required when the loadBalancingScheme is EXTERNAL, INTERNAL_MANAGED, or INTERNAL_SELF_MANAGED and the backends are instance groups. The named port must be defined on each backend instance group. This parameter has no meaning if the backends are NEGs.
+      # Backend services for Internal TCP/UDP Load Balancing and Network Load Balancing require you omit port.
+  &quot;portName&quot;: &quot;A String&quot;, # A named port on a backend instance group representing the port for communication to the backend VMs in that group. Required when the loadBalancingScheme is EXTERNAL (except Network Load Balancing), INTERNAL_MANAGED, or  INTERNAL_SELF_MANAGED and the backends are instance groups. The named port must be defined on each backend instance group. This parameter has no meaning if the backends are NEGs.
       # 
       # 
       # 
-      # Must be omitted when the loadBalancingScheme is INTERNAL (Internal TCP/UDP Load Balancing).
+      # Backend services for Internal TCP/UDP Load Balancing and Network Load Balancing require you omit port_name.
   &quot;protocol&quot;: &quot;A String&quot;, # The protocol this BackendService uses to communicate with backends.
       # 
       # Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancer or for Traffic Director for more information.
@@ -1361,16 +1345,16 @@
     ],
   },
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
-  &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE. Session affinity is not applicable if the --protocol is UDP.
+  &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       # 
-      # When the loadBalancingScheme is EXTERNAL, possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. You can use GENERATED_COOKIE if the protocol is HTTP or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       # 
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       # 
       # When the loadBalancingScheme is INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED, possible values are NONE, CLIENT_IP, GENERATED_COOKIE, HEADER_FIELD, or HTTP_COOKIE.
       # 
       # Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
-  &quot;timeoutSec&quot;: 42, # The backend service timeout has a different meaning depending on the type of load balancer. For more information see,  Backend service settings The default is 30 seconds.
+  &quot;timeoutSec&quot;: 42, # The backend service timeout has a different meaning depending on the type of load balancer. For more information see,  Backend service settings The default is 30 seconds. The full range of timeout values allowed is 1 - 2,147,483,647 seconds.
 }
 
   requestId: string, An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.
@@ -1415,6 +1399,7 @@
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
+  &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
   &quot;progress&quot;: 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
   &quot;region&quot;: &quot;A String&quot;, # [Output Only] The URL of the region where the operation resides. Only applicable when performing regional operations.
@@ -1471,67 +1456,51 @@
       # Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
   &quot;backends&quot;: [ # The list of backends that serve this BackendService.
     { # Message containing information of one individual backend.
-      &quot;balancingMode&quot;: &quot;A String&quot;, # Specifies the balancing mode for the backend.
+      &quot;balancingMode&quot;: &quot;A String&quot;, # Specifies how to determine whether the backend of a load balancer can handle additional traffic or is fully loaded. For usage guidelines, see  Connection balancing mode.
+      &quot;capacityScaler&quot;: 3.14, # A multiplier applied to the backend&#x27;s target capacity of its balancing mode. The default value is 1, which means the group serves up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. The valid ranges are 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service.
           #
-          # When choosing a balancing mode, you need to consider the loadBalancingScheme, and protocol for the backend service, as well as the type of backend (instance group or NEG).
+          # Not supported by:
           #
-          #
-          # - If the load balancing mode is CONNECTION, then the load is spread based on how many concurrent connections the backend can handle.
-          # You can use the CONNECTION balancing mode if the protocol for the backend service is SSL, TCP, or UDP.
-          #
-          # If the loadBalancingScheme for the backend service is EXTERNAL (SSL Proxy and TCP Proxy load balancers), you must also specify exactly one of the following parameters: maxConnections (except for regional managed instance groups), maxConnectionsPerInstance, or maxConnectionsPerEndpoint.
-          #
-          # If the loadBalancingScheme for the backend service is INTERNAL (internal TCP/UDP load balancers), you cannot specify any additional parameters.
-          #
-          # - If the load balancing mode is RATE, the load is spread based on the rate of HTTP requests per second (RPS).
-          # You can use the RATE balancing mode if the protocol for the backend service is HTTP or HTTPS. You must specify exactly one of the following parameters: maxRate (except for regional managed instance groups), maxRatePerInstance, or maxRatePerEndpoint.
-          #
-          # - If the load balancing mode is UTILIZATION, the load is spread based on the backend utilization of instances in an instance group.
-          # You can use the UTILIZATION balancing mode if the loadBalancingScheme of the backend service is EXTERNAL, INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED and the backends are instance groups. There are no restrictions on the backend service protocol.
-      &quot;capacityScaler&quot;: 3.14, # A multiplier applied to the group&#x27;s maximum servicing capacity (based on UTILIZATION, RATE or CONNECTION). Default value is 1, which means the group will serve up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. Valid range is 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service.
-          #
-          # This cannot be used for internal load balancing.
+          # - Internal TCP/UDP Load Balancing - Network Load Balancing
       &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
       &quot;failover&quot;: True or False, # This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService.
       &quot;group&quot;: &quot;A String&quot;, # The fully-qualified URL of an instance group or network endpoint group (NEG) resource. The type of backend that a backend service supports depends on the backend service&#x27;s loadBalancingScheme.
           #
           #
-          # - When the loadBalancingScheme for the backend service is EXTERNAL, INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED, the backend can be either an instance group or a NEG. The backends on the backend service must be either all instance groups or all NEGs. You cannot mix instance group and NEG backends on the same backend service.
+          # - When the loadBalancingScheme for the backend service is EXTERNAL (except Network Load Balancing),  INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED , the backend can be either an instance group or a NEG. The backends on the backend service must be either all instance groups or all NEGs. You cannot mix instance group and NEG backends on the same backend service.
           #
           #
-          # - When the loadBalancingScheme for the backend service is INTERNAL, the backend must be an instance group in the same region as the backend service. NEGs are not supported.
+          # - When the loadBalancingScheme for the backend service is EXTERNAL for Network Load Balancing or INTERNAL for Internal TCP/UDP Load Balancing, the backend must be an instance group. NEGs are not supported.
+          #
+          # For regional services, the backend must be in the same region as the backend service.
           #
           # You must use the fully-qualified URL (starting with https://www.googleapis.com/) to specify the instance group or NEG. Partial URLs are not supported.
-      &quot;maxConnections&quot;: 42, # Defines a target maximum number of simultaneous connections that the backend can handle. Valid for network endpoint group and instance group backends (except for regional managed instance groups). If the backend&#x27;s balancingMode is UTILIZATION, this is an optional parameter. If the backend&#x27;s balancingMode is CONNECTION, and backend is attached to a backend service whose loadBalancingScheme is EXTERNAL, you must specify either this parameter, maxConnectionsPerInstance, or maxConnectionsPerEndpoint.
+      &quot;maxConnections&quot;: 42, # Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode. Not available if the backend&#x27;s balancingMode is RATE. Not supported by:
           #
-          # Not available if the backend&#x27;s balancingMode is RATE. If the loadBalancingScheme is INTERNAL, then maxConnections is not supported, even though the backend requires a balancing mode of CONNECTION.
-      &quot;maxConnectionsPerEndpoint&quot;: 42, # Defines a target maximum number of simultaneous connections for an endpoint of a NEG. This is multiplied by the number of endpoints in the NEG to implicitly calculate a maximum number of target maximum simultaneous connections for the NEG. If the backend&#x27;s balancingMode is CONNECTION, and the backend is attached to a backend service whose loadBalancingScheme is EXTERNAL, you must specify either this parameter, maxConnections, or maxConnectionsPerInstance.
+          # - Internal TCP/UDP Load Balancing - Network Load Balancing
+      &quot;maxConnectionsPerEndpoint&quot;: 42, # Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode.
           #
-          # Not available if the backend&#x27;s balancingMode is RATE. Internal TCP/UDP load balancing does not support setting maxConnectionsPerEndpoint even though its backends require a balancing mode of CONNECTION.
-      &quot;maxConnectionsPerInstance&quot;: 42, # Defines a target maximum number of simultaneous connections for a single VM in a backend instance group. This is multiplied by the number of instances in the instance group to implicitly calculate a target maximum number of simultaneous connections for the whole instance group. If the backend&#x27;s balancingMode is UTILIZATION, this is an optional parameter. If the backend&#x27;s balancingMode is CONNECTION, and backend is attached to a backend service whose loadBalancingScheme is EXTERNAL, you must specify either this parameter, maxConnections, or maxConnectionsPerEndpoint.
+          # Not available if the backend&#x27;s balancingMode is RATE. Not supported by:
           #
-          # Not available if the backend&#x27;s balancingMode is RATE. Internal TCP/UDP load balancing does not support setting maxConnectionsPerInstance even though its backends require a balancing mode of CONNECTION.
-      &quot;maxRate&quot;: 42, # Defines a maximum number of HTTP requests per second (RPS) that the backend can handle. Valid for network endpoint group and instance group backends (except for regional managed instance groups). Must not be defined if the backend is a managed instance group that uses autoscaling based on load balancing.
+          # - Internal TCP/UDP Load Balancing - Network Load Balancing.
+      &quot;maxConnectionsPerInstance&quot;: 42, # Defines a target maximum number of simultaneous connections. For usage guidelines, see Connection balancing mode and Utilization balancing mode.
           #
-          # If the backend&#x27;s balancingMode is UTILIZATION, this is an optional parameter. If the backend&#x27;s balancingMode is RATE, you must specify maxRate, maxRatePerInstance, or maxRatePerEndpoint.
+          # Not available if the backend&#x27;s balancingMode is RATE. Not supported by:
+          #
+          # - Internal TCP/UDP Load Balancing - Network Load Balancing.
+      &quot;maxRate&quot;: 42, # Defines a maximum number of HTTP requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode.
           #
           # Not available if the backend&#x27;s balancingMode is CONNECTION.
-      &quot;maxRatePerEndpoint&quot;: 3.14, # Defines a maximum target for requests per second (RPS) for an endpoint of a NEG. This is multiplied by the number of endpoints in the NEG to implicitly calculate a target maximum rate for the NEG.
-          #
-          # If the backend&#x27;s balancingMode is RATE, you must specify either this parameter, maxRate (except for regional managed instance groups), or maxRatePerInstance.
+      &quot;maxRatePerEndpoint&quot;: 3.14, # Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode.
           #
           # Not available if the backend&#x27;s balancingMode is CONNECTION.
-      &quot;maxRatePerInstance&quot;: 3.14, # Defines a maximum target for requests per second (RPS) for a single VM in a backend instance group. This is multiplied by the number of instances in the instance group to implicitly calculate a target maximum rate for the whole instance group.
-          #
-          # If the backend&#x27;s balancingMode is UTILIZATION, this is an optional parameter. If the backend&#x27;s balancingMode is RATE, you must specify either this parameter, maxRate (except for regional managed instance groups), or maxRatePerEndpoint.
+      &quot;maxRatePerInstance&quot;: 3.14, # Defines a maximum target for requests per second (RPS). For usage guidelines, see Rate balancing mode and Utilization balancing mode.
           #
           # Not available if the backend&#x27;s balancingMode is CONNECTION.
-      &quot;maxUtilization&quot;: 3.14, # Defines the maximum average backend utilization of a backend VM in an instance group. The valid range is [0.0, 1.0]. This is an optional parameter if the backend&#x27;s balancingMode is UTILIZATION.
-          #
-          # This parameter can be used in conjunction with maxRate, maxRatePerInstance, maxConnections (except for regional managed instance groups), or maxConnectionsPerInstance.
+      &quot;maxUtilization&quot;: 3.14,
     },
   ],
-  &quot;cdnPolicy&quot;: { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService.
+  &quot;cdnPolicy&quot;: { # Message containing Cloud CDN configuration for a backend service. # Cloud CDN configuration for this BackendService. Only available for  external HTTP(S) Load Balancing.
     &quot;cacheKeyPolicy&quot;: { # Message containing what to include in the cache key for a request for Cloud CDN. # The CacheKeyPolicy for this CdnPolicy.
       &quot;includeHost&quot;: True or False, # If true, requests to different hosts will be cached separately.
       &quot;includeProtocol&quot;: True or False, # If true, http and https requests will be cached separately.
@@ -1543,6 +1512,16 @@
         &quot;A String&quot;,
       ],
     },
+    &quot;cacheMode&quot;: &quot;A String&quot;, # Specifies the cache setting for all responses from this backend. The possible values are:
+        #
+        # USE_ORIGIN_HEADERS Requires the origin to set valid caching headers to cache content. Responses without these headers will not be cached at Google&#x27;s edge, and will require a full trip to the origin on every request, potentially impacting performance and increasing load on the origin server.
+        #
+        # FORCE_CACHE_ALL Cache all content, ignoring any &quot;private&quot;, &quot;no-store&quot; or &quot;no-cache&quot; directives in Cache-Control response headers. Warning: this may result in Cloud CDN caching private, per-user (user identifiable) content.
+        #
+        # CACHE_ALL_STATIC Automatically cache static content, including common image formats, media (video and audio), and web assets (JavaScript and CSS). Requests and responses that are marked as uncacheable, as well as dynamic content (including HTML), will not be cached.
+    &quot;clientTtl&quot;: 42, # Specifies a separate client (e.g. browser client) maximum TTL. This is used to clamp the max-age (or Expires) value sent to the client. With FORCE_CACHE_ALL, the lesser of client_ttl and default_ttl is used for the response max-age directive, along with a &quot;public&quot; directive. For cacheable content in CACHE_ALL_STATIC mode, client_ttl clamps the max-age from the origin (if specified), or else sets the response max-age directive to the lesser of the client_ttl and default_ttl, and also ensures a &quot;public&quot; cache-control directive is present. If a client TTL is not specified, a default value (1 hour) will be used. The maximum allowed value is 86400s (1 day).
+    &quot;defaultTtl&quot;: 42, # Specifies the default TTL for cached content served by this origin for responses that do not have an existing valid TTL (max-age or s-max-age). Setting a TTL of &quot;0&quot; means &quot;always revalidate&quot;. The value of defaultTTL cannot be set to a value greater than that of maxTTL, but can be equal. When the cacheMode is set to FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all responses. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
+    &quot;maxTtl&quot;: 42, # Specifies the maximum allowed TTL for cached content served by this origin. Cache directives that attempt to set a max-age or s-maxage higher than this, or an Expires header more than maxTTL seconds in the future will be capped at the value of maxTTL, as if it were the value of an s-maxage Cache-Control directive. Headers sent to the client will not be modified. Setting a TTL of &quot;0&quot; means &quot;always revalidate&quot;. The maximum allowed value is 31,622,400s (1 year), noting that infrequently accessed objects may be evicted from the cache before the defined TTL.
     &quot;signedUrlCacheMaxAgeSec&quot;: &quot;A String&quot;, # Maximum number of seconds the response to a signed URL request will be considered fresh. After this time period, the response will be revalidated before being served. Defaults to 1hr (3600s). When serving responses to signed URL requests, Cloud CDN will internally behave as though all responses from this backend had a &quot;Cache-Control: public, max-age=[TTL]&quot; header, regardless of any existing Cache-Control header. The actual headers served in responses will not be altered.
     &quot;signedUrlKeyNames&quot;: [ # [Output Only] Names of the keys for signing request URLs.
       &quot;A String&quot;,
@@ -1562,7 +1541,7 @@
     &quot;maxRetries&quot;: 42, # The maximum number of parallel retries allowed to the backend cluster. If not specified, the default is 1.
   },
   &quot;connectionDraining&quot;: { # Message containing connection draining configuration.
-    &quot;drainingTimeoutSec&quot;: 42, # The amount of time in seconds to allow existing connections to persist while on unhealthy backend VMs. Only applicable if the protocol is not UDP. The valid range is [0, 3600].
+    &quot;drainingTimeoutSec&quot;: 42, # Configures a duration timeout for existing requests on a removed backend instance. For supported load balancers and protocols, as described in Enabling connection draining.
   },
   &quot;consistentHash&quot;: { # This message defines settings for a consistent hash style load balancer. # Consistent Hash-based load balancing can be used to provide soft session affinity based on HTTP headers, cookies or other properties. This load balancing policy is applicable only for HTTP connections. The affinity to a particular destination host will be lost when one or more hosts are added/removed from the destination service. This field specifies parameters that control consistent hashing. This field is only applicable when localityLbPolicy is set to MAGLEV or RING_HASH.
       # 
@@ -1586,16 +1565,17 @@
   &quot;customRequestHeaders&quot;: [ # Headers that the HTTP/S load balancer should add to proxied requests.
     &quot;A String&quot;,
   ],
+  &quot;customResponseHeaders&quot;: [ # Headers that the HTTP/S load balancer should add to proxied responses.
+    &quot;A String&quot;,
+  ],
   &quot;description&quot;: &quot;A String&quot;, # An optional description of this resource. Provide this property when you create the resource.
   &quot;enableCDN&quot;: True or False, # If true, enables Cloud CDN for the backend service. Only applicable if the loadBalancingScheme is EXTERNAL and the protocol is HTTP or HTTPS.
-  &quot;failoverPolicy&quot;: { # Applicable only to Failover for Internal TCP/UDP Load Balancing. On failover or failback, this field indicates whether connection draining will be honored. GCP has a fixed connection draining timeout of 10 minutes. A setting of true terminates existing TCP connections to the active pool during failover and failback, immediately draining traffic. A setting of false allows existing TCP connections to persist, even on VMs no longer in the active pool, for up to the duration of the connection draining timeout (10 minutes). # Applicable only to Failover for Internal TCP/UDP Load Balancing. Requires at least one backend instance group to be defined as a backup (failover) backend.
+  &quot;failoverPolicy&quot;: { # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network Load Balancing. On failover or failback, this field indicates whether connection draining will be honored. GCP has a fixed connection draining timeout of 10 minutes. A setting of true terminates existing TCP connections to the active pool during failover and failback, immediately draining traffic. A setting of false allows existing TCP connections to persist, even on VMs no longer in the active pool, for up to the duration of the connection draining timeout (10 minutes). # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network Load Balancing. Requires at least one backend instance group to be defined as a backup (failover) backend.
     &quot;disableConnectionDrainOnFailover&quot;: True or False, # This can be set to true only if the protocol is TCP.
         #
         # The default is false.
-    &quot;dropTrafficIfUnhealthy&quot;: True or False, # Applicable only to Failover for Internal TCP/UDP Load Balancing. If set to true, connections to the load balancer are dropped when all primary and all backup backend VMs are unhealthy. If set to false, connections are distributed among all primary VMs when all primary and all backup backend VMs are unhealthy.
-        #
-        # The default is false.
-    &quot;failoverRatio&quot;: 3.14, # Applicable only to Failover for Internal TCP/UDP Load Balancing. The value of the field must be in the range [0, 1]. If the value is 0, the load balancer performs a failover when the number of healthy primary VMs equals zero. For all other values, the load balancer performs a failover when the total number of healthy primary VMs is less than this ratio.
+    &quot;dropTrafficIfUnhealthy&quot;: True or False, # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network Load Balancing, If set to true, connections to the load balancer are dropped when all primary and all backup backend VMs are unhealthy.If set to false, connections are distributed among all primary VMs when all primary and all backup backend VMs are unhealthy. The default is false.
+    &quot;failoverRatio&quot;: 3.14, # Applicable only to Failover for Internal TCP/UDP Load Balancing and Network Load Balancing. The value of the field must be in the range [0, 1]. If the value is 0, the load balancer performs a failover when the number of healthy primary VMs equals zero. For all other values, the load balancer performs a failover when the total number of healthy primary VMs is less than this ratio.
   },
   &quot;fingerprint&quot;: &quot;A String&quot;, # Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService, otherwise the request will fail with error 412 conditionNotMet.
       # 
@@ -1603,7 +1583,7 @@
   &quot;healthChecks&quot;: [ # The list of URLs to the healthChecks, httpHealthChecks (legacy), or httpsHealthChecks (legacy) resource for health checking this backend service. Not all backend services support legacy health checks. See  Load balancer guide. Currently, at most one health check can be specified for each backend service. Backend services with instance group or zonal NEG backends must have a health check. Backend services with internet or serverless NEG backends must not have a health check.
     &quot;A String&quot;,
   ],
-  &quot;iap&quot;: { # Identity-Aware Proxy # The configurations for Identity-Aware Proxy on this resource.
+  &quot;iap&quot;: { # Identity-Aware Proxy # The configurations for Identity-Aware Proxy on this resource. Not available for Internal TCP/UDP Load Balancing and Network Load Balancing.
     &quot;enabled&quot;: True or False, # Whether the serving infrastructure will authenticate and authorize all incoming requests. If true, the oauth2ClientId and oauth2ClientSecret fields must be non-empty.
     &quot;oauth2ClientId&quot;: &quot;A String&quot;, # OAuth2 client ID to use for the authentication flow.
     &quot;oauth2ClientSecret&quot;: &quot;A String&quot;, # OAuth2 client secret to use for the authentication flow. For security reasons, this value cannot be retrieved via the API. Instead, the SHA-256 hash of the value is returned in the oauth2ClientSecretSha256 field.
@@ -1611,7 +1591,7 @@
   },
   &quot;id&quot;: &quot;A String&quot;, # [Output Only] The unique identifier for the resource. This identifier is defined by the server.
   &quot;kind&quot;: &quot;compute#backendService&quot;, # [Output Only] Type of resource. Always compute#backendService for backend services.
-  &quot;loadBalancingScheme&quot;: &quot;A String&quot;, # Specifies the load balancer type. Choose EXTERNAL for load balancers that receive traffic from external clients. Choose INTERNAL for Internal TCP/UDP Load Balancing. Choose INTERNAL_MANAGED for Internal HTTP(S) Load Balancing. Choose INTERNAL_SELF_MANAGED for Traffic Director. A backend service created for one type of load balancing cannot be used with another. For more information, refer to Choosing a load balancer.
+  &quot;loadBalancingScheme&quot;: &quot;A String&quot;, # Specifies the load balancer type. Choose EXTERNAL for external HTTP(S), SSL Proxy, TCP Proxy and Network Load Balancing. Choose  INTERNAL for Internal TCP/UDP Load Balancing. Choose  INTERNAL_MANAGED for Internal HTTP(S) Load Balancing.  INTERNAL_SELF_MANAGED for Traffic Director. A backend service created for one type of load balancer cannot be used with another. For more information, refer to Choosing a load balancer.
   &quot;localityLbPolicy&quot;: &quot;A String&quot;, # The load balancing algorithm used within the scope of the locality. The possible values are:
       # - ROUND_ROBIN: This is a simple policy in which each healthy backend is selected in round robin order. This is the default.
       # - LEAST_REQUEST: An O(1) algorithm which selects two random healthy hosts and picks the host which has fewer active requests.
@@ -1632,7 +1612,7 @@
     &quot;sampleRate&quot;: 3.14, # This field can only be specified if logging is enabled for this backend service. The value of the field must be in [0, 1]. This configures the sampling rate of requests to the load balancer where 1.0 means all logged requests are reported and 0.0 means no logged requests are reported. The default value is 1.0.
   },
   &quot;name&quot;: &quot;A String&quot;, # Name of the resource. Provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.
-  &quot;network&quot;: &quot;A String&quot;, # The URL of the network to which this backend service belongs. This field can only be spcified when the load balancing scheme is set to INTERNAL.
+  &quot;network&quot;: &quot;A String&quot;, # The URL of the network to which this backend service belongs. This field can only be specified when the load balancing scheme is set to INTERNAL.
   &quot;outlierDetection&quot;: { # Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. # Settings controlling the eviction of unhealthy hosts from the load balancing pool for the backend service. If not set, this feature is considered disabled.
       # 
       # This field is applicable to either:
@@ -1660,12 +1640,12 @@
   },
   &quot;port&quot;: 42, # Deprecated in favor of portName. The TCP port to connect on the backend. The default value is 80.
       # 
-      # This cannot be used if the loadBalancingScheme is INTERNAL (Internal TCP/UDP Load Balancing).
-  &quot;portName&quot;: &quot;A String&quot;, # A named port on a backend instance group representing the port for communication to the backend VMs in that group. Required when the loadBalancingScheme is EXTERNAL, INTERNAL_MANAGED, or INTERNAL_SELF_MANAGED and the backends are instance groups. The named port must be defined on each backend instance group. This parameter has no meaning if the backends are NEGs.
+      # Backend services for Internal TCP/UDP Load Balancing and Network Load Balancing require you omit port.
+  &quot;portName&quot;: &quot;A String&quot;, # A named port on a backend instance group representing the port for communication to the backend VMs in that group. Required when the loadBalancingScheme is EXTERNAL (except Network Load Balancing), INTERNAL_MANAGED, or  INTERNAL_SELF_MANAGED and the backends are instance groups. The named port must be defined on each backend instance group. This parameter has no meaning if the backends are NEGs.
       # 
       # 
       # 
-      # Must be omitted when the loadBalancingScheme is INTERNAL (Internal TCP/UDP Load Balancing).
+      # Backend services for Internal TCP/UDP Load Balancing and Network Load Balancing require you omit port_name.
   &quot;protocol&quot;: &quot;A String&quot;, # The protocol this BackendService uses to communicate with backends.
       # 
       # Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC. depending on the chosen load balancer or Traffic Director configuration. Refer to the documentation for the load balancer or for Traffic Director for more information.
@@ -1688,16 +1668,16 @@
     ],
   },
   &quot;selfLink&quot;: &quot;A String&quot;, # [Output Only] Server-defined URL for the resource.
-  &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE. Session affinity is not applicable if the --protocol is UDP.
+  &quot;sessionAffinity&quot;: &quot;A String&quot;, # Type of session affinity to use. The default is NONE.
       # 
-      # When the loadBalancingScheme is EXTERNAL, possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. You can use GENERATED_COOKIE if the protocol is HTTP or HTTPS.
+      # When the loadBalancingScheme is EXTERNAL: * For Network Load Balancing, the possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. * For all other load balancers that use loadBalancingScheme=EXTERNAL, the possible values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
       # 
       # When the loadBalancingScheme is INTERNAL, possible values are NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
       # 
       # When the loadBalancingScheme is INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED, possible values are NONE, CLIENT_IP, GENERATED_COOKIE, HEADER_FIELD, or HTTP_COOKIE.
       # 
       # Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.
-  &quot;timeoutSec&quot;: 42, # The backend service timeout has a different meaning depending on the type of load balancer. For more information see,  Backend service settings The default is 30 seconds.
+  &quot;timeoutSec&quot;: 42, # The backend service timeout has a different meaning depending on the type of load balancer. For more information see,  Backend service settings The default is 30 seconds. The full range of timeout values allowed is 1 - 2,147,483,647 seconds.
 }
 
   requestId: string, An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.
@@ -1742,6 +1722,7 @@
   &quot;insertTime&quot;: &quot;A String&quot;, # [Output Only] The time that this operation was requested. This value is in RFC3339 text format.
   &quot;kind&quot;: &quot;compute#operation&quot;, # [Output Only] Type of the resource. Always `compute#operation` for Operation resources.
   &quot;name&quot;: &quot;A String&quot;, # [Output Only] Name of the operation.
+  &quot;operationGroupId&quot;: &quot;A String&quot;, # [Output Only] An ID that represents a group of operations, such as when a group of operations results from a `bulkInsert` API request.
   &quot;operationType&quot;: &quot;A String&quot;, # [Output Only] The type of operation, such as `insert`, `update`, or `delete`, and so on.
   &quot;progress&quot;: 42, # [Output Only] An optional progress indicator that ranges from 0 to 100. There is no requirement that this be linear or support any granularity of operations. This should not be used to guess when the operation will be complete. This number should monotonically increase as the operation progresses.
   &quot;region&quot;: &quot;A String&quot;, # [Output Only] The URL of the region where the operation resides. Only applicable when performing regional operations.