google-apis-compute_beta 0.19.0 → 0.23.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -464,15 +464,15 @@ module Google
464
464
  class AccessConfig
465
465
  include Google::Apis::Core::Hashable
466
466
 
467
- # [Output Only] The first IPv6 address of the external IPv6 range associated
468
- # with this instance, prefix length is stored in externalIpv6PrefixLength in
467
+ # The first IPv6 address of the external IPv6 range associated with this
468
+ # instance, prefix length is stored in externalIpv6PrefixLength in
469
469
  # ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork
470
470
  # associated with the instance will be allocated dynamically.
471
471
  # Corresponds to the JSON property `externalIpv6`
472
472
  # @return [String]
473
473
  attr_accessor :external_ipv6
474
474
 
475
- # [Output Only] The prefix length of the external IPv6 range.
475
+ # The prefix length of the external IPv6 range.
476
476
  # Corresponds to the JSON property `externalIpv6PrefixLength`
477
477
  # @return [Fixnum]
478
478
  attr_accessor :external_ipv6_prefix_length
@@ -652,14 +652,14 @@ module Google
652
652
  # regional internal IP address in a subnet of a VPC network) - VPC_PEERING for
653
653
  # global internal IP addresses used for private services access allocated ranges.
654
654
  # - NAT_AUTO for the regional external IP addresses used by Cloud NAT when
655
- # allocating addresses using . - IPSEC_INTERCONNECT for addresses created from a
656
- # private IP range that are reserved for a VLAN attachment in an *IPsec-
657
- # encrypted Cloud Interconnect* configuration. These addresses are regional
658
- # resources. Not currently available publicly. - `SHARED_LOADBALANCER_VIP` for
659
- # an internal IP address that is assigned to multiple internal forwarding rules.
660
- # - `PRIVATE_SERVICE_CONNECT` for a private network address that is used to
661
- # configure Private Service Connect. Only global internal addresses can use this
662
- # purpose.
655
+ # allocating addresses using automatic NAT IP address allocation. -
656
+ # IPSEC_INTERCONNECT for addresses created from a private IP range that are
657
+ # reserved for a VLAN attachment in an *IPsec-encrypted Cloud Interconnect*
658
+ # configuration. These addresses are regional resources. Not currently available
659
+ # publicly. - `SHARED_LOADBALANCER_VIP` for an internal IP address that is
660
+ # assigned to multiple internal forwarding rules. - `PRIVATE_SERVICE_CONNECT`
661
+ # for a private network address that is used to configure Private Service
662
+ # Connect. Only global internal addresses can use this purpose.
663
663
  # Corresponds to the JSON property `purpose`
664
664
  # @return [String]
665
665
  attr_accessor :purpose
@@ -1072,6 +1072,12 @@ module Google
1072
1072
  attr_accessor :enable_nested_virtualization
1073
1073
  alias_method :enable_nested_virtualization?, :enable_nested_virtualization
1074
1074
 
1075
+ # Whether to enable UEFI networking for instance creation.
1076
+ # Corresponds to the JSON property `enableUefiNetworking`
1077
+ # @return [Boolean]
1078
+ attr_accessor :enable_uefi_networking
1079
+ alias_method :enable_uefi_networking?, :enable_uefi_networking
1080
+
1075
1081
  # The number of threads per physical core. To disable simultaneous
1076
1082
  # multithreading (SMT) set this to 1. If unset, the maximum number of threads
1077
1083
  # supported per core by the underlying processor is assumed.
@@ -1086,6 +1092,7 @@ module Google
1086
1092
  # Update properties of this object
1087
1093
  def update!(**args)
1088
1094
  @enable_nested_virtualization = args[:enable_nested_virtualization] if args.key?(:enable_nested_virtualization)
1095
+ @enable_uefi_networking = args[:enable_uefi_networking] if args.key?(:enable_uefi_networking)
1089
1096
  @threads_per_core = args[:threads_per_core] if args.key?(:threads_per_core)
1090
1097
  end
1091
1098
  end
@@ -1213,6 +1220,11 @@ module Google
1213
1220
  class AllocationSpecificSkuReservation
1214
1221
  include Google::Apis::Core::Hashable
1215
1222
 
1223
+ # [Output Only] Indicates how many instances are actually usable currently.
1224
+ # Corresponds to the JSON property `assuredCount`
1225
+ # @return [Fixnum]
1226
+ attr_accessor :assured_count
1227
+
1216
1228
  # Specifies the number of resources that are allocated.
1217
1229
  # Corresponds to the JSON property `count`
1218
1230
  # @return [Fixnum]
@@ -1234,6 +1246,7 @@ module Google
1234
1246
 
1235
1247
  # Update properties of this object
1236
1248
  def update!(**args)
1249
+ @assured_count = args[:assured_count] if args.key?(:assured_count)
1237
1250
  @count = args[:count] if args.key?(:count)
1238
1251
  @in_use_count = args[:in_use_count] if args.key?(:in_use_count)
1239
1252
  @instance_properties = args[:instance_properties] if args.key?(:instance_properties)
@@ -1361,7 +1374,8 @@ module Google
1361
1374
  # initializeParams.sourceSnapshot or disks.source is required except for local
1362
1375
  # SSD. If desired, you can also attach existing non-root persistent disks using
1363
1376
  # this property. This field is only applicable for persistent disks. Note that
1364
- # for InstanceTemplate, specify the disk name, not the URL for the disk.
1377
+ # for InstanceTemplate, specify the disk name for zonal disk, and the URL for
1378
+ # regional disk.
1365
1379
  # Corresponds to the JSON property `source`
1366
1380
  # @return [String]
1367
1381
  attr_accessor :source
@@ -1461,6 +1475,11 @@ module Google
1461
1475
  # @return [Hash<String,String>]
1462
1476
  attr_accessor :labels
1463
1477
 
1478
+ # A list of publicly visible licenses. Reserved for Google's use.
1479
+ # Corresponds to the JSON property `licenses`
1480
+ # @return [Array<String>]
1481
+ attr_accessor :licenses
1482
+
1464
1483
  # Indicates whether or not the disk can be read/write attached to more than one
1465
1484
  # instance.
1466
1485
  # Corresponds to the JSON property `multiWriter`
@@ -1541,6 +1560,7 @@ module Google
1541
1560
  @disk_type = args[:disk_type] if args.key?(:disk_type)
1542
1561
  @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features)
1543
1562
  @labels = args[:labels] if args.key?(:labels)
1563
+ @licenses = args[:licenses] if args.key?(:licenses)
1544
1564
  @multi_writer = args[:multi_writer] if args.key?(:multi_writer)
1545
1565
  @on_update_action = args[:on_update_action] if args.key?(:on_update_action)
1546
1566
  @provisioned_iops = args[:provisioned_iops] if args.key?(:provisioned_iops)
@@ -3188,14 +3208,14 @@ module Google
3188
3208
 
3189
3209
  # For load balancers that have configurable failover: [Internal TCP/UDP Load
3190
3210
  # Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-
3191
- # overview) and [external TCP/UDP Load Balancing](/network/networklb-failover-
3192
- # overview). On failover or failback, this field indicates whether connection
3193
- # draining will be honored. Google Cloud has a fixed connection draining timeout
3194
- # of 10 minutes. A setting of true terminates existing TCP connections to the
3195
- # active pool during failover and failback, immediately draining traffic. A
3196
- # setting of false allows existing TCP connections to persist, even on VMs no
3197
- # longer in the active pool, for up to the duration of the connection draining
3198
- # timeout (10 minutes).
3211
+ # overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-
3212
+ # balancing/docs/network/networklb-failover-overview). On failover or failback,
3213
+ # this field indicates whether connection draining will be honored. Google Cloud
3214
+ # has a fixed connection draining timeout of 10 minutes. A setting of true
3215
+ # terminates existing TCP connections to the active pool during failover and
3216
+ # failback, immediately draining traffic. A setting of false allows existing TCP
3217
+ # connections to persist, even on VMs no longer in the active pool, for up to
3218
+ # the duration of the connection draining timeout (10 minutes).
3199
3219
  # Corresponds to the JSON property `failoverPolicy`
3200
3220
  # @return [Google::Apis::ComputeBeta::BackendServiceFailoverPolicy]
3201
3221
  attr_accessor :failover_policy
@@ -3266,8 +3286,8 @@ module Google
3266
3286
  # INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme
3267
3287
  # set to INTERNAL_SELF_MANAGED. If sessionAffinity is not NONE, and this field
3268
3288
  # is not set to MAGLEV or RING_HASH, session affinity settings will not take
3269
- # effect. Only the default ROUND_ROBIN policy is supported when the backend
3270
- # service is referenced by a URL map that is bound to target gRPC proxy that has
3289
+ # effect. Only ROUND_ROBIN and RING_HASH are supported when the backend service
3290
+ # is referenced by a URL map that is bound to target gRPC proxy that has
3271
3291
  # validateForProxyless field set to true.
3272
3292
  # Corresponds to the JSON property `localityLbPolicy`
3273
3293
  # @return [String]
@@ -3360,11 +3380,18 @@ module Google
3360
3380
  # @return [String]
3361
3381
  attr_accessor :self_link
3362
3382
 
3363
- # Type of session affinity to use. The default is NONE. For a detailed
3364
- # description of session affinity options, see: [Session affinity](https://cloud.
3365
- # google.com/load-balancing/docs/backend-service#session_affinity). Not
3366
- # supported when the backend service is referenced by a URL map that is bound to
3367
- # target gRPC proxy that has validateForProxyless field set to true.
3383
+ # URLs of networkservices.ServiceBinding resources. Can only be set if load
3384
+ # balancing scheme is INTERNAL_SELF_MANAGED. If set, lists of backends and
3385
+ # health checks must be both empty.
3386
+ # Corresponds to the JSON property `serviceBindings`
3387
+ # @return [Array<String>]
3388
+ attr_accessor :service_bindings
3389
+
3390
+ # Type of session affinity to use. The default is NONE. Only NONE and
3391
+ # HEADER_FIELD are supported when the backend service is referenced by a URL map
3392
+ # that is bound to target gRPC proxy that has validateForProxyless field set to
3393
+ # true. For more details, see: [Session Affinity](https://cloud.google.com/load-
3394
+ # balancing/docs/backend-service#session_affinity).
3368
3395
  # Corresponds to the JSON property `sessionAffinity`
3369
3396
  # @return [String]
3370
3397
  attr_accessor :session_affinity
@@ -3423,6 +3450,7 @@ module Google
3423
3450
  @security_policy = args[:security_policy] if args.key?(:security_policy)
3424
3451
  @security_settings = args[:security_settings] if args.key?(:security_settings)
3425
3452
  @self_link = args[:self_link] if args.key?(:self_link)
3453
+ @service_bindings = args[:service_bindings] if args.key?(:service_bindings)
3426
3454
  @session_affinity = args[:session_affinity] if args.key?(:session_affinity)
3427
3455
  @subsetting = args[:subsetting] if args.key?(:subsetting)
3428
3456
  @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec)
@@ -3773,7 +3801,11 @@ module Google
3773
3801
  # healthy backends (unless all backends are unhealthy). If set to ALWAYS_PERSIST,
3774
3802
  # existing connections always persist on unhealthy backends regardless of
3775
3803
  # protocol and session affinity. It is generally not recommended to use this
3776
- # mode overriding the default.
3804
+ # mode overriding the default. For more details, see [Connection Persistence for
3805
+ # Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/
3806
+ # networklb-backend-service#connection-persistence) and [Connection Persistence
3807
+ # for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/
3808
+ # docs/internal#connection-persistence).
3777
3809
  # Corresponds to the JSON property `connectionPersistenceOnUnhealthyBackends`
3778
3810
  # @return [String]
3779
3811
  attr_accessor :connection_persistence_on_unhealthy_backends
@@ -3786,19 +3818,25 @@ module Google
3786
3818
  alias_method :enable_strong_affinity?, :enable_strong_affinity
3787
3819
 
3788
3820
  # Specifies how long to keep a Connection Tracking entry while there is no
3789
- # matching traffic (in seconds). For L4 ILB the minimum(default) is 10 minutes
3790
- # and maximum is 16 hours. For Network Load Balancer the default is 60 seconds.
3791
- # This option is not available publicly. This field will be supported only if
3792
- # the Connection Tracking key is less than 5-tuple.
3821
+ # matching traffic (in seconds). For Internal TCP/UDP Load Balancing: - The
3822
+ # minimum (default) is 10 minutes and the maximum is 16 hours. - It can be set
3823
+ # only if Connection Tracking is less than 5-tuple (i.e. Session Affinity is
3824
+ # CLIENT_IP_NO_DESTINATION, CLIENT_IP or CLIENT_IP_PROTO, and Tracking Mode is
3825
+ # PER_SESSION). For Network Load Balancer the default is 60 seconds. This option
3826
+ # is not available publicly.
3793
3827
  # Corresponds to the JSON property `idleTimeoutSec`
3794
3828
  # @return [Fixnum]
3795
3829
  attr_accessor :idle_timeout_sec
3796
3830
 
3797
- # Specifies the key used for connection tracking. There are two options:
3831
+ # Specifies the key used for connection tracking. There are two options: -
3798
3832
  # PER_CONNECTION: This is the default mode. The Connection Tracking is performed
3799
- # as per the Connection Key (default Hash Method) for the specific protocol.
3833
+ # as per the Connection Key (default Hash Method) for the specific protocol. -
3800
3834
  # PER_SESSION: The Connection Tracking is performed as per the configured
3801
- # Session Affinity. It matches the configured Session Affinity.
3835
+ # Session Affinity. It matches the configured Session Affinity. For more details,
3836
+ # see [Tracking Mode for Network Load Balancing](https://cloud.google.com/load-
3837
+ # balancing/docs/network/networklb-backend-service#tracking-mode) and [Tracking
3838
+ # Mode for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-
3839
+ # balancing/docs/internal#tracking-mode).
3802
3840
  # Corresponds to the JSON property `trackingMode`
3803
3841
  # @return [String]
3804
3842
  attr_accessor :tracking_mode
@@ -3818,14 +3856,14 @@ module Google
3818
3856
 
3819
3857
  # For load balancers that have configurable failover: [Internal TCP/UDP Load
3820
3858
  # Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-
3821
- # overview) and [external TCP/UDP Load Balancing](/network/networklb-failover-
3822
- # overview). On failover or failback, this field indicates whether connection
3823
- # draining will be honored. Google Cloud has a fixed connection draining timeout
3824
- # of 10 minutes. A setting of true terminates existing TCP connections to the
3825
- # active pool during failover and failback, immediately draining traffic. A
3826
- # setting of false allows existing TCP connections to persist, even on VMs no
3827
- # longer in the active pool, for up to the duration of the connection draining
3828
- # timeout (10 minutes).
3859
+ # overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-
3860
+ # balancing/docs/network/networklb-failover-overview). On failover or failback,
3861
+ # this field indicates whether connection draining will be honored. Google Cloud
3862
+ # has a fixed connection draining timeout of 10 minutes. A setting of true
3863
+ # terminates existing TCP connections to the active pool during failover and
3864
+ # failback, immediately draining traffic. A setting of false allows existing TCP
3865
+ # connections to persist, even on VMs no longer in the active pool, for up to
3866
+ # the duration of the connection draining timeout (10 minutes).
3829
3867
  class BackendServiceFailoverPolicy
3830
3868
  include Google::Apis::Core::Hashable
3831
3869
 
@@ -3840,8 +3878,9 @@ module Google
3840
3878
  # distributed among all primary VMs when all primary and all backup backend VMs
3841
3879
  # are unhealthy. For load balancers that have configurable failover: [Internal
3842
3880
  # TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/
3843
- # failover-overview) and [external TCP/UDP Load Balancing](/network/networklb-
3844
- # failover-overview). The default is false.
3881
+ # failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.
3882
+ # com/load-balancing/docs/network/networklb-failover-overview). The default is
3883
+ # false.
3845
3884
  # Corresponds to the JSON property `dropTrafficIfUnhealthy`
3846
3885
  # @return [Boolean]
3847
3886
  attr_accessor :drop_traffic_if_unhealthy
@@ -3853,7 +3892,8 @@ module Google
3853
3892
  # the total number of healthy primary VMs is less than this ratio. For load
3854
3893
  # balancers that have configurable failover: [Internal TCP/UDP Load Balancing](
3855
3894
  # https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [
3856
- # external TCP/UDP Load Balancing](/network/networklb-failover-overview).
3895
+ # external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/
3896
+ # network/networklb-failover-overview).
3857
3897
  # Corresponds to the JSON property `failoverRatio`
3858
3898
  # @return [Float]
3859
3899
  attr_accessor :failover_ratio
@@ -4454,7 +4494,7 @@ module Google
4454
4494
  end
4455
4495
  end
4456
4496
 
4457
- # Associates `members` with a `role`.
4497
+ # Associates `members`, or principals, with a `role`.
4458
4498
  class Binding
4459
4499
  include Google::Apis::Core::Hashable
4460
4500
 
@@ -4482,7 +4522,7 @@ module Google
4482
4522
  # @return [Google::Apis::ComputeBeta::Expr]
4483
4523
  attr_accessor :condition
4484
4524
 
4485
- # Specifies the identities requesting access for a Cloud Platform resource. `
4525
+ # Specifies the principals requesting access for a Cloud Platform resource. `
4486
4526
  # members` can have the following values: * `allUsers`: A special identifier
4487
4527
  # that represents anyone who is on the internet; with or without a Google
4488
4528
  # account. * `allAuthenticatedUsers`: A special identifier that represents
@@ -4512,8 +4552,8 @@ module Google
4512
4552
  # @return [Array<String>]
4513
4553
  attr_accessor :members
4514
4554
 
4515
- # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
4516
- # , or `roles/owner`.
4555
+ # Role that is assigned to the list of `members`, or principals. For example, `
4556
+ # roles/viewer`, `roles/editor`, or `roles/owner`.
4517
4557
  # Corresponds to the JSON property `role`
4518
4558
  # @return [String]
4519
4559
  attr_accessor :role
@@ -4791,6 +4831,16 @@ module Google
4791
4831
  class Commitment
4792
4832
  include Google::Apis::Core::Hashable
4793
4833
 
4834
+ # Specifies whether to enable automatic renewal for the commitment. The default
4835
+ # value is false if not specified. The field can be updated until the day of the
4836
+ # commitment expiration at 12:00am PST. If the field is set to true, the
4837
+ # commitment will be automatically renewed for either one or three years
4838
+ # according to the terms of the existing commitment.
4839
+ # Corresponds to the JSON property `autoRenew`
4840
+ # @return [Boolean]
4841
+ attr_accessor :auto_renew
4842
+ alias_method :auto_renew?, :auto_renew
4843
+
4794
4844
  # The category of the commitment. Category MACHINE specifies commitments
4795
4845
  # composed of machine resources such as VCPU or MEMORY, listed in resources.
4796
4846
  # Category LICENSE specifies commitments composed of software licenses, listed
@@ -4901,6 +4951,7 @@ module Google
4901
4951
 
4902
4952
  # Update properties of this object
4903
4953
  def update!(**args)
4954
+ @auto_renew = args[:auto_renew] if args.key?(:auto_renew)
4904
4955
  @category = args[:category] if args.key?(:category)
4905
4956
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
4906
4957
  @description = args[:description] if args.key?(:description)
@@ -5409,14 +5460,15 @@ module Google
5409
5460
  end
5410
5461
  end
5411
5462
 
5412
- # The specification for allowing client side cross-origin requests. Please see
5413
- # W3C Recommendation for Cross Origin Resource Sharing
5463
+ # The specification for allowing client-side cross-origin requests. For more
5464
+ # information about the W3C recommendation for cross-origin resource sharing (
5465
+ # CORS), see Fetch API Living Standard.
5414
5466
  class CorsPolicy
5415
5467
  include Google::Apis::Core::Hashable
5416
5468
 
5417
5469
  # In response to a preflight request, setting this to true indicates that the
5418
- # actual request can include user credentials. This translates to the Access-
5419
- # Control-Allow-Credentials header. Default is false.
5470
+ # actual request can include user credentials. This field translates to the
5471
+ # Access-Control-Allow-Credentials header. Default is false.
5420
5472
  # Corresponds to the JSON property `allowCredentials`
5421
5473
  # @return [Boolean]
5422
5474
  attr_accessor :allow_credentials
@@ -5432,23 +5484,23 @@ module Google
5432
5484
  # @return [Array<String>]
5433
5485
  attr_accessor :allow_methods
5434
5486
 
5435
- # Specifies the regualar expression patterns that match allowed origins. For
5436
- # regular expression grammar please see github.com/google/re2/wiki/Syntax An
5437
- # origin is allowed if it matches either an item in allowOrigins or an item in
5487
+ # Specifies a regular expression that matches allowed origins. For more
5488
+ # information about the regular expression syntax, see Syntax. An origin is
5489
+ # allowed if it matches either an item in allowOrigins or an item in
5438
5490
  # allowOriginRegexes.
5439
5491
  # Corresponds to the JSON property `allowOriginRegexes`
5440
5492
  # @return [Array<String>]
5441
5493
  attr_accessor :allow_origin_regexes
5442
5494
 
5443
- # Specifies the list of origins that will be allowed to do CORS requests. An
5444
- # origin is allowed if it matches either an item in allowOrigins or an item in
5495
+ # Specifies the list of origins that is allowed to do CORS requests. An origin
5496
+ # is allowed if it matches either an item in allowOrigins or an item in
5445
5497
  # allowOriginRegexes.
5446
5498
  # Corresponds to the JSON property `allowOrigins`
5447
5499
  # @return [Array<String>]
5448
5500
  attr_accessor :allow_origins
5449
5501
 
5450
- # If true, specifies the CORS policy is disabled. The default value of false,
5451
- # which indicates that the CORS policy is in effect.
5502
+ # If true, the setting specifies the CORS policy is disabled. The default value
5503
+ # of false, which indicates that the CORS policy is in effect.
5452
5504
  # Corresponds to the JSON property `disabled`
5453
5505
  # @return [Boolean]
5454
5506
  attr_accessor :disabled
@@ -5460,7 +5512,7 @@ module Google
5460
5512
  attr_accessor :expose_headers
5461
5513
 
5462
5514
  # Specifies how long results of a preflight request can be cached in seconds.
5463
- # This translates to the Access-Control-Max-Age header.
5515
+ # This field translates to the Access-Control-Max-Age header.
5464
5516
  # Corresponds to the JSON property `maxAge`
5465
5517
  # @return [Fixnum]
5466
5518
  attr_accessor :max_age
@@ -8665,8 +8717,7 @@ module Google
8665
8717
  attr_accessor :self_link
8666
8718
 
8667
8719
  # Service Directory resources to register this forwarding rule with. Currently,
8668
- # only supports a single Service Directory resource. It is only supported for
8669
- # internal load balancing.
8720
+ # only supports a single Service Directory resource.
8670
8721
  # Corresponds to the JSON property `serviceDirectoryRegistrations`
8671
8722
  # @return [Array<Google::Apis::ComputeBeta::ForwardingRuleServiceDirectoryRegistration>]
8672
8723
  attr_accessor :service_directory_registrations
@@ -9248,31 +9299,31 @@ module Google
9248
9299
 
9249
9300
  # An Identity and Access Management (IAM) policy, which specifies access
9250
9301
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
9251
- # A `binding` binds one or more `members` to a single `role`. Members can be
9252
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
9253
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
9254
- # role or a user-created custom role. For some types of Google Cloud resources,
9255
- # a `binding` can also specify a `condition`, which is a logical expression that
9256
- # allows access to a resource only if the expression evaluates to `true`. A
9257
- # condition can add constraints based on attributes of the request, the resource,
9258
- # or both. To learn which resources support conditions in their IAM policies,
9259
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
9260
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
9261
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
9262
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
9263
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
9264
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
9265
- # title": "expirable access", "description": "Does not grant access after Sep
9266
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
9267
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
9268
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
9269
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
9270
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
9271
- # roles/resourcemanager.organizationViewer condition: title: expirable access
9272
- # description: Does not grant access after Sep 2020 expression: request.time <
9273
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
9274
- # description of IAM and its features, see the [IAM documentation](https://cloud.
9275
- # google.com/iam/docs/).
9302
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
9303
+ # Principals can be user accounts, service accounts, Google groups, and domains (
9304
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
9305
+ # an IAM predefined role or a user-created custom role. For some types of Google
9306
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
9307
+ # logical expression that allows access to a resource only if the expression
9308
+ # evaluates to `true`. A condition can add constraints based on attributes of
9309
+ # the request, the resource, or both. To learn which resources support
9310
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
9311
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
9312
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
9313
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
9314
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
9315
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
9316
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
9317
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
9318
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
9319
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
9320
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
9321
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
9322
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
9323
+ # access description: Does not grant access after Sep 2020 expression: request.
9324
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
9325
+ # a description of IAM and its features, see the [IAM documentation](https://
9326
+ # cloud.google.com/iam/docs/).
9276
9327
  # Corresponds to the JSON property `policy`
9277
9328
  # @return [Google::Apis::ComputeBeta::Policy]
9278
9329
  attr_accessor :policy
@@ -9345,31 +9396,31 @@ module Google
9345
9396
 
9346
9397
  # An Identity and Access Management (IAM) policy, which specifies access
9347
9398
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
9348
- # A `binding` binds one or more `members` to a single `role`. Members can be
9349
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
9350
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
9351
- # role or a user-created custom role. For some types of Google Cloud resources,
9352
- # a `binding` can also specify a `condition`, which is a logical expression that
9353
- # allows access to a resource only if the expression evaluates to `true`. A
9354
- # condition can add constraints based on attributes of the request, the resource,
9355
- # or both. To learn which resources support conditions in their IAM policies,
9356
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
9357
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
9358
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
9359
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
9360
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
9361
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
9362
- # title": "expirable access", "description": "Does not grant access after Sep
9363
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
9364
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
9365
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
9366
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
9367
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
9368
- # roles/resourcemanager.organizationViewer condition: title: expirable access
9369
- # description: Does not grant access after Sep 2020 expression: request.time <
9370
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
9371
- # description of IAM and its features, see the [IAM documentation](https://cloud.
9372
- # google.com/iam/docs/).
9399
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
9400
+ # Principals can be user accounts, service accounts, Google groups, and domains (
9401
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
9402
+ # an IAM predefined role or a user-created custom role. For some types of Google
9403
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
9404
+ # logical expression that allows access to a resource only if the expression
9405
+ # evaluates to `true`. A condition can add constraints based on attributes of
9406
+ # the request, the resource, or both. To learn which resources support
9407
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
9408
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
9409
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
9410
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
9411
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
9412
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
9413
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
9414
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
9415
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
9416
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
9417
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
9418
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
9419
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
9420
+ # access description: Does not grant access after Sep 2020 expression: request.
9421
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
9422
+ # a description of IAM and its features, see the [IAM documentation](https://
9423
+ # cloud.google.com/iam/docs/).
9373
9424
  # Corresponds to the JSON property `policy`
9374
9425
  # @return [Google::Apis::ComputeBeta::Policy]
9375
9426
  attr_accessor :policy
@@ -9491,8 +9542,11 @@ module Google
9491
9542
  class GuestOsFeature
9492
9543
  include Google::Apis::Core::Hashable
9493
9544
 
9494
- # The ID of a supported feature. Read Enabling guest operating system features
9495
- # to see a list of available options.
9545
+ # The ID of a supported feature. To add multiple values, use commas to separate
9546
+ # values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE -
9547
+ # WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - SECURE_BOOT - GVNIC -
9548
+ # SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE For more information, see Enabling
9549
+ # guest operating system features.
9496
9550
  # Corresponds to the JSON property `type`
9497
9551
  # @return [String]
9498
9552
  attr_accessor :type
@@ -9826,8 +9880,8 @@ module Google
9826
9880
  attr_accessor :timeout_sec
9827
9881
 
9828
9882
  # Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS or HTTP2.
9829
- # If not specified, the default is TCP. Exactly one of the protocol-specific
9830
- # health check field must be specified, which must match type field.
9883
+ # Exactly one of the protocol-specific health check field must be specified,
9884
+ # which must match type field.
9831
9885
  # Corresponds to the JSON property `type`
9832
9886
  # @return [String]
9833
9887
  attr_accessor :type
@@ -10652,7 +10706,8 @@ module Google
10652
10706
  # port numbers in the format host:port. * matches any string of ([a-z0-9-.]*).
10653
10707
  # In that case, * must be the first character and must be followed in the
10654
10708
  # pattern by either - or .. * based matching is not supported when the URL map
10655
- # is bound to target gRPC proxy that has validateForProxyless field set to true.
10709
+ # is bound to a target gRPC proxy that has the validateForProxyless field set to
10710
+ # true.
10656
10711
  # Corresponds to the JSON property `hosts`
10657
10712
  # @return [Array<String>]
10658
10713
  attr_accessor :hosts
@@ -10679,8 +10734,8 @@ module Google
10679
10734
  class HttpFaultAbort
10680
10735
  include Google::Apis::Core::Hashable
10681
10736
 
10682
- # The HTTP status code used to abort the request. The value must be between 200
10683
- # and 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP
10737
+ # The HTTP status code used to abort the request. The value must be from 200 to
10738
+ # 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP
10684
10739
  # status code according to this mapping table. HTTP status 200 is mapped to gRPC
10685
10740
  # status UNKNOWN. Injecting an OK status is currently not supported by Traffic
10686
10741
  # Director.
@@ -10688,8 +10743,8 @@ module Google
10688
10743
  # @return [Fixnum]
10689
10744
  attr_accessor :http_status
10690
10745
 
10691
- # The percentage of traffic (connections/operations/requests) which will be
10692
- # aborted as part of fault injection. The value must be between 0.0 and 100.0
10746
+ # The percentage of traffic for connections, operations, or requests that is
10747
+ # aborted as part of fault injection. The value must be from 0.0 to 100.0
10693
10748
  # inclusive.
10694
10749
  # Corresponds to the JSON property `percentage`
10695
10750
  # @return [Float]
@@ -10706,8 +10761,8 @@ module Google
10706
10761
  end
10707
10762
  end
10708
10763
 
10709
- # Specifies the delay introduced by Loadbalancer before forwarding the request
10710
- # to the backend service as part of fault injection.
10764
+ # Specifies the delay introduced by the load balancer before forwarding the
10765
+ # request to the backend service as part of fault injection.
10711
10766
  class HttpFaultDelay
10712
10767
  include Google::Apis::Core::Hashable
10713
10768
 
@@ -10719,9 +10774,9 @@ module Google
10719
10774
  # @return [Google::Apis::ComputeBeta::Duration]
10720
10775
  attr_accessor :fixed_delay
10721
10776
 
10722
- # The percentage of traffic (connections/operations/requests) on which delay
10723
- # will be introduced as part of fault injection. The value must be between 0.0
10724
- # and 100.0 inclusive.
10777
+ # The percentage of traffic for connections, operations, or requests for which a
10778
+ # delay is introduced as part of fault injection. The value must be from 0.0 to
10779
+ # 100.0 inclusive.
10725
10780
  # Corresponds to the JSON property `percentage`
10726
10781
  # @return [Float]
10727
10782
  attr_accessor :percentage
@@ -10740,9 +10795,9 @@ module Google
10740
10795
  # The specification for fault injection introduced into traffic to test the
10741
10796
  # resiliency of clients to backend service failure. As part of fault injection,
10742
10797
  # when clients send requests to a backend service, delays can be introduced by
10743
- # Loadbalancer on a percentage of requests before sending those request to the
10744
- # backend service. Similarly requests from clients can be aborted by the
10745
- # Loadbalancer for a percentage of requests.
10798
+ # the load balancer on a percentage of requests before sending those request to
10799
+ # the backend service. Similarly requests from clients can be aborted by the
10800
+ # load balancer for a percentage of requests.
10746
10801
  class HttpFaultInjection
10747
10802
  include Google::Apis::Core::Hashable
10748
10803
 
@@ -10751,8 +10806,8 @@ module Google
10751
10806
  # @return [Google::Apis::ComputeBeta::HttpFaultAbort]
10752
10807
  attr_accessor :abort
10753
10808
 
10754
- # Specifies the delay introduced by Loadbalancer before forwarding the request
10755
- # to the backend service as part of fault injection.
10809
+ # Specifies the delay introduced by the load balancer before forwarding the
10810
+ # request to the backend service as part of fault injection.
10756
10811
  # Corresponds to the JSON property `delay`
10757
10812
  # @return [Google::Apis::ComputeBeta::HttpFaultDelay]
10758
10813
  attr_accessor :delay
@@ -10810,25 +10865,25 @@ module Google
10810
10865
  class HttpHeaderAction
10811
10866
  include Google::Apis::Core::Hashable
10812
10867
 
10813
- # Headers to add to a matching request prior to forwarding the request to the
10868
+ # Headers to add to a matching request before forwarding the request to the
10814
10869
  # backendService.
10815
10870
  # Corresponds to the JSON property `requestHeadersToAdd`
10816
10871
  # @return [Array<Google::Apis::ComputeBeta::HttpHeaderOption>]
10817
10872
  attr_accessor :request_headers_to_add
10818
10873
 
10819
10874
  # A list of header names for headers that need to be removed from the request
10820
- # prior to forwarding the request to the backendService.
10875
+ # before forwarding the request to the backendService.
10821
10876
  # Corresponds to the JSON property `requestHeadersToRemove`
10822
10877
  # @return [Array<String>]
10823
10878
  attr_accessor :request_headers_to_remove
10824
10879
 
10825
- # Headers to add the response prior to sending the response back to the client.
10880
+ # Headers to add the response before sending the response back to the client.
10826
10881
  # Corresponds to the JSON property `responseHeadersToAdd`
10827
10882
  # @return [Array<Google::Apis::ComputeBeta::HttpHeaderOption>]
10828
10883
  attr_accessor :response_headers_to_add
10829
10884
 
10830
10885
  # A list of header names for headers that need to be removed from the response
10831
- # prior to sending the response back to the client.
10886
+ # before sending the response back to the client.
10832
10887
  # Corresponds to the JSON property `responseHeadersToRemove`
10833
10888
  # @return [Array<String>]
10834
10889
  attr_accessor :response_headers_to_remove
@@ -10858,21 +10913,21 @@ module Google
10858
10913
 
10859
10914
  # The name of the HTTP header to match. For matching against the HTTP request's
10860
10915
  # authority, use a headerMatch with the header name ":authority". For matching a
10861
- # request's method, use the headerName ":method". When the URL map is bound to
10862
- # target gRPC proxy that has validateForProxyless field set to true, only non-
10863
- # binary user-specified custom metadata and the `content-type` header are
10916
+ # request's method, use the headerName ":method". When the URL map is bound to a
10917
+ # target gRPC proxy that has the validateForProxyless field set to true, only
10918
+ # non-binary user-specified custom metadata and the `content-type` header are
10864
10919
  # supported. The following transport-level headers cannot be used in header
10865
10920
  # matching rules: `:authority`, `:method`, `:path`, `:scheme`, `user-agent`, `
10866
10921
  # accept-encoding`, `content-encoding`, `grpc-accept-encoding`, `grpc-encoding`,
10867
10922
  # `grpc-previous-rpc-attempts`, `grpc-tags-bin`, `grpc-timeout` and `grpc-trace-
10868
- # bin.
10923
+ # bin`.
10869
10924
  # Corresponds to the JSON property `headerName`
10870
10925
  # @return [String]
10871
10926
  attr_accessor :header_name
10872
10927
 
10873
- # If set to false, the headerMatch is considered a match if the match criteria
10874
- # above are met. If set to true, the headerMatch is considered a match if the
10875
- # match criteria above are NOT met. The default setting is false.
10928
+ # If set to false, the headerMatch is considered a match if the preceding match
10929
+ # criteria are met. If set to true, the headerMatch is considered a match if the
10930
+ # preceding match criteria are NOT met. The default setting is false.
10876
10931
  # Corresponds to the JSON property `invertMatch`
10877
10932
  # @return [Boolean]
10878
10933
  attr_accessor :invert_match
@@ -10900,13 +10955,13 @@ module Google
10900
10955
  attr_accessor :range_match
10901
10956
 
10902
10957
  # The value of the header must match the regular expression specified in
10903
- # regexMatch. For regular expression grammar, please see: github.com/google/re2/
10904
- # wiki/Syntax For matching against a port specified in the HTTP request, use a
10905
- # headerMatch with headerName set to PORT and a regular expression that
10906
- # satisfies the RFC2616 Host header's port specifier. Only one of exactMatch,
10907
- # prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.
10908
- # Note that regexMatch only applies to Loadbalancers that have their
10909
- # loadBalancingScheme set to INTERNAL_SELF_MANAGED.
10958
+ # regexMatch. For more information about regular expression syntax, see Syntax.
10959
+ # For matching against a port specified in the HTTP request, use a headerMatch
10960
+ # with headerName set to PORT and a regular expression that satisfies the
10961
+ # RFC2616 Host header's port specifier. Only one of exactMatch, prefixMatch,
10962
+ # suffixMatch, regexMatch, presentMatch or rangeMatch must be set. regexMatch
10963
+ # only applies to load balancers that have loadBalancingScheme set to
10964
+ # INTERNAL_SELF_MANAGED.
10910
10965
  # Corresponds to the JSON property `regexMatch`
10911
10966
  # @return [String]
10912
10967
  attr_accessor :regex_match
@@ -11201,8 +11256,8 @@ module Google
11201
11256
  include Google::Apis::Core::Hashable
11202
11257
 
11203
11258
  # The queryParameterMatch matches if the value of the parameter exactly matches
11204
- # the contents of exactMatch. Only one of presentMatch, exactMatch or regexMatch
11205
- # must be set.
11259
+ # the contents of exactMatch. Only one of presentMatch, exactMatch, or
11260
+ # regexMatch must be set.
11206
11261
  # Corresponds to the JSON property `exactMatch`
11207
11262
  # @return [String]
11208
11263
  attr_accessor :exact_match
@@ -11215,17 +11270,17 @@ module Google
11215
11270
 
11216
11271
  # Specifies that the queryParameterMatch matches if the request contains the
11217
11272
  # query parameter, irrespective of whether the parameter has a value or not.
11218
- # Only one of presentMatch, exactMatch or regexMatch must be set.
11273
+ # Only one of presentMatch, exactMatch, or regexMatch must be set.
11219
11274
  # Corresponds to the JSON property `presentMatch`
11220
11275
  # @return [Boolean]
11221
11276
  attr_accessor :present_match
11222
11277
  alias_method :present_match?, :present_match
11223
11278
 
11224
11279
  # The queryParameterMatch matches if the value of the parameter matches the
11225
- # regular expression specified by regexMatch. For the regular expression grammar,
11226
- # please see github.com/google/re2/wiki/Syntax Only one of presentMatch,
11227
- # exactMatch or regexMatch must be set. Note that regexMatch only applies when
11228
- # the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.
11280
+ # regular expression specified by regexMatch. For more information about regular
11281
+ # expression syntax, see Syntax. Only one of presentMatch, exactMatch, or
11282
+ # regexMatch must be set. regexMatch only applies when the loadBalancingScheme
11283
+ # is set to INTERNAL_SELF_MANAGED.
11229
11284
  # Corresponds to the JSON property `regexMatch`
11230
11285
  # @return [String]
11231
11286
  attr_accessor :regex_match
@@ -11247,15 +11302,15 @@ module Google
11247
11302
  class HttpRedirectAction
11248
11303
  include Google::Apis::Core::Hashable
11249
11304
 
11250
- # The host that will be used in the redirect response instead of the one that
11251
- # was supplied in the request. The value must be between 1 and 255 characters.
11305
+ # The host that is used in the redirect response instead of the one that was
11306
+ # supplied in the request. The value must be from 1 to 255 characters.
11252
11307
  # Corresponds to the JSON property `hostRedirect`
11253
11308
  # @return [String]
11254
11309
  attr_accessor :host_redirect
11255
11310
 
11256
- # If set to true, the URL scheme in the redirected request is set to https. If
11257
- # set to false, the URL scheme of the redirected request will remain the same as
11258
- # that of the request. This must only be set for UrlMaps used in
11311
+ # If set to true, the URL scheme in the redirected request is set to HTTPS. If
11312
+ # set to false, the URL scheme of the redirected request remains the same as
11313
+ # that of the request. This must only be set for URL maps used in
11259
11314
  # TargetHttpProxys. Setting this true for TargetHttpsProxy is not permitted. The
11260
11315
  # default is set to false.
11261
11316
  # Corresponds to the JSON property `httpsRedirect`
@@ -11263,11 +11318,11 @@ module Google
11263
11318
  attr_accessor :https_redirect
11264
11319
  alias_method :https_redirect?, :https_redirect
11265
11320
 
11266
- # The path that will be used in the redirect response instead of the one that
11267
- # was supplied in the request. pathRedirect cannot be supplied together with
11321
+ # The path that is used in the redirect response instead of the one that was
11322
+ # supplied in the request. pathRedirect cannot be supplied together with
11268
11323
  # prefixRedirect. Supply one alone or neither. If neither is supplied, the path
11269
- # of the original request will be used for the redirect. The value must be
11270
- # between 1 and 1024 characters.
11324
+ # of the original request is used for the redirect. The value must be from 1 to
11325
+ # 1024 characters.
11271
11326
  # Corresponds to the JSON property `pathRedirect`
11272
11327
  # @return [String]
11273
11328
  attr_accessor :path_redirect
@@ -11275,8 +11330,8 @@ module Google
11275
11330
  # The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,
11276
11331
  # retaining the remaining portion of the URL before redirecting the request.
11277
11332
  # prefixRedirect cannot be supplied together with pathRedirect. Supply one alone
11278
- # or neither. If neither is supplied, the path of the original request will be
11279
- # used for the redirect. The value must be between 1 and 1024 characters.
11333
+ # or neither. If neither is supplied, the path of the original request is used
11334
+ # for the redirect. The value must be from 1 to 1024 characters.
11280
11335
  # Corresponds to the JSON property `prefixRedirect`
11281
11336
  # @return [String]
11282
11337
  attr_accessor :prefix_redirect
@@ -11285,14 +11340,14 @@ module Google
11285
11340
  # MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. -
11286
11341
  # FOUND, which corresponds to 302. - SEE_OTHER which corresponds to 303. -
11287
11342
  # TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method
11288
- # will be retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case,
11289
- # the request method will be retained.
11343
+ # is retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case, the
11344
+ # request method is retained.
11290
11345
  # Corresponds to the JSON property `redirectResponseCode`
11291
11346
  # @return [String]
11292
11347
  attr_accessor :redirect_response_code
11293
11348
 
11294
11349
  # If set to true, any accompanying query portion of the original URL is removed
11295
- # prior to redirecting the request. If set to false, the query portion of the
11350
+ # before redirecting the request. If set to false, the query portion of the
11296
11351
  # original URL is retained. The default is set to false.
11297
11352
  # Corresponds to the JSON property `stripQuery`
11298
11353
  # @return [Boolean]
@@ -11333,25 +11388,27 @@ module Google
11333
11388
  attr_accessor :per_try_timeout
11334
11389
 
11335
11390
  # Specifies one or more conditions when this retry policy applies. Valid values
11336
- # are: - 5xx: Retry will be attempted if the instance or endpoint responds with
11337
- # any 5xx response code, or if the instance or endpoint does not respond at all,
11338
- # example: disconnects, reset, read timeout, connection failure, and refused
11391
+ # are: - 5xx: retry is attempted if the instance or endpoint responds with any
11392
+ # 5xx response code, or if the instance or endpoint does not respond at all. For
11393
+ # example, disconnects, reset, read timeout, connection failure, and refused
11339
11394
  # streams. - gateway-error: Similar to 5xx, but only applies to response codes
11340
- # 502, 503 or 504. - - connect-failure: A retry will be attempted on failures
11341
- # connecting to the instance or endpoint, for example due to connection timeouts.
11342
- # - retriable-4xx: A retry will be attempted if the instance or endpoint
11343
- # responds with a retriable 4xx response code. Currently the only retriable
11344
- # error supported is 409. - refused-stream: A retry will be attempted if the
11345
- # instance or endpoint resets the stream with a REFUSED_STREAM error code. This
11346
- # reset type indicates that it is safe to retry. - cancelled: A retry will be
11347
- # attempted if the gRPC status code in the response header is set to cancelled. -
11348
- # deadline-exceeded: A retry will be attempted if the gRPC status code in the
11349
- # response header is set to deadline-exceeded. - internal: A retry will be
11350
- # attempted if the gRPC status code in the response header is set to internal. -
11351
- # resource-exhausted: A retry will be attempted if the gRPC status code in the
11352
- # response header is set to resource-exhausted. - unavailable: A retry will be
11353
- # attempted if the gRPC status code in the response header is set to unavailable.
11354
- #
11395
+ # 502, 503 or 504. - connect-failure: a retry is attempted on failures
11396
+ # connecting to the instance or endpoint. For example, connection timeouts. -
11397
+ # retriable-4xx: a retry is attempted if the instance or endpoint responds with
11398
+ # a 4xx response code. The only error that you can retry is error code 409. -
11399
+ # refused-stream: a retry is attempted if the instance or endpoint resets the
11400
+ # stream with a REFUSED_STREAM error code. This reset type indicates that it is
11401
+ # safe to retry. - cancelled: a retry is attempted if the gRPC status code in
11402
+ # the response header is set to cancelled. - deadline-exceeded: a retry is
11403
+ # attempted if the gRPC status code in the response header is set to deadline-
11404
+ # exceeded. - internal: a retry is attempted if the gRPC status code in the
11405
+ # response header is set to internal. - resource-exhausted: a retry is attempted
11406
+ # if the gRPC status code in the response header is set to resource-exhausted. -
11407
+ # unavailable: a retry is attempted if the gRPC status code in the response
11408
+ # header is set to unavailable. Only the following codes are supported when the
11409
+ # URL map is bound to target gRPC proxy that has validateForProxyless field set
11410
+ # to true. - cancelled - deadline-exceeded - internal - resource-exhausted -
11411
+ # unavailable
11355
11412
  # Corresponds to the JSON property `retryConditions`
11356
11413
  # @return [Array<String>]
11357
11414
  attr_accessor :retry_conditions
@@ -11372,8 +11429,9 @@ module Google
11372
11429
  class HttpRouteAction
11373
11430
  include Google::Apis::Core::Hashable
11374
11431
 
11375
- # The specification for allowing client side cross-origin requests. Please see
11376
- # W3C Recommendation for Cross Origin Resource Sharing
11432
+ # The specification for allowing client-side cross-origin requests. For more
11433
+ # information about the W3C recommendation for cross-origin resource sharing (
11434
+ # CORS), see Fetch API Living Standard.
11377
11435
  # Corresponds to the JSON property `corsPolicy`
11378
11436
  # @return [Google::Apis::ComputeBeta::CorsPolicy]
11379
11437
  attr_accessor :cors_policy
@@ -11381,9 +11439,9 @@ module Google
11381
11439
  # The specification for fault injection introduced into traffic to test the
11382
11440
  # resiliency of clients to backend service failure. As part of fault injection,
11383
11441
  # when clients send requests to a backend service, delays can be introduced by
11384
- # Loadbalancer on a percentage of requests before sending those request to the
11385
- # backend service. Similarly requests from clients can be aborted by the
11386
- # Loadbalancer for a percentage of requests.
11442
+ # the load balancer on a percentage of requests before sending those request to
11443
+ # the backend service. Similarly requests from clients can be aborted by the
11444
+ # load balancer for a percentage of requests.
11387
11445
  # Corresponds to the JSON property `faultInjectionPolicy`
11388
11446
  # @return [Google::Apis::ComputeBeta::HttpFaultInjection]
11389
11447
  attr_accessor :fault_injection_policy
@@ -11397,9 +11455,9 @@ module Google
11397
11455
  attr_accessor :max_stream_duration
11398
11456
 
11399
11457
  # A policy that specifies how requests intended for the route's backends are
11400
- # shadowed to a separate mirrored backend service. Loadbalancer does not wait
11401
- # for responses from the shadow service. Prior to sending traffic to the shadow
11402
- # service, the host / authority header is suffixed with -shadow.
11458
+ # shadowed to a separate mirrored backend service. The load balancer doesn't
11459
+ # wait for responses from the shadow service. Before sending traffic to the
11460
+ # shadow service, the host or authority header is suffixed with -shadow.
11403
11461
  # Corresponds to the JSON property `requestMirrorPolicy`
11404
11462
  # @return [Google::Apis::ComputeBeta::RequestMirrorPolicy]
11405
11463
  attr_accessor :request_mirror_policy
@@ -11427,7 +11485,7 @@ module Google
11427
11485
  # occurs. The weights determine the fraction of traffic that flows to their
11428
11486
  # corresponding backend service. If all traffic needs to go to a single backend
11429
11487
  # service, there must be one weightedBackendService with weight set to a non-
11430
- # zero number. Once a backendService is identified and before forwarding the
11488
+ # zero number. After a backend service is identified and before forwarding the
11431
11489
  # request to the backend service, advanced routing actions such as URL rewrites
11432
11490
  # and header transformations are applied depending on additional settings
11433
11491
  # specified in this HttpRouteAction.
@@ -11452,8 +11510,8 @@ module Google
11452
11510
  end
11453
11511
  end
11454
11512
 
11455
- # An HttpRouteRule specifies how to match an HTTP request and the corresponding
11456
- # routing action that load balancing proxies will perform.
11513
+ # The HttpRouteRule setting specifies how to match an HTTP request and the
11514
+ # corresponding routing action that load balancing proxies perform.
11457
11515
  class HttpRouteRule
11458
11516
  include Google::Apis::Core::Hashable
11459
11517
 
@@ -11470,9 +11528,9 @@ module Google
11470
11528
  attr_accessor :header_action
11471
11529
 
11472
11530
  # Outbound route specific configuration for networkservices.HttpFilter resources
11473
- # enabled by Traffic Director. httpFilterConfigs only applies for Loadbalancers
11531
+ # enabled by Traffic Director. httpFilterConfigs only applies for load balancers
11474
11532
  # with loadBalancingScheme set to INTERNAL_SELF_MANAGED. See ForwardingRule for
11475
- # more details. Not supported when the URL map is bound to target gRPC proxy
11533
+ # more details. Not supported when the URL map is bound to a target gRPC proxy
11476
11534
  # that has validateForProxyless field set to true.
11477
11535
  # Corresponds to the JSON property `httpFilterConfigs`
11478
11536
  # @return [Array<Google::Apis::ComputeBeta::HttpFilterConfig>]
@@ -11480,10 +11538,10 @@ module Google
11480
11538
 
11481
11539
  # Outbound route specific metadata supplied to networkservices.HttpFilter
11482
11540
  # resources enabled by Traffic Director. httpFilterMetadata only applies for
11483
- # Loadbalancers with loadBalancingScheme set to INTERNAL_SELF_MANAGED. See
11541
+ # load balancers with loadBalancingScheme set to INTERNAL_SELF_MANAGED. See
11484
11542
  # ForwardingRule for more details. The only configTypeUrl supported is type.
11485
11543
  # googleapis.com/google.protobuf.Struct Not supported when the URL map is bound
11486
- # to target gRPC proxy that has validateForProxyless field set to true.
11544
+ # to a target gRPC proxy that has validateForProxyless field set to true.
11487
11545
  # Corresponds to the JSON property `httpFilterMetadata`
11488
11546
  # @return [Array<Google::Apis::ComputeBeta::HttpFilterConfig>]
11489
11547
  attr_accessor :http_filter_metadata
@@ -11498,11 +11556,11 @@ module Google
11498
11556
  attr_accessor :match_rules
11499
11557
 
11500
11558
  # For routeRules within a given pathMatcher, priority determines the order in
11501
- # which load balancer will interpret routeRules. RouteRules are evaluated in
11502
- # order of priority, from the lowest to highest number. The priority of a rule
11559
+ # which a load balancer interprets routeRules. RouteRules are evaluated in order
11560
+ # of priority, from the lowest to highest number. The priority of a rule
11503
11561
  # decreases as its number increases (1, 2, 3, N+1). The first rule that matches
11504
11562
  # the request is applied. You cannot configure two or more routeRules with the
11505
- # same priority. Priority for each rule must be set to a number between 0 and
11563
+ # same priority. Priority for each rule must be set to a number from 0 to
11506
11564
  # 2147483647 inclusive. Priority numbers can have gaps, which enable you to add
11507
11565
  # or remove rules in the future without affecting the rest of the rules. For
11508
11566
  # example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to
@@ -11513,24 +11571,24 @@ module Google
11513
11571
  attr_accessor :priority
11514
11572
 
11515
11573
  # In response to a matching matchRule, the load balancer performs advanced
11516
- # routing actions like URL rewrites, header transformations, etc. prior to
11574
+ # routing actions, such as URL rewrites and header transformations, before
11517
11575
  # forwarding the request to the selected backend. If routeAction specifies any
11518
11576
  # weightedBackendServices, service must not be set. Conversely if service is set,
11519
11577
  # routeAction cannot contain any weightedBackendServices. Only one of
11520
11578
  # urlRedirect, service or routeAction.weightedBackendService must be set.
11521
11579
  # UrlMaps for external HTTP(S) load balancers support only the urlRewrite action
11522
- # within a routeRule's routeAction.
11580
+ # within a route rule's routeAction.
11523
11581
  # Corresponds to the JSON property `routeAction`
11524
11582
  # @return [Google::Apis::ComputeBeta::HttpRouteAction]
11525
11583
  attr_accessor :route_action
11526
11584
 
11527
11585
  # The full or partial URL of the backend service resource to which traffic is
11528
- # directed if this rule is matched. If routeAction is additionally specified,
11529
- # advanced routing actions like URL Rewrites, etc. take effect prior to sending
11530
- # the request to the backend. However, if service is specified, routeAction
11531
- # cannot contain any weightedBackendService s. Conversely, if routeAction
11532
- # specifies any weightedBackendServices, service must not be specified. Only one
11533
- # of urlRedirect, service or routeAction.weightedBackendService must be set.
11586
+ # directed if this rule is matched. If routeAction is also specified, advanced
11587
+ # routing actions, such as URL rewrites, take effect before sending the request
11588
+ # to the backend. However, if service is specified, routeAction cannot contain
11589
+ # any weightedBackendServices. Conversely, if routeAction specifies any
11590
+ # weightedBackendServices, service must not be specified. Only one of
11591
+ # urlRedirect, service or routeAction.weightedBackendService must be set.
11534
11592
  # Corresponds to the JSON property `service`
11535
11593
  # @return [String]
11536
11594
  attr_accessor :service
@@ -11565,9 +11623,9 @@ module Google
11565
11623
 
11566
11624
  # For satisfying the matchRule condition, the path of the request must exactly
11567
11625
  # match the value specified in fullPathMatch after removing any query parameters
11568
- # and anchor that may be part of the original URL. fullPathMatch must be between
11569
- # 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch
11570
- # must be specified.
11626
+ # and anchor that may be part of the original URL. fullPathMatch must be from 1
11627
+ # to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must
11628
+ # be specified.
11571
11629
  # Corresponds to the JSON property `fullPathMatch`
11572
11630
  # @return [String]
11573
11631
  attr_accessor :full_path_match
@@ -11580,53 +11638,52 @@ module Google
11580
11638
 
11581
11639
  # Specifies that prefixMatch and fullPathMatch matches are case sensitive. The
11582
11640
  # default value is false. ignoreCase must not be used with regexMatch. Not
11583
- # supported when the URL map is bound to target gRPC proxy.
11641
+ # supported when the URL map is bound to a target gRPC proxy.
11584
11642
  # Corresponds to the JSON property `ignoreCase`
11585
11643
  # @return [Boolean]
11586
11644
  attr_accessor :ignore_case
11587
11645
  alias_method :ignore_case?, :ignore_case
11588
11646
 
11589
- # Opaque filter criteria used by Loadbalancer to restrict routing configuration
11590
- # to a limited set of xDS compliant clients. In their xDS requests to
11591
- # Loadbalancer, xDS clients present node metadata. When there is a match, the
11592
- # relevant routing configuration is made available to those proxies. For each
11593
- # metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY,
11594
- # at least one of the filterLabels must match the corresponding label provided
11595
- # in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of
11596
- # its filterLabels must match with corresponding labels provided in the metadata.
11597
- # If multiple metadataFilters are specified, all of them need to be satisfied
11598
- # in order to be considered a match. metadataFilters specified here will be
11647
+ # Opaque filter criteria used by the load balancer to restrict routing
11648
+ # configuration to a limited set of xDS compliant clients. In their xDS requests
11649
+ # to the load balancer, xDS clients present node metadata. When there is a match,
11650
+ # the relevant routing configuration is made available to those proxies. For
11651
+ # each metadataFilter in this list, if its filterMatchCriteria is set to
11652
+ # MATCH_ANY, at least one of the filterLabels must match the corresponding label
11653
+ # provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then
11654
+ # all of its filterLabels must match with corresponding labels provided in the
11655
+ # metadata. If multiple metadata filters are specified, all of them need to be
11656
+ # satisfied in order to be considered a match. metadataFilters specified here is
11599
11657
  # applied after those specified in ForwardingRule that refers to the UrlMap this
11600
- # HttpRouteRuleMatch belongs to. metadataFilters only applies to Loadbalancers
11601
- # that have their loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not
11602
- # supported when the URL map is bound to target gRPC proxy that has
11603
- # validateForProxyless field set to true.
11658
+ # HttpRouteRuleMatch belongs to. metadataFilters only applies to load balancers
11659
+ # that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not supported when
11660
+ # the URL map is bound to a target gRPC proxy that has validateForProxyless
11661
+ # field set to true.
11604
11662
  # Corresponds to the JSON property `metadataFilters`
11605
11663
  # @return [Array<Google::Apis::ComputeBeta::MetadataFilter>]
11606
11664
  attr_accessor :metadata_filters
11607
11665
 
11608
11666
  # For satisfying the matchRule condition, the request's path must begin with the
11609
- # specified prefixMatch. prefixMatch must begin with a /. The value must be
11610
- # between 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or
11611
- # regexMatch must be specified.
11667
+ # specified prefixMatch. prefixMatch must begin with a /. The value must be from
11668
+ # 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch
11669
+ # must be specified.
11612
11670
  # Corresponds to the JSON property `prefixMatch`
11613
11671
  # @return [String]
11614
11672
  attr_accessor :prefix_match
11615
11673
 
11616
11674
  # Specifies a list of query parameter match criteria, all of which must match
11617
11675
  # corresponding query parameters in the request. Not supported when the URL map
11618
- # is bound to target gRPC proxy.
11676
+ # is bound to a target gRPC proxy.
11619
11677
  # Corresponds to the JSON property `queryParameterMatches`
11620
11678
  # @return [Array<Google::Apis::ComputeBeta::HttpQueryParameterMatch>]
11621
11679
  attr_accessor :query_parameter_matches
11622
11680
 
11623
11681
  # For satisfying the matchRule condition, the path of the request must satisfy
11624
11682
  # the regular expression specified in regexMatch after removing any query
11625
- # parameters and anchor supplied with the original URL. For regular expression
11626
- # grammar please see github.com/google/re2/wiki/Syntax Only one of prefixMatch,
11627
- # fullPathMatch or regexMatch must be specified. Note that regexMatch only
11628
- # applies to Loadbalancers that have their loadBalancingScheme set to
11629
- # INTERNAL_SELF_MANAGED.
11683
+ # parameters and anchor supplied with the original URL. For more information
11684
+ # about regular expression syntax, see Syntax. Only one of prefixMatch,
11685
+ # fullPathMatch or regexMatch must be specified. regexMatch only applies to load
11686
+ # balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED.
11630
11687
  # Corresponds to the JSON property `regexMatch`
11631
11688
  # @return [String]
11632
11689
  attr_accessor :regex_match
@@ -11914,8 +11971,8 @@ module Google
11914
11971
  attr_accessor :family
11915
11972
 
11916
11973
  # A list of features to enable on the guest operating system. Applicable only
11917
- # for bootable images. Read Enabling guest operating system features to see a
11918
- # list of available options.
11974
+ # for bootable images. To see a list of available options, see the
11975
+ # guestOSfeatures[].type parameter.
11919
11976
  # Corresponds to the JSON property `guestOsFeatures`
11920
11977
  # @return [Array<Google::Apis::ComputeBeta::GuestOsFeature>]
11921
11978
  attr_accessor :guest_os_features
@@ -12565,6 +12622,11 @@ module Google
12565
12622
  # @return [Google::Apis::ComputeBeta::NetworkPerformanceConfig]
12566
12623
  attr_accessor :network_performance_config
12567
12624
 
12625
+ # Additional instance params.
12626
+ # Corresponds to the JSON property `params`
12627
+ # @return [Google::Apis::ComputeBeta::InstanceParams]
12628
+ attr_accessor :params
12629
+
12568
12630
  # PostKeyRevocationActionType of the instance.
12569
12631
  # Corresponds to the JSON property `postKeyRevocationActionType`
12570
12632
  # @return [String]
@@ -12708,6 +12770,7 @@ module Google
12708
12770
  @name = args[:name] if args.key?(:name)
12709
12771
  @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
12710
12772
  @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
12773
+ @params = args[:params] if args.key?(:params)
12711
12774
  @post_key_revocation_action_type = args[:post_key_revocation_action_type] if args.key?(:post_key_revocation_action_type)
12712
12775
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
12713
12776
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
@@ -13472,6 +13535,30 @@ module Google
13472
13535
  # @return [Fixnum]
13473
13536
  attr_accessor :restarting
13474
13537
 
13538
+ # [Output Only] The number of instances in the managed instance group that are
13539
+ # scheduled to be resumed or are currently being resumed.
13540
+ # Corresponds to the JSON property `resuming`
13541
+ # @return [Fixnum]
13542
+ attr_accessor :resuming
13543
+
13544
+ # [Output Only] The number of instances in the managed instance group that are
13545
+ # scheduled to be started or are currently being started.
13546
+ # Corresponds to the JSON property `starting`
13547
+ # @return [Fixnum]
13548
+ attr_accessor :starting
13549
+
13550
+ # [Output Only] The number of instances in the managed instance group that are
13551
+ # scheduled to be stopped or are currently being stopped.
13552
+ # Corresponds to the JSON property `stopping`
13553
+ # @return [Fixnum]
13554
+ attr_accessor :stopping
13555
+
13556
+ # [Output Only] The number of instances in the managed instance group that are
13557
+ # scheduled to be suspended or are currently being suspended.
13558
+ # Corresponds to the JSON property `suspending`
13559
+ # @return [Fixnum]
13560
+ attr_accessor :suspending
13561
+
13475
13562
  # [Output Only] The number of instances in the managed instance group that are
13476
13563
  # being verified. See the managedInstances[].currentAction property in the
13477
13564
  # listManagedInstances method documentation.
@@ -13493,6 +13580,10 @@ module Google
13493
13580
  @recreating = args[:recreating] if args.key?(:recreating)
13494
13581
  @refreshing = args[:refreshing] if args.key?(:refreshing)
13495
13582
  @restarting = args[:restarting] if args.key?(:restarting)
13583
+ @resuming = args[:resuming] if args.key?(:resuming)
13584
+ @starting = args[:starting] if args.key?(:starting)
13585
+ @stopping = args[:stopping] if args.key?(:stopping)
13586
+ @suspending = args[:suspending] if args.key?(:suspending)
13496
13587
  @verifying = args[:verifying] if args.key?(:verifying)
13497
13588
  end
13498
13589
  end
@@ -15251,6 +15342,28 @@ module Google
15251
15342
  end
15252
15343
  end
15253
15344
 
15345
+ # Additional instance params.
15346
+ class InstanceParams
15347
+ include Google::Apis::Core::Hashable
15348
+
15349
+ # Resource manager tags to be bound to the instance. Tag keys and values have
15350
+ # the same definition as resource manager tags. Keys must be in the format `
15351
+ # tagKeys/`tag_key_id``, and values are in the format `tagValues/456`. The field
15352
+ # is ignored (both PUT & PATCH) when empty.
15353
+ # Corresponds to the JSON property `resourceManagerTags`
15354
+ # @return [Hash<String,String>]
15355
+ attr_accessor :resource_manager_tags
15356
+
15357
+ def initialize(**args)
15358
+ update!(**args)
15359
+ end
15360
+
15361
+ # Update properties of this object
15362
+ def update!(**args)
15363
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
15364
+ end
15365
+ end
15366
+
15254
15367
  #
15255
15368
  class InstanceProperties
15256
15369
  include Google::Apis::Core::Hashable
@@ -15354,7 +15467,15 @@ module Google
15354
15467
  # @return [Google::Apis::ComputeBeta::ReservationAffinity]
15355
15468
  attr_accessor :reservation_affinity
15356
15469
 
15357
- # Resource policies (names, not ULRs) applied to instances created from these
15470
+ # Resource manager tags to be bound to the instance. Tag keys and values have
15471
+ # the same definition as resource manager tags. Keys must be in the format `
15472
+ # tagKeys/`tag_key_id``, and values are in the format `tagValues/456`. The field
15473
+ # is ignored (both PUT & PATCH) when empty.
15474
+ # Corresponds to the JSON property `resourceManagerTags`
15475
+ # @return [Hash<String,String>]
15476
+ attr_accessor :resource_manager_tags
15477
+
15478
+ # Resource policies (names, not URLs) applied to instances created from these
15358
15479
  # properties. Note that for MachineImage, this is not supported yet.
15359
15480
  # Corresponds to the JSON property `resourcePolicies`
15360
15481
  # @return [Array<String>]
@@ -15410,6 +15531,7 @@ module Google
15410
15531
  @post_key_revocation_action_type = args[:post_key_revocation_action_type] if args.key?(:post_key_revocation_action_type)
15411
15532
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
15412
15533
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
15534
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
15413
15535
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
15414
15536
  @scheduling = args[:scheduling] if args.key?(:scheduling)
15415
15537
  @service_accounts = args[:service_accounts] if args.key?(:service_accounts)
@@ -16364,6 +16486,17 @@ module Google
16364
16486
  # @return [String]
16365
16487
  attr_accessor :bandwidth
16366
16488
 
16489
+ # Up to 16 candidate prefixes that control the allocation of
16490
+ # cloudRouterIpv6Address and customerRouterIpv6Address for this attachment. Each
16491
+ # prefix must be in the Global Unique Address (GUA) space. It is highly
16492
+ # recommended that it be in a range owned by the requestor. A GUA in a range
16493
+ # owned by Google will cause the request to fail. Google will select an
16494
+ # available prefix from the supplied candidates or fail the request. If not
16495
+ # supplied, a /125 from a Google-owned GUA block will be selected.
16496
+ # Corresponds to the JSON property `candidateIpv6Subnets`
16497
+ # @return [Array<String>]
16498
+ attr_accessor :candidate_ipv6_subnets
16499
+
16367
16500
  # Up to 16 candidate prefixes that can be used to restrict the allocation of
16368
16501
  # cloudRouterIpAddress and customerRouterIpAddress for this attachment. All
16369
16502
  # prefixes must be within link-local address space (169.254.0.0/16) and must be /
@@ -16381,6 +16514,20 @@ module Google
16381
16514
  # @return [String]
16382
16515
  attr_accessor :cloud_router_ip_address
16383
16516
 
16517
+ # [Output Only] IPv6 address + prefix length to be configured on Cloud Router
16518
+ # Interface for this interconnect attachment.
16519
+ # Corresponds to the JSON property `cloudRouterIpv6Address`
16520
+ # @return [String]
16521
+ attr_accessor :cloud_router_ipv6_address
16522
+
16523
+ # If supplied, the interface id (index within the subnet) to be used for the
16524
+ # cloud router address. The id must be in the range of 1 to 6. If a subnet mask
16525
+ # is supplied, it must be /125, and the subnet should either be 0 or match the
16526
+ # selected subnet.
16527
+ # Corresponds to the JSON property `cloudRouterIpv6InterfaceId`
16528
+ # @return [String]
16529
+ attr_accessor :cloud_router_ipv6_interface_id
16530
+
16384
16531
  # [Output Only] Creation timestamp in RFC3339 text format.
16385
16532
  # Corresponds to the JSON property `creationTimestamp`
16386
16533
  # @return [String]
@@ -16392,7 +16539,24 @@ module Google
16392
16539
  # @return [String]
16393
16540
  attr_accessor :customer_router_ip_address
16394
16541
 
16395
- # [Output Only] Dataplane version for this InterconnectAttachment.
16542
+ # [Output Only] IPv6 address + prefix length to be configured on the customer
16543
+ # router subinterface for this interconnect attachment.
16544
+ # Corresponds to the JSON property `customerRouterIpv6Address`
16545
+ # @return [String]
16546
+ attr_accessor :customer_router_ipv6_address
16547
+
16548
+ # If supplied, the interface id (index within the subnet) to be used for the
16549
+ # customer router address. The id must be in the range of 1 to 6. If a subnet
16550
+ # mask is supplied, it must be /125, and the subnet should either be 0 or match
16551
+ # the selected subnet.
16552
+ # Corresponds to the JSON property `customerRouterIpv6InterfaceId`
16553
+ # @return [String]
16554
+ attr_accessor :customer_router_ipv6_interface_id
16555
+
16556
+ # [Output only for types PARTNER and DEDICATED. Not present for PARTNER_PROVIDER.
16557
+ # ] Dataplane version for this InterconnectAttachment. This field is only
16558
+ # present for Dataplane version 2 and higher. Absence of this field in the API
16559
+ # output indicates that the Dataplane is version 1.
16396
16560
  # Corresponds to the JSON property `dataplaneVersion`
16397
16561
  # @return [Fixnum]
16398
16562
  attr_accessor :dataplane_version
@@ -16570,6 +16734,14 @@ module Google
16570
16734
  # @return [String]
16571
16735
  attr_accessor :self_link
16572
16736
 
16737
+ # The stack type for this interconnect attachment to identify whether the IPv6
16738
+ # feature is enabled or not. If not specified, IPV4_ONLY will be used. This
16739
+ # field can be both set at interconnect attachments creation and update
16740
+ # interconnect attachment operations.
16741
+ # Corresponds to the JSON property `stackType`
16742
+ # @return [String]
16743
+ attr_accessor :stack_type
16744
+
16573
16745
  # [Output Only] The current state of this attachment's functionality. Enum
16574
16746
  # values ACTIVE and UNPROVISIONED are shared by DEDICATED/PRIVATE, PARTNER, and
16575
16747
  # PARTNER_PROVIDER interconnect attachments, while enum values PENDING_PARTNER,
@@ -16612,10 +16784,15 @@ module Google
16612
16784
  def update!(**args)
16613
16785
  @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
16614
16786
  @bandwidth = args[:bandwidth] if args.key?(:bandwidth)
16787
+ @candidate_ipv6_subnets = args[:candidate_ipv6_subnets] if args.key?(:candidate_ipv6_subnets)
16615
16788
  @candidate_subnets = args[:candidate_subnets] if args.key?(:candidate_subnets)
16616
16789
  @cloud_router_ip_address = args[:cloud_router_ip_address] if args.key?(:cloud_router_ip_address)
16790
+ @cloud_router_ipv6_address = args[:cloud_router_ipv6_address] if args.key?(:cloud_router_ipv6_address)
16791
+ @cloud_router_ipv6_interface_id = args[:cloud_router_ipv6_interface_id] if args.key?(:cloud_router_ipv6_interface_id)
16617
16792
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
16618
16793
  @customer_router_ip_address = args[:customer_router_ip_address] if args.key?(:customer_router_ip_address)
16794
+ @customer_router_ipv6_address = args[:customer_router_ipv6_address] if args.key?(:customer_router_ipv6_address)
16795
+ @customer_router_ipv6_interface_id = args[:customer_router_ipv6_interface_id] if args.key?(:customer_router_ipv6_interface_id)
16619
16796
  @dataplane_version = args[:dataplane_version] if args.key?(:dataplane_version)
16620
16797
  @description = args[:description] if args.key?(:description)
16621
16798
  @edge_availability_domain = args[:edge_availability_domain] if args.key?(:edge_availability_domain)
@@ -16638,6 +16815,7 @@ module Google
16638
16815
  @router = args[:router] if args.key?(:router)
16639
16816
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
16640
16817
  @self_link = args[:self_link] if args.key?(:self_link)
16818
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
16641
16819
  @state = args[:state] if args.key?(:state)
16642
16820
  @type = args[:type] if args.key?(:type)
16643
16821
  @vlan_tag8021q = args[:vlan_tag8021q] if args.key?(:vlan_tag8021q)
@@ -18139,6 +18317,11 @@ module Google
18139
18317
  # @return [Hash<String,Google::Apis::ComputeBeta::LocationPolicyLocation>]
18140
18318
  attr_accessor :locations
18141
18319
 
18320
+ # Strategy for distributing VMs across zones in a region.
18321
+ # Corresponds to the JSON property `targetShape`
18322
+ # @return [String]
18323
+ attr_accessor :target_shape
18324
+
18142
18325
  def initialize(**args)
18143
18326
  update!(**args)
18144
18327
  end
@@ -18146,6 +18329,7 @@ module Google
18146
18329
  # Update properties of this object
18147
18330
  def update!(**args)
18148
18331
  @locations = args[:locations] if args.key?(:locations)
18332
+ @target_shape = args[:target_shape] if args.key?(:target_shape)
18149
18333
  end
18150
18334
  end
18151
18335
 
@@ -18153,7 +18337,7 @@ module Google
18153
18337
  class LocationPolicyLocation
18154
18338
  include Google::Apis::Core::Hashable
18155
18339
 
18156
- # Preference for a given location: ALLOW or DENY.
18340
+ # Preference for a given location.
18157
18341
  # Corresponds to the JSON property `preference`
18158
18342
  # @return [String]
18159
18343
  attr_accessor :preference
@@ -18332,6 +18516,11 @@ module Google
18332
18516
  # @return [Fixnum]
18333
18517
  attr_accessor :id
18334
18518
 
18519
+ # [Output Only] Properties of source instance
18520
+ # Corresponds to the JSON property `instanceProperties`
18521
+ # @return [Google::Apis::ComputeBeta::InstanceProperties]
18522
+ attr_accessor :instance_properties
18523
+
18335
18524
  # [Output Only] The resource type, which is always compute#machineImage for
18336
18525
  # machine image.
18337
18526
  # Corresponds to the JSON property `kind`
@@ -18367,6 +18556,12 @@ module Google
18367
18556
  attr_accessor :satisfies_pzs
18368
18557
  alias_method :satisfies_pzs?, :satisfies_pzs
18369
18558
 
18559
+ # An array of Machine Image specific properties for disks attached to the source
18560
+ # instance
18561
+ # Corresponds to the JSON property `savedDisks`
18562
+ # @return [Array<Google::Apis::ComputeBeta::SavedDisk>]
18563
+ attr_accessor :saved_disks
18564
+
18370
18565
  # [Output Only] The URL for this machine image. The server defines this URL.
18371
18566
  # Corresponds to the JSON property `selfLink`
18372
18567
  # @return [String]
@@ -18387,7 +18582,8 @@ module Google
18387
18582
  # @return [String]
18388
18583
  attr_accessor :source_instance
18389
18584
 
18390
- # [Output Only] Properties of source instance.
18585
+ # DEPRECATED: Please use compute#instanceProperties instead. New properties will
18586
+ # not be added to this field.
18391
18587
  # Corresponds to the JSON property `sourceInstanceProperties`
18392
18588
  # @return [Google::Apis::ComputeBeta::SourceInstanceProperties]
18393
18589
  attr_accessor :source_instance_properties
@@ -18419,10 +18615,12 @@ module Google
18419
18615
  @description = args[:description] if args.key?(:description)
18420
18616
  @guest_flush = args[:guest_flush] if args.key?(:guest_flush)
18421
18617
  @id = args[:id] if args.key?(:id)
18618
+ @instance_properties = args[:instance_properties] if args.key?(:instance_properties)
18422
18619
  @kind = args[:kind] if args.key?(:kind)
18423
18620
  @machine_image_encryption_key = args[:machine_image_encryption_key] if args.key?(:machine_image_encryption_key)
18424
18621
  @name = args[:name] if args.key?(:name)
18425
18622
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
18623
+ @saved_disks = args[:saved_disks] if args.key?(:saved_disks)
18426
18624
  @self_link = args[:self_link] if args.key?(:self_link)
18427
18625
  @source_disk_encryption_keys = args[:source_disk_encryption_keys] if args.key?(:source_disk_encryption_keys)
18428
18626
  @source_instance = args[:source_instance] if args.key?(:source_instance)
@@ -19297,18 +19495,18 @@ module Google
19297
19495
  end
19298
19496
  end
19299
19497
 
19300
- # Opaque filter criteria used by loadbalancers to restrict routing configuration
19301
- # to a limited set of loadbalancing proxies. Proxies and sidecars involved in
19302
- # loadbalancing would typically present metadata to the loadbalancers which need
19303
- # to match criteria specified here. If a match takes place, the relevant
19304
- # configuration is made available to those proxies. For each metadataFilter in
19305
- # this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the
19306
- # filterLabels must match the corresponding label provided in the metadata. If
19307
- # its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must
19308
- # match with corresponding labels provided in the metadata. An example for using
19309
- # metadataFilters would be: if loadbalancing involves Envoys, they will only
19310
- # receive routing configuration when values in metadataFilters match values
19311
- # supplied in of their XDS requests to loadbalancers.
19498
+ # Opaque filter criteria used by load balancers to restrict routing
19499
+ # configuration to a limited set of load balancing proxies. Proxies and sidecars
19500
+ # involved in load balancing would typically present metadata to the load
19501
+ # balancers that need to match criteria specified here. If a match takes place,
19502
+ # the relevant configuration is made available to those proxies. For each
19503
+ # metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY,
19504
+ # at least one of the filterLabels must match the corresponding label provided
19505
+ # in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of
19506
+ # its filterLabels must match with corresponding labels provided in the metadata.
19507
+ # An example for using metadataFilters would be: if load balancing involves
19508
+ # Envoys, they receive routing configuration when values in metadataFilters
19509
+ # match values supplied in of their XDS requests to loadbalancers.
19312
19510
  class MetadataFilter
19313
19511
  include Google::Apis::Core::Hashable
19314
19512
 
@@ -19319,11 +19517,11 @@ module Google
19319
19517
  # @return [Array<Google::Apis::ComputeBeta::MetadataFilterLabelMatch>]
19320
19518
  attr_accessor :filter_labels
19321
19519
 
19322
- # Specifies how individual filterLabel matches within the list of filterLabels
19323
- # contribute towards the overall metadataFilter match. Supported values are: -
19324
- # MATCH_ANY: At least one of the filterLabels must have a matching label in the
19325
- # provided metadata. - MATCH_ALL: All filterLabels must have matching labels in
19326
- # the provided metadata.
19520
+ # Specifies how individual filter label matches within the list of filterLabels
19521
+ # and contributes toward the overall metadataFilter match. Supported values are:
19522
+ # - MATCH_ANY: at least one of the filterLabels must have a matching label in
19523
+ # the provided metadata. - MATCH_ALL: all filterLabels must have matching labels
19524
+ # in the provided metadata.
19327
19525
  # Corresponds to the JSON property `filterMatchCriteria`
19328
19526
  # @return [String]
19329
19527
  attr_accessor :filter_match_criteria
@@ -19340,7 +19538,7 @@ module Google
19340
19538
  end
19341
19539
 
19342
19540
  # MetadataFilter label name value pairs that are expected to match corresponding
19343
- # labels presented as metadata to the loadbalancer.
19541
+ # labels presented as metadata to the load balancer.
19344
19542
  class MetadataFilterLabelMatch
19345
19543
  include Google::Apis::Core::Hashable
19346
19544
 
@@ -20534,7 +20732,7 @@ module Google
20534
20732
  # @return [String]
20535
20733
  attr_accessor :ipv6_access_type
20536
20734
 
20537
- # [Output Only] An IPv6 internal network address for this network interface.
20735
+ # An IPv6 internal network address for this network interface.
20538
20736
  # Corresponds to the JSON property `ipv6Address`
20539
20737
  # @return [String]
20540
20738
  attr_accessor :ipv6_address
@@ -20551,14 +20749,15 @@ module Google
20551
20749
  # @return [String]
20552
20750
  attr_accessor :name
20553
20751
 
20554
- # URL of the network resource for this instance. When creating an instance, if
20555
- # neither the network nor the subnetwork is specified, the default network
20556
- # global/networks/default is used; if the network is not specified but the
20557
- # subnetwork is specified, the network is inferred. If you specify this property,
20558
- # you can specify the network as a full or partial URL. For example, the
20559
- # following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/
20560
- # project/global/networks/ network - projects/project/global/networks/network -
20561
- # global/networks/default
20752
+ # URL of the VPC network resource for this instance. When creating an instance,
20753
+ # if neither the network nor the subnetwork is specified, the default network
20754
+ # global/networks/default is used. If the selected project doesn't have the
20755
+ # default network, you must specify a network or subnet. If the network is not
20756
+ # specified but the subnetwork is specified, the network is inferred. If you
20757
+ # specify this property, you can specify the network as a full or partial URL.
20758
+ # For example, the following are all valid URLs: - https://www.googleapis.com/
20759
+ # compute/v1/projects/project/global/networks/ network - projects/project/global/
20760
+ # networks/network - global/networks/default
20562
20761
  # Corresponds to the JSON property `network`
20563
20762
  # @return [String]
20564
20763
  attr_accessor :network
@@ -20767,7 +20966,8 @@ module Google
20767
20966
  attr_accessor :exchange_subnet_routes
20768
20967
  alias_method :exchange_subnet_routes?, :exchange_subnet_routes
20769
20968
 
20770
- # Whether to export the custom routes to peer network.
20969
+ # Whether to export the custom routes to peer network. The default value is
20970
+ # false.
20771
20971
  # Corresponds to the JSON property `exportCustomRoutes`
20772
20972
  # @return [Boolean]
20773
20973
  attr_accessor :export_custom_routes
@@ -20781,7 +20981,8 @@ module Google
20781
20981
  attr_accessor :export_subnet_routes_with_public_ip
20782
20982
  alias_method :export_subnet_routes_with_public_ip?, :export_subnet_routes_with_public_ip
20783
20983
 
20784
- # Whether to import the custom routes from peer network.
20984
+ # Whether to import the custom routes from peer network. The default value is
20985
+ # false.
20785
20986
  # Corresponds to the JSON property `importCustomRoutes`
20786
20987
  # @return [Boolean]
20787
20988
  attr_accessor :import_custom_routes
@@ -24467,37 +24668,37 @@ module Google
24467
24668
 
24468
24669
  # A matcher for the path portion of the URL. The BackendService from the longest-
24469
24670
  # matched rule will serve the URL. If no rule was matched, the default service
24470
- # will be used.
24671
+ # is used.
24471
24672
  class PathMatcher
24472
24673
  include Google::Apis::Core::Hashable
24473
24674
 
24474
24675
  # defaultRouteAction takes effect when none of the pathRules or routeRules match.
24475
- # The load balancer performs advanced routing actions like URL rewrites, header
24476
- # transformations, etc. prior to forwarding the request to the selected backend.
24676
+ # The load balancer performs advanced routing actions, such as URL rewrites and
24677
+ # header transformations, before forwarding the request to the selected backend.
24477
24678
  # If defaultRouteAction specifies any weightedBackendServices, defaultService
24478
24679
  # must not be set. Conversely if defaultService is set, defaultRouteAction
24479
24680
  # cannot contain any weightedBackendServices. Only one of defaultRouteAction or
24480
24681
  # defaultUrlRedirect must be set. UrlMaps for external HTTP(S) load balancers
24481
- # support only the urlRewrite action within a pathMatcher's defaultRouteAction.
24682
+ # support only the urlRewrite action within a path matcher's defaultRouteAction.
24482
24683
  # Corresponds to the JSON property `defaultRouteAction`
24483
24684
  # @return [Google::Apis::ComputeBeta::HttpRouteAction]
24484
24685
  attr_accessor :default_route_action
24485
24686
 
24486
- # The full or partial URL to the BackendService resource. This will be used if
24687
+ # The full or partial URL to the BackendService resource. This URL is used if
24487
24688
  # none of the pathRules or routeRules defined by this PathMatcher are matched.
24488
24689
  # For example, the following are all valid URLs to a BackendService resource: -
24489
24690
  # https://www.googleapis.com/compute/v1/projects/project /global/backendServices/
24490
24691
  # backendService - compute/v1/projects/project/global/backendServices/
24491
24692
  # backendService - global/backendServices/backendService If defaultRouteAction
24492
- # is additionally specified, advanced routing actions like URL Rewrites, etc.
24493
- # take effect prior to sending the request to the backend. However, if
24494
- # defaultService is specified, defaultRouteAction cannot contain any
24495
- # weightedBackendServices. Conversely, if defaultRouteAction specifies any
24496
- # weightedBackendServices, defaultService must not be specified. Only one of
24497
- # defaultService, defaultUrlRedirect or defaultRouteAction.
24498
- # weightedBackendService must be set. Authorization requires one or more of the
24499
- # following Google IAM permissions on the specified resource default_service: -
24500
- # compute.backendBuckets.use - compute.backendServices.use
24693
+ # is also specified, advanced routing actions, such as URL rewrites, take effect
24694
+ # before sending the request to the backend. However, if defaultService is
24695
+ # specified, defaultRouteAction cannot contain any weightedBackendServices.
24696
+ # Conversely, if defaultRouteAction specifies any weightedBackendServices,
24697
+ # defaultService must not be specified. Only one of defaultService,
24698
+ # defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set.
24699
+ # Authorization requires one or more of the following Google IAM permissions on
24700
+ # the specified resource default_service: - compute.backendBuckets.use - compute.
24701
+ # backendServices.use
24501
24702
  # Corresponds to the JSON property `defaultService`
24502
24703
  # @return [String]
24503
24704
  attr_accessor :default_service
@@ -24573,23 +24774,23 @@ module Google
24573
24774
  attr_accessor :paths
24574
24775
 
24575
24776
  # In response to a matching path, the load balancer performs advanced routing
24576
- # actions like URL rewrites, header transformations, etc. prior to forwarding
24777
+ # actions, such as URL rewrites and header transformations, before forwarding
24577
24778
  # the request to the selected backend. If routeAction specifies any
24578
24779
  # weightedBackendServices, service must not be set. Conversely if service is set,
24579
24780
  # routeAction cannot contain any weightedBackendServices. Only one of
24580
- # routeAction or urlRedirect must be set. UrlMaps for external HTTP(S) load
24581
- # balancers support only the urlRewrite action within a pathRule's routeAction.
24781
+ # routeAction or urlRedirect must be set. URL maps for external HTTP(S) load
24782
+ # balancers support only the urlRewrite action within a path rule's routeAction.
24582
24783
  # Corresponds to the JSON property `routeAction`
24583
24784
  # @return [Google::Apis::ComputeBeta::HttpRouteAction]
24584
24785
  attr_accessor :route_action
24585
24786
 
24586
24787
  # The full or partial URL of the backend service resource to which traffic is
24587
- # directed if this rule is matched. If routeAction is additionally specified,
24588
- # advanced routing actions like URL Rewrites, etc. take effect prior to sending
24589
- # the request to the backend. However, if service is specified, routeAction
24590
- # cannot contain any weightedBackendService s. Conversely, if routeAction
24591
- # specifies any weightedBackendServices, service must not be specified. Only one
24592
- # of urlRedirect, service or routeAction.weightedBackendService must be set.
24788
+ # directed if this rule is matched. If routeAction is also specified, advanced
24789
+ # routing actions, such as URL rewrites, take effect before sending the request
24790
+ # to the backend. However, if service is specified, routeAction cannot contain
24791
+ # any weightedBackendServices. Conversely, if routeAction specifies any
24792
+ # weightedBackendServices, service must not be specified. Only one of
24793
+ # urlRedirect, service or routeAction.weightedBackendService must be set.
24593
24794
  # Corresponds to the JSON property `service`
24594
24795
  # @return [String]
24595
24796
  attr_accessor :service
@@ -24661,31 +24862,31 @@ module Google
24661
24862
 
24662
24863
  # An Identity and Access Management (IAM) policy, which specifies access
24663
24864
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
24664
- # A `binding` binds one or more `members` to a single `role`. Members can be
24665
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
24666
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
24667
- # role or a user-created custom role. For some types of Google Cloud resources,
24668
- # a `binding` can also specify a `condition`, which is a logical expression that
24669
- # allows access to a resource only if the expression evaluates to `true`. A
24670
- # condition can add constraints based on attributes of the request, the resource,
24671
- # or both. To learn which resources support conditions in their IAM policies,
24672
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
24673
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
24674
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
24675
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
24676
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
24677
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
24678
- # title": "expirable access", "description": "Does not grant access after Sep
24679
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
24680
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
24681
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
24682
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
24683
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
24684
- # roles/resourcemanager.organizationViewer condition: title: expirable access
24685
- # description: Does not grant access after Sep 2020 expression: request.time <
24686
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
24687
- # description of IAM and its features, see the [IAM documentation](https://cloud.
24688
- # google.com/iam/docs/).
24865
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
24866
+ # Principals can be user accounts, service accounts, Google groups, and domains (
24867
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
24868
+ # an IAM predefined role or a user-created custom role. For some types of Google
24869
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
24870
+ # logical expression that allows access to a resource only if the expression
24871
+ # evaluates to `true`. A condition can add constraints based on attributes of
24872
+ # the request, the resource, or both. To learn which resources support
24873
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
24874
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
24875
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
24876
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
24877
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
24878
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
24879
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
24880
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
24881
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
24882
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
24883
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
24884
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
24885
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
24886
+ # access description: Does not grant access after Sep 2020 expression: request.
24887
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
24888
+ # a description of IAM and its features, see the [IAM documentation](https://
24889
+ # cloud.google.com/iam/docs/).
24689
24890
  class Policy
24690
24891
  include Google::Apis::Core::Hashable
24691
24892
 
@@ -24694,9 +24895,14 @@ module Google
24694
24895
  # @return [Array<Google::Apis::ComputeBeta::AuditConfig>]
24695
24896
  attr_accessor :audit_configs
24696
24897
 
24697
- # Associates a list of `members` to a `role`. Optionally, may specify a `
24698
- # condition` that determines how and when the `bindings` are applied. Each of
24699
- # the `bindings` must contain at least one member.
24898
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
24899
+ # specify a `condition` that determines how and when the `bindings` are applied.
24900
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
24901
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
24902
+ # can be Google groups. Each occurrence of a principal counts towards these
24903
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
24904
+ # example.com`, and not to any other principal, then you can add another 1,450
24905
+ # principals to the `bindings` in the `Policy`.
24700
24906
  # Corresponds to the JSON property `bindings`
24701
24907
  # @return [Array<Google::Apis::ComputeBeta::Binding>]
24702
24908
  attr_accessor :bindings
@@ -24717,12 +24923,6 @@ module Google
24717
24923
  # @return [String]
24718
24924
  attr_accessor :etag
24719
24925
 
24720
- # This is deprecated and has no effect. Do not use.
24721
- # Corresponds to the JSON property `iamOwned`
24722
- # @return [Boolean]
24723
- attr_accessor :iam_owned
24724
- alias_method :iam_owned?, :iam_owned
24725
-
24726
24926
  # This is deprecated and has no effect. Do not use.
24727
24927
  # Corresponds to the JSON property `rules`
24728
24928
  # @return [Array<Google::Apis::ComputeBeta::Rule>]
@@ -24756,7 +24956,6 @@ module Google
24756
24956
  @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
24757
24957
  @bindings = args[:bindings] if args.key?(:bindings)
24758
24958
  @etag = args[:etag] if args.key?(:etag)
24759
- @iam_owned = args[:iam_owned] if args.key?(:iam_owned)
24760
24959
  @rules = args[:rules] if args.key?(:rules)
24761
24960
  @version = args[:version] if args.key?(:version)
24762
24961
  end
@@ -24791,6 +24990,18 @@ module Google
24791
24990
  # @return [Hash<String,Google::Apis::ComputeBeta::PreservedStatePreservedDisk>]
24792
24991
  attr_accessor :disks
24793
24992
 
24993
+ # Preserved external IPs defined for this instance. This map is keyed with the
24994
+ # name of the network interface.
24995
+ # Corresponds to the JSON property `externalIPs`
24996
+ # @return [Hash<String,Google::Apis::ComputeBeta::PreservedStatePreservedNetworkIp>]
24997
+ attr_accessor :external_i_ps
24998
+
24999
+ # Preserved internal IPs defined for this instance. This map is keyed with the
25000
+ # name of the network interface.
25001
+ # Corresponds to the JSON property `internalIPs`
25002
+ # @return [Hash<String,Google::Apis::ComputeBeta::PreservedStatePreservedNetworkIp>]
25003
+ attr_accessor :internal_i_ps
25004
+
24794
25005
  # Preserved metadata defined for this instance.
24795
25006
  # Corresponds to the JSON property `metadata`
24796
25007
  # @return [Hash<String,String>]
@@ -24803,6 +25014,8 @@ module Google
24803
25014
  # Update properties of this object
24804
25015
  def update!(**args)
24805
25016
  @disks = args[:disks] if args.key?(:disks)
25017
+ @external_i_ps = args[:external_i_ps] if args.key?(:external_i_ps)
25018
+ @internal_i_ps = args[:internal_i_ps] if args.key?(:internal_i_ps)
24806
25019
  @metadata = args[:metadata] if args.key?(:metadata)
24807
25020
  end
24808
25021
  end
@@ -24844,6 +25057,60 @@ module Google
24844
25057
  end
24845
25058
  end
24846
25059
 
25060
+ #
25061
+ class PreservedStatePreservedNetworkIp
25062
+ include Google::Apis::Core::Hashable
25063
+
25064
+ # These stateful IPs will never be released during autohealing, update or VM
25065
+ # instance recreate operations. This flag is used to configure if the IP
25066
+ # reservation should be deleted after it is no longer used by the group, e.g.
25067
+ # when the given instance or the whole group is deleted.
25068
+ # Corresponds to the JSON property `autoDelete`
25069
+ # @return [String]
25070
+ attr_accessor :auto_delete
25071
+
25072
+ # Ip address representation
25073
+ # Corresponds to the JSON property `ipAddress`
25074
+ # @return [Google::Apis::ComputeBeta::PreservedStatePreservedNetworkIpIpAddress]
25075
+ attr_accessor :ip_address
25076
+
25077
+ def initialize(**args)
25078
+ update!(**args)
25079
+ end
25080
+
25081
+ # Update properties of this object
25082
+ def update!(**args)
25083
+ @auto_delete = args[:auto_delete] if args.key?(:auto_delete)
25084
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
25085
+ end
25086
+ end
25087
+
25088
+ #
25089
+ class PreservedStatePreservedNetworkIpIpAddress
25090
+ include Google::Apis::Core::Hashable
25091
+
25092
+ # The URL of the reservation for this IP address.
25093
+ # Corresponds to the JSON property `address`
25094
+ # @return [String]
25095
+ attr_accessor :address
25096
+
25097
+ # An IPv4 internal network address to assign to the instance for this network
25098
+ # interface.
25099
+ # Corresponds to the JSON property `literal`
25100
+ # @return [String]
25101
+ attr_accessor :literal
25102
+
25103
+ def initialize(**args)
25104
+ update!(**args)
25105
+ end
25106
+
25107
+ # Update properties of this object
25108
+ def update!(**args)
25109
+ @address = args[:address] if args.key?(:address)
25110
+ @literal = args[:literal] if args.key?(:literal)
25111
+ end
25112
+ end
25113
+
24847
25114
  # Represents a Project resource. A project is used to organize resources in a
24848
25115
  # Google Cloud Platform environment. For more information, read about the
24849
25116
  # Resource Hierarchy.
@@ -25137,7 +25404,13 @@ module Google
25137
25404
  # @return [String]
25138
25405
  attr_accessor :shared_secret
25139
25406
 
25140
- # The status of the public advertised prefix.
25407
+ # The status of the public advertised prefix. Possible values include: - `
25408
+ # INITIAL`: RPKI validation is complete. - `PTR_CONFIGURED`: User has configured
25409
+ # the PTR. - `VALIDATED`: Reverse DNS lookup is successful. - `
25410
+ # REVERSE_DNS_LOOKUP_FAILED`: Reverse DNS lookup failed. - `
25411
+ # PREFIX_CONFIGURATION_IN_PROGRESS`: The prefix is being configured. - `
25412
+ # PREFIX_CONFIGURATION_COMPLETE`: The prefix is fully configured. - `
25413
+ # PREFIX_REMOVAL_IN_PROGRESS`: The prefix is being removed.
25141
25414
  # Corresponds to the JSON property `status`
25142
25415
  # @return [String]
25143
25416
  attr_accessor :status
@@ -25416,7 +25689,12 @@ module Google
25416
25689
  # @return [String]
25417
25690
  attr_accessor :self_link
25418
25691
 
25419
- # [Output Only] The status of the public delegated prefix.
25692
+ # [Output Only] The status of the public delegated prefix, which can be one of
25693
+ # following values: - `INITIALIZING` The public delegated prefix is being
25694
+ # initialized and addresses cannot be created yet. - `READY_TO_ANNOUNCE` The
25695
+ # public delegated prefix is a live migration prefix and is active. - `ANNOUNCED`
25696
+ # The public delegated prefix is active. - `DELETING` The public delegated
25697
+ # prefix is being deprovsioned.
25420
25698
  # Corresponds to the JSON property `status`
25421
25699
  # @return [String]
25422
25700
  attr_accessor :status
@@ -27355,31 +27633,31 @@ module Google
27355
27633
 
27356
27634
  # An Identity and Access Management (IAM) policy, which specifies access
27357
27635
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
27358
- # A `binding` binds one or more `members` to a single `role`. Members can be
27359
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
27360
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
27361
- # role or a user-created custom role. For some types of Google Cloud resources,
27362
- # a `binding` can also specify a `condition`, which is a logical expression that
27363
- # allows access to a resource only if the expression evaluates to `true`. A
27364
- # condition can add constraints based on attributes of the request, the resource,
27365
- # or both. To learn which resources support conditions in their IAM policies,
27366
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
27367
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
27368
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
27369
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
27370
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
27371
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
27372
- # title": "expirable access", "description": "Does not grant access after Sep
27373
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
27374
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
27375
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
27376
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
27377
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
27378
- # roles/resourcemanager.organizationViewer condition: title: expirable access
27379
- # description: Does not grant access after Sep 2020 expression: request.time <
27380
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
27381
- # description of IAM and its features, see the [IAM documentation](https://cloud.
27382
- # google.com/iam/docs/).
27636
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
27637
+ # Principals can be user accounts, service accounts, Google groups, and domains (
27638
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
27639
+ # an IAM predefined role or a user-created custom role. For some types of Google
27640
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
27641
+ # logical expression that allows access to a resource only if the expression
27642
+ # evaluates to `true`. A condition can add constraints based on attributes of
27643
+ # the request, the resource, or both. To learn which resources support
27644
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
27645
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
27646
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
27647
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
27648
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
27649
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
27650
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
27651
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
27652
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
27653
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
27654
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
27655
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
27656
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
27657
+ # access description: Does not grant access after Sep 2020 expression: request.
27658
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
27659
+ # a description of IAM and its features, see the [IAM documentation](https://
27660
+ # cloud.google.com/iam/docs/).
27383
27661
  # Corresponds to the JSON property `policy`
27384
27662
  # @return [Google::Apis::ComputeBeta::Policy]
27385
27663
  attr_accessor :policy
@@ -27420,21 +27698,21 @@ module Google
27420
27698
  class RegionUrlMapsValidateRequest
27421
27699
  include Google::Apis::Core::Hashable
27422
27700
 
27423
- # Represents a URL Map resource. Google Compute Engine has two URL Map resources:
27424
- # * [Global](/compute/docs/reference/rest/beta/urlMaps) * [Regional](/compute/
27425
- # docs/reference/rest/beta/regionUrlMaps) A URL map resource is a component of
27426
- # certain types of GCP load balancers and Traffic Director. * urlMaps are used
27701
+ # Represents a URL Map resource. Compute Engine has two URL Map resources: * [
27702
+ # Global](/compute/docs/reference/rest/beta/urlMaps) * [Regional](/compute/docs/
27703
+ # reference/rest/beta/regionUrlMaps) A URL map resource is a component of
27704
+ # certain types of cloud load balancers and Traffic Director: * urlMaps are used
27427
27705
  # by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are
27428
27706
  # used by internal HTTP(S) load balancers. For a list of supported URL map
27429
- # features by load balancer type, see the Load balancing features: Routing and
27430
- # traffic management table. For a list of supported URL map features for Traffic
27431
- # Director, see the Traffic Director features: Routing and traffic management
27432
- # table. This resource defines mappings from host names and URL paths to either
27433
- # a backend service or a backend bucket. To use the global urlMaps resource, the
27434
- # backend service must have a loadBalancingScheme of either EXTERNAL or
27435
- # INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service
27436
- # must have a loadBalancingScheme of INTERNAL_MANAGED. For more information,
27437
- # read URL Map Concepts.
27707
+ # features by the load balancer type, see the Load balancing features: Routing
27708
+ # and traffic management table. For a list of supported URL map features for
27709
+ # Traffic Director, see the Traffic Director features: Routing and traffic
27710
+ # management table. This resource defines mappings from hostnames and URL paths
27711
+ # to either a backend service or a backend bucket. To use the global urlMaps
27712
+ # resource, the backend service must have a loadBalancingScheme of either
27713
+ # EXTERNAL or INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the
27714
+ # backend service must have a loadBalancingScheme of INTERNAL_MANAGED. For more
27715
+ # information, read URL Map Concepts.
27438
27716
  # Corresponds to the JSON property `resource`
27439
27717
  # @return [Google::Apis::ComputeBeta::UrlMap]
27440
27718
  attr_accessor :resource
@@ -27450,9 +27728,9 @@ module Google
27450
27728
  end
27451
27729
 
27452
27730
  # A policy that specifies how requests intended for the route's backends are
27453
- # shadowed to a separate mirrored backend service. Loadbalancer does not wait
27454
- # for responses from the shadow service. Prior to sending traffic to the shadow
27455
- # service, the host / authority header is suffixed with -shadow.
27731
+ # shadowed to a separate mirrored backend service. The load balancer doesn't
27732
+ # wait for responses from the shadow service. Before sending traffic to the
27733
+ # shadow service, the host or authority header is suffixed with -shadow.
27456
27734
  class RequestMirrorPolicy
27457
27735
  include Google::Apis::Core::Hashable
27458
27736
 
@@ -29649,6 +29927,12 @@ module Google
29649
29927
  # @return [String]
29650
29928
  attr_accessor :enable
29651
29929
 
29930
+ # Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.
29931
+ # Corresponds to the JSON property `enableIpv6`
29932
+ # @return [Boolean]
29933
+ attr_accessor :enable_ipv6
29934
+ alias_method :enable_ipv6?, :enable_ipv6
29935
+
29652
29936
  # Name of the interface the BGP peer is associated with.
29653
29937
  # Corresponds to the JSON property `interfaceName`
29654
29938
  # @return [String]
@@ -29660,6 +29944,11 @@ module Google
29660
29944
  # @return [String]
29661
29945
  attr_accessor :ip_address
29662
29946
 
29947
+ # IPv6 address of the interface inside Google Cloud Platform.
29948
+ # Corresponds to the JSON property `ipv6NexthopAddress`
29949
+ # @return [String]
29950
+ attr_accessor :ipv6_nexthop_address
29951
+
29663
29952
  # [Output Only] The resource that configures and manages this BGP peer. -
29664
29953
  # MANAGED_BY_USER is the default value and can be managed by you or other users -
29665
29954
  # MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed by Cloud
@@ -29692,6 +29981,11 @@ module Google
29692
29981
  # @return [String]
29693
29982
  attr_accessor :peer_ip_address
29694
29983
 
29984
+ # IPv6 address of the BGP interface outside Google Cloud Platform.
29985
+ # Corresponds to the JSON property `peerIpv6NexthopAddress`
29986
+ # @return [String]
29987
+ attr_accessor :peer_ipv6_nexthop_address
29988
+
29695
29989
  # URI of the VM instance that is used as third-party router appliances such as
29696
29990
  # Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance
29697
29991
  # must be located in zones contained in the same region as this Cloud Router.
@@ -29712,12 +30006,15 @@ module Google
29712
30006
  @advertised_route_priority = args[:advertised_route_priority] if args.key?(:advertised_route_priority)
29713
30007
  @bfd = args[:bfd] if args.key?(:bfd)
29714
30008
  @enable = args[:enable] if args.key?(:enable)
30009
+ @enable_ipv6 = args[:enable_ipv6] if args.key?(:enable_ipv6)
29715
30010
  @interface_name = args[:interface_name] if args.key?(:interface_name)
29716
30011
  @ip_address = args[:ip_address] if args.key?(:ip_address)
30012
+ @ipv6_nexthop_address = args[:ipv6_nexthop_address] if args.key?(:ipv6_nexthop_address)
29717
30013
  @management_type = args[:management_type] if args.key?(:management_type)
29718
30014
  @name = args[:name] if args.key?(:name)
29719
30015
  @peer_asn = args[:peer_asn] if args.key?(:peer_asn)
29720
30016
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
30017
+ @peer_ipv6_nexthop_address = args[:peer_ipv6_nexthop_address] if args.key?(:peer_ipv6_nexthop_address)
29721
30018
  @router_appliance_instance = args[:router_appliance_instance] if args.key?(:router_appliance_instance)
29722
30019
  end
29723
30020
  end
@@ -30188,7 +30485,8 @@ module Google
30188
30485
  # "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.
30189
30486
  # 0/16')" "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" The
30190
30487
  # following example is a valid match expression for private NAT: "nexthop.hub ==
30191
- # '/projects/my-project/global/hub/hub-1'"
30488
+ # 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/
30489
+ # global/hub/hub-1'"
30192
30490
  # Corresponds to the JSON property `match`
30193
30491
  # @return [String]
30194
30492
  attr_accessor :match
@@ -30781,7 +31079,8 @@ module Google
30781
31079
  end
30782
31080
  end
30783
31081
 
30784
- # An instance-attached disk resource.
31082
+ # DEPRECATED: Please use compute#savedDisk instead. An instance-attached disk
31083
+ # resource.
30785
31084
  class SavedAttachedDisk
30786
31085
  include Google::Apis::Core::Hashable
30787
31086
 
@@ -30904,6 +31203,47 @@ module Google
30904
31203
  end
30905
31204
  end
30906
31205
 
31206
+ # An instance-attached disk resource.
31207
+ class SavedDisk
31208
+ include Google::Apis::Core::Hashable
31209
+
31210
+ # [Output Only] Type of the resource. Always compute#savedDisk for attached
31211
+ # disks.
31212
+ # Corresponds to the JSON property `kind`
31213
+ # @return [String]
31214
+ attr_accessor :kind
31215
+
31216
+ # Specifies a URL of the disk attached to the source instance.
31217
+ # Corresponds to the JSON property `sourceDisk`
31218
+ # @return [String]
31219
+ attr_accessor :source_disk
31220
+
31221
+ # [Output Only] Size of the individual disk snapshot used by this machine image.
31222
+ # Corresponds to the JSON property `storageBytes`
31223
+ # @return [Fixnum]
31224
+ attr_accessor :storage_bytes
31225
+
31226
+ # [Output Only] An indicator whether storageBytes is in a stable state or it is
31227
+ # being adjusted as a result of shared storage reallocation. This status can
31228
+ # either be UPDATING, meaning the size of the snapshot is being updated, or
31229
+ # UP_TO_DATE, meaning the size of the snapshot is up-to-date.
31230
+ # Corresponds to the JSON property `storageBytesStatus`
31231
+ # @return [String]
31232
+ attr_accessor :storage_bytes_status
31233
+
31234
+ def initialize(**args)
31235
+ update!(**args)
31236
+ end
31237
+
31238
+ # Update properties of this object
31239
+ def update!(**args)
31240
+ @kind = args[:kind] if args.key?(:kind)
31241
+ @source_disk = args[:source_disk] if args.key?(:source_disk)
31242
+ @storage_bytes = args[:storage_bytes] if args.key?(:storage_bytes)
31243
+ @storage_bytes_status = args[:storage_bytes_status] if args.key?(:storage_bytes_status)
31244
+ end
31245
+ end
31246
+
30907
31247
  #
30908
31248
  class ScalingScheduleStatus
30909
31249
  include Google::Apis::Core::Hashable
@@ -31235,6 +31575,11 @@ module Google
31235
31575
  # @return [String]
31236
31576
  attr_accessor :parent
31237
31577
 
31578
+ #
31579
+ # Corresponds to the JSON property `recaptchaOptionsConfig`
31580
+ # @return [Google::Apis::ComputeBeta::SecurityPolicyRecaptchaOptionsConfig]
31581
+ attr_accessor :recaptcha_options_config
31582
+
31238
31583
  # [Output Only] Total count of all security policy rule tuples. A security
31239
31584
  # policy can not exceed a set number of tuples.
31240
31585
  # Corresponds to the JSON property `ruleTupleCount`
@@ -31289,6 +31634,7 @@ module Google
31289
31634
  @labels = args[:labels] if args.key?(:labels)
31290
31635
  @name = args[:name] if args.key?(:name)
31291
31636
  @parent = args[:parent] if args.key?(:parent)
31637
+ @recaptcha_options_config = args[:recaptcha_options_config] if args.key?(:recaptcha_options_config)
31292
31638
  @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
31293
31639
  @rules = args[:rules] if args.key?(:rules)
31294
31640
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -31517,6 +31863,29 @@ module Google
31517
31863
  end
31518
31864
  end
31519
31865
 
31866
+ #
31867
+ class SecurityPolicyRecaptchaOptionsConfig
31868
+ include Google::Apis::Core::Hashable
31869
+
31870
+ # An optional field to supply a reCAPTCHA site key to be used for all the rules
31871
+ # using the redirect action with the type of GOOGLE_RECAPTCHA under the security
31872
+ # policy. The specified site key needs to be created from the reCAPTCHA API. The
31873
+ # user is responsible for the validity of the specified site key. If not
31874
+ # specified, a Google-managed site key is used.
31875
+ # Corresponds to the JSON property `redirectSiteKey`
31876
+ # @return [String]
31877
+ attr_accessor :redirect_site_key
31878
+
31879
+ def initialize(**args)
31880
+ update!(**args)
31881
+ end
31882
+
31883
+ # Update properties of this object
31884
+ def update!(**args)
31885
+ @redirect_site_key = args[:redirect_site_key] if args.key?(:redirect_site_key)
31886
+ end
31887
+ end
31888
+
31520
31889
  #
31521
31890
  class SecurityPolicyReference
31522
31891
  include Google::Apis::Core::Hashable
@@ -31541,9 +31910,17 @@ module Google
31541
31910
  class SecurityPolicyRule
31542
31911
  include Google::Apis::Core::Hashable
31543
31912
 
31544
- # The Action to perform when the client connection triggers the rule. Can
31545
- # currently be either "allow" or "deny()" where valid values for status are 403,
31546
- # 404, and 502.
31913
+ # The Action to perform when the rule is matched. The following are the valid
31914
+ # actions: - allow: allow access to target. - deny(): deny access to target,
31915
+ # returns the HTTP response code specified (valid values are 403, 404, and 502).
31916
+ # - rate_based_ban: limit client traffic to the configured threshold and ban the
31917
+ # client if the traffic exceeds the threshold. Configure parameters for this
31918
+ # action in RateLimitOptions. Requires rate_limit_options to be set. - redirect:
31919
+ # redirect to a different target. This can either be an internal reCAPTCHA
31920
+ # redirect, or an external URL-based redirect via a 302 response. Parameters for
31921
+ # this action can be configured via redirectOptions. - throttle: limit client
31922
+ # traffic to the configured threshold. Configure parameters for this action in
31923
+ # rateLimitOptions. Requires rate_limit_options to be set for this.
31547
31924
  # Corresponds to the JSON property `action`
31548
31925
  # @return [String]
31549
31926
  attr_accessor :action
@@ -31850,33 +32227,45 @@ module Google
31850
32227
  attr_accessor :conform_action
31851
32228
 
31852
32229
  # Determines the key to enforce the rate_limit_threshold on. Possible values are:
31853
- # "ALL" -- A single rate limit threshold is applied to all the requests
31854
- # matching this rule. This is the default value if this field 'enforce_on_key'
31855
- # is not configured. "ALL_IPS" -- This definition, equivalent to "ALL", has been
31856
- # depprecated. "IP" -- The source IP address of the request is the key. Each IP
31857
- # has this limit enforced separately. "HTTP_HEADER" -- The value of the HTTP
31858
- # header whose name is configured under "enforce_on_key_name". The key value is
32230
+ # - ALL: A single rate limit threshold is applied to all the requests matching
32231
+ # this rule. This is the default value if this field 'enforce_on_key' is not
32232
+ # configured. - IP: The source IP address of the request is the key. Each IP has
32233
+ # this limit enforced separately. - HTTP_HEADER: The value of the HTTP header
32234
+ # whose name is configured under "enforce_on_key_name". The key value is
31859
32235
  # truncated to the first 128 bytes of the header value. If no such header is
31860
- # present in the request, the key type defaults to "ALL". "XFF_IP" -- The first
31861
- # IP address (i.e. the originating client IP address) specified in the list of
31862
- # IPs under X-Forwarded-For HTTP header. If no such header is present or the
31863
- # value is not a valid IP, the key type defaults to "ALL".
32236
+ # present in the request, the key type defaults to ALL. - XFF_IP: The first IP
32237
+ # address (i.e. the originating client IP address) specified in the list of IPs
32238
+ # under X-Forwarded-For HTTP header. If no such header is present or the value
32239
+ # is not a valid IP, the key type defaults to ALL. - HTTP_COOKIE: The value of
32240
+ # the HTTP cookie whose name is configured under "enforce_on_key_name". The key
32241
+ # value is truncated to the first 128 bytes of the cookie value. If no such
32242
+ # cookie is present in the request, the key type defaults to ALL.
31864
32243
  # Corresponds to the JSON property `enforceOnKey`
31865
32244
  # @return [String]
31866
32245
  attr_accessor :enforce_on_key
31867
32246
 
31868
32247
  # Rate limit key name applicable only for the following key types: HTTP_HEADER --
31869
- # Name of the HTTP header whose value is taken as the key value.
32248
+ # Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE --
32249
+ # Name of the HTTP cookie whose value is taken as the key value.
31870
32250
  # Corresponds to the JSON property `enforceOnKeyName`
31871
32251
  # @return [String]
31872
32252
  attr_accessor :enforce_on_key_name
31873
32253
 
31874
- # When a request is denied, returns the HTTP response code specified. Valid
31875
- # options are "deny()" where valid values for status are 403, 404, 429, and 502.
32254
+ # Action to take for requests that are above the configured rate limit threshold,
32255
+ # to either deny with a specified HTTP response code, or redirect to a
32256
+ # different endpoint. Valid options are "deny()" where valid values for status
32257
+ # are 403, 404, 429, and 502, and "redirect" where the redirect parameters come
32258
+ # from exceed_redirect_options below.
31876
32259
  # Corresponds to the JSON property `exceedAction`
31877
32260
  # @return [String]
31878
32261
  attr_accessor :exceed_action
31879
32262
 
32263
+ # Parameters defining the redirect action that is used as the exceed action.
32264
+ # Cannot be specified if the exceed action is not redirect.
32265
+ # Corresponds to the JSON property `exceedRedirectOptions`
32266
+ # @return [Google::Apis::ComputeBeta::SecurityPolicyRuleRedirectOptions]
32267
+ attr_accessor :exceed_redirect_options
32268
+
31880
32269
  # Threshold at which to begin ratelimiting.
31881
32270
  # Corresponds to the JSON property `rateLimitThreshold`
31882
32271
  # @return [Google::Apis::ComputeBeta::SecurityPolicyRuleRateLimitOptionsThreshold]
@@ -31894,6 +32283,7 @@ module Google
31894
32283
  @enforce_on_key = args[:enforce_on_key] if args.key?(:enforce_on_key)
31895
32284
  @enforce_on_key_name = args[:enforce_on_key_name] if args.key?(:enforce_on_key_name)
31896
32285
  @exceed_action = args[:exceed_action] if args.key?(:exceed_action)
32286
+ @exceed_redirect_options = args[:exceed_redirect_options] if args.key?(:exceed_redirect_options)
31897
32287
  @rate_limit_threshold = args[:rate_limit_threshold] if args.key?(:rate_limit_threshold)
31898
32288
  end
31899
32289
  end
@@ -32132,6 +32522,13 @@ module Google
32132
32522
  # @return [String]
32133
32523
  attr_accessor :description
32134
32524
 
32525
+ # If specified, the domain name will be used during the integration between the
32526
+ # PSC connected endpoints and the Cloud DNS. For example, this is a valid domain
32527
+ # name: "p.mycompany.com.". Current max number of domain names supported is 1.
32528
+ # Corresponds to the JSON property `domainNames`
32529
+ # @return [Array<String>]
32530
+ attr_accessor :domain_names
32531
+
32135
32532
  # If true, enable the proxy protocol which is for supplying client TCP/IP
32136
32533
  # address data in TCP connections that traverse proxies on their way to
32137
32534
  # destination servers.
@@ -32220,6 +32617,7 @@ module Google
32220
32617
  @consumer_reject_lists = args[:consumer_reject_lists] if args.key?(:consumer_reject_lists)
32221
32618
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
32222
32619
  @description = args[:description] if args.key?(:description)
32620
+ @domain_names = args[:domain_names] if args.key?(:domain_names)
32223
32621
  @enable_proxy_protocol = args[:enable_proxy_protocol] if args.key?(:enable_proxy_protocol)
32224
32622
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
32225
32623
  @id = args[:id] if args.key?(:id)
@@ -32626,9 +33024,8 @@ module Google
32626
33024
  class ShareSettings
32627
33025
  include Google::Apis::Core::Hashable
32628
33026
 
32629
- # A map of project id and project config. Using map format to ease add-to/remove-
32630
- # from the Project list in PATCH command. In future we will deprecate (And later
32631
- # remove) the array one.
33027
+ # A map of project id and project config. This is only valid when share_type's
33028
+ # value is SPECIFIC_PROJECTS.
32632
33029
  # Corresponds to the JSON property `projectMap`
32633
33030
  # @return [Hash<String,Google::Apis::ComputeBeta::ShareSettingsProjectConfig>]
32634
33031
  attr_accessor :project_map
@@ -33322,7 +33719,8 @@ module Google
33322
33719
  end
33323
33720
  end
33324
33721
 
33325
- #
33722
+ # DEPRECATED: Please use compute#instanceProperties instead. New properties will
33723
+ # not be added to this field.
33326
33724
  class SourceInstanceProperties
33327
33725
  include Google::Apis::Core::Hashable
33328
33726
 
@@ -34312,6 +34710,20 @@ module Google
34312
34710
  # @return [Hash<String,Google::Apis::ComputeBeta::StatefulPolicyPreservedStateDiskDevice>]
34313
34711
  attr_accessor :disks
34314
34712
 
34713
+ # External network IPs assigned to the instances that will be preserved on
34714
+ # instance delete, update, etc. This map is keyed with the network interface
34715
+ # name.
34716
+ # Corresponds to the JSON property `externalIPs`
34717
+ # @return [Hash<String,Google::Apis::ComputeBeta::StatefulPolicyPreservedStateNetworkIp>]
34718
+ attr_accessor :external_i_ps
34719
+
34720
+ # Internal network IPs assigned to the instances that will be preserved on
34721
+ # instance delete, update, etc. This map is keyed with the network interface
34722
+ # name.
34723
+ # Corresponds to the JSON property `internalIPs`
34724
+ # @return [Hash<String,Google::Apis::ComputeBeta::StatefulPolicyPreservedStateNetworkIp>]
34725
+ attr_accessor :internal_i_ps
34726
+
34315
34727
  def initialize(**args)
34316
34728
  update!(**args)
34317
34729
  end
@@ -34319,6 +34731,8 @@ module Google
34319
34731
  # Update properties of this object
34320
34732
  def update!(**args)
34321
34733
  @disks = args[:disks] if args.key?(:disks)
34734
+ @external_i_ps = args[:external_i_ps] if args.key?(:external_i_ps)
34735
+ @internal_i_ps = args[:internal_i_ps] if args.key?(:internal_i_ps)
34322
34736
  end
34323
34737
  end
34324
34738
 
@@ -34345,6 +34759,28 @@ module Google
34345
34759
  end
34346
34760
  end
34347
34761
 
34762
+ #
34763
+ class StatefulPolicyPreservedStateNetworkIp
34764
+ include Google::Apis::Core::Hashable
34765
+
34766
+ # These stateful IPs will never be released during autohealing, update or VM
34767
+ # instance recreate operations. This flag is used to configure if the IP
34768
+ # reservation should be deleted after it is no longer used by the group, e.g.
34769
+ # when the given instance or the whole group is deleted.
34770
+ # Corresponds to the JSON property `autoDelete`
34771
+ # @return [String]
34772
+ attr_accessor :auto_delete
34773
+
34774
+ def initialize(**args)
34775
+ update!(**args)
34776
+ end
34777
+
34778
+ # Update properties of this object
34779
+ def update!(**args)
34780
+ @auto_delete = args[:auto_delete] if args.key?(:auto_delete)
34781
+ end
34782
+ end
34783
+
34348
34784
  # Represents a Subnetwork resource. A subnetwork (also known as a subnet) is a
34349
34785
  # logical partition of a Virtual Private Cloud network with one primary IP range
34350
34786
  # and zero or more secondary IP ranges. For more information, read Virtual
@@ -34383,8 +34819,9 @@ module Google
34383
34819
 
34384
34820
  # Whether to enable flow logging for this subnetwork. If this field is not
34385
34821
  # explicitly set, it will not appear in get listings. If not set the default
34386
- # behavior is to disable flow logging. This field isn't supported with the
34387
- # purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.
34822
+ # behavior is determined by the org policy, if there is no org policy specified,
34823
+ # then it will default to disabled. This field isn't supported with the purpose
34824
+ # field set to INTERNAL_HTTPS_LOAD_BALANCER.
34388
34825
  # Corresponds to the JSON property `enableFlowLogs`
34389
34826
  # @return [Boolean]
34390
34827
  attr_accessor :enable_flow_logs
@@ -34438,7 +34875,7 @@ module Google
34438
34875
  attr_accessor :ipv6_access_type
34439
34876
 
34440
34877
  # [Output Only] The range of internal IPv6 addresses that are owned by this
34441
- # subnetwork.
34878
+ # subnetwork. Note this will be for private google access only eventually.
34442
34879
  # Corresponds to the JSON property `ipv6CidrRange`
34443
34880
  # @return [String]
34444
34881
  attr_accessor :ipv6_cidr_range
@@ -34832,7 +35269,8 @@ module Google
34832
35269
 
34833
35270
  # Whether to enable flow logging for this subnetwork. If this field is not
34834
35271
  # explicitly set, it will not appear in get listings. If not set the default
34835
- # behavior is to disable flow logging.
35272
+ # behavior is determined by the org policy, if there is no org policy specified,
35273
+ # then it will default to disabled.
34836
35274
  # Corresponds to the JSON property `enable`
34837
35275
  # @return [Boolean]
34838
35276
  attr_accessor :enable
@@ -34847,8 +35285,8 @@ module Google
34847
35285
  # Can only be specified if VPC flow logging for this subnetwork is enabled. The
34848
35286
  # value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs
34849
35287
  # within the subnetwork where 1.0 means all collected logs are reported and 0.0
34850
- # means no logs are reported. Default is 0.5, which means half of all collected
34851
- # logs are reported.
35288
+ # means no logs are reported. Default is 0.5 unless otherwise specified by the
35289
+ # org policy, which means half of all collected logs are reported.
34852
35290
  # Corresponds to the JSON property `flowSampling`
34853
35291
  # @return [Float]
34854
35292
  attr_accessor :flow_sampling
@@ -38434,7 +38872,7 @@ module Google
38434
38872
  class TestFailure
38435
38873
  include Google::Apis::Core::Hashable
38436
38874
 
38437
- # The actual output URL evaluated by load balancer containing the scheme, host,
38875
+ # The actual output URL evaluated by a load balancer containing the scheme, host,
38438
38876
  # path and query parameters.
38439
38877
  # Corresponds to the JSON property `actualOutputUrl`
38440
38878
  # @return [String]
@@ -38451,8 +38889,8 @@ module Google
38451
38889
  # @return [String]
38452
38890
  attr_accessor :actual_service
38453
38891
 
38454
- # The expected output URL evaluated by load balancer containing the scheme, host,
38455
- # path and query parameters.
38892
+ # The expected output URL evaluated by a load balancer containing the scheme,
38893
+ # host, path and query parameters.
38456
38894
  # Corresponds to the JSON property `expectedOutputUrl`
38457
38895
  # @return [String]
38458
38896
  attr_accessor :expected_output_url
@@ -38566,21 +39004,21 @@ module Google
38566
39004
  end
38567
39005
  end
38568
39006
 
38569
- # Represents a URL Map resource. Google Compute Engine has two URL Map resources:
38570
- # * [Global](/compute/docs/reference/rest/beta/urlMaps) * [Regional](/compute/
38571
- # docs/reference/rest/beta/regionUrlMaps) A URL map resource is a component of
38572
- # certain types of GCP load balancers and Traffic Director. * urlMaps are used
39007
+ # Represents a URL Map resource. Compute Engine has two URL Map resources: * [
39008
+ # Global](/compute/docs/reference/rest/beta/urlMaps) * [Regional](/compute/docs/
39009
+ # reference/rest/beta/regionUrlMaps) A URL map resource is a component of
39010
+ # certain types of cloud load balancers and Traffic Director: * urlMaps are used
38573
39011
  # by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are
38574
39012
  # used by internal HTTP(S) load balancers. For a list of supported URL map
38575
- # features by load balancer type, see the Load balancing features: Routing and
38576
- # traffic management table. For a list of supported URL map features for Traffic
38577
- # Director, see the Traffic Director features: Routing and traffic management
38578
- # table. This resource defines mappings from host names and URL paths to either
38579
- # a backend service or a backend bucket. To use the global urlMaps resource, the
38580
- # backend service must have a loadBalancingScheme of either EXTERNAL or
38581
- # INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service
38582
- # must have a loadBalancingScheme of INTERNAL_MANAGED. For more information,
38583
- # read URL Map Concepts.
39013
+ # features by the load balancer type, see the Load balancing features: Routing
39014
+ # and traffic management table. For a list of supported URL map features for
39015
+ # Traffic Director, see the Traffic Director features: Routing and traffic
39016
+ # management table. This resource defines mappings from hostnames and URL paths
39017
+ # to either a backend service or a backend bucket. To use the global urlMaps
39018
+ # resource, the backend service must have a loadBalancingScheme of either
39019
+ # EXTERNAL or INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the
39020
+ # backend service must have a loadBalancingScheme of INTERNAL_MANAGED. For more
39021
+ # information, read URL Map Concepts.
38584
39022
  class UrlMap
38585
39023
  include Google::Apis::Core::Hashable
38586
39024
 
@@ -38590,28 +39028,28 @@ module Google
38590
39028
  attr_accessor :creation_timestamp
38591
39029
 
38592
39030
  # defaultRouteAction takes effect when none of the hostRules match. The load
38593
- # balancer performs advanced routing actions like URL rewrites, header
38594
- # transformations, etc. prior to forwarding the request to the selected backend.
38595
- # If defaultRouteAction specifies any weightedBackendServices, defaultService
38596
- # must not be set. Conversely if defaultService is set, defaultRouteAction
38597
- # cannot contain any weightedBackendServices. Only one of defaultRouteAction or
39031
+ # balancer performs advanced routing actions, such as URL rewrites and header
39032
+ # transformations, before forwarding the request to the selected backend. If
39033
+ # defaultRouteAction specifies any weightedBackendServices, defaultService must
39034
+ # not be set. Conversely if defaultService is set, defaultRouteAction cannot
39035
+ # contain any weightedBackendServices. Only one of defaultRouteAction or
38598
39036
  # defaultUrlRedirect must be set. UrlMaps for external HTTP(S) load balancers
38599
39037
  # support only the urlRewrite action within defaultRouteAction.
38600
- # defaultRouteAction has no effect when the URL map is bound to target gRPC
38601
- # proxy that has validateForProxyless field set to true.
39038
+ # defaultRouteAction has no effect when the URL map is bound to a target gRPC
39039
+ # proxy that has the validateForProxyless field set to true.
38602
39040
  # Corresponds to the JSON property `defaultRouteAction`
38603
39041
  # @return [Google::Apis::ComputeBeta::HttpRouteAction]
38604
39042
  attr_accessor :default_route_action
38605
39043
 
38606
39044
  # The full or partial URL of the defaultService resource to which traffic is
38607
- # directed if none of the hostRules match. If defaultRouteAction is additionally
38608
- # specified, advanced routing actions like URL Rewrites, etc. take effect prior
38609
- # to sending the request to the backend. However, if defaultService is specified,
39045
+ # directed if none of the hostRules match. If defaultRouteAction is also
39046
+ # specified, advanced routing actions, such as URL rewrites, take effect before
39047
+ # sending the request to the backend. However, if defaultService is specified,
38610
39048
  # defaultRouteAction cannot contain any weightedBackendServices. Conversely, if
38611
39049
  # routeAction specifies any weightedBackendServices, service must not be
38612
- # specified. Only one of defaultService, defaultUrlRedirect or
39050
+ # specified. Only one of defaultService, defaultUrlRedirect , or
38613
39051
  # defaultRouteAction.weightedBackendService must be set. defaultService has no
38614
- # effect when the URL map is bound to target gRPC proxy that has
39052
+ # effect when the URL map is bound to a target gRPC proxy that has the
38615
39053
  # validateForProxyless field set to true.
38616
39054
  # Corresponds to the JSON property `defaultService`
38617
39055
  # @return [String]
@@ -38629,11 +39067,10 @@ module Google
38629
39067
  attr_accessor :description
38630
39068
 
38631
39069
  # Fingerprint of this resource. A hash of the contents stored in this object.
38632
- # This field is used in optimistic locking. This field will be ignored when
38633
- # inserting a UrlMap. An up-to-date fingerprint must be provided in order to
38634
- # update the UrlMap, otherwise the request will fail with error 412
38635
- # conditionNotMet. To see the latest fingerprint, make a get() request to
38636
- # retrieve a UrlMap.
39070
+ # This field is used in optimistic locking. This field is ignored when inserting
39071
+ # a UrlMap. An up-to-date fingerprint must be provided in order to update the
39072
+ # UrlMap, otherwise the request will fail with error 412 conditionNotMet. To see
39073
+ # the latest fingerprint, make a get() request to retrieve a UrlMap.
38637
39074
  # Corresponds to the JSON property `fingerprint`
38638
39075
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
38639
39076
  # @return [String]
@@ -38645,7 +39082,7 @@ module Google
38645
39082
  # @return [Google::Apis::ComputeBeta::HttpHeaderAction]
38646
39083
  attr_accessor :header_action
38647
39084
 
38648
- # The list of HostRules to use against the URL.
39085
+ # The list of host rules to use against the URL.
38649
39086
  # Corresponds to the JSON property `hostRules`
38650
39087
  # @return [Array<Google::Apis::ComputeBeta::HostRule>]
38651
39088
  attr_accessor :host_rules
@@ -38688,10 +39125,10 @@ module Google
38688
39125
  # @return [String]
38689
39126
  attr_accessor :self_link
38690
39127
 
38691
- # The list of expected URL mapping tests. Request to update this UrlMap will
38692
- # succeed only if all of the test cases pass. You can specify a maximum of 100
38693
- # tests per UrlMap. Not supported when the URL map is bound to target gRPC proxy
38694
- # that has validateForProxyless field set to true.
39128
+ # The list of expected URL mapping tests. Request to update the UrlMap succeeds
39129
+ # only if all test cases pass. You can specify a maximum of 100 tests per UrlMap.
39130
+ # Not supported when the URL map is bound to a target gRPC proxy that has
39131
+ # validateForProxyless field set to true.
38695
39132
  # Corresponds to the JSON property `tests`
38696
39133
  # @return [Array<Google::Apis::ComputeBeta::UrlMapTest>]
38697
39134
  attr_accessor :tests
@@ -38865,18 +39302,18 @@ module Google
38865
39302
  # @return [String]
38866
39303
  attr_accessor :description
38867
39304
 
38868
- # The expected output URL evaluated by load balancer containing the scheme, host,
38869
- # path and query parameters. For rules that forward requests to backends, the
38870
- # test passes only when expectedOutputUrl matches the request forwarded by load
38871
- # balancer to backends. For rules with urlRewrite, the test verifies that the
38872
- # forwarded request matches hostRewrite and pathPrefixRewrite in the urlRewrite
38873
- # action. When service is specified, expectedOutputUrl`s scheme is ignored. For
38874
- # rules with urlRedirect, the test passes only if expectedOutputUrl matches the
38875
- # URL in the load balancer's redirect response. If urlRedirect specifies
38876
- # https_redirect, the test passes only if the scheme in expectedOutputUrl is
38877
- # also set to https. If urlRedirect specifies strip_query, the test passes only
38878
- # if expectedOutputUrl does not contain any query parameters. expectedOutputUrl
38879
- # is optional when service is specified.
39305
+ # The expected output URL evaluated by the load balancer containing the scheme,
39306
+ # host, path and query parameters. For rules that forward requests to backends,
39307
+ # the test passes only when expectedOutputUrl matches the request forwarded by
39308
+ # the load balancer to backends. For rules with urlRewrite, the test verifies
39309
+ # that the forwarded request matches hostRewrite and pathPrefixRewrite in the
39310
+ # urlRewrite action. When service is specified, expectedOutputUrl`s scheme is
39311
+ # ignored. For rules with urlRedirect, the test passes only if expectedOutputUrl
39312
+ # matches the URL in the load balancer's redirect response. If urlRedirect
39313
+ # specifies https_redirect, the test passes only if the scheme in
39314
+ # expectedOutputUrl is also set to HTTPS. If urlRedirect specifies strip_query,
39315
+ # the test passes only if expectedOutputUrl does not contain any query
39316
+ # parameters. expectedOutputUrl is optional when service is specified.
38880
39317
  # Corresponds to the JSON property `expectedOutputUrl`
38881
39318
  # @return [String]
38882
39319
  attr_accessor :expected_output_url
@@ -38907,7 +39344,8 @@ module Google
38907
39344
  attr_accessor :path
38908
39345
 
38909
39346
  # Expected BackendService or BackendBucket resource the given URL should be
38910
- # mapped to. service cannot be set if expectedRedirectResponseCode is set.
39347
+ # mapped to. The service field cannot be set if expectedRedirectResponseCode is
39348
+ # set.
38911
39349
  # Corresponds to the JSON property `service`
38912
39350
  # @return [String]
38913
39351
  attr_accessor :service
@@ -39212,21 +39650,36 @@ module Google
39212
39650
  class ValidateUrlMapsRequest
39213
39651
  include Google::Apis::Core::Hashable
39214
39652
 
39215
- # Represents a URL Map resource. Google Compute Engine has two URL Map resources:
39216
- # * [Global](/compute/docs/reference/rest/beta/urlMaps) * [Regional](/compute/
39217
- # docs/reference/rest/beta/regionUrlMaps) A URL map resource is a component of
39218
- # certain types of GCP load balancers and Traffic Director. * urlMaps are used
39653
+ # Specifies the load balancer type(s) this validation request is for. Use
39654
+ # EXTERNAL_MANAGED for HTTP/HTTPS External Global Load Balancer with Advanced
39655
+ # Traffic Management. Use EXTERNAL for Classic HTTP/HTTPS External Global Load
39656
+ # Balancer. Other load balancer types are not supported. For more information,
39657
+ # refer to Choosing a load balancer. If unspecified, the load balancing scheme
39658
+ # will be inferred from the backend service resources this URL map references.
39659
+ # If that can not be inferred (for example, this URL map only references backend
39660
+ # buckets, or this Url map is for rewrites and redirects only and doesn't
39661
+ # reference any backends), EXTERNAL will be used as the default type. If
39662
+ # specified, the scheme(s) must not conflict with the load balancing scheme of
39663
+ # the backend service resources this Url map references.
39664
+ # Corresponds to the JSON property `loadBalancingSchemes`
39665
+ # @return [Array<String>]
39666
+ attr_accessor :load_balancing_schemes
39667
+
39668
+ # Represents a URL Map resource. Compute Engine has two URL Map resources: * [
39669
+ # Global](/compute/docs/reference/rest/beta/urlMaps) * [Regional](/compute/docs/
39670
+ # reference/rest/beta/regionUrlMaps) A URL map resource is a component of
39671
+ # certain types of cloud load balancers and Traffic Director: * urlMaps are used
39219
39672
  # by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are
39220
39673
  # used by internal HTTP(S) load balancers. For a list of supported URL map
39221
- # features by load balancer type, see the Load balancing features: Routing and
39222
- # traffic management table. For a list of supported URL map features for Traffic
39223
- # Director, see the Traffic Director features: Routing and traffic management
39224
- # table. This resource defines mappings from host names and URL paths to either
39225
- # a backend service or a backend bucket. To use the global urlMaps resource, the
39226
- # backend service must have a loadBalancingScheme of either EXTERNAL or
39227
- # INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service
39228
- # must have a loadBalancingScheme of INTERNAL_MANAGED. For more information,
39229
- # read URL Map Concepts.
39674
+ # features by the load balancer type, see the Load balancing features: Routing
39675
+ # and traffic management table. For a list of supported URL map features for
39676
+ # Traffic Director, see the Traffic Director features: Routing and traffic
39677
+ # management table. This resource defines mappings from hostnames and URL paths
39678
+ # to either a backend service or a backend bucket. To use the global urlMaps
39679
+ # resource, the backend service must have a loadBalancingScheme of either
39680
+ # EXTERNAL or INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the
39681
+ # backend service must have a loadBalancingScheme of INTERNAL_MANAGED. For more
39682
+ # information, read URL Map Concepts.
39230
39683
  # Corresponds to the JSON property `resource`
39231
39684
  # @return [Google::Apis::ComputeBeta::UrlMap]
39232
39685
  attr_accessor :resource
@@ -39237,6 +39690,7 @@ module Google
39237
39690
 
39238
39691
  # Update properties of this object
39239
39692
  def update!(**args)
39693
+ @load_balancing_schemes = args[:load_balancing_schemes] if args.key?(:load_balancing_schemes)
39240
39694
  @resource = args[:resource] if args.key?(:resource)
39241
39695
  end
39242
39696
  end
@@ -39265,16 +39719,16 @@ module Google
39265
39719
  class UrlRewrite
39266
39720
  include Google::Apis::Core::Hashable
39267
39721
 
39268
- # Prior to forwarding the request to the selected service, the request's host
39269
- # header is replaced with contents of hostRewrite. The value must be between 1
39270
- # and 255 characters.
39722
+ # Before forwarding the request to the selected service, the request's host
39723
+ # header is replaced with contents of hostRewrite. The value must be from 1 to
39724
+ # 255 characters.
39271
39725
  # Corresponds to the JSON property `hostRewrite`
39272
39726
  # @return [String]
39273
39727
  attr_accessor :host_rewrite
39274
39728
 
39275
- # Prior to forwarding the request to the selected backend service, the matching
39729
+ # Before forwarding the request to the selected backend service, the matching
39276
39730
  # portion of the request's path is replaced by pathPrefixRewrite. The value must
39277
- # be between 1 and 1024 characters.
39731
+ # be from 1 to 1024 characters.
39278
39732
  # Corresponds to the JSON property `pathPrefixRewrite`
39279
39733
  # @return [String]
39280
39734
  attr_accessor :path_prefix_rewrite
@@ -39784,6 +40238,12 @@ module Google
39784
40238
  # @return [String]
39785
40239
  attr_accessor :self_link
39786
40240
 
40241
+ # The stack type for this VPN gateway to identify the IP protocols that are
40242
+ # enabled. If not specified, IPV4_ONLY will be used.
40243
+ # Corresponds to the JSON property `stackType`
40244
+ # @return [String]
40245
+ attr_accessor :stack_type
40246
+
39787
40247
  # The list of VPN interfaces associated with this VPN gateway.
39788
40248
  # Corresponds to the JSON property `vpnInterfaces`
39789
40249
  # @return [Array<Google::Apis::ComputeBeta::VpnGatewayVpnGatewayInterface>]
@@ -39805,6 +40265,7 @@ module Google
39805
40265
  @network = args[:network] if args.key?(:network)
39806
40266
  @region = args[:region] if args.key?(:region)
39807
40267
  @self_link = args[:self_link] if args.key?(:self_link)
40268
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
39808
40269
  @vpn_interfaces = args[:vpn_interfaces] if args.key?(:vpn_interfaces)
39809
40270
  end
39810
40271
  end
@@ -40928,14 +41389,13 @@ module Google
40928
41389
 
40929
41390
  # In contrast to a single BackendService in HttpRouteAction to which all
40930
41391
  # matching traffic is directed to, WeightedBackendService allows traffic to be
40931
- # split across multiple BackendServices. The volume of traffic for each
40932
- # BackendService is proportional to the weight specified in each
40933
- # WeightedBackendService
41392
+ # split across multiple backend services. The volume of traffic for each backend
41393
+ # service is proportional to the weight specified in each WeightedBackendService
40934
41394
  class WeightedBackendService
40935
41395
  include Google::Apis::Core::Hashable
40936
41396
 
40937
41397
  # The full or partial URL to the default BackendService resource. Before
40938
- # forwarding the request to backendService, the loadbalancer applies any
41398
+ # forwarding the request to backendService, the load balancer applies any
40939
41399
  # relevant headerActions specified as part of this backendServiceWeight.
40940
41400
  # Corresponds to the JSON property `backendService`
40941
41401
  # @return [String]
@@ -40947,12 +41407,12 @@ module Google
40947
41407
  # @return [Google::Apis::ComputeBeta::HttpHeaderAction]
40948
41408
  attr_accessor :header_action
40949
41409
 
40950
- # Specifies the fraction of traffic sent to backendService, computed as weight /
40951
- # (sum of all weightedBackendService weights in routeAction) . The selection of
40952
- # a backend service is determined only for new traffic. Once a user's request
40953
- # has been directed to a backendService, subsequent requests will be sent to the
40954
- # same backendService as determined by the BackendService's session affinity
40955
- # policy. The value must be between 0 and 1000
41410
+ # Specifies the fraction of traffic sent to a backend service, computed as
41411
+ # weight / (sum of all weightedBackendService weights in routeAction) . The
41412
+ # selection of a backend service is determined only for new traffic. Once a user'
41413
+ # s request has been directed to a backend service, subsequent requests are sent
41414
+ # to the same backend service as determined by the backend service's session
41415
+ # affinity policy. The value must be from 0 to 1000.
40956
41416
  # Corresponds to the JSON property `weight`
40957
41417
  # @return [Fixnum]
40958
41418
  attr_accessor :weight
@@ -41362,31 +41822,31 @@ module Google
41362
41822
 
41363
41823
  # An Identity and Access Management (IAM) policy, which specifies access
41364
41824
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
41365
- # A `binding` binds one or more `members` to a single `role`. Members can be
41366
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
41367
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
41368
- # role or a user-created custom role. For some types of Google Cloud resources,
41369
- # a `binding` can also specify a `condition`, which is a logical expression that
41370
- # allows access to a resource only if the expression evaluates to `true`. A
41371
- # condition can add constraints based on attributes of the request, the resource,
41372
- # or both. To learn which resources support conditions in their IAM policies,
41373
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
41374
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
41375
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
41376
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
41377
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
41378
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
41379
- # title": "expirable access", "description": "Does not grant access after Sep
41380
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
41381
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
41382
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
41383
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
41384
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
41385
- # roles/resourcemanager.organizationViewer condition: title: expirable access
41386
- # description: Does not grant access after Sep 2020 expression: request.time <
41387
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
41388
- # description of IAM and its features, see the [IAM documentation](https://cloud.
41389
- # google.com/iam/docs/).
41825
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
41826
+ # Principals can be user accounts, service accounts, Google groups, and domains (
41827
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
41828
+ # an IAM predefined role or a user-created custom role. For some types of Google
41829
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
41830
+ # logical expression that allows access to a resource only if the expression
41831
+ # evaluates to `true`. A condition can add constraints based on attributes of
41832
+ # the request, the resource, or both. To learn which resources support
41833
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
41834
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
41835
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
41836
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
41837
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
41838
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
41839
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
41840
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
41841
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
41842
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
41843
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
41844
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
41845
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
41846
+ # access description: Does not grant access after Sep 2020 expression: request.
41847
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
41848
+ # a description of IAM and its features, see the [IAM documentation](https://
41849
+ # cloud.google.com/iam/docs/).
41390
41850
  # Corresponds to the JSON property `policy`
41391
41851
  # @return [Google::Apis::ComputeBeta::Policy]
41392
41852
  attr_accessor :policy