google-apis-compute_beta 0.18.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
@@ -510,13 +510,17 @@ module Google
510
510
  attr_accessor :network_tier
511
511
 
512
512
  # The DNS domain name for the public PTR record. You can set this field only if
513
- # the `setPublicPtr` field is enabled.
513
+ # the `setPublicPtr` field is enabled in accessConfig. If this field is
514
+ # unspecified in ipv6AccessConfig, a default PTR record will be createc for
515
+ # first IP in associated external IPv6 range.
514
516
  # Corresponds to the JSON property `publicPtrDomainName`
515
517
  # @return [String]
516
518
  attr_accessor :public_ptr_domain_name
517
519
 
518
520
  # Specifies whether a public DNS 'PTR' record should be created to map the
519
- # external IP address of the instance to a DNS domain name.
521
+ # external IP address of the instance to a DNS domain name. This field is not
522
+ # used in ipv6AccessConfig. A default PTR record will be created if the VM has
523
+ # external IPv6 range associated.
520
524
  # Corresponds to the JSON property `setPublicPtr`
521
525
  # @return [Boolean]
522
526
  attr_accessor :set_public_ptr
@@ -648,14 +652,14 @@ module Google
648
652
  # regional internal IP address in a subnet of a VPC network) - VPC_PEERING for
649
653
  # global internal IP addresses used for private services access allocated ranges.
650
654
  # - NAT_AUTO for the regional external IP addresses used by Cloud NAT when
651
- # allocating addresses using . - IPSEC_INTERCONNECT for addresses created from a
652
- # private IP range that are reserved for a VLAN attachment in an *IPsec-
653
- # encrypted Cloud Interconnect* configuration. These addresses are regional
654
- # resources. Not currently available publicly. - `SHARED_LOADBALANCER_VIP` for
655
- # an internal IP address that is assigned to multiple internal forwarding rules.
656
- # - `PRIVATE_SERVICE_CONNECT` for a private network address that is used to
657
- # configure Private Service Connect. Only global internal addresses can use this
658
- # 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.
659
663
  # Corresponds to the JSON property `purpose`
660
664
  # @return [String]
661
665
  attr_accessor :purpose
@@ -1357,7 +1361,8 @@ module Google
1357
1361
  # initializeParams.sourceSnapshot or disks.source is required except for local
1358
1362
  # SSD. If desired, you can also attach existing non-root persistent disks using
1359
1363
  # this property. This field is only applicable for persistent disks. Note that
1360
- # for InstanceTemplate, specify the disk name, not the URL for the disk.
1364
+ # for InstanceTemplate, specify the disk name for zonal disk, and the URL for
1365
+ # regional disk.
1361
1366
  # Corresponds to the JSON property `source`
1362
1367
  # @return [String]
1363
1368
  attr_accessor :source
@@ -1457,6 +1462,11 @@ module Google
1457
1462
  # @return [Hash<String,String>]
1458
1463
  attr_accessor :labels
1459
1464
 
1465
+ # A list of publicly visible licenses. Reserved for Google's use.
1466
+ # Corresponds to the JSON property `licenses`
1467
+ # @return [Array<String>]
1468
+ attr_accessor :licenses
1469
+
1460
1470
  # Indicates whether or not the disk can be read/write attached to more than one
1461
1471
  # instance.
1462
1472
  # Corresponds to the JSON property `multiWriter`
@@ -1537,6 +1547,7 @@ module Google
1537
1547
  @disk_type = args[:disk_type] if args.key?(:disk_type)
1538
1548
  @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features)
1539
1549
  @labels = args[:labels] if args.key?(:labels)
1550
+ @licenses = args[:licenses] if args.key?(:licenses)
1540
1551
  @multi_writer = args[:multi_writer] if args.key?(:multi_writer)
1541
1552
  @on_update_action = args[:on_update_action] if args.key?(:on_update_action)
1542
1553
  @provisioned_iops = args[:provisioned_iops] if args.key?(:provisioned_iops)
@@ -2774,7 +2785,7 @@ module Google
2774
2785
  # specified), or else sets the response max-age directive to the lesser of the
2775
2786
  # client_ttl and default_ttl, and also ensures a "public" cache-control
2776
2787
  # directive is present. If a client TTL is not specified, a default value (1
2777
- # hour) will be used. The maximum allowed value is 86400s (1 day).
2788
+ # hour) will be used. The maximum allowed value is 31,622,400s (1 year).
2778
2789
  # Corresponds to the JSON property `clientTtl`
2779
2790
  # @return [Fixnum]
2780
2791
  attr_accessor :client_ttl
@@ -3184,14 +3195,14 @@ module Google
3184
3195
 
3185
3196
  # For load balancers that have configurable failover: [Internal TCP/UDP Load
3186
3197
  # Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-
3187
- # overview) and [external TCP/UDP Load Balancing](/network/networklb-failover-
3188
- # overview). On failover or failback, this field indicates whether connection
3189
- # draining will be honored. Google Cloud has a fixed connection draining timeout
3190
- # of 10 minutes. A setting of true terminates existing TCP connections to the
3191
- # active pool during failover and failback, immediately draining traffic. A
3192
- # setting of false allows existing TCP connections to persist, even on VMs no
3193
- # longer in the active pool, for up to the duration of the connection draining
3194
- # timeout (10 minutes).
3198
+ # overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-
3199
+ # balancing/docs/network/networklb-failover-overview). On failover or failback,
3200
+ # this field indicates whether connection draining will be honored. Google Cloud
3201
+ # has a fixed connection draining timeout of 10 minutes. A setting of true
3202
+ # terminates existing TCP connections to the active pool during failover and
3203
+ # failback, immediately draining traffic. A setting of false allows existing TCP
3204
+ # connections to persist, even on VMs no longer in the active pool, for up to
3205
+ # the duration of the connection draining timeout (10 minutes).
3195
3206
  # Corresponds to the JSON property `failoverPolicy`
3196
3207
  # @return [Google::Apis::ComputeBeta::BackendServiceFailoverPolicy]
3197
3208
  attr_accessor :failover_policy
@@ -3262,8 +3273,8 @@ module Google
3262
3273
  # INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme
3263
3274
  # set to INTERNAL_SELF_MANAGED. If sessionAffinity is not NONE, and this field
3264
3275
  # is not set to MAGLEV or RING_HASH, session affinity settings will not take
3265
- # effect. Only the default ROUND_ROBIN policy is supported when the backend
3266
- # service is referenced by a URL map that is bound to target gRPC proxy that has
3276
+ # effect. Only ROUND_ROBIN and RING_HASH are supported when the backend service
3277
+ # is referenced by a URL map that is bound to target gRPC proxy that has
3267
3278
  # validateForProxyless field set to true.
3268
3279
  # Corresponds to the JSON property `localityLbPolicy`
3269
3280
  # @return [String]
@@ -3356,11 +3367,18 @@ module Google
3356
3367
  # @return [String]
3357
3368
  attr_accessor :self_link
3358
3369
 
3359
- # Type of session affinity to use. The default is NONE. For a detailed
3360
- # description of session affinity options, see: [Session affinity](https://cloud.
3361
- # google.com/load-balancing/docs/backend-service#session_affinity). Not
3362
- # supported when the backend service is referenced by a URL map that is bound to
3363
- # target gRPC proxy that has validateForProxyless field set to true.
3370
+ # URLs of networkservices.ServiceBinding resources. Can only be set if load
3371
+ # balancing scheme is INTERNAL_SELF_MANAGED. If set, lists of backends and
3372
+ # health checks must be both empty.
3373
+ # Corresponds to the JSON property `serviceBindings`
3374
+ # @return [Array<String>]
3375
+ attr_accessor :service_bindings
3376
+
3377
+ # Type of session affinity to use. The default is NONE. Only NONE and
3378
+ # HEADER_FIELD are supported when the backend service is referenced by a URL map
3379
+ # that is bound to target gRPC proxy that has validateForProxyless field set to
3380
+ # true. For more details, see: [Session Affinity](https://cloud.google.com/load-
3381
+ # balancing/docs/backend-service#session_affinity).
3364
3382
  # Corresponds to the JSON property `sessionAffinity`
3365
3383
  # @return [String]
3366
3384
  attr_accessor :session_affinity
@@ -3419,6 +3437,7 @@ module Google
3419
3437
  @security_policy = args[:security_policy] if args.key?(:security_policy)
3420
3438
  @security_settings = args[:security_settings] if args.key?(:security_settings)
3421
3439
  @self_link = args[:self_link] if args.key?(:self_link)
3440
+ @service_bindings = args[:service_bindings] if args.key?(:service_bindings)
3422
3441
  @session_affinity = args[:session_affinity] if args.key?(:session_affinity)
3423
3442
  @subsetting = args[:subsetting] if args.key?(:subsetting)
3424
3443
  @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec)
@@ -3589,7 +3608,7 @@ module Google
3589
3608
  # specified), or else sets the response max-age directive to the lesser of the
3590
3609
  # client_ttl and default_ttl, and also ensures a "public" cache-control
3591
3610
  # directive is present. If a client TTL is not specified, a default value (1
3592
- # hour) will be used. The maximum allowed value is 86400s (1 day).
3611
+ # hour) will be used. The maximum allowed value is 31,622,400s (1 year).
3593
3612
  # Corresponds to the JSON property `clientTtl`
3594
3613
  # @return [Fixnum]
3595
3614
  attr_accessor :client_ttl
@@ -3769,7 +3788,11 @@ module Google
3769
3788
  # healthy backends (unless all backends are unhealthy). If set to ALWAYS_PERSIST,
3770
3789
  # existing connections always persist on unhealthy backends regardless of
3771
3790
  # protocol and session affinity. It is generally not recommended to use this
3772
- # mode overriding the default.
3791
+ # mode overriding the default. For more details, see [Connection Persistence for
3792
+ # Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/
3793
+ # networklb-backend-service#connection-persistence) and [Connection Persistence
3794
+ # for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/
3795
+ # docs/internal#connection-persistence).
3773
3796
  # Corresponds to the JSON property `connectionPersistenceOnUnhealthyBackends`
3774
3797
  # @return [String]
3775
3798
  attr_accessor :connection_persistence_on_unhealthy_backends
@@ -3782,19 +3805,25 @@ module Google
3782
3805
  alias_method :enable_strong_affinity?, :enable_strong_affinity
3783
3806
 
3784
3807
  # Specifies how long to keep a Connection Tracking entry while there is no
3785
- # matching traffic (in seconds). For L4 ILB the minimum(default) is 10 minutes
3786
- # and maximum is 16 hours. For Network Load Balancer the default is 60 seconds.
3787
- # This option is not available publicly. This field will be supported only if
3788
- # the Connection Tracking key is less than 5-tuple.
3808
+ # matching traffic (in seconds). For Internal TCP/UDP Load Balancing: - The
3809
+ # minimum (default) is 10 minutes and the maximum is 16 hours. - It can be set
3810
+ # only if Connection Tracking is less than 5-tuple (i.e. Session Affinity is
3811
+ # CLIENT_IP_NO_DESTINATION, CLIENT_IP or CLIENT_IP_PROTO, and Tracking Mode is
3812
+ # PER_SESSION). For Network Load Balancer the default is 60 seconds. This option
3813
+ # is not available publicly.
3789
3814
  # Corresponds to the JSON property `idleTimeoutSec`
3790
3815
  # @return [Fixnum]
3791
3816
  attr_accessor :idle_timeout_sec
3792
3817
 
3793
- # Specifies the key used for connection tracking. There are two options:
3818
+ # Specifies the key used for connection tracking. There are two options: -
3794
3819
  # PER_CONNECTION: This is the default mode. The Connection Tracking is performed
3795
- # as per the Connection Key (default Hash Method) for the specific protocol.
3820
+ # as per the Connection Key (default Hash Method) for the specific protocol. -
3796
3821
  # PER_SESSION: The Connection Tracking is performed as per the configured
3797
- # Session Affinity. It matches the configured Session Affinity.
3822
+ # Session Affinity. It matches the configured Session Affinity. For more details,
3823
+ # see [Tracking Mode for Network Load Balancing](https://cloud.google.com/load-
3824
+ # balancing/docs/network/networklb-backend-service#tracking-mode) and [Tracking
3825
+ # Mode for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-
3826
+ # balancing/docs/internal#tracking-mode).
3798
3827
  # Corresponds to the JSON property `trackingMode`
3799
3828
  # @return [String]
3800
3829
  attr_accessor :tracking_mode
@@ -3814,14 +3843,14 @@ module Google
3814
3843
 
3815
3844
  # For load balancers that have configurable failover: [Internal TCP/UDP Load
3816
3845
  # Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-
3817
- # overview) and [external TCP/UDP Load Balancing](/network/networklb-failover-
3818
- # overview). On failover or failback, this field indicates whether connection
3819
- # draining will be honored. Google Cloud has a fixed connection draining timeout
3820
- # of 10 minutes. A setting of true terminates existing TCP connections to the
3821
- # active pool during failover and failback, immediately draining traffic. A
3822
- # setting of false allows existing TCP connections to persist, even on VMs no
3823
- # longer in the active pool, for up to the duration of the connection draining
3824
- # timeout (10 minutes).
3846
+ # overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-
3847
+ # balancing/docs/network/networklb-failover-overview). On failover or failback,
3848
+ # this field indicates whether connection draining will be honored. Google Cloud
3849
+ # has a fixed connection draining timeout of 10 minutes. A setting of true
3850
+ # terminates existing TCP connections to the active pool during failover and
3851
+ # failback, immediately draining traffic. A setting of false allows existing TCP
3852
+ # connections to persist, even on VMs no longer in the active pool, for up to
3853
+ # the duration of the connection draining timeout (10 minutes).
3825
3854
  class BackendServiceFailoverPolicy
3826
3855
  include Google::Apis::Core::Hashable
3827
3856
 
@@ -3836,8 +3865,9 @@ module Google
3836
3865
  # distributed among all primary VMs when all primary and all backup backend VMs
3837
3866
  # are unhealthy. For load balancers that have configurable failover: [Internal
3838
3867
  # TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/
3839
- # failover-overview) and [external TCP/UDP Load Balancing](/network/networklb-
3840
- # failover-overview). The default is false.
3868
+ # failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.
3869
+ # com/load-balancing/docs/network/networklb-failover-overview). The default is
3870
+ # false.
3841
3871
  # Corresponds to the JSON property `dropTrafficIfUnhealthy`
3842
3872
  # @return [Boolean]
3843
3873
  attr_accessor :drop_traffic_if_unhealthy
@@ -3849,7 +3879,8 @@ module Google
3849
3879
  # the total number of healthy primary VMs is less than this ratio. For load
3850
3880
  # balancers that have configurable failover: [Internal TCP/UDP Load Balancing](
3851
3881
  # https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [
3852
- # external TCP/UDP Load Balancing](/network/networklb-failover-overview).
3882
+ # external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/
3883
+ # network/networklb-failover-overview).
3853
3884
  # Corresponds to the JSON property `failoverRatio`
3854
3885
  # @return [Float]
3855
3886
  attr_accessor :failover_ratio
@@ -4450,7 +4481,7 @@ module Google
4450
4481
  end
4451
4482
  end
4452
4483
 
4453
- # Associates `members` with a `role`.
4484
+ # Associates `members`, or principals, with a `role`.
4454
4485
  class Binding
4455
4486
  include Google::Apis::Core::Hashable
4456
4487
 
@@ -4478,7 +4509,7 @@ module Google
4478
4509
  # @return [Google::Apis::ComputeBeta::Expr]
4479
4510
  attr_accessor :condition
4480
4511
 
4481
- # Specifies the identities requesting access for a Cloud Platform resource. `
4512
+ # Specifies the principals requesting access for a Cloud Platform resource. `
4482
4513
  # members` can have the following values: * `allUsers`: A special identifier
4483
4514
  # that represents anyone who is on the internet; with or without a Google
4484
4515
  # account. * `allAuthenticatedUsers`: A special identifier that represents
@@ -4508,8 +4539,8 @@ module Google
4508
4539
  # @return [Array<String>]
4509
4540
  attr_accessor :members
4510
4541
 
4511
- # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
4512
- # , or `roles/owner`.
4542
+ # Role that is assigned to the list of `members`, or principals. For example, `
4543
+ # roles/viewer`, `roles/editor`, or `roles/owner`.
4513
4544
  # Corresponds to the JSON property `role`
4514
4545
  # @return [String]
4515
4546
  attr_accessor :role
@@ -4787,6 +4818,16 @@ module Google
4787
4818
  class Commitment
4788
4819
  include Google::Apis::Core::Hashable
4789
4820
 
4821
+ # Specifies whether to enable automatic renewal for the commitment. The default
4822
+ # value is false if not specified. The field can be updated until the day of the
4823
+ # commitment expiration at 12:00am PST. If the field is set to true, the
4824
+ # commitment will be automatically renewed for either one or three years
4825
+ # according to the terms of the existing commitment.
4826
+ # Corresponds to the JSON property `autoRenew`
4827
+ # @return [Boolean]
4828
+ attr_accessor :auto_renew
4829
+ alias_method :auto_renew?, :auto_renew
4830
+
4790
4831
  # The category of the commitment. Category MACHINE specifies commitments
4791
4832
  # composed of machine resources such as VCPU or MEMORY, listed in resources.
4792
4833
  # Category LICENSE specifies commitments composed of software licenses, listed
@@ -4897,6 +4938,7 @@ module Google
4897
4938
 
4898
4939
  # Update properties of this object
4899
4940
  def update!(**args)
4941
+ @auto_renew = args[:auto_renew] if args.key?(:auto_renew)
4900
4942
  @category = args[:category] if args.key?(:category)
4901
4943
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
4902
4944
  @description = args[:description] if args.key?(:description)
@@ -5405,14 +5447,15 @@ module Google
5405
5447
  end
5406
5448
  end
5407
5449
 
5408
- # The specification for allowing client side cross-origin requests. Please see
5409
- # W3C Recommendation for Cross Origin Resource Sharing
5450
+ # The specification for allowing client-side cross-origin requests. For more
5451
+ # information about the W3C recommendation for cross-origin resource sharing (
5452
+ # CORS), see Fetch API Living Standard.
5410
5453
  class CorsPolicy
5411
5454
  include Google::Apis::Core::Hashable
5412
5455
 
5413
5456
  # In response to a preflight request, setting this to true indicates that the
5414
- # actual request can include user credentials. This translates to the Access-
5415
- # Control-Allow-Credentials header. Default is false.
5457
+ # actual request can include user credentials. This field translates to the
5458
+ # Access-Control-Allow-Credentials header. Default is false.
5416
5459
  # Corresponds to the JSON property `allowCredentials`
5417
5460
  # @return [Boolean]
5418
5461
  attr_accessor :allow_credentials
@@ -5428,23 +5471,23 @@ module Google
5428
5471
  # @return [Array<String>]
5429
5472
  attr_accessor :allow_methods
5430
5473
 
5431
- # Specifies the regualar expression patterns that match allowed origins. For
5432
- # regular expression grammar please see github.com/google/re2/wiki/Syntax An
5433
- # origin is allowed if it matches either an item in allowOrigins or an item in
5474
+ # Specifies a regular expression that matches allowed origins. For more
5475
+ # information about the regular expression syntax, see Syntax. An origin is
5476
+ # allowed if it matches either an item in allowOrigins or an item in
5434
5477
  # allowOriginRegexes.
5435
5478
  # Corresponds to the JSON property `allowOriginRegexes`
5436
5479
  # @return [Array<String>]
5437
5480
  attr_accessor :allow_origin_regexes
5438
5481
 
5439
- # Specifies the list of origins that will be allowed to do CORS requests. An
5440
- # origin is allowed if it matches either an item in allowOrigins or an item in
5482
+ # Specifies the list of origins that is allowed to do CORS requests. An origin
5483
+ # is allowed if it matches either an item in allowOrigins or an item in
5441
5484
  # allowOriginRegexes.
5442
5485
  # Corresponds to the JSON property `allowOrigins`
5443
5486
  # @return [Array<String>]
5444
5487
  attr_accessor :allow_origins
5445
5488
 
5446
- # If true, specifies the CORS policy is disabled. The default value of false,
5447
- # which indicates that the CORS policy is in effect.
5489
+ # If true, the setting specifies the CORS policy is disabled. The default value
5490
+ # of false, which indicates that the CORS policy is in effect.
5448
5491
  # Corresponds to the JSON property `disabled`
5449
5492
  # @return [Boolean]
5450
5493
  attr_accessor :disabled
@@ -5456,7 +5499,7 @@ module Google
5456
5499
  attr_accessor :expose_headers
5457
5500
 
5458
5501
  # Specifies how long results of a preflight request can be cached in seconds.
5459
- # This translates to the Access-Control-Max-Age header.
5502
+ # This field translates to the Access-Control-Max-Age header.
5460
5503
  # Corresponds to the JSON property `maxAge`
5461
5504
  # @return [Fixnum]
5462
5505
  attr_accessor :max_age
@@ -7582,8 +7625,8 @@ module Google
7582
7625
 
7583
7626
  # Name of the resource; provided by the client when the resource is created. The
7584
7627
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
7585
- # name must be 1-63 characters long and match the regular expression [a-z]([-a-
7586
- # z0-9]*[a-z0-9])?. The first character must be a lowercase letter, and all
7628
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
7629
+ # z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all
7587
7630
  # following characters (except for the last character) must be a dash, lowercase
7588
7631
  # letter, or digit. The last character must be a lowercase letter or digit.
7589
7632
  # Corresponds to the JSON property `name`
@@ -8661,8 +8704,7 @@ module Google
8661
8704
  attr_accessor :self_link
8662
8705
 
8663
8706
  # Service Directory resources to register this forwarding rule with. Currently,
8664
- # only supports a single Service Directory resource. It is only supported for
8665
- # internal load balancing.
8707
+ # only supports a single Service Directory resource.
8666
8708
  # Corresponds to the JSON property `serviceDirectoryRegistrations`
8667
8709
  # @return [Array<Google::Apis::ComputeBeta::ForwardingRuleServiceDirectoryRegistration>]
8668
8710
  attr_accessor :service_directory_registrations
@@ -9244,31 +9286,31 @@ module Google
9244
9286
 
9245
9287
  # An Identity and Access Management (IAM) policy, which specifies access
9246
9288
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
9247
- # A `binding` binds one or more `members` to a single `role`. Members can be
9248
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
9249
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
9250
- # role or a user-created custom role. For some types of Google Cloud resources,
9251
- # a `binding` can also specify a `condition`, which is a logical expression that
9252
- # allows access to a resource only if the expression evaluates to `true`. A
9253
- # condition can add constraints based on attributes of the request, the resource,
9254
- # or both. To learn which resources support conditions in their IAM policies,
9255
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
9256
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
9257
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
9258
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
9259
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
9260
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
9261
- # title": "expirable access", "description": "Does not grant access after Sep
9262
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
9263
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
9264
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
9265
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
9266
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
9267
- # roles/resourcemanager.organizationViewer condition: title: expirable access
9268
- # description: Does not grant access after Sep 2020 expression: request.time <
9269
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
9270
- # description of IAM and its features, see the [IAM documentation](https://cloud.
9271
- # google.com/iam/docs/).
9289
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
9290
+ # Principals can be user accounts, service accounts, Google groups, and domains (
9291
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
9292
+ # an IAM predefined role or a user-created custom role. For some types of Google
9293
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
9294
+ # logical expression that allows access to a resource only if the expression
9295
+ # evaluates to `true`. A condition can add constraints based on attributes of
9296
+ # the request, the resource, or both. To learn which resources support
9297
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
9298
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
9299
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
9300
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
9301
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
9302
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
9303
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
9304
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
9305
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
9306
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
9307
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
9308
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
9309
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
9310
+ # access description: Does not grant access after Sep 2020 expression: request.
9311
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
9312
+ # a description of IAM and its features, see the [IAM documentation](https://
9313
+ # cloud.google.com/iam/docs/).
9272
9314
  # Corresponds to the JSON property `policy`
9273
9315
  # @return [Google::Apis::ComputeBeta::Policy]
9274
9316
  attr_accessor :policy
@@ -9341,31 +9383,31 @@ module Google
9341
9383
 
9342
9384
  # An Identity and Access Management (IAM) policy, which specifies access
9343
9385
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
9344
- # A `binding` binds one or more `members` to a single `role`. Members can be
9345
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
9346
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
9347
- # role or a user-created custom role. For some types of Google Cloud resources,
9348
- # a `binding` can also specify a `condition`, which is a logical expression that
9349
- # allows access to a resource only if the expression evaluates to `true`. A
9350
- # condition can add constraints based on attributes of the request, the resource,
9351
- # or both. To learn which resources support conditions in their IAM policies,
9352
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
9353
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
9354
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
9355
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
9356
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
9357
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
9358
- # title": "expirable access", "description": "Does not grant access after Sep
9359
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
9360
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
9361
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
9362
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
9363
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
9364
- # roles/resourcemanager.organizationViewer condition: title: expirable access
9365
- # description: Does not grant access after Sep 2020 expression: request.time <
9366
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
9367
- # description of IAM and its features, see the [IAM documentation](https://cloud.
9368
- # google.com/iam/docs/).
9386
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
9387
+ # Principals can be user accounts, service accounts, Google groups, and domains (
9388
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
9389
+ # an IAM predefined role or a user-created custom role. For some types of Google
9390
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
9391
+ # logical expression that allows access to a resource only if the expression
9392
+ # evaluates to `true`. A condition can add constraints based on attributes of
9393
+ # the request, the resource, or both. To learn which resources support
9394
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
9395
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
9396
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
9397
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
9398
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
9399
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
9400
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
9401
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
9402
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
9403
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
9404
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
9405
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
9406
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
9407
+ # access description: Does not grant access after Sep 2020 expression: request.
9408
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
9409
+ # a description of IAM and its features, see the [IAM documentation](https://
9410
+ # cloud.google.com/iam/docs/).
9369
9411
  # Corresponds to the JSON property `policy`
9370
9412
  # @return [Google::Apis::ComputeBeta::Policy]
9371
9413
  attr_accessor :policy
@@ -9487,8 +9529,11 @@ module Google
9487
9529
  class GuestOsFeature
9488
9530
  include Google::Apis::Core::Hashable
9489
9531
 
9490
- # The ID of a supported feature. Read Enabling guest operating system features
9491
- # to see a list of available options.
9532
+ # The ID of a supported feature. To add multiple values, use commas to separate
9533
+ # values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE -
9534
+ # WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - SECURE_BOOT - GVNIC -
9535
+ # SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE For more information, see Enabling
9536
+ # guest operating system features.
9492
9537
  # Corresponds to the JSON property `type`
9493
9538
  # @return [String]
9494
9539
  attr_accessor :type
@@ -9822,8 +9867,8 @@ module Google
9822
9867
  attr_accessor :timeout_sec
9823
9868
 
9824
9869
  # Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS or HTTP2.
9825
- # If not specified, the default is TCP. Exactly one of the protocol-specific
9826
- # health check field must be specified, which must match type field.
9870
+ # Exactly one of the protocol-specific health check field must be specified,
9871
+ # which must match type field.
9827
9872
  # Corresponds to the JSON property `type`
9828
9873
  # @return [String]
9829
9874
  attr_accessor :type
@@ -10648,7 +10693,8 @@ module Google
10648
10693
  # port numbers in the format host:port. * matches any string of ([a-z0-9-.]*).
10649
10694
  # In that case, * must be the first character and must be followed in the
10650
10695
  # pattern by either - or .. * based matching is not supported when the URL map
10651
- # is bound to target gRPC proxy that has validateForProxyless field set to true.
10696
+ # is bound to a target gRPC proxy that has the validateForProxyless field set to
10697
+ # true.
10652
10698
  # Corresponds to the JSON property `hosts`
10653
10699
  # @return [Array<String>]
10654
10700
  attr_accessor :hosts
@@ -10675,8 +10721,8 @@ module Google
10675
10721
  class HttpFaultAbort
10676
10722
  include Google::Apis::Core::Hashable
10677
10723
 
10678
- # The HTTP status code used to abort the request. The value must be between 200
10679
- # and 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP
10724
+ # The HTTP status code used to abort the request. The value must be from 200 to
10725
+ # 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP
10680
10726
  # status code according to this mapping table. HTTP status 200 is mapped to gRPC
10681
10727
  # status UNKNOWN. Injecting an OK status is currently not supported by Traffic
10682
10728
  # Director.
@@ -10684,8 +10730,8 @@ module Google
10684
10730
  # @return [Fixnum]
10685
10731
  attr_accessor :http_status
10686
10732
 
10687
- # The percentage of traffic (connections/operations/requests) which will be
10688
- # aborted as part of fault injection. The value must be between 0.0 and 100.0
10733
+ # The percentage of traffic for connections, operations, or requests that is
10734
+ # aborted as part of fault injection. The value must be from 0.0 to 100.0
10689
10735
  # inclusive.
10690
10736
  # Corresponds to the JSON property `percentage`
10691
10737
  # @return [Float]
@@ -10702,8 +10748,8 @@ module Google
10702
10748
  end
10703
10749
  end
10704
10750
 
10705
- # Specifies the delay introduced by Loadbalancer before forwarding the request
10706
- # to the backend service as part of fault injection.
10751
+ # Specifies the delay introduced by the load balancer before forwarding the
10752
+ # request to the backend service as part of fault injection.
10707
10753
  class HttpFaultDelay
10708
10754
  include Google::Apis::Core::Hashable
10709
10755
 
@@ -10715,9 +10761,9 @@ module Google
10715
10761
  # @return [Google::Apis::ComputeBeta::Duration]
10716
10762
  attr_accessor :fixed_delay
10717
10763
 
10718
- # The percentage of traffic (connections/operations/requests) on which delay
10719
- # will be introduced as part of fault injection. The value must be between 0.0
10720
- # and 100.0 inclusive.
10764
+ # The percentage of traffic for connections, operations, or requests for which a
10765
+ # delay is introduced as part of fault injection. The value must be from 0.0 to
10766
+ # 100.0 inclusive.
10721
10767
  # Corresponds to the JSON property `percentage`
10722
10768
  # @return [Float]
10723
10769
  attr_accessor :percentage
@@ -10736,9 +10782,9 @@ module Google
10736
10782
  # The specification for fault injection introduced into traffic to test the
10737
10783
  # resiliency of clients to backend service failure. As part of fault injection,
10738
10784
  # when clients send requests to a backend service, delays can be introduced by
10739
- # Loadbalancer on a percentage of requests before sending those request to the
10740
- # backend service. Similarly requests from clients can be aborted by the
10741
- # Loadbalancer for a percentage of requests.
10785
+ # the load balancer on a percentage of requests before sending those request to
10786
+ # the backend service. Similarly requests from clients can be aborted by the
10787
+ # load balancer for a percentage of requests.
10742
10788
  class HttpFaultInjection
10743
10789
  include Google::Apis::Core::Hashable
10744
10790
 
@@ -10747,8 +10793,8 @@ module Google
10747
10793
  # @return [Google::Apis::ComputeBeta::HttpFaultAbort]
10748
10794
  attr_accessor :abort
10749
10795
 
10750
- # Specifies the delay introduced by Loadbalancer before forwarding the request
10751
- # to the backend service as part of fault injection.
10796
+ # Specifies the delay introduced by the load balancer before forwarding the
10797
+ # request to the backend service as part of fault injection.
10752
10798
  # Corresponds to the JSON property `delay`
10753
10799
  # @return [Google::Apis::ComputeBeta::HttpFaultDelay]
10754
10800
  attr_accessor :delay
@@ -10806,25 +10852,25 @@ module Google
10806
10852
  class HttpHeaderAction
10807
10853
  include Google::Apis::Core::Hashable
10808
10854
 
10809
- # Headers to add to a matching request prior to forwarding the request to the
10855
+ # Headers to add to a matching request before forwarding the request to the
10810
10856
  # backendService.
10811
10857
  # Corresponds to the JSON property `requestHeadersToAdd`
10812
10858
  # @return [Array<Google::Apis::ComputeBeta::HttpHeaderOption>]
10813
10859
  attr_accessor :request_headers_to_add
10814
10860
 
10815
10861
  # A list of header names for headers that need to be removed from the request
10816
- # prior to forwarding the request to the backendService.
10862
+ # before forwarding the request to the backendService.
10817
10863
  # Corresponds to the JSON property `requestHeadersToRemove`
10818
10864
  # @return [Array<String>]
10819
10865
  attr_accessor :request_headers_to_remove
10820
10866
 
10821
- # Headers to add the response prior to sending the response back to the client.
10867
+ # Headers to add the response before sending the response back to the client.
10822
10868
  # Corresponds to the JSON property `responseHeadersToAdd`
10823
10869
  # @return [Array<Google::Apis::ComputeBeta::HttpHeaderOption>]
10824
10870
  attr_accessor :response_headers_to_add
10825
10871
 
10826
10872
  # A list of header names for headers that need to be removed from the response
10827
- # prior to sending the response back to the client.
10873
+ # before sending the response back to the client.
10828
10874
  # Corresponds to the JSON property `responseHeadersToRemove`
10829
10875
  # @return [Array<String>]
10830
10876
  attr_accessor :response_headers_to_remove
@@ -10854,21 +10900,21 @@ module Google
10854
10900
 
10855
10901
  # The name of the HTTP header to match. For matching against the HTTP request's
10856
10902
  # authority, use a headerMatch with the header name ":authority". For matching a
10857
- # request's method, use the headerName ":method". When the URL map is bound to
10858
- # target gRPC proxy that has validateForProxyless field set to true, only non-
10859
- # binary user-specified custom metadata and the `content-type` header are
10903
+ # request's method, use the headerName ":method". When the URL map is bound to a
10904
+ # target gRPC proxy that has the validateForProxyless field set to true, only
10905
+ # non-binary user-specified custom metadata and the `content-type` header are
10860
10906
  # supported. The following transport-level headers cannot be used in header
10861
10907
  # matching rules: `:authority`, `:method`, `:path`, `:scheme`, `user-agent`, `
10862
10908
  # accept-encoding`, `content-encoding`, `grpc-accept-encoding`, `grpc-encoding`,
10863
10909
  # `grpc-previous-rpc-attempts`, `grpc-tags-bin`, `grpc-timeout` and `grpc-trace-
10864
- # bin.
10910
+ # bin`.
10865
10911
  # Corresponds to the JSON property `headerName`
10866
10912
  # @return [String]
10867
10913
  attr_accessor :header_name
10868
10914
 
10869
- # If set to false, the headerMatch is considered a match if the match criteria
10870
- # above are met. If set to true, the headerMatch is considered a match if the
10871
- # match criteria above are NOT met. The default setting is false.
10915
+ # If set to false, the headerMatch is considered a match if the preceding match
10916
+ # criteria are met. If set to true, the headerMatch is considered a match if the
10917
+ # preceding match criteria are NOT met. The default setting is false.
10872
10918
  # Corresponds to the JSON property `invertMatch`
10873
10919
  # @return [Boolean]
10874
10920
  attr_accessor :invert_match
@@ -10896,13 +10942,13 @@ module Google
10896
10942
  attr_accessor :range_match
10897
10943
 
10898
10944
  # The value of the header must match the regular expression specified in
10899
- # regexMatch. For regular expression grammar, please see: github.com/google/re2/
10900
- # wiki/Syntax For matching against a port specified in the HTTP request, use a
10901
- # headerMatch with headerName set to PORT and a regular expression that
10902
- # satisfies the RFC2616 Host header's port specifier. Only one of exactMatch,
10903
- # prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.
10904
- # Note that regexMatch only applies to Loadbalancers that have their
10905
- # loadBalancingScheme set to INTERNAL_SELF_MANAGED.
10945
+ # regexMatch. For more information about regular expression syntax, see Syntax.
10946
+ # For matching against a port specified in the HTTP request, use a headerMatch
10947
+ # with headerName set to PORT and a regular expression that satisfies the
10948
+ # RFC2616 Host header's port specifier. Only one of exactMatch, prefixMatch,
10949
+ # suffixMatch, regexMatch, presentMatch or rangeMatch must be set. regexMatch
10950
+ # only applies to load balancers that have loadBalancingScheme set to
10951
+ # INTERNAL_SELF_MANAGED.
10906
10952
  # Corresponds to the JSON property `regexMatch`
10907
10953
  # @return [String]
10908
10954
  attr_accessor :regex_match
@@ -11197,8 +11243,8 @@ module Google
11197
11243
  include Google::Apis::Core::Hashable
11198
11244
 
11199
11245
  # The queryParameterMatch matches if the value of the parameter exactly matches
11200
- # the contents of exactMatch. Only one of presentMatch, exactMatch or regexMatch
11201
- # must be set.
11246
+ # the contents of exactMatch. Only one of presentMatch, exactMatch, or
11247
+ # regexMatch must be set.
11202
11248
  # Corresponds to the JSON property `exactMatch`
11203
11249
  # @return [String]
11204
11250
  attr_accessor :exact_match
@@ -11211,17 +11257,17 @@ module Google
11211
11257
 
11212
11258
  # Specifies that the queryParameterMatch matches if the request contains the
11213
11259
  # query parameter, irrespective of whether the parameter has a value or not.
11214
- # Only one of presentMatch, exactMatch or regexMatch must be set.
11260
+ # Only one of presentMatch, exactMatch, or regexMatch must be set.
11215
11261
  # Corresponds to the JSON property `presentMatch`
11216
11262
  # @return [Boolean]
11217
11263
  attr_accessor :present_match
11218
11264
  alias_method :present_match?, :present_match
11219
11265
 
11220
11266
  # The queryParameterMatch matches if the value of the parameter matches the
11221
- # regular expression specified by regexMatch. For the regular expression grammar,
11222
- # please see github.com/google/re2/wiki/Syntax Only one of presentMatch,
11223
- # exactMatch or regexMatch must be set. Note that regexMatch only applies when
11224
- # the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.
11267
+ # regular expression specified by regexMatch. For more information about regular
11268
+ # expression syntax, see Syntax. Only one of presentMatch, exactMatch, or
11269
+ # regexMatch must be set. regexMatch only applies when the loadBalancingScheme
11270
+ # is set to INTERNAL_SELF_MANAGED.
11225
11271
  # Corresponds to the JSON property `regexMatch`
11226
11272
  # @return [String]
11227
11273
  attr_accessor :regex_match
@@ -11243,15 +11289,15 @@ module Google
11243
11289
  class HttpRedirectAction
11244
11290
  include Google::Apis::Core::Hashable
11245
11291
 
11246
- # The host that will be used in the redirect response instead of the one that
11247
- # was supplied in the request. The value must be between 1 and 255 characters.
11292
+ # The host that is used in the redirect response instead of the one that was
11293
+ # supplied in the request. The value must be from 1 to 255 characters.
11248
11294
  # Corresponds to the JSON property `hostRedirect`
11249
11295
  # @return [String]
11250
11296
  attr_accessor :host_redirect
11251
11297
 
11252
- # If set to true, the URL scheme in the redirected request is set to https. If
11253
- # set to false, the URL scheme of the redirected request will remain the same as
11254
- # that of the request. This must only be set for UrlMaps used in
11298
+ # If set to true, the URL scheme in the redirected request is set to HTTPS. If
11299
+ # set to false, the URL scheme of the redirected request remains the same as
11300
+ # that of the request. This must only be set for URL maps used in
11255
11301
  # TargetHttpProxys. Setting this true for TargetHttpsProxy is not permitted. The
11256
11302
  # default is set to false.
11257
11303
  # Corresponds to the JSON property `httpsRedirect`
@@ -11259,11 +11305,11 @@ module Google
11259
11305
  attr_accessor :https_redirect
11260
11306
  alias_method :https_redirect?, :https_redirect
11261
11307
 
11262
- # The path that will be used in the redirect response instead of the one that
11263
- # was supplied in the request. pathRedirect cannot be supplied together with
11308
+ # The path that is used in the redirect response instead of the one that was
11309
+ # supplied in the request. pathRedirect cannot be supplied together with
11264
11310
  # prefixRedirect. Supply one alone or neither. If neither is supplied, the path
11265
- # of the original request will be used for the redirect. The value must be
11266
- # between 1 and 1024 characters.
11311
+ # of the original request is used for the redirect. The value must be from 1 to
11312
+ # 1024 characters.
11267
11313
  # Corresponds to the JSON property `pathRedirect`
11268
11314
  # @return [String]
11269
11315
  attr_accessor :path_redirect
@@ -11271,8 +11317,8 @@ module Google
11271
11317
  # The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,
11272
11318
  # retaining the remaining portion of the URL before redirecting the request.
11273
11319
  # prefixRedirect cannot be supplied together with pathRedirect. Supply one alone
11274
- # or neither. If neither is supplied, the path of the original request will be
11275
- # used for the redirect. The value must be between 1 and 1024 characters.
11320
+ # or neither. If neither is supplied, the path of the original request is used
11321
+ # for the redirect. The value must be from 1 to 1024 characters.
11276
11322
  # Corresponds to the JSON property `prefixRedirect`
11277
11323
  # @return [String]
11278
11324
  attr_accessor :prefix_redirect
@@ -11281,14 +11327,14 @@ module Google
11281
11327
  # MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. -
11282
11328
  # FOUND, which corresponds to 302. - SEE_OTHER which corresponds to 303. -
11283
11329
  # TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method
11284
- # will be retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case,
11285
- # the request method will be retained.
11330
+ # is retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case, the
11331
+ # request method is retained.
11286
11332
  # Corresponds to the JSON property `redirectResponseCode`
11287
11333
  # @return [String]
11288
11334
  attr_accessor :redirect_response_code
11289
11335
 
11290
11336
  # If set to true, any accompanying query portion of the original URL is removed
11291
- # prior to redirecting the request. If set to false, the query portion of the
11337
+ # before redirecting the request. If set to false, the query portion of the
11292
11338
  # original URL is retained. The default is set to false.
11293
11339
  # Corresponds to the JSON property `stripQuery`
11294
11340
  # @return [Boolean]
@@ -11329,25 +11375,27 @@ module Google
11329
11375
  attr_accessor :per_try_timeout
11330
11376
 
11331
11377
  # Specifies one or more conditions when this retry policy applies. Valid values
11332
- # are: - 5xx: Retry will be attempted if the instance or endpoint responds with
11333
- # any 5xx response code, or if the instance or endpoint does not respond at all,
11334
- # example: disconnects, reset, read timeout, connection failure, and refused
11378
+ # are: - 5xx: retry is attempted if the instance or endpoint responds with any
11379
+ # 5xx response code, or if the instance or endpoint does not respond at all. For
11380
+ # example, disconnects, reset, read timeout, connection failure, and refused
11335
11381
  # streams. - gateway-error: Similar to 5xx, but only applies to response codes
11336
- # 502, 503 or 504. - - connect-failure: A retry will be attempted on failures
11337
- # connecting to the instance or endpoint, for example due to connection timeouts.
11338
- # - retriable-4xx: A retry will be attempted if the instance or endpoint
11339
- # responds with a retriable 4xx response code. Currently the only retriable
11340
- # error supported is 409. - refused-stream: A retry will be attempted if the
11341
- # instance or endpoint resets the stream with a REFUSED_STREAM error code. This
11342
- # reset type indicates that it is safe to retry. - cancelled: A retry will be
11343
- # attempted if the gRPC status code in the response header is set to cancelled. -
11344
- # deadline-exceeded: A retry will be attempted if the gRPC status code in the
11345
- # response header is set to deadline-exceeded. - internal: A retry will be
11346
- # attempted if the gRPC status code in the response header is set to internal. -
11347
- # resource-exhausted: A retry will be attempted if the gRPC status code in the
11348
- # response header is set to resource-exhausted. - unavailable: A retry will be
11349
- # attempted if the gRPC status code in the response header is set to unavailable.
11350
- #
11382
+ # 502, 503 or 504. - connect-failure: a retry is attempted on failures
11383
+ # connecting to the instance or endpoint. For example, connection timeouts. -
11384
+ # retriable-4xx: a retry is attempted if the instance or endpoint responds with
11385
+ # a 4xx response code. The only error that you can retry is error code 409. -
11386
+ # refused-stream: a retry is attempted if the instance or endpoint resets the
11387
+ # stream with a REFUSED_STREAM error code. This reset type indicates that it is
11388
+ # safe to retry. - cancelled: a retry is attempted if the gRPC status code in
11389
+ # the response header is set to cancelled. - deadline-exceeded: a retry is
11390
+ # attempted if the gRPC status code in the response header is set to deadline-
11391
+ # exceeded. - internal: a retry is attempted if the gRPC status code in the
11392
+ # response header is set to internal. - resource-exhausted: a retry is attempted
11393
+ # if the gRPC status code in the response header is set to resource-exhausted. -
11394
+ # unavailable: a retry is attempted if the gRPC status code in the response
11395
+ # header is set to unavailable. Only the following codes are supported when the
11396
+ # URL map is bound to target gRPC proxy that has validateForProxyless field set
11397
+ # to true. - cancelled - deadline-exceeded - internal - resource-exhausted -
11398
+ # unavailable
11351
11399
  # Corresponds to the JSON property `retryConditions`
11352
11400
  # @return [Array<String>]
11353
11401
  attr_accessor :retry_conditions
@@ -11368,8 +11416,9 @@ module Google
11368
11416
  class HttpRouteAction
11369
11417
  include Google::Apis::Core::Hashable
11370
11418
 
11371
- # The specification for allowing client side cross-origin requests. Please see
11372
- # W3C Recommendation for Cross Origin Resource Sharing
11419
+ # The specification for allowing client-side cross-origin requests. For more
11420
+ # information about the W3C recommendation for cross-origin resource sharing (
11421
+ # CORS), see Fetch API Living Standard.
11373
11422
  # Corresponds to the JSON property `corsPolicy`
11374
11423
  # @return [Google::Apis::ComputeBeta::CorsPolicy]
11375
11424
  attr_accessor :cors_policy
@@ -11377,9 +11426,9 @@ module Google
11377
11426
  # The specification for fault injection introduced into traffic to test the
11378
11427
  # resiliency of clients to backend service failure. As part of fault injection,
11379
11428
  # when clients send requests to a backend service, delays can be introduced by
11380
- # Loadbalancer on a percentage of requests before sending those request to the
11381
- # backend service. Similarly requests from clients can be aborted by the
11382
- # Loadbalancer for a percentage of requests.
11429
+ # the load balancer on a percentage of requests before sending those request to
11430
+ # the backend service. Similarly requests from clients can be aborted by the
11431
+ # load balancer for a percentage of requests.
11383
11432
  # Corresponds to the JSON property `faultInjectionPolicy`
11384
11433
  # @return [Google::Apis::ComputeBeta::HttpFaultInjection]
11385
11434
  attr_accessor :fault_injection_policy
@@ -11393,9 +11442,9 @@ module Google
11393
11442
  attr_accessor :max_stream_duration
11394
11443
 
11395
11444
  # A policy that specifies how requests intended for the route's backends are
11396
- # shadowed to a separate mirrored backend service. Loadbalancer does not wait
11397
- # for responses from the shadow service. Prior to sending traffic to the shadow
11398
- # service, the host / authority header is suffixed with -shadow.
11445
+ # shadowed to a separate mirrored backend service. The load balancer doesn't
11446
+ # wait for responses from the shadow service. Before sending traffic to the
11447
+ # shadow service, the host or authority header is suffixed with -shadow.
11399
11448
  # Corresponds to the JSON property `requestMirrorPolicy`
11400
11449
  # @return [Google::Apis::ComputeBeta::RequestMirrorPolicy]
11401
11450
  attr_accessor :request_mirror_policy
@@ -11423,7 +11472,7 @@ module Google
11423
11472
  # occurs. The weights determine the fraction of traffic that flows to their
11424
11473
  # corresponding backend service. If all traffic needs to go to a single backend
11425
11474
  # service, there must be one weightedBackendService with weight set to a non-
11426
- # zero number. Once a backendService is identified and before forwarding the
11475
+ # zero number. After a backend service is identified and before forwarding the
11427
11476
  # request to the backend service, advanced routing actions such as URL rewrites
11428
11477
  # and header transformations are applied depending on additional settings
11429
11478
  # specified in this HttpRouteAction.
@@ -11448,8 +11497,8 @@ module Google
11448
11497
  end
11449
11498
  end
11450
11499
 
11451
- # An HttpRouteRule specifies how to match an HTTP request and the corresponding
11452
- # routing action that load balancing proxies will perform.
11500
+ # The HttpRouteRule setting specifies how to match an HTTP request and the
11501
+ # corresponding routing action that load balancing proxies perform.
11453
11502
  class HttpRouteRule
11454
11503
  include Google::Apis::Core::Hashable
11455
11504
 
@@ -11466,9 +11515,9 @@ module Google
11466
11515
  attr_accessor :header_action
11467
11516
 
11468
11517
  # Outbound route specific configuration for networkservices.HttpFilter resources
11469
- # enabled by Traffic Director. httpFilterConfigs only applies for Loadbalancers
11518
+ # enabled by Traffic Director. httpFilterConfigs only applies for load balancers
11470
11519
  # with loadBalancingScheme set to INTERNAL_SELF_MANAGED. See ForwardingRule for
11471
- # more details. Not supported when the URL map is bound to target gRPC proxy
11520
+ # more details. Not supported when the URL map is bound to a target gRPC proxy
11472
11521
  # that has validateForProxyless field set to true.
11473
11522
  # Corresponds to the JSON property `httpFilterConfigs`
11474
11523
  # @return [Array<Google::Apis::ComputeBeta::HttpFilterConfig>]
@@ -11476,10 +11525,10 @@ module Google
11476
11525
 
11477
11526
  # Outbound route specific metadata supplied to networkservices.HttpFilter
11478
11527
  # resources enabled by Traffic Director. httpFilterMetadata only applies for
11479
- # Loadbalancers with loadBalancingScheme set to INTERNAL_SELF_MANAGED. See
11528
+ # load balancers with loadBalancingScheme set to INTERNAL_SELF_MANAGED. See
11480
11529
  # ForwardingRule for more details. The only configTypeUrl supported is type.
11481
11530
  # googleapis.com/google.protobuf.Struct Not supported when the URL map is bound
11482
- # to target gRPC proxy that has validateForProxyless field set to true.
11531
+ # to a target gRPC proxy that has validateForProxyless field set to true.
11483
11532
  # Corresponds to the JSON property `httpFilterMetadata`
11484
11533
  # @return [Array<Google::Apis::ComputeBeta::HttpFilterConfig>]
11485
11534
  attr_accessor :http_filter_metadata
@@ -11494,11 +11543,11 @@ module Google
11494
11543
  attr_accessor :match_rules
11495
11544
 
11496
11545
  # For routeRules within a given pathMatcher, priority determines the order in
11497
- # which load balancer will interpret routeRules. RouteRules are evaluated in
11498
- # order of priority, from the lowest to highest number. The priority of a rule
11546
+ # which a load balancer interprets routeRules. RouteRules are evaluated in order
11547
+ # of priority, from the lowest to highest number. The priority of a rule
11499
11548
  # decreases as its number increases (1, 2, 3, N+1). The first rule that matches
11500
11549
  # the request is applied. You cannot configure two or more routeRules with the
11501
- # same priority. Priority for each rule must be set to a number between 0 and
11550
+ # same priority. Priority for each rule must be set to a number from 0 to
11502
11551
  # 2147483647 inclusive. Priority numbers can have gaps, which enable you to add
11503
11552
  # or remove rules in the future without affecting the rest of the rules. For
11504
11553
  # example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to
@@ -11509,24 +11558,24 @@ module Google
11509
11558
  attr_accessor :priority
11510
11559
 
11511
11560
  # In response to a matching matchRule, the load balancer performs advanced
11512
- # routing actions like URL rewrites, header transformations, etc. prior to
11561
+ # routing actions, such as URL rewrites and header transformations, before
11513
11562
  # forwarding the request to the selected backend. If routeAction specifies any
11514
11563
  # weightedBackendServices, service must not be set. Conversely if service is set,
11515
11564
  # routeAction cannot contain any weightedBackendServices. Only one of
11516
11565
  # urlRedirect, service or routeAction.weightedBackendService must be set.
11517
11566
  # UrlMaps for external HTTP(S) load balancers support only the urlRewrite action
11518
- # within a routeRule's routeAction.
11567
+ # within a route rule's routeAction.
11519
11568
  # Corresponds to the JSON property `routeAction`
11520
11569
  # @return [Google::Apis::ComputeBeta::HttpRouteAction]
11521
11570
  attr_accessor :route_action
11522
11571
 
11523
11572
  # The full or partial URL of the backend service resource to which traffic is
11524
- # directed if this rule is matched. If routeAction is additionally specified,
11525
- # advanced routing actions like URL Rewrites, etc. take effect prior to sending
11526
- # the request to the backend. However, if service is specified, routeAction
11527
- # cannot contain any weightedBackendService s. Conversely, if routeAction
11528
- # specifies any weightedBackendServices, service must not be specified. Only one
11529
- # of urlRedirect, service or routeAction.weightedBackendService must be set.
11573
+ # directed if this rule is matched. If routeAction is also specified, advanced
11574
+ # routing actions, such as URL rewrites, take effect before sending the request
11575
+ # to the backend. However, if service is specified, routeAction cannot contain
11576
+ # any weightedBackendServices. Conversely, if routeAction specifies any
11577
+ # weightedBackendServices, service must not be specified. Only one of
11578
+ # urlRedirect, service or routeAction.weightedBackendService must be set.
11530
11579
  # Corresponds to the JSON property `service`
11531
11580
  # @return [String]
11532
11581
  attr_accessor :service
@@ -11561,9 +11610,9 @@ module Google
11561
11610
 
11562
11611
  # For satisfying the matchRule condition, the path of the request must exactly
11563
11612
  # match the value specified in fullPathMatch after removing any query parameters
11564
- # and anchor that may be part of the original URL. fullPathMatch must be between
11565
- # 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch
11566
- # must be specified.
11613
+ # and anchor that may be part of the original URL. fullPathMatch must be from 1
11614
+ # to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must
11615
+ # be specified.
11567
11616
  # Corresponds to the JSON property `fullPathMatch`
11568
11617
  # @return [String]
11569
11618
  attr_accessor :full_path_match
@@ -11576,53 +11625,52 @@ module Google
11576
11625
 
11577
11626
  # Specifies that prefixMatch and fullPathMatch matches are case sensitive. The
11578
11627
  # default value is false. ignoreCase must not be used with regexMatch. Not
11579
- # supported when the URL map is bound to target gRPC proxy.
11628
+ # supported when the URL map is bound to a target gRPC proxy.
11580
11629
  # Corresponds to the JSON property `ignoreCase`
11581
11630
  # @return [Boolean]
11582
11631
  attr_accessor :ignore_case
11583
11632
  alias_method :ignore_case?, :ignore_case
11584
11633
 
11585
- # Opaque filter criteria used by Loadbalancer to restrict routing configuration
11586
- # to a limited set of xDS compliant clients. In their xDS requests to
11587
- # Loadbalancer, xDS clients present node metadata. When there is a match, the
11588
- # relevant routing configuration is made available to those proxies. For each
11589
- # metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY,
11590
- # at least one of the filterLabels must match the corresponding label provided
11591
- # in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of
11592
- # its filterLabels must match with corresponding labels provided in the metadata.
11593
- # If multiple metadataFilters are specified, all of them need to be satisfied
11594
- # in order to be considered a match. metadataFilters specified here will be
11634
+ # Opaque filter criteria used by the load balancer to restrict routing
11635
+ # configuration to a limited set of xDS compliant clients. In their xDS requests
11636
+ # to the load balancer, xDS clients present node metadata. When there is a match,
11637
+ # the relevant routing configuration is made available to those proxies. For
11638
+ # each metadataFilter in this list, if its filterMatchCriteria is set to
11639
+ # MATCH_ANY, at least one of the filterLabels must match the corresponding label
11640
+ # provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then
11641
+ # all of its filterLabels must match with corresponding labels provided in the
11642
+ # metadata. If multiple metadata filters are specified, all of them need to be
11643
+ # satisfied in order to be considered a match. metadataFilters specified here is
11595
11644
  # applied after those specified in ForwardingRule that refers to the UrlMap this
11596
- # HttpRouteRuleMatch belongs to. metadataFilters only applies to Loadbalancers
11597
- # that have their loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not
11598
- # supported when the URL map is bound to target gRPC proxy that has
11599
- # validateForProxyless field set to true.
11645
+ # HttpRouteRuleMatch belongs to. metadataFilters only applies to load balancers
11646
+ # that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not supported when
11647
+ # the URL map is bound to a target gRPC proxy that has validateForProxyless
11648
+ # field set to true.
11600
11649
  # Corresponds to the JSON property `metadataFilters`
11601
11650
  # @return [Array<Google::Apis::ComputeBeta::MetadataFilter>]
11602
11651
  attr_accessor :metadata_filters
11603
11652
 
11604
11653
  # For satisfying the matchRule condition, the request's path must begin with the
11605
- # specified prefixMatch. prefixMatch must begin with a /. The value must be
11606
- # between 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or
11607
- # regexMatch must be specified.
11654
+ # specified prefixMatch. prefixMatch must begin with a /. The value must be from
11655
+ # 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch
11656
+ # must be specified.
11608
11657
  # Corresponds to the JSON property `prefixMatch`
11609
11658
  # @return [String]
11610
11659
  attr_accessor :prefix_match
11611
11660
 
11612
11661
  # Specifies a list of query parameter match criteria, all of which must match
11613
11662
  # corresponding query parameters in the request. Not supported when the URL map
11614
- # is bound to target gRPC proxy.
11663
+ # is bound to a target gRPC proxy.
11615
11664
  # Corresponds to the JSON property `queryParameterMatches`
11616
11665
  # @return [Array<Google::Apis::ComputeBeta::HttpQueryParameterMatch>]
11617
11666
  attr_accessor :query_parameter_matches
11618
11667
 
11619
11668
  # For satisfying the matchRule condition, the path of the request must satisfy
11620
11669
  # the regular expression specified in regexMatch after removing any query
11621
- # parameters and anchor supplied with the original URL. For regular expression
11622
- # grammar please see github.com/google/re2/wiki/Syntax Only one of prefixMatch,
11623
- # fullPathMatch or regexMatch must be specified. Note that regexMatch only
11624
- # applies to Loadbalancers that have their loadBalancingScheme set to
11625
- # INTERNAL_SELF_MANAGED.
11670
+ # parameters and anchor supplied with the original URL. For more information
11671
+ # about regular expression syntax, see Syntax. Only one of prefixMatch,
11672
+ # fullPathMatch or regexMatch must be specified. regexMatch only applies to load
11673
+ # balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED.
11626
11674
  # Corresponds to the JSON property `regexMatch`
11627
11675
  # @return [String]
11628
11676
  attr_accessor :regex_match
@@ -11910,8 +11958,8 @@ module Google
11910
11958
  attr_accessor :family
11911
11959
 
11912
11960
  # A list of features to enable on the guest operating system. Applicable only
11913
- # for bootable images. Read Enabling guest operating system features to see a
11914
- # list of available options.
11961
+ # for bootable images. To see a list of available options, see the
11962
+ # guestOSfeatures[].type parameter.
11915
11963
  # Corresponds to the JSON property `guestOsFeatures`
11916
11964
  # @return [Array<Google::Apis::ComputeBeta::GuestOsFeature>]
11917
11965
  attr_accessor :guest_os_features
@@ -12561,6 +12609,11 @@ module Google
12561
12609
  # @return [Google::Apis::ComputeBeta::NetworkPerformanceConfig]
12562
12610
  attr_accessor :network_performance_config
12563
12611
 
12612
+ # Additional instance params.
12613
+ # Corresponds to the JSON property `params`
12614
+ # @return [Google::Apis::ComputeBeta::InstanceParams]
12615
+ attr_accessor :params
12616
+
12564
12617
  # PostKeyRevocationActionType of the instance.
12565
12618
  # Corresponds to the JSON property `postKeyRevocationActionType`
12566
12619
  # @return [String]
@@ -12704,6 +12757,7 @@ module Google
12704
12757
  @name = args[:name] if args.key?(:name)
12705
12758
  @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
12706
12759
  @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
12760
+ @params = args[:params] if args.key?(:params)
12707
12761
  @post_key_revocation_action_type = args[:post_key_revocation_action_type] if args.key?(:post_key_revocation_action_type)
12708
12762
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
12709
12763
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
@@ -15247,6 +15301,28 @@ module Google
15247
15301
  end
15248
15302
  end
15249
15303
 
15304
+ # Additional instance params.
15305
+ class InstanceParams
15306
+ include Google::Apis::Core::Hashable
15307
+
15308
+ # Resource manager tags to be bound to the instance. Tag keys and values have
15309
+ # the same definition as resource manager tags. Keys must be in the format `
15310
+ # tagKeys/`tag_key_id``, and values are in the format `tagValues/456`. The field
15311
+ # is ignored (both PUT & PATCH) when empty.
15312
+ # Corresponds to the JSON property `resourceManagerTags`
15313
+ # @return [Hash<String,String>]
15314
+ attr_accessor :resource_manager_tags
15315
+
15316
+ def initialize(**args)
15317
+ update!(**args)
15318
+ end
15319
+
15320
+ # Update properties of this object
15321
+ def update!(**args)
15322
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
15323
+ end
15324
+ end
15325
+
15250
15326
  #
15251
15327
  class InstanceProperties
15252
15328
  include Google::Apis::Core::Hashable
@@ -15328,18 +15404,19 @@ module Google
15328
15404
  # @return [Array<Google::Apis::ComputeBeta::NetworkInterface>]
15329
15405
  attr_accessor :network_interfaces
15330
15406
 
15331
- #
15407
+ # Note that for MachineImage, this is not supported yet.
15332
15408
  # Corresponds to the JSON property `networkPerformanceConfig`
15333
15409
  # @return [Google::Apis::ComputeBeta::NetworkPerformanceConfig]
15334
15410
  attr_accessor :network_performance_config
15335
15411
 
15336
- # PostKeyRevocationActionType of the instance.(will be deprecated soon)
15412
+ # PostKeyRevocationActionType of the instance.
15337
15413
  # Corresponds to the JSON property `postKeyRevocationActionType`
15338
15414
  # @return [String]
15339
15415
  attr_accessor :post_key_revocation_action_type
15340
15416
 
15341
15417
  # The private IPv6 google access type for VMs. If not specified, use
15342
- # INHERIT_FROM_SUBNETWORK as default.
15418
+ # INHERIT_FROM_SUBNETWORK as default. Note that for MachineImage, this is not
15419
+ # supported yet.
15343
15420
  # Corresponds to the JSON property `privateIpv6GoogleAccess`
15344
15421
  # @return [String]
15345
15422
  attr_accessor :private_ipv6_google_access
@@ -15349,8 +15426,16 @@ module Google
15349
15426
  # @return [Google::Apis::ComputeBeta::ReservationAffinity]
15350
15427
  attr_accessor :reservation_affinity
15351
15428
 
15352
- # Resource policies (names, not ULRs) applied to instances created from these
15353
- # properties.
15429
+ # Resource manager tags to be bound to the instance. Tag keys and values have
15430
+ # the same definition as resource manager tags. Keys must be in the format `
15431
+ # tagKeys/`tag_key_id``, and values are in the format `tagValues/456`. The field
15432
+ # is ignored (both PUT & PATCH) when empty.
15433
+ # Corresponds to the JSON property `resourceManagerTags`
15434
+ # @return [Hash<String,String>]
15435
+ attr_accessor :resource_manager_tags
15436
+
15437
+ # Resource policies (names, not URLs) applied to instances created from these
15438
+ # properties. Note that for MachineImage, this is not supported yet.
15354
15439
  # Corresponds to the JSON property `resourcePolicies`
15355
15440
  # @return [Array<String>]
15356
15441
  attr_accessor :resource_policies
@@ -15405,6 +15490,7 @@ module Google
15405
15490
  @post_key_revocation_action_type = args[:post_key_revocation_action_type] if args.key?(:post_key_revocation_action_type)
15406
15491
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
15407
15492
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
15493
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
15408
15494
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
15409
15495
  @scheduling = args[:scheduling] if args.key?(:scheduling)
15410
15496
  @service_accounts = args[:service_accounts] if args.key?(:service_accounts)
@@ -16359,6 +16445,17 @@ module Google
16359
16445
  # @return [String]
16360
16446
  attr_accessor :bandwidth
16361
16447
 
16448
+ # Up to 16 candidate prefixes that control the allocation of
16449
+ # cloudRouterIpv6Address and customerRouterIpv6Address for this attachment. Each
16450
+ # prefix must be in the Global Unique Address (GUA) space. It is highly
16451
+ # recommended that it be in a range owned by the requestor. A GUA in a range
16452
+ # owned by Google will cause the request to fail. Google will select an
16453
+ # available prefix from the supplied candidates or fail the request. If not
16454
+ # supplied, a /125 from a Google-owned GUA block will be selected.
16455
+ # Corresponds to the JSON property `candidateIpv6Subnets`
16456
+ # @return [Array<String>]
16457
+ attr_accessor :candidate_ipv6_subnets
16458
+
16362
16459
  # Up to 16 candidate prefixes that can be used to restrict the allocation of
16363
16460
  # cloudRouterIpAddress and customerRouterIpAddress for this attachment. All
16364
16461
  # prefixes must be within link-local address space (169.254.0.0/16) and must be /
@@ -16376,6 +16473,20 @@ module Google
16376
16473
  # @return [String]
16377
16474
  attr_accessor :cloud_router_ip_address
16378
16475
 
16476
+ # [Output Only] IPv6 address + prefix length to be configured on Cloud Router
16477
+ # Interface for this interconnect attachment.
16478
+ # Corresponds to the JSON property `cloudRouterIpv6Address`
16479
+ # @return [String]
16480
+ attr_accessor :cloud_router_ipv6_address
16481
+
16482
+ # If supplied, the interface id (index within the subnet) to be used for the
16483
+ # cloud router address. The id must be in the range of 1 to 6. If a subnet mask
16484
+ # is supplied, it must be /125, and the subnet should either be 0 or match the
16485
+ # selected subnet.
16486
+ # Corresponds to the JSON property `cloudRouterIpv6InterfaceId`
16487
+ # @return [String]
16488
+ attr_accessor :cloud_router_ipv6_interface_id
16489
+
16379
16490
  # [Output Only] Creation timestamp in RFC3339 text format.
16380
16491
  # Corresponds to the JSON property `creationTimestamp`
16381
16492
  # @return [String]
@@ -16387,7 +16498,24 @@ module Google
16387
16498
  # @return [String]
16388
16499
  attr_accessor :customer_router_ip_address
16389
16500
 
16390
- # [Output Only] Dataplane version for this InterconnectAttachment.
16501
+ # [Output Only] IPv6 address + prefix length to be configured on the customer
16502
+ # router subinterface for this interconnect attachment.
16503
+ # Corresponds to the JSON property `customerRouterIpv6Address`
16504
+ # @return [String]
16505
+ attr_accessor :customer_router_ipv6_address
16506
+
16507
+ # If supplied, the interface id (index within the subnet) to be used for the
16508
+ # customer router address. The id must be in the range of 1 to 6. If a subnet
16509
+ # mask is supplied, it must be /125, and the subnet should either be 0 or match
16510
+ # the selected subnet.
16511
+ # Corresponds to the JSON property `customerRouterIpv6InterfaceId`
16512
+ # @return [String]
16513
+ attr_accessor :customer_router_ipv6_interface_id
16514
+
16515
+ # [Output only for types PARTNER and DEDICATED. Not present for PARTNER_PROVIDER.
16516
+ # ] Dataplane version for this InterconnectAttachment. This field is only
16517
+ # present for Dataplane version 2 and higher. Absence of this field in the API
16518
+ # output indicates that the Dataplane is version 1.
16391
16519
  # Corresponds to the JSON property `dataplaneVersion`
16392
16520
  # @return [Fixnum]
16393
16521
  attr_accessor :dataplane_version
@@ -16565,6 +16693,14 @@ module Google
16565
16693
  # @return [String]
16566
16694
  attr_accessor :self_link
16567
16695
 
16696
+ # The stack type for this interconnect attachment to identify whether the IPv6
16697
+ # feature is enabled or not. If not specified, IPV4_ONLY will be used. This
16698
+ # field can be both set at interconnect attachments creation and update
16699
+ # interconnect attachment operations.
16700
+ # Corresponds to the JSON property `stackType`
16701
+ # @return [String]
16702
+ attr_accessor :stack_type
16703
+
16568
16704
  # [Output Only] The current state of this attachment's functionality. Enum
16569
16705
  # values ACTIVE and UNPROVISIONED are shared by DEDICATED/PRIVATE, PARTNER, and
16570
16706
  # PARTNER_PROVIDER interconnect attachments, while enum values PENDING_PARTNER,
@@ -16607,10 +16743,15 @@ module Google
16607
16743
  def update!(**args)
16608
16744
  @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
16609
16745
  @bandwidth = args[:bandwidth] if args.key?(:bandwidth)
16746
+ @candidate_ipv6_subnets = args[:candidate_ipv6_subnets] if args.key?(:candidate_ipv6_subnets)
16610
16747
  @candidate_subnets = args[:candidate_subnets] if args.key?(:candidate_subnets)
16611
16748
  @cloud_router_ip_address = args[:cloud_router_ip_address] if args.key?(:cloud_router_ip_address)
16749
+ @cloud_router_ipv6_address = args[:cloud_router_ipv6_address] if args.key?(:cloud_router_ipv6_address)
16750
+ @cloud_router_ipv6_interface_id = args[:cloud_router_ipv6_interface_id] if args.key?(:cloud_router_ipv6_interface_id)
16612
16751
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
16613
16752
  @customer_router_ip_address = args[:customer_router_ip_address] if args.key?(:customer_router_ip_address)
16753
+ @customer_router_ipv6_address = args[:customer_router_ipv6_address] if args.key?(:customer_router_ipv6_address)
16754
+ @customer_router_ipv6_interface_id = args[:customer_router_ipv6_interface_id] if args.key?(:customer_router_ipv6_interface_id)
16614
16755
  @dataplane_version = args[:dataplane_version] if args.key?(:dataplane_version)
16615
16756
  @description = args[:description] if args.key?(:description)
16616
16757
  @edge_availability_domain = args[:edge_availability_domain] if args.key?(:edge_availability_domain)
@@ -16633,6 +16774,7 @@ module Google
16633
16774
  @router = args[:router] if args.key?(:router)
16634
16775
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
16635
16776
  @self_link = args[:self_link] if args.key?(:self_link)
16777
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
16636
16778
  @state = args[:state] if args.key?(:state)
16637
16779
  @type = args[:type] if args.key?(:type)
16638
16780
  @vlan_tag8021q = args[:vlan_tag8021q] if args.key?(:vlan_tag8021q)
@@ -18134,6 +18276,11 @@ module Google
18134
18276
  # @return [Hash<String,Google::Apis::ComputeBeta::LocationPolicyLocation>]
18135
18277
  attr_accessor :locations
18136
18278
 
18279
+ # Strategy for distributing VMs across zones in a region.
18280
+ # Corresponds to the JSON property `targetShape`
18281
+ # @return [String]
18282
+ attr_accessor :target_shape
18283
+
18137
18284
  def initialize(**args)
18138
18285
  update!(**args)
18139
18286
  end
@@ -18141,6 +18288,7 @@ module Google
18141
18288
  # Update properties of this object
18142
18289
  def update!(**args)
18143
18290
  @locations = args[:locations] if args.key?(:locations)
18291
+ @target_shape = args[:target_shape] if args.key?(:target_shape)
18144
18292
  end
18145
18293
  end
18146
18294
 
@@ -18327,6 +18475,11 @@ module Google
18327
18475
  # @return [Fixnum]
18328
18476
  attr_accessor :id
18329
18477
 
18478
+ # [Output Only] Properties of source instance
18479
+ # Corresponds to the JSON property `instanceProperties`
18480
+ # @return [Google::Apis::ComputeBeta::InstanceProperties]
18481
+ attr_accessor :instance_properties
18482
+
18330
18483
  # [Output Only] The resource type, which is always compute#machineImage for
18331
18484
  # machine image.
18332
18485
  # Corresponds to the JSON property `kind`
@@ -18362,6 +18515,12 @@ module Google
18362
18515
  attr_accessor :satisfies_pzs
18363
18516
  alias_method :satisfies_pzs?, :satisfies_pzs
18364
18517
 
18518
+ # An array of Machine Image specific properties for disks attached to the source
18519
+ # instance
18520
+ # Corresponds to the JSON property `savedDisks`
18521
+ # @return [Array<Google::Apis::ComputeBeta::SavedDisk>]
18522
+ attr_accessor :saved_disks
18523
+
18365
18524
  # [Output Only] The URL for this machine image. The server defines this URL.
18366
18525
  # Corresponds to the JSON property `selfLink`
18367
18526
  # @return [String]
@@ -18382,7 +18541,8 @@ module Google
18382
18541
  # @return [String]
18383
18542
  attr_accessor :source_instance
18384
18543
 
18385
- # [Output Only] Properties of source instance.
18544
+ # DEPRECATED: Please use compute#instanceProperties instead. New properties will
18545
+ # not be added to this field.
18386
18546
  # Corresponds to the JSON property `sourceInstanceProperties`
18387
18547
  # @return [Google::Apis::ComputeBeta::SourceInstanceProperties]
18388
18548
  attr_accessor :source_instance_properties
@@ -18414,10 +18574,12 @@ module Google
18414
18574
  @description = args[:description] if args.key?(:description)
18415
18575
  @guest_flush = args[:guest_flush] if args.key?(:guest_flush)
18416
18576
  @id = args[:id] if args.key?(:id)
18577
+ @instance_properties = args[:instance_properties] if args.key?(:instance_properties)
18417
18578
  @kind = args[:kind] if args.key?(:kind)
18418
18579
  @machine_image_encryption_key = args[:machine_image_encryption_key] if args.key?(:machine_image_encryption_key)
18419
18580
  @name = args[:name] if args.key?(:name)
18420
18581
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
18582
+ @saved_disks = args[:saved_disks] if args.key?(:saved_disks)
18421
18583
  @self_link = args[:self_link] if args.key?(:self_link)
18422
18584
  @source_disk_encryption_keys = args[:source_disk_encryption_keys] if args.key?(:source_disk_encryption_keys)
18423
18585
  @source_instance = args[:source_instance] if args.key?(:source_instance)
@@ -19292,18 +19454,18 @@ module Google
19292
19454
  end
19293
19455
  end
19294
19456
 
19295
- # Opaque filter criteria used by loadbalancers to restrict routing configuration
19296
- # to a limited set of loadbalancing proxies. Proxies and sidecars involved in
19297
- # loadbalancing would typically present metadata to the loadbalancers which need
19298
- # to match criteria specified here. If a match takes place, the relevant
19299
- # configuration is made available to those proxies. For each metadataFilter in
19300
- # this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the
19301
- # filterLabels must match the corresponding label provided in the metadata. If
19302
- # its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must
19303
- # match with corresponding labels provided in the metadata. An example for using
19304
- # metadataFilters would be: if loadbalancing involves Envoys, they will only
19305
- # receive routing configuration when values in metadataFilters match values
19306
- # supplied in of their XDS requests to loadbalancers.
19457
+ # Opaque filter criteria used by load balancers to restrict routing
19458
+ # configuration to a limited set of load balancing proxies. Proxies and sidecars
19459
+ # involved in load balancing would typically present metadata to the load
19460
+ # balancers that need to match criteria specified here. If a match takes place,
19461
+ # the relevant configuration is made available to those proxies. For each
19462
+ # metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY,
19463
+ # at least one of the filterLabels must match the corresponding label provided
19464
+ # in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of
19465
+ # its filterLabels must match with corresponding labels provided in the metadata.
19466
+ # An example for using metadataFilters would be: if load balancing involves
19467
+ # Envoys, they receive routing configuration when values in metadataFilters
19468
+ # match values supplied in of their XDS requests to loadbalancers.
19307
19469
  class MetadataFilter
19308
19470
  include Google::Apis::Core::Hashable
19309
19471
 
@@ -19314,11 +19476,11 @@ module Google
19314
19476
  # @return [Array<Google::Apis::ComputeBeta::MetadataFilterLabelMatch>]
19315
19477
  attr_accessor :filter_labels
19316
19478
 
19317
- # Specifies how individual filterLabel matches within the list of filterLabels
19318
- # contribute towards the overall metadataFilter match. Supported values are: -
19319
- # MATCH_ANY: At least one of the filterLabels must have a matching label in the
19320
- # provided metadata. - MATCH_ALL: All filterLabels must have matching labels in
19321
- # the provided metadata.
19479
+ # Specifies how individual filter label matches within the list of filterLabels
19480
+ # and contributes toward the overall metadataFilter match. Supported values are:
19481
+ # - MATCH_ANY: at least one of the filterLabels must have a matching label in
19482
+ # the provided metadata. - MATCH_ALL: all filterLabels must have matching labels
19483
+ # in the provided metadata.
19322
19484
  # Corresponds to the JSON property `filterMatchCriteria`
19323
19485
  # @return [String]
19324
19486
  attr_accessor :filter_match_criteria
@@ -19335,7 +19497,7 @@ module Google
19335
19497
  end
19336
19498
 
19337
19499
  # MetadataFilter label name value pairs that are expected to match corresponding
19338
- # labels presented as metadata to the loadbalancer.
19500
+ # labels presented as metadata to the load balancer.
19339
19501
  class MetadataFilterLabelMatch
19340
19502
  include Google::Apis::Core::Hashable
19341
19503
 
@@ -20529,7 +20691,7 @@ module Google
20529
20691
  # @return [String]
20530
20692
  attr_accessor :ipv6_access_type
20531
20693
 
20532
- # [Output Only] An IPv6 internal network address for this network interface.
20694
+ # An IPv6 internal network address for this network interface.
20533
20695
  # Corresponds to the JSON property `ipv6Address`
20534
20696
  # @return [String]
20535
20697
  attr_accessor :ipv6_address
@@ -20546,14 +20708,15 @@ module Google
20546
20708
  # @return [String]
20547
20709
  attr_accessor :name
20548
20710
 
20549
- # URL of the network resource for this instance. When creating an instance, if
20550
- # neither the network nor the subnetwork is specified, the default network
20551
- # global/networks/default is used; if the network is not specified but the
20552
- # subnetwork is specified, the network is inferred. If you specify this property,
20553
- # you can specify the network as a full or partial URL. For example, the
20554
- # following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/
20555
- # project/global/networks/ network - projects/project/global/networks/network -
20556
- # global/networks/default
20711
+ # URL of the VPC network resource for this instance. When creating an instance,
20712
+ # if neither the network nor the subnetwork is specified, the default network
20713
+ # global/networks/default is used. If the selected project doesn't have the
20714
+ # default network, you must specify a network or subnet. If the network is not
20715
+ # specified but the subnetwork is specified, the network is inferred. If you
20716
+ # specify this property, you can specify the network as a full or partial URL.
20717
+ # For example, the following are all valid URLs: - https://www.googleapis.com/
20718
+ # compute/v1/projects/project/global/networks/ network - projects/project/global/
20719
+ # networks/network - global/networks/default
20557
20720
  # Corresponds to the JSON property `network`
20558
20721
  # @return [String]
20559
20722
  attr_accessor :network
@@ -20762,7 +20925,8 @@ module Google
20762
20925
  attr_accessor :exchange_subnet_routes
20763
20926
  alias_method :exchange_subnet_routes?, :exchange_subnet_routes
20764
20927
 
20765
- # Whether to export the custom routes to peer network.
20928
+ # Whether to export the custom routes to peer network. The default value is
20929
+ # false.
20766
20930
  # Corresponds to the JSON property `exportCustomRoutes`
20767
20931
  # @return [Boolean]
20768
20932
  attr_accessor :export_custom_routes
@@ -20776,7 +20940,8 @@ module Google
20776
20940
  attr_accessor :export_subnet_routes_with_public_ip
20777
20941
  alias_method :export_subnet_routes_with_public_ip?, :export_subnet_routes_with_public_ip
20778
20942
 
20779
- # Whether to import the custom routes from peer network.
20943
+ # Whether to import the custom routes from peer network. The default value is
20944
+ # false.
20780
20945
  # Corresponds to the JSON property `importCustomRoutes`
20781
20946
  # @return [Boolean]
20782
20947
  attr_accessor :import_custom_routes
@@ -24462,37 +24627,37 @@ module Google
24462
24627
 
24463
24628
  # A matcher for the path portion of the URL. The BackendService from the longest-
24464
24629
  # matched rule will serve the URL. If no rule was matched, the default service
24465
- # will be used.
24630
+ # is used.
24466
24631
  class PathMatcher
24467
24632
  include Google::Apis::Core::Hashable
24468
24633
 
24469
24634
  # defaultRouteAction takes effect when none of the pathRules or routeRules match.
24470
- # The load balancer performs advanced routing actions like URL rewrites, header
24471
- # transformations, etc. prior to forwarding the request to the selected backend.
24635
+ # The load balancer performs advanced routing actions, such as URL rewrites and
24636
+ # header transformations, before forwarding the request to the selected backend.
24472
24637
  # If defaultRouteAction specifies any weightedBackendServices, defaultService
24473
24638
  # must not be set. Conversely if defaultService is set, defaultRouteAction
24474
24639
  # cannot contain any weightedBackendServices. Only one of defaultRouteAction or
24475
24640
  # defaultUrlRedirect must be set. UrlMaps for external HTTP(S) load balancers
24476
- # support only the urlRewrite action within a pathMatcher's defaultRouteAction.
24641
+ # support only the urlRewrite action within a path matcher's defaultRouteAction.
24477
24642
  # Corresponds to the JSON property `defaultRouteAction`
24478
24643
  # @return [Google::Apis::ComputeBeta::HttpRouteAction]
24479
24644
  attr_accessor :default_route_action
24480
24645
 
24481
- # The full or partial URL to the BackendService resource. This will be used if
24646
+ # The full or partial URL to the BackendService resource. This URL is used if
24482
24647
  # none of the pathRules or routeRules defined by this PathMatcher are matched.
24483
24648
  # For example, the following are all valid URLs to a BackendService resource: -
24484
24649
  # https://www.googleapis.com/compute/v1/projects/project /global/backendServices/
24485
24650
  # backendService - compute/v1/projects/project/global/backendServices/
24486
24651
  # backendService - global/backendServices/backendService If defaultRouteAction
24487
- # is additionally specified, advanced routing actions like URL Rewrites, etc.
24488
- # take effect prior to sending the request to the backend. However, if
24489
- # defaultService is specified, defaultRouteAction cannot contain any
24490
- # weightedBackendServices. Conversely, if defaultRouteAction specifies any
24491
- # weightedBackendServices, defaultService must not be specified. Only one of
24492
- # defaultService, defaultUrlRedirect or defaultRouteAction.
24493
- # weightedBackendService must be set. Authorization requires one or more of the
24494
- # following Google IAM permissions on the specified resource default_service: -
24495
- # compute.backendBuckets.use - compute.backendServices.use
24652
+ # is also specified, advanced routing actions, such as URL rewrites, take effect
24653
+ # before sending the request to the backend. However, if defaultService is
24654
+ # specified, defaultRouteAction cannot contain any weightedBackendServices.
24655
+ # Conversely, if defaultRouteAction specifies any weightedBackendServices,
24656
+ # defaultService must not be specified. Only one of defaultService,
24657
+ # defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set.
24658
+ # Authorization requires one or more of the following Google IAM permissions on
24659
+ # the specified resource default_service: - compute.backendBuckets.use - compute.
24660
+ # backendServices.use
24496
24661
  # Corresponds to the JSON property `defaultService`
24497
24662
  # @return [String]
24498
24663
  attr_accessor :default_service
@@ -24568,23 +24733,23 @@ module Google
24568
24733
  attr_accessor :paths
24569
24734
 
24570
24735
  # In response to a matching path, the load balancer performs advanced routing
24571
- # actions like URL rewrites, header transformations, etc. prior to forwarding
24736
+ # actions, such as URL rewrites and header transformations, before forwarding
24572
24737
  # the request to the selected backend. If routeAction specifies any
24573
24738
  # weightedBackendServices, service must not be set. Conversely if service is set,
24574
24739
  # routeAction cannot contain any weightedBackendServices. Only one of
24575
- # routeAction or urlRedirect must be set. UrlMaps for external HTTP(S) load
24576
- # balancers support only the urlRewrite action within a pathRule's routeAction.
24740
+ # routeAction or urlRedirect must be set. URL maps for external HTTP(S) load
24741
+ # balancers support only the urlRewrite action within a path rule's routeAction.
24577
24742
  # Corresponds to the JSON property `routeAction`
24578
24743
  # @return [Google::Apis::ComputeBeta::HttpRouteAction]
24579
24744
  attr_accessor :route_action
24580
24745
 
24581
24746
  # The full or partial URL of the backend service resource to which traffic is
24582
- # directed if this rule is matched. If routeAction is additionally specified,
24583
- # advanced routing actions like URL Rewrites, etc. take effect prior to sending
24584
- # the request to the backend. However, if service is specified, routeAction
24585
- # cannot contain any weightedBackendService s. Conversely, if routeAction
24586
- # specifies any weightedBackendServices, service must not be specified. Only one
24587
- # of urlRedirect, service or routeAction.weightedBackendService must be set.
24747
+ # directed if this rule is matched. If routeAction is also specified, advanced
24748
+ # routing actions, such as URL rewrites, take effect before sending the request
24749
+ # to the backend. However, if service is specified, routeAction cannot contain
24750
+ # any weightedBackendServices. Conversely, if routeAction specifies any
24751
+ # weightedBackendServices, service must not be specified. Only one of
24752
+ # urlRedirect, service or routeAction.weightedBackendService must be set.
24588
24753
  # Corresponds to the JSON property `service`
24589
24754
  # @return [String]
24590
24755
  attr_accessor :service
@@ -24656,31 +24821,31 @@ module Google
24656
24821
 
24657
24822
  # An Identity and Access Management (IAM) policy, which specifies access
24658
24823
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
24659
- # A `binding` binds one or more `members` to a single `role`. Members can be
24660
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
24661
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
24662
- # role or a user-created custom role. For some types of Google Cloud resources,
24663
- # a `binding` can also specify a `condition`, which is a logical expression that
24664
- # allows access to a resource only if the expression evaluates to `true`. A
24665
- # condition can add constraints based on attributes of the request, the resource,
24666
- # or both. To learn which resources support conditions in their IAM policies,
24667
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
24668
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
24669
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
24670
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
24671
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
24672
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
24673
- # title": "expirable access", "description": "Does not grant access after Sep
24674
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
24675
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
24676
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
24677
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
24678
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
24679
- # roles/resourcemanager.organizationViewer condition: title: expirable access
24680
- # description: Does not grant access after Sep 2020 expression: request.time <
24681
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
24682
- # description of IAM and its features, see the [IAM documentation](https://cloud.
24683
- # google.com/iam/docs/).
24824
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
24825
+ # Principals can be user accounts, service accounts, Google groups, and domains (
24826
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
24827
+ # an IAM predefined role or a user-created custom role. For some types of Google
24828
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
24829
+ # logical expression that allows access to a resource only if the expression
24830
+ # evaluates to `true`. A condition can add constraints based on attributes of
24831
+ # the request, the resource, or both. To learn which resources support
24832
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
24833
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
24834
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
24835
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
24836
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
24837
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
24838
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
24839
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
24840
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
24841
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
24842
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
24843
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
24844
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
24845
+ # access description: Does not grant access after Sep 2020 expression: request.
24846
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
24847
+ # a description of IAM and its features, see the [IAM documentation](https://
24848
+ # cloud.google.com/iam/docs/).
24684
24849
  class Policy
24685
24850
  include Google::Apis::Core::Hashable
24686
24851
 
@@ -24689,9 +24854,14 @@ module Google
24689
24854
  # @return [Array<Google::Apis::ComputeBeta::AuditConfig>]
24690
24855
  attr_accessor :audit_configs
24691
24856
 
24692
- # Associates a list of `members` to a `role`. Optionally, may specify a `
24693
- # condition` that determines how and when the `bindings` are applied. Each of
24694
- # the `bindings` must contain at least one member.
24857
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
24858
+ # specify a `condition` that determines how and when the `bindings` are applied.
24859
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
24860
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
24861
+ # can be Google groups. Each occurrence of a principal counts towards these
24862
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
24863
+ # example.com`, and not to any other principal, then you can add another 1,450
24864
+ # principals to the `bindings` in the `Policy`.
24695
24865
  # Corresponds to the JSON property `bindings`
24696
24866
  # @return [Array<Google::Apis::ComputeBeta::Binding>]
24697
24867
  attr_accessor :bindings
@@ -24712,12 +24882,6 @@ module Google
24712
24882
  # @return [String]
24713
24883
  attr_accessor :etag
24714
24884
 
24715
- # This is deprecated and has no effect. Do not use.
24716
- # Corresponds to the JSON property `iamOwned`
24717
- # @return [Boolean]
24718
- attr_accessor :iam_owned
24719
- alias_method :iam_owned?, :iam_owned
24720
-
24721
24885
  # This is deprecated and has no effect. Do not use.
24722
24886
  # Corresponds to the JSON property `rules`
24723
24887
  # @return [Array<Google::Apis::ComputeBeta::Rule>]
@@ -24751,7 +24915,6 @@ module Google
24751
24915
  @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
24752
24916
  @bindings = args[:bindings] if args.key?(:bindings)
24753
24917
  @etag = args[:etag] if args.key?(:etag)
24754
- @iam_owned = args[:iam_owned] if args.key?(:iam_owned)
24755
24918
  @rules = args[:rules] if args.key?(:rules)
24756
24919
  @version = args[:version] if args.key?(:version)
24757
24920
  end
@@ -24786,6 +24949,18 @@ module Google
24786
24949
  # @return [Hash<String,Google::Apis::ComputeBeta::PreservedStatePreservedDisk>]
24787
24950
  attr_accessor :disks
24788
24951
 
24952
+ # Preserved external IPs defined for this instance. This map is keyed with the
24953
+ # name of the network interface.
24954
+ # Corresponds to the JSON property `externalIPs`
24955
+ # @return [Hash<String,Google::Apis::ComputeBeta::PreservedStatePreservedNetworkIp>]
24956
+ attr_accessor :external_i_ps
24957
+
24958
+ # Preserved internal IPs defined for this instance. This map is keyed with the
24959
+ # name of the network interface.
24960
+ # Corresponds to the JSON property `internalIPs`
24961
+ # @return [Hash<String,Google::Apis::ComputeBeta::PreservedStatePreservedNetworkIp>]
24962
+ attr_accessor :internal_i_ps
24963
+
24789
24964
  # Preserved metadata defined for this instance.
24790
24965
  # Corresponds to the JSON property `metadata`
24791
24966
  # @return [Hash<String,String>]
@@ -24798,6 +24973,8 @@ module Google
24798
24973
  # Update properties of this object
24799
24974
  def update!(**args)
24800
24975
  @disks = args[:disks] if args.key?(:disks)
24976
+ @external_i_ps = args[:external_i_ps] if args.key?(:external_i_ps)
24977
+ @internal_i_ps = args[:internal_i_ps] if args.key?(:internal_i_ps)
24801
24978
  @metadata = args[:metadata] if args.key?(:metadata)
24802
24979
  end
24803
24980
  end
@@ -24839,6 +25016,60 @@ module Google
24839
25016
  end
24840
25017
  end
24841
25018
 
25019
+ #
25020
+ class PreservedStatePreservedNetworkIp
25021
+ include Google::Apis::Core::Hashable
25022
+
25023
+ # These stateful IPs will never be released during autohealing, update or VM
25024
+ # instance recreate operations. This flag is used to configure if the IP
25025
+ # reservation should be deleted after it is no longer used by the group, e.g.
25026
+ # when the given instance or the whole group is deleted.
25027
+ # Corresponds to the JSON property `autoDelete`
25028
+ # @return [String]
25029
+ attr_accessor :auto_delete
25030
+
25031
+ # Ip address representation
25032
+ # Corresponds to the JSON property `ipAddress`
25033
+ # @return [Google::Apis::ComputeBeta::PreservedStatePreservedNetworkIpIpAddress]
25034
+ attr_accessor :ip_address
25035
+
25036
+ def initialize(**args)
25037
+ update!(**args)
25038
+ end
25039
+
25040
+ # Update properties of this object
25041
+ def update!(**args)
25042
+ @auto_delete = args[:auto_delete] if args.key?(:auto_delete)
25043
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
25044
+ end
25045
+ end
25046
+
25047
+ #
25048
+ class PreservedStatePreservedNetworkIpIpAddress
25049
+ include Google::Apis::Core::Hashable
25050
+
25051
+ # The URL of the reservation for this IP address.
25052
+ # Corresponds to the JSON property `address`
25053
+ # @return [String]
25054
+ attr_accessor :address
25055
+
25056
+ # An IPv4 internal network address to assign to the instance for this network
25057
+ # interface.
25058
+ # Corresponds to the JSON property `literal`
25059
+ # @return [String]
25060
+ attr_accessor :literal
25061
+
25062
+ def initialize(**args)
25063
+ update!(**args)
25064
+ end
25065
+
25066
+ # Update properties of this object
25067
+ def update!(**args)
25068
+ @address = args[:address] if args.key?(:address)
25069
+ @literal = args[:literal] if args.key?(:literal)
25070
+ end
25071
+ end
25072
+
24842
25073
  # Represents a Project resource. A project is used to organize resources in a
24843
25074
  # Google Cloud Platform environment. For more information, read about the
24844
25075
  # Resource Hierarchy.
@@ -25132,7 +25363,13 @@ module Google
25132
25363
  # @return [String]
25133
25364
  attr_accessor :shared_secret
25134
25365
 
25135
- # The status of the public advertised prefix.
25366
+ # The status of the public advertised prefix. Possible values include: - `
25367
+ # INITIAL`: RPKI validation is complete. - `PTR_CONFIGURED`: User has configured
25368
+ # the PTR. - `VALIDATED`: Reverse DNS lookup is successful. - `
25369
+ # REVERSE_DNS_LOOKUP_FAILED`: Reverse DNS lookup failed. - `
25370
+ # PREFIX_CONFIGURATION_IN_PROGRESS`: The prefix is being configured. - `
25371
+ # PREFIX_CONFIGURATION_COMPLETE`: The prefix is fully configured. - `
25372
+ # PREFIX_REMOVAL_IN_PROGRESS`: The prefix is being removed.
25136
25373
  # Corresponds to the JSON property `status`
25137
25374
  # @return [String]
25138
25375
  attr_accessor :status
@@ -25411,7 +25648,12 @@ module Google
25411
25648
  # @return [String]
25412
25649
  attr_accessor :self_link
25413
25650
 
25414
- # [Output Only] The status of the public delegated prefix.
25651
+ # [Output Only] The status of the public delegated prefix, which can be one of
25652
+ # following values: - `INITIALIZING` The public delegated prefix is being
25653
+ # initialized and addresses cannot be created yet. - `READY_TO_ANNOUNCE` The
25654
+ # public delegated prefix is a live migration prefix and is active. - `ANNOUNCED`
25655
+ # The public delegated prefix is active. - `DELETING` The public delegated
25656
+ # prefix is being deprovsioned.
25415
25657
  # Corresponds to the JSON property `status`
25416
25658
  # @return [String]
25417
25659
  attr_accessor :status
@@ -26898,6 +27140,47 @@ module Google
26898
27140
  end
26899
27141
  end
26900
27142
 
27143
+ #
27144
+ class RegionInstanceGroupManagersResizeAdvancedRequest
27145
+ include Google::Apis::Core::Hashable
27146
+
27147
+ # If this flag is true, the managed instance group attempts to create all
27148
+ # instances initiated by this resize request only once. If there is an error
27149
+ # during creation, the managed instance group does not retry create this
27150
+ # instance, and we will decrease the targetSize of the request instead. If the
27151
+ # flag is false, the group attempts to recreate each instance continuously until
27152
+ # it succeeds. This flag matters only in the first attempt of creation of an
27153
+ # instance. After an instance is successfully created while this flag is enabled,
27154
+ # the instance behaves the same way as all the other instances created with a
27155
+ # regular resize request. In particular, if a running instance dies unexpectedly
27156
+ # at a later time and needs to be recreated, this mode does not affect the
27157
+ # recreation behavior in that scenario. This flag is applicable only to the
27158
+ # current resize request. It does not influence other resize requests in any way.
27159
+ # You can see which instances ar being created in which mode by calling the get
27160
+ # or listManagedInstances API.
27161
+ # Corresponds to the JSON property `noCreationRetries`
27162
+ # @return [Boolean]
27163
+ attr_accessor :no_creation_retries
27164
+ alias_method :no_creation_retries?, :no_creation_retries
27165
+
27166
+ # The number of running instances that the managed instance group should
27167
+ # maintain at any given time. The group automatically adds or removes instances
27168
+ # to maintain the number of instances specified by this parameter.
27169
+ # Corresponds to the JSON property `targetSize`
27170
+ # @return [Fixnum]
27171
+ attr_accessor :target_size
27172
+
27173
+ def initialize(**args)
27174
+ update!(**args)
27175
+ end
27176
+
27177
+ # Update properties of this object
27178
+ def update!(**args)
27179
+ @no_creation_retries = args[:no_creation_retries] if args.key?(:no_creation_retries)
27180
+ @target_size = args[:target_size] if args.key?(:target_size)
27181
+ end
27182
+ end
27183
+
26901
27184
  #
26902
27185
  class RegionInstanceGroupManagersSetAutoHealingRequest
26903
27186
  include Google::Apis::Core::Hashable
@@ -27309,31 +27592,31 @@ module Google
27309
27592
 
27310
27593
  # An Identity and Access Management (IAM) policy, which specifies access
27311
27594
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
27312
- # A `binding` binds one or more `members` to a single `role`. Members can be
27313
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
27314
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
27315
- # role or a user-created custom role. For some types of Google Cloud resources,
27316
- # a `binding` can also specify a `condition`, which is a logical expression that
27317
- # allows access to a resource only if the expression evaluates to `true`. A
27318
- # condition can add constraints based on attributes of the request, the resource,
27319
- # or both. To learn which resources support conditions in their IAM policies,
27320
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
27321
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
27322
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
27323
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
27324
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
27325
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
27326
- # title": "expirable access", "description": "Does not grant access after Sep
27327
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
27328
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
27329
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
27330
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
27331
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
27332
- # roles/resourcemanager.organizationViewer condition: title: expirable access
27333
- # description: Does not grant access after Sep 2020 expression: request.time <
27334
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
27335
- # description of IAM and its features, see the [IAM documentation](https://cloud.
27336
- # google.com/iam/docs/).
27595
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
27596
+ # Principals can be user accounts, service accounts, Google groups, and domains (
27597
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
27598
+ # an IAM predefined role or a user-created custom role. For some types of Google
27599
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
27600
+ # logical expression that allows access to a resource only if the expression
27601
+ # evaluates to `true`. A condition can add constraints based on attributes of
27602
+ # the request, the resource, or both. To learn which resources support
27603
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
27604
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
27605
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
27606
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
27607
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
27608
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
27609
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
27610
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
27611
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
27612
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
27613
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
27614
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
27615
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
27616
+ # access description: Does not grant access after Sep 2020 expression: request.
27617
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
27618
+ # a description of IAM and its features, see the [IAM documentation](https://
27619
+ # cloud.google.com/iam/docs/).
27337
27620
  # Corresponds to the JSON property `policy`
27338
27621
  # @return [Google::Apis::ComputeBeta::Policy]
27339
27622
  attr_accessor :policy
@@ -27374,21 +27657,21 @@ module Google
27374
27657
  class RegionUrlMapsValidateRequest
27375
27658
  include Google::Apis::Core::Hashable
27376
27659
 
27377
- # Represents a URL Map resource. Google Compute Engine has two URL Map resources:
27378
- # * [Global](/compute/docs/reference/rest/beta/urlMaps) * [Regional](/compute/
27379
- # docs/reference/rest/beta/regionUrlMaps) A URL map resource is a component of
27380
- # certain types of GCP load balancers and Traffic Director. * urlMaps are used
27660
+ # Represents a URL Map resource. Compute Engine has two URL Map resources: * [
27661
+ # Global](/compute/docs/reference/rest/beta/urlMaps) * [Regional](/compute/docs/
27662
+ # reference/rest/beta/regionUrlMaps) A URL map resource is a component of
27663
+ # certain types of cloud load balancers and Traffic Director: * urlMaps are used
27381
27664
  # by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are
27382
27665
  # used by internal HTTP(S) load balancers. For a list of supported URL map
27383
- # features by load balancer type, see the Load balancing features: Routing and
27384
- # traffic management table. For a list of supported URL map features for Traffic
27385
- # Director, see the Traffic Director features: Routing and traffic management
27386
- # table. This resource defines mappings from host names and URL paths to either
27387
- # a backend service or a backend bucket. To use the global urlMaps resource, the
27388
- # backend service must have a loadBalancingScheme of either EXTERNAL or
27389
- # INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service
27390
- # must have a loadBalancingScheme of INTERNAL_MANAGED. For more information,
27391
- # read URL Map Concepts.
27666
+ # features by the load balancer type, see the Load balancing features: Routing
27667
+ # and traffic management table. For a list of supported URL map features for
27668
+ # Traffic Director, see the Traffic Director features: Routing and traffic
27669
+ # management table. This resource defines mappings from hostnames and URL paths
27670
+ # to either a backend service or a backend bucket. To use the global urlMaps
27671
+ # resource, the backend service must have a loadBalancingScheme of either
27672
+ # EXTERNAL or INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the
27673
+ # backend service must have a loadBalancingScheme of INTERNAL_MANAGED. For more
27674
+ # information, read URL Map Concepts.
27392
27675
  # Corresponds to the JSON property `resource`
27393
27676
  # @return [Google::Apis::ComputeBeta::UrlMap]
27394
27677
  attr_accessor :resource
@@ -27404,9 +27687,9 @@ module Google
27404
27687
  end
27405
27688
 
27406
27689
  # A policy that specifies how requests intended for the route's backends are
27407
- # shadowed to a separate mirrored backend service. Loadbalancer does not wait
27408
- # for responses from the shadow service. Prior to sending traffic to the shadow
27409
- # service, the host / authority header is suffixed with -shadow.
27690
+ # shadowed to a separate mirrored backend service. The load balancer doesn't
27691
+ # wait for responses from the shadow service. Before sending traffic to the
27692
+ # shadow service, the host or authority header is suffixed with -shadow.
27410
27693
  class RequestMirrorPolicy
27411
27694
  include Google::Apis::Core::Hashable
27412
27695
 
@@ -29603,6 +29886,12 @@ module Google
29603
29886
  # @return [String]
29604
29887
  attr_accessor :enable
29605
29888
 
29889
+ # Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.
29890
+ # Corresponds to the JSON property `enableIpv6`
29891
+ # @return [Boolean]
29892
+ attr_accessor :enable_ipv6
29893
+ alias_method :enable_ipv6?, :enable_ipv6
29894
+
29606
29895
  # Name of the interface the BGP peer is associated with.
29607
29896
  # Corresponds to the JSON property `interfaceName`
29608
29897
  # @return [String]
@@ -29614,6 +29903,11 @@ module Google
29614
29903
  # @return [String]
29615
29904
  attr_accessor :ip_address
29616
29905
 
29906
+ # IPv6 address of the interface inside Google Cloud Platform.
29907
+ # Corresponds to the JSON property `ipv6NexthopAddress`
29908
+ # @return [String]
29909
+ attr_accessor :ipv6_nexthop_address
29910
+
29617
29911
  # [Output Only] The resource that configures and manages this BGP peer. -
29618
29912
  # MANAGED_BY_USER is the default value and can be managed by you or other users -
29619
29913
  # MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed by Cloud
@@ -29646,6 +29940,11 @@ module Google
29646
29940
  # @return [String]
29647
29941
  attr_accessor :peer_ip_address
29648
29942
 
29943
+ # IPv6 address of the BGP interface outside Google Cloud Platform.
29944
+ # Corresponds to the JSON property `peerIpv6NexthopAddress`
29945
+ # @return [String]
29946
+ attr_accessor :peer_ipv6_nexthop_address
29947
+
29649
29948
  # URI of the VM instance that is used as third-party router appliances such as
29650
29949
  # Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance
29651
29950
  # must be located in zones contained in the same region as this Cloud Router.
@@ -29666,12 +29965,15 @@ module Google
29666
29965
  @advertised_route_priority = args[:advertised_route_priority] if args.key?(:advertised_route_priority)
29667
29966
  @bfd = args[:bfd] if args.key?(:bfd)
29668
29967
  @enable = args[:enable] if args.key?(:enable)
29968
+ @enable_ipv6 = args[:enable_ipv6] if args.key?(:enable_ipv6)
29669
29969
  @interface_name = args[:interface_name] if args.key?(:interface_name)
29670
29970
  @ip_address = args[:ip_address] if args.key?(:ip_address)
29971
+ @ipv6_nexthop_address = args[:ipv6_nexthop_address] if args.key?(:ipv6_nexthop_address)
29671
29972
  @management_type = args[:management_type] if args.key?(:management_type)
29672
29973
  @name = args[:name] if args.key?(:name)
29673
29974
  @peer_asn = args[:peer_asn] if args.key?(:peer_asn)
29674
29975
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
29976
+ @peer_ipv6_nexthop_address = args[:peer_ipv6_nexthop_address] if args.key?(:peer_ipv6_nexthop_address)
29675
29977
  @router_appliance_instance = args[:router_appliance_instance] if args.key?(:router_appliance_instance)
29676
29978
  end
29677
29979
  end
@@ -29951,6 +30253,17 @@ module Google
29951
30253
  # @return [Array<String>]
29952
30254
  attr_accessor :drain_nat_ips
29953
30255
 
30256
+ # Enable Dynamic Port Allocation. If not specified, it is disabled by default.
30257
+ # If set to true, - Dynamic Port Allocation will be enabled on this NAT config. -
30258
+ # enableEndpointIndependentMapping cannot be set to true. - If minPorts is set,
30259
+ # minPortsPerVm must be set to a power of two greater than or equal to 32. If
30260
+ # minPortsPerVm is not set, a minimum of 32 ports will be allocated to a VM from
30261
+ # this NAT config.
30262
+ # Corresponds to the JSON property `enableDynamicPortAllocation`
30263
+ # @return [Boolean]
30264
+ attr_accessor :enable_dynamic_port_allocation
30265
+ alias_method :enable_dynamic_port_allocation?, :enable_dynamic_port_allocation
30266
+
29954
30267
  #
29955
30268
  # Corresponds to the JSON property `enableEndpointIndependentMapping`
29956
30269
  # @return [Boolean]
@@ -29967,6 +30280,17 @@ module Google
29967
30280
  # @return [Google::Apis::ComputeBeta::RouterNatLogConfig]
29968
30281
  attr_accessor :log_config
29969
30282
 
30283
+ # Maximum number of ports allocated to a VM from this NAT config when Dynamic
30284
+ # Port Allocation is enabled. If Dynamic Port Allocation is not enabled, this
30285
+ # field has no effect. If Dynamic Port Allocation is enabled, and this field is
30286
+ # set, it must be set to a power of two greater than minPortsPerVm, or 64 if
30287
+ # minPortsPerVm is not set. If Dynamic Port Allocation is enabled and this field
30288
+ # is not set, a maximum of 65536 ports will be allocated to a VM from this NAT
30289
+ # config.
30290
+ # Corresponds to the JSON property `maxPortsPerVm`
30291
+ # @return [Fixnum]
30292
+ attr_accessor :max_ports_per_vm
30293
+
29970
30294
  # Minimum number of ports allocated to a VM from this NAT config. If not set, a
29971
30295
  # default number of ports is allocated to a VM. This is rounded up to the
29972
30296
  # nearest power of 2. For example, if the value of this field is 50, at least 64
@@ -30051,9 +30375,11 @@ module Google
30051
30375
  # Update properties of this object
30052
30376
  def update!(**args)
30053
30377
  @drain_nat_ips = args[:drain_nat_ips] if args.key?(:drain_nat_ips)
30378
+ @enable_dynamic_port_allocation = args[:enable_dynamic_port_allocation] if args.key?(:enable_dynamic_port_allocation)
30054
30379
  @enable_endpoint_independent_mapping = args[:enable_endpoint_independent_mapping] if args.key?(:enable_endpoint_independent_mapping)
30055
30380
  @icmp_idle_timeout_sec = args[:icmp_idle_timeout_sec] if args.key?(:icmp_idle_timeout_sec)
30056
30381
  @log_config = args[:log_config] if args.key?(:log_config)
30382
+ @max_ports_per_vm = args[:max_ports_per_vm] if args.key?(:max_ports_per_vm)
30057
30383
  @min_ports_per_vm = args[:min_ports_per_vm] if args.key?(:min_ports_per_vm)
30058
30384
  @name = args[:name] if args.key?(:name)
30059
30385
  @nat_ip_allocate_option = args[:nat_ip_allocate_option] if args.key?(:nat_ip_allocate_option)
@@ -30118,7 +30444,8 @@ module Google
30118
30444
  # "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.
30119
30445
  # 0/16')" "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" The
30120
30446
  # following example is a valid match expression for private NAT: "nexthop.hub ==
30121
- # '/projects/my-project/global/hub/hub-1'"
30447
+ # 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/
30448
+ # global/hub/hub-1'"
30122
30449
  # Corresponds to the JSON property `match`
30123
30450
  # @return [String]
30124
30451
  attr_accessor :match
@@ -30711,7 +31038,8 @@ module Google
30711
31038
  end
30712
31039
  end
30713
31040
 
30714
- # An instance-attached disk resource.
31041
+ # DEPRECATED: Please use compute#savedDisk instead. An instance-attached disk
31042
+ # resource.
30715
31043
  class SavedAttachedDisk
30716
31044
  include Google::Apis::Core::Hashable
30717
31045
 
@@ -30834,6 +31162,47 @@ module Google
30834
31162
  end
30835
31163
  end
30836
31164
 
31165
+ # An instance-attached disk resource.
31166
+ class SavedDisk
31167
+ include Google::Apis::Core::Hashable
31168
+
31169
+ # [Output Only] Type of the resource. Always compute#savedDisk for attached
31170
+ # disks.
31171
+ # Corresponds to the JSON property `kind`
31172
+ # @return [String]
31173
+ attr_accessor :kind
31174
+
31175
+ # Specifies a URL of the disk attached to the source instance.
31176
+ # Corresponds to the JSON property `sourceDisk`
31177
+ # @return [String]
31178
+ attr_accessor :source_disk
31179
+
31180
+ # [Output Only] Size of the individual disk snapshot used by this machine image.
31181
+ # Corresponds to the JSON property `storageBytes`
31182
+ # @return [Fixnum]
31183
+ attr_accessor :storage_bytes
31184
+
31185
+ # [Output Only] An indicator whether storageBytes is in a stable state or it is
31186
+ # being adjusted as a result of shared storage reallocation. This status can
31187
+ # either be UPDATING, meaning the size of the snapshot is being updated, or
31188
+ # UP_TO_DATE, meaning the size of the snapshot is up-to-date.
31189
+ # Corresponds to the JSON property `storageBytesStatus`
31190
+ # @return [String]
31191
+ attr_accessor :storage_bytes_status
31192
+
31193
+ def initialize(**args)
31194
+ update!(**args)
31195
+ end
31196
+
31197
+ # Update properties of this object
31198
+ def update!(**args)
31199
+ @kind = args[:kind] if args.key?(:kind)
31200
+ @source_disk = args[:source_disk] if args.key?(:source_disk)
31201
+ @storage_bytes = args[:storage_bytes] if args.key?(:storage_bytes)
31202
+ @storage_bytes_status = args[:storage_bytes_status] if args.key?(:storage_bytes_status)
31203
+ end
31204
+ end
31205
+
30837
31206
  #
30838
31207
  class ScalingScheduleStatus
30839
31208
  include Google::Apis::Core::Hashable
@@ -31165,6 +31534,11 @@ module Google
31165
31534
  # @return [String]
31166
31535
  attr_accessor :parent
31167
31536
 
31537
+ #
31538
+ # Corresponds to the JSON property `recaptchaOptionsConfig`
31539
+ # @return [Google::Apis::ComputeBeta::SecurityPolicyRecaptchaOptionsConfig]
31540
+ attr_accessor :recaptcha_options_config
31541
+
31168
31542
  # [Output Only] Total count of all security policy rule tuples. A security
31169
31543
  # policy can not exceed a set number of tuples.
31170
31544
  # Corresponds to the JSON property `ruleTupleCount`
@@ -31219,6 +31593,7 @@ module Google
31219
31593
  @labels = args[:labels] if args.key?(:labels)
31220
31594
  @name = args[:name] if args.key?(:name)
31221
31595
  @parent = args[:parent] if args.key?(:parent)
31596
+ @recaptcha_options_config = args[:recaptcha_options_config] if args.key?(:recaptcha_options_config)
31222
31597
  @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
31223
31598
  @rules = args[:rules] if args.key?(:rules)
31224
31599
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -31447,6 +31822,29 @@ module Google
31447
31822
  end
31448
31823
  end
31449
31824
 
31825
+ #
31826
+ class SecurityPolicyRecaptchaOptionsConfig
31827
+ include Google::Apis::Core::Hashable
31828
+
31829
+ # An optional field to supply a reCAPTCHA site key to be used for all the rules
31830
+ # using the redirect action with the type of GOOGLE_RECAPTCHA under the security
31831
+ # policy. The specified site key needs to be created from the reCAPTCHA API. The
31832
+ # user is responsible for the validity of the specified site key. If not
31833
+ # specified, a Google-managed site key is used.
31834
+ # Corresponds to the JSON property `redirectSiteKey`
31835
+ # @return [String]
31836
+ attr_accessor :redirect_site_key
31837
+
31838
+ def initialize(**args)
31839
+ update!(**args)
31840
+ end
31841
+
31842
+ # Update properties of this object
31843
+ def update!(**args)
31844
+ @redirect_site_key = args[:redirect_site_key] if args.key?(:redirect_site_key)
31845
+ end
31846
+ end
31847
+
31450
31848
  #
31451
31849
  class SecurityPolicyReference
31452
31850
  include Google::Apis::Core::Hashable
@@ -31471,9 +31869,17 @@ module Google
31471
31869
  class SecurityPolicyRule
31472
31870
  include Google::Apis::Core::Hashable
31473
31871
 
31474
- # The Action to perform when the client connection triggers the rule. Can
31475
- # currently be either "allow" or "deny()" where valid values for status are 403,
31476
- # 404, and 502.
31872
+ # The Action to perform when the rule is matched. The following are the valid
31873
+ # actions: - allow: allow access to target. - deny(): deny access to target,
31874
+ # returns the HTTP response code specified (valid values are 403, 404, and 502).
31875
+ # - rate_based_ban: limit client traffic to the configured threshold and ban the
31876
+ # client if the traffic exceeds the threshold. Configure parameters for this
31877
+ # action in RateLimitOptions. Requires rate_limit_options to be set. - redirect:
31878
+ # redirect to a different target. This can either be an internal reCAPTCHA
31879
+ # redirect, or an external URL-based redirect via a 302 response. Parameters for
31880
+ # this action can be configured via redirectOptions. - throttle: limit client
31881
+ # traffic to the configured threshold. Configure parameters for this action in
31882
+ # rateLimitOptions. Requires rate_limit_options to be set for this.
31477
31883
  # Corresponds to the JSON property `action`
31478
31884
  # @return [String]
31479
31885
  attr_accessor :action
@@ -31780,33 +32186,45 @@ module Google
31780
32186
  attr_accessor :conform_action
31781
32187
 
31782
32188
  # Determines the key to enforce the rate_limit_threshold on. Possible values are:
31783
- # "ALL" -- A single rate limit threshold is applied to all the requests
31784
- # matching this rule. This is the default value if this field 'enforce_on_key'
31785
- # is not configured. "ALL_IPS" -- This definition, equivalent to "ALL", has been
31786
- # depprecated. "IP" -- The source IP address of the request is the key. Each IP
31787
- # has this limit enforced separately. "HTTP_HEADER" -- The value of the HTTP
31788
- # header whose name is configured under "enforce_on_key_name". The key value is
32189
+ # - ALL: A single rate limit threshold is applied to all the requests matching
32190
+ # this rule. This is the default value if this field 'enforce_on_key' is not
32191
+ # configured. - IP: The source IP address of the request is the key. Each IP has
32192
+ # this limit enforced separately. - HTTP_HEADER: The value of the HTTP header
32193
+ # whose name is configured under "enforce_on_key_name". The key value is
31789
32194
  # truncated to the first 128 bytes of the header value. If no such header is
31790
- # present in the request, the key type defaults to "ALL". "XFF_IP" -- The first
31791
- # IP address (i.e. the originating client IP address) specified in the list of
31792
- # IPs under X-Forwarded-For HTTP header. If no such header is present or the
31793
- # value is not a valid IP, the key type defaults to "ALL".
32195
+ # present in the request, the key type defaults to ALL. - XFF_IP: The first IP
32196
+ # address (i.e. the originating client IP address) specified in the list of IPs
32197
+ # under X-Forwarded-For HTTP header. If no such header is present or the value
32198
+ # is not a valid IP, the key type defaults to ALL. - HTTP_COOKIE: The value of
32199
+ # the HTTP cookie whose name is configured under "enforce_on_key_name". The key
32200
+ # value is truncated to the first 128 bytes of the cookie value. If no such
32201
+ # cookie is present in the request, the key type defaults to ALL.
31794
32202
  # Corresponds to the JSON property `enforceOnKey`
31795
32203
  # @return [String]
31796
32204
  attr_accessor :enforce_on_key
31797
32205
 
31798
32206
  # Rate limit key name applicable only for the following key types: HTTP_HEADER --
31799
- # Name of the HTTP header whose value is taken as the key value.
32207
+ # Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE --
32208
+ # Name of the HTTP cookie whose value is taken as the key value.
31800
32209
  # Corresponds to the JSON property `enforceOnKeyName`
31801
32210
  # @return [String]
31802
32211
  attr_accessor :enforce_on_key_name
31803
32212
 
31804
- # When a request is denied, returns the HTTP response code specified. Valid
31805
- # options are "deny()" where valid values for status are 403, 404, 429, and 502.
32213
+ # Action to take for requests that are above the configured rate limit threshold,
32214
+ # to either deny with a specified HTTP response code, or redirect to a
32215
+ # different endpoint. Valid options are "deny()" where valid values for status
32216
+ # are 403, 404, 429, and 502, and "redirect" where the redirect parameters come
32217
+ # from exceed_redirect_options below.
31806
32218
  # Corresponds to the JSON property `exceedAction`
31807
32219
  # @return [String]
31808
32220
  attr_accessor :exceed_action
31809
32221
 
32222
+ # Parameters defining the redirect action that is used as the exceed action.
32223
+ # Cannot be specified if the exceed action is not redirect.
32224
+ # Corresponds to the JSON property `exceedRedirectOptions`
32225
+ # @return [Google::Apis::ComputeBeta::SecurityPolicyRuleRedirectOptions]
32226
+ attr_accessor :exceed_redirect_options
32227
+
31810
32228
  # Threshold at which to begin ratelimiting.
31811
32229
  # Corresponds to the JSON property `rateLimitThreshold`
31812
32230
  # @return [Google::Apis::ComputeBeta::SecurityPolicyRuleRateLimitOptionsThreshold]
@@ -31824,6 +32242,7 @@ module Google
31824
32242
  @enforce_on_key = args[:enforce_on_key] if args.key?(:enforce_on_key)
31825
32243
  @enforce_on_key_name = args[:enforce_on_key_name] if args.key?(:enforce_on_key_name)
31826
32244
  @exceed_action = args[:exceed_action] if args.key?(:exceed_action)
32245
+ @exceed_redirect_options = args[:exceed_redirect_options] if args.key?(:exceed_redirect_options)
31827
32246
  @rate_limit_threshold = args[:rate_limit_threshold] if args.key?(:rate_limit_threshold)
31828
32247
  end
31829
32248
  end
@@ -32062,6 +32481,13 @@ module Google
32062
32481
  # @return [String]
32063
32482
  attr_accessor :description
32064
32483
 
32484
+ # If specified, the domain name will be used during the integration between the
32485
+ # PSC connected endpoints and the Cloud DNS. For example, this is a valid domain
32486
+ # name: "p.mycompany.com.". Current max number of domain names supported is 1.
32487
+ # Corresponds to the JSON property `domainNames`
32488
+ # @return [Array<String>]
32489
+ attr_accessor :domain_names
32490
+
32065
32491
  # If true, enable the proxy protocol which is for supplying client TCP/IP
32066
32492
  # address data in TCP connections that traverse proxies on their way to
32067
32493
  # destination servers.
@@ -32150,6 +32576,7 @@ module Google
32150
32576
  @consumer_reject_lists = args[:consumer_reject_lists] if args.key?(:consumer_reject_lists)
32151
32577
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
32152
32578
  @description = args[:description] if args.key?(:description)
32579
+ @domain_names = args[:domain_names] if args.key?(:domain_names)
32153
32580
  @enable_proxy_protocol = args[:enable_proxy_protocol] if args.key?(:enable_proxy_protocol)
32154
32581
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
32155
32582
  @id = args[:id] if args.key?(:id)
@@ -32556,9 +32983,8 @@ module Google
32556
32983
  class ShareSettings
32557
32984
  include Google::Apis::Core::Hashable
32558
32985
 
32559
- # A map of project id and project config. Using map format to ease add-to/remove-
32560
- # from the Project list in PATCH command. In future we will deprecate (And later
32561
- # remove) the array one.
32986
+ # A map of project id and project config. This is only valid when share_type's
32987
+ # value is SPECIFIC_PROJECTS.
32562
32988
  # Corresponds to the JSON property `projectMap`
32563
32989
  # @return [Hash<String,Google::Apis::ComputeBeta::ShareSettingsProjectConfig>]
32564
32990
  attr_accessor :project_map
@@ -33252,7 +33678,8 @@ module Google
33252
33678
  end
33253
33679
  end
33254
33680
 
33255
- #
33681
+ # DEPRECATED: Please use compute#instanceProperties instead. New properties will
33682
+ # not be added to this field.
33256
33683
  class SourceInstanceProperties
33257
33684
  include Google::Apis::Core::Hashable
33258
33685
 
@@ -33321,7 +33748,7 @@ module Google
33321
33748
  # @return [Array<Google::Apis::ComputeBeta::NetworkInterface>]
33322
33749
  attr_accessor :network_interfaces
33323
33750
 
33324
- # PostKeyRevocationActionType of the instance. (will be deprecated soon)
33751
+ # PostKeyRevocationActionType of the instance.
33325
33752
  # Corresponds to the JSON property `postKeyRevocationActionType`
33326
33753
  # @return [String]
33327
33754
  attr_accessor :post_key_revocation_action_type
@@ -34242,6 +34669,20 @@ module Google
34242
34669
  # @return [Hash<String,Google::Apis::ComputeBeta::StatefulPolicyPreservedStateDiskDevice>]
34243
34670
  attr_accessor :disks
34244
34671
 
34672
+ # External network IPs assigned to the instances that will be preserved on
34673
+ # instance delete, update, etc. This map is keyed with the network interface
34674
+ # name.
34675
+ # Corresponds to the JSON property `externalIPs`
34676
+ # @return [Hash<String,Google::Apis::ComputeBeta::StatefulPolicyPreservedStateNetworkIp>]
34677
+ attr_accessor :external_i_ps
34678
+
34679
+ # Internal network IPs assigned to the instances that will be preserved on
34680
+ # instance delete, update, etc. This map is keyed with the network interface
34681
+ # name.
34682
+ # Corresponds to the JSON property `internalIPs`
34683
+ # @return [Hash<String,Google::Apis::ComputeBeta::StatefulPolicyPreservedStateNetworkIp>]
34684
+ attr_accessor :internal_i_ps
34685
+
34245
34686
  def initialize(**args)
34246
34687
  update!(**args)
34247
34688
  end
@@ -34249,6 +34690,8 @@ module Google
34249
34690
  # Update properties of this object
34250
34691
  def update!(**args)
34251
34692
  @disks = args[:disks] if args.key?(:disks)
34693
+ @external_i_ps = args[:external_i_ps] if args.key?(:external_i_ps)
34694
+ @internal_i_ps = args[:internal_i_ps] if args.key?(:internal_i_ps)
34252
34695
  end
34253
34696
  end
34254
34697
 
@@ -34275,6 +34718,28 @@ module Google
34275
34718
  end
34276
34719
  end
34277
34720
 
34721
+ #
34722
+ class StatefulPolicyPreservedStateNetworkIp
34723
+ include Google::Apis::Core::Hashable
34724
+
34725
+ # These stateful IPs will never be released during autohealing, update or VM
34726
+ # instance recreate operations. This flag is used to configure if the IP
34727
+ # reservation should be deleted after it is no longer used by the group, e.g.
34728
+ # when the given instance or the whole group is deleted.
34729
+ # Corresponds to the JSON property `autoDelete`
34730
+ # @return [String]
34731
+ attr_accessor :auto_delete
34732
+
34733
+ def initialize(**args)
34734
+ update!(**args)
34735
+ end
34736
+
34737
+ # Update properties of this object
34738
+ def update!(**args)
34739
+ @auto_delete = args[:auto_delete] if args.key?(:auto_delete)
34740
+ end
34741
+ end
34742
+
34278
34743
  # Represents a Subnetwork resource. A subnetwork (also known as a subnet) is a
34279
34744
  # logical partition of a Virtual Private Cloud network with one primary IP range
34280
34745
  # and zero or more secondary IP ranges. For more information, read Virtual
@@ -34313,8 +34778,9 @@ module Google
34313
34778
 
34314
34779
  # Whether to enable flow logging for this subnetwork. If this field is not
34315
34780
  # explicitly set, it will not appear in get listings. If not set the default
34316
- # behavior is to disable flow logging. This field isn't supported with the
34317
- # purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.
34781
+ # behavior is determined by the org policy, if there is no org policy specified,
34782
+ # then it will default to disabled. This field isn't supported with the purpose
34783
+ # field set to INTERNAL_HTTPS_LOAD_BALANCER.
34318
34784
  # Corresponds to the JSON property `enableFlowLogs`
34319
34785
  # @return [Boolean]
34320
34786
  attr_accessor :enable_flow_logs
@@ -34368,7 +34834,7 @@ module Google
34368
34834
  attr_accessor :ipv6_access_type
34369
34835
 
34370
34836
  # [Output Only] The range of internal IPv6 addresses that are owned by this
34371
- # subnetwork.
34837
+ # subnetwork. Note this will be for private google access only eventually.
34372
34838
  # Corresponds to the JSON property `ipv6CidrRange`
34373
34839
  # @return [String]
34374
34840
  attr_accessor :ipv6_cidr_range
@@ -34762,7 +35228,8 @@ module Google
34762
35228
 
34763
35229
  # Whether to enable flow logging for this subnetwork. If this field is not
34764
35230
  # explicitly set, it will not appear in get listings. If not set the default
34765
- # behavior is to disable flow logging.
35231
+ # behavior is determined by the org policy, if there is no org policy specified,
35232
+ # then it will default to disabled.
34766
35233
  # Corresponds to the JSON property `enable`
34767
35234
  # @return [Boolean]
34768
35235
  attr_accessor :enable
@@ -34777,8 +35244,8 @@ module Google
34777
35244
  # Can only be specified if VPC flow logging for this subnetwork is enabled. The
34778
35245
  # value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs
34779
35246
  # within the subnetwork where 1.0 means all collected logs are reported and 0.0
34780
- # means no logs are reported. Default is 0.5, which means half of all collected
34781
- # logs are reported.
35247
+ # means no logs are reported. Default is 0.5 unless otherwise specified by the
35248
+ # org policy, which means half of all collected logs are reported.
34782
35249
  # Corresponds to the JSON property `flowSampling`
34783
35250
  # @return [Float]
34784
35251
  attr_accessor :flow_sampling
@@ -34984,6 +35451,20 @@ module Google
34984
35451
  # @return [String]
34985
35452
  attr_accessor :policy
34986
35453
 
35454
+ # The number of backends per backend group assigned to each proxy instance or
35455
+ # each service mesh client. An input parameter to the `
35456
+ # CONSISTENT_HASH_SUBSETTING` algorithm. Can only be set if `policy` is set to `
35457
+ # CONSISTENT_HASH_SUBSETTING`. Can only be set if load balancing scheme is `
35458
+ # INTERNAL_MANAGED` or `INTERNAL_SELF_MANAGED`. `subset_size` is optional for
35459
+ # Internal HTTP(S) load balancing and required for Traffic Director. If you do
35460
+ # not provide this value, Cloud Load Balancing will calculate it dynamically to
35461
+ # optimize the number of proxies/clients visible to each backend and vice versa.
35462
+ # Must be greater than 0. If `subset_size` is larger than the number of backends/
35463
+ # endpoints, then subsetting is disabled.
35464
+ # Corresponds to the JSON property `subsetSize`
35465
+ # @return [Fixnum]
35466
+ attr_accessor :subset_size
35467
+
34987
35468
  def initialize(**args)
34988
35469
  update!(**args)
34989
35470
  end
@@ -34991,6 +35472,7 @@ module Google
34991
35472
  # Update properties of this object
34992
35473
  def update!(**args)
34993
35474
  @policy = args[:policy] if args.key?(:policy)
35475
+ @subset_size = args[:subset_size] if args.key?(:subset_size)
34994
35476
  end
34995
35477
  end
34996
35478
 
@@ -38349,7 +38831,7 @@ module Google
38349
38831
  class TestFailure
38350
38832
  include Google::Apis::Core::Hashable
38351
38833
 
38352
- # The actual output URL evaluated by load balancer containing the scheme, host,
38834
+ # The actual output URL evaluated by a load balancer containing the scheme, host,
38353
38835
  # path and query parameters.
38354
38836
  # Corresponds to the JSON property `actualOutputUrl`
38355
38837
  # @return [String]
@@ -38366,8 +38848,8 @@ module Google
38366
38848
  # @return [String]
38367
38849
  attr_accessor :actual_service
38368
38850
 
38369
- # The expected output URL evaluated by load balancer containing the scheme, host,
38370
- # path and query parameters.
38851
+ # The expected output URL evaluated by a load balancer containing the scheme,
38852
+ # host, path and query parameters.
38371
38853
  # Corresponds to the JSON property `expectedOutputUrl`
38372
38854
  # @return [String]
38373
38855
  attr_accessor :expected_output_url
@@ -38481,21 +38963,21 @@ module Google
38481
38963
  end
38482
38964
  end
38483
38965
 
38484
- # Represents a URL Map resource. Google Compute Engine has two URL Map resources:
38485
- # * [Global](/compute/docs/reference/rest/beta/urlMaps) * [Regional](/compute/
38486
- # docs/reference/rest/beta/regionUrlMaps) A URL map resource is a component of
38487
- # certain types of GCP load balancers and Traffic Director. * urlMaps are used
38966
+ # Represents a URL Map resource. Compute Engine has two URL Map resources: * [
38967
+ # Global](/compute/docs/reference/rest/beta/urlMaps) * [Regional](/compute/docs/
38968
+ # reference/rest/beta/regionUrlMaps) A URL map resource is a component of
38969
+ # certain types of cloud load balancers and Traffic Director: * urlMaps are used
38488
38970
  # by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are
38489
38971
  # used by internal HTTP(S) load balancers. For a list of supported URL map
38490
- # features by load balancer type, see the Load balancing features: Routing and
38491
- # traffic management table. For a list of supported URL map features for Traffic
38492
- # Director, see the Traffic Director features: Routing and traffic management
38493
- # table. This resource defines mappings from host names and URL paths to either
38494
- # a backend service or a backend bucket. To use the global urlMaps resource, the
38495
- # backend service must have a loadBalancingScheme of either EXTERNAL or
38496
- # INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service
38497
- # must have a loadBalancingScheme of INTERNAL_MANAGED. For more information,
38498
- # read URL Map Concepts.
38972
+ # features by the load balancer type, see the Load balancing features: Routing
38973
+ # and traffic management table. For a list of supported URL map features for
38974
+ # Traffic Director, see the Traffic Director features: Routing and traffic
38975
+ # management table. This resource defines mappings from hostnames and URL paths
38976
+ # to either a backend service or a backend bucket. To use the global urlMaps
38977
+ # resource, the backend service must have a loadBalancingScheme of either
38978
+ # EXTERNAL or INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the
38979
+ # backend service must have a loadBalancingScheme of INTERNAL_MANAGED. For more
38980
+ # information, read URL Map Concepts.
38499
38981
  class UrlMap
38500
38982
  include Google::Apis::Core::Hashable
38501
38983
 
@@ -38505,28 +38987,28 @@ module Google
38505
38987
  attr_accessor :creation_timestamp
38506
38988
 
38507
38989
  # defaultRouteAction takes effect when none of the hostRules match. The load
38508
- # balancer performs advanced routing actions like URL rewrites, header
38509
- # transformations, etc. prior to forwarding the request to the selected backend.
38510
- # If defaultRouteAction specifies any weightedBackendServices, defaultService
38511
- # must not be set. Conversely if defaultService is set, defaultRouteAction
38512
- # cannot contain any weightedBackendServices. Only one of defaultRouteAction or
38990
+ # balancer performs advanced routing actions, such as URL rewrites and header
38991
+ # transformations, before forwarding the request to the selected backend. If
38992
+ # defaultRouteAction specifies any weightedBackendServices, defaultService must
38993
+ # not be set. Conversely if defaultService is set, defaultRouteAction cannot
38994
+ # contain any weightedBackendServices. Only one of defaultRouteAction or
38513
38995
  # defaultUrlRedirect must be set. UrlMaps for external HTTP(S) load balancers
38514
38996
  # support only the urlRewrite action within defaultRouteAction.
38515
- # defaultRouteAction has no effect when the URL map is bound to target gRPC
38516
- # proxy that has validateForProxyless field set to true.
38997
+ # defaultRouteAction has no effect when the URL map is bound to a target gRPC
38998
+ # proxy that has the validateForProxyless field set to true.
38517
38999
  # Corresponds to the JSON property `defaultRouteAction`
38518
39000
  # @return [Google::Apis::ComputeBeta::HttpRouteAction]
38519
39001
  attr_accessor :default_route_action
38520
39002
 
38521
39003
  # The full or partial URL of the defaultService resource to which traffic is
38522
- # directed if none of the hostRules match. If defaultRouteAction is additionally
38523
- # specified, advanced routing actions like URL Rewrites, etc. take effect prior
38524
- # to sending the request to the backend. However, if defaultService is specified,
39004
+ # directed if none of the hostRules match. If defaultRouteAction is also
39005
+ # specified, advanced routing actions, such as URL rewrites, take effect before
39006
+ # sending the request to the backend. However, if defaultService is specified,
38525
39007
  # defaultRouteAction cannot contain any weightedBackendServices. Conversely, if
38526
39008
  # routeAction specifies any weightedBackendServices, service must not be
38527
- # specified. Only one of defaultService, defaultUrlRedirect or
39009
+ # specified. Only one of defaultService, defaultUrlRedirect , or
38528
39010
  # defaultRouteAction.weightedBackendService must be set. defaultService has no
38529
- # effect when the URL map is bound to target gRPC proxy that has
39011
+ # effect when the URL map is bound to a target gRPC proxy that has the
38530
39012
  # validateForProxyless field set to true.
38531
39013
  # Corresponds to the JSON property `defaultService`
38532
39014
  # @return [String]
@@ -38544,11 +39026,10 @@ module Google
38544
39026
  attr_accessor :description
38545
39027
 
38546
39028
  # Fingerprint of this resource. A hash of the contents stored in this object.
38547
- # This field is used in optimistic locking. This field will be ignored when
38548
- # inserting a UrlMap. An up-to-date fingerprint must be provided in order to
38549
- # update the UrlMap, otherwise the request will fail with error 412
38550
- # conditionNotMet. To see the latest fingerprint, make a get() request to
38551
- # retrieve a UrlMap.
39029
+ # This field is used in optimistic locking. This field is ignored when inserting
39030
+ # a UrlMap. An up-to-date fingerprint must be provided in order to update the
39031
+ # UrlMap, otherwise the request will fail with error 412 conditionNotMet. To see
39032
+ # the latest fingerprint, make a get() request to retrieve a UrlMap.
38552
39033
  # Corresponds to the JSON property `fingerprint`
38553
39034
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
38554
39035
  # @return [String]
@@ -38560,7 +39041,7 @@ module Google
38560
39041
  # @return [Google::Apis::ComputeBeta::HttpHeaderAction]
38561
39042
  attr_accessor :header_action
38562
39043
 
38563
- # The list of HostRules to use against the URL.
39044
+ # The list of host rules to use against the URL.
38564
39045
  # Corresponds to the JSON property `hostRules`
38565
39046
  # @return [Array<Google::Apis::ComputeBeta::HostRule>]
38566
39047
  attr_accessor :host_rules
@@ -38603,10 +39084,10 @@ module Google
38603
39084
  # @return [String]
38604
39085
  attr_accessor :self_link
38605
39086
 
38606
- # The list of expected URL mapping tests. Request to update this UrlMap will
38607
- # succeed only if all of the test cases pass. You can specify a maximum of 100
38608
- # tests per UrlMap. Not supported when the URL map is bound to target gRPC proxy
38609
- # that has validateForProxyless field set to true.
39087
+ # The list of expected URL mapping tests. Request to update the UrlMap succeeds
39088
+ # only if all test cases pass. You can specify a maximum of 100 tests per UrlMap.
39089
+ # Not supported when the URL map is bound to a target gRPC proxy that has
39090
+ # validateForProxyless field set to true.
38610
39091
  # Corresponds to the JSON property `tests`
38611
39092
  # @return [Array<Google::Apis::ComputeBeta::UrlMapTest>]
38612
39093
  attr_accessor :tests
@@ -38780,18 +39261,18 @@ module Google
38780
39261
  # @return [String]
38781
39262
  attr_accessor :description
38782
39263
 
38783
- # The expected output URL evaluated by load balancer containing the scheme, host,
38784
- # path and query parameters. For rules that forward requests to backends, the
38785
- # test passes only when expectedOutputUrl matches the request forwarded by load
38786
- # balancer to backends. For rules with urlRewrite, the test verifies that the
38787
- # forwarded request matches hostRewrite and pathPrefixRewrite in the urlRewrite
38788
- # action. When service is specified, expectedOutputUrl`s scheme is ignored. For
38789
- # rules with urlRedirect, the test passes only if expectedOutputUrl matches the
38790
- # URL in the load balancer's redirect response. If urlRedirect specifies
38791
- # https_redirect, the test passes only if the scheme in expectedOutputUrl is
38792
- # also set to https. If urlRedirect specifies strip_query, the test passes only
38793
- # if expectedOutputUrl does not contain any query parameters. expectedOutputUrl
38794
- # is optional when service is specified.
39264
+ # The expected output URL evaluated by the load balancer containing the scheme,
39265
+ # host, path and query parameters. For rules that forward requests to backends,
39266
+ # the test passes only when expectedOutputUrl matches the request forwarded by
39267
+ # the load balancer to backends. For rules with urlRewrite, the test verifies
39268
+ # that the forwarded request matches hostRewrite and pathPrefixRewrite in the
39269
+ # urlRewrite action. When service is specified, expectedOutputUrl`s scheme is
39270
+ # ignored. For rules with urlRedirect, the test passes only if expectedOutputUrl
39271
+ # matches the URL in the load balancer's redirect response. If urlRedirect
39272
+ # specifies https_redirect, the test passes only if the scheme in
39273
+ # expectedOutputUrl is also set to HTTPS. If urlRedirect specifies strip_query,
39274
+ # the test passes only if expectedOutputUrl does not contain any query
39275
+ # parameters. expectedOutputUrl is optional when service is specified.
38795
39276
  # Corresponds to the JSON property `expectedOutputUrl`
38796
39277
  # @return [String]
38797
39278
  attr_accessor :expected_output_url
@@ -38822,7 +39303,8 @@ module Google
38822
39303
  attr_accessor :path
38823
39304
 
38824
39305
  # Expected BackendService or BackendBucket resource the given URL should be
38825
- # mapped to. service cannot be set if expectedRedirectResponseCode is set.
39306
+ # mapped to. The service field cannot be set if expectedRedirectResponseCode is
39307
+ # set.
38826
39308
  # Corresponds to the JSON property `service`
38827
39309
  # @return [String]
38828
39310
  attr_accessor :service
@@ -39127,21 +39609,36 @@ module Google
39127
39609
  class ValidateUrlMapsRequest
39128
39610
  include Google::Apis::Core::Hashable
39129
39611
 
39130
- # Represents a URL Map resource. Google Compute Engine has two URL Map resources:
39131
- # * [Global](/compute/docs/reference/rest/beta/urlMaps) * [Regional](/compute/
39132
- # docs/reference/rest/beta/regionUrlMaps) A URL map resource is a component of
39133
- # certain types of GCP load balancers and Traffic Director. * urlMaps are used
39612
+ # Specifies the load balancer type(s) this validation request is for. Use
39613
+ # EXTERNAL_MANAGED for HTTP/HTTPS External Global Load Balancer with Advanced
39614
+ # Traffic Management. Use EXTERNAL for Classic HTTP/HTTPS External Global Load
39615
+ # Balancer. Other load balancer types are not supported. For more information,
39616
+ # refer to Choosing a load balancer. If unspecified, the load balancing scheme
39617
+ # will be inferred from the backend service resources this URL map references.
39618
+ # If that can not be inferred (for example, this URL map only references backend
39619
+ # buckets, or this Url map is for rewrites and redirects only and doesn't
39620
+ # reference any backends), EXTERNAL will be used as the default type. If
39621
+ # specified, the scheme(s) must not conflict with the load balancing scheme of
39622
+ # the backend service resources this Url map references.
39623
+ # Corresponds to the JSON property `loadBalancingSchemes`
39624
+ # @return [Array<String>]
39625
+ attr_accessor :load_balancing_schemes
39626
+
39627
+ # Represents a URL Map resource. Compute Engine has two URL Map resources: * [
39628
+ # Global](/compute/docs/reference/rest/beta/urlMaps) * [Regional](/compute/docs/
39629
+ # reference/rest/beta/regionUrlMaps) A URL map resource is a component of
39630
+ # certain types of cloud load balancers and Traffic Director: * urlMaps are used
39134
39631
  # by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are
39135
39632
  # used by internal HTTP(S) load balancers. For a list of supported URL map
39136
- # features by load balancer type, see the Load balancing features: Routing and
39137
- # traffic management table. For a list of supported URL map features for Traffic
39138
- # Director, see the Traffic Director features: Routing and traffic management
39139
- # table. This resource defines mappings from host names and URL paths to either
39140
- # a backend service or a backend bucket. To use the global urlMaps resource, the
39141
- # backend service must have a loadBalancingScheme of either EXTERNAL or
39142
- # INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service
39143
- # must have a loadBalancingScheme of INTERNAL_MANAGED. For more information,
39144
- # read URL Map Concepts.
39633
+ # features by the load balancer type, see the Load balancing features: Routing
39634
+ # and traffic management table. For a list of supported URL map features for
39635
+ # Traffic Director, see the Traffic Director features: Routing and traffic
39636
+ # management table. This resource defines mappings from hostnames and URL paths
39637
+ # to either a backend service or a backend bucket. To use the global urlMaps
39638
+ # resource, the backend service must have a loadBalancingScheme of either
39639
+ # EXTERNAL or INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the
39640
+ # backend service must have a loadBalancingScheme of INTERNAL_MANAGED. For more
39641
+ # information, read URL Map Concepts.
39145
39642
  # Corresponds to the JSON property `resource`
39146
39643
  # @return [Google::Apis::ComputeBeta::UrlMap]
39147
39644
  attr_accessor :resource
@@ -39152,6 +39649,7 @@ module Google
39152
39649
 
39153
39650
  # Update properties of this object
39154
39651
  def update!(**args)
39652
+ @load_balancing_schemes = args[:load_balancing_schemes] if args.key?(:load_balancing_schemes)
39155
39653
  @resource = args[:resource] if args.key?(:resource)
39156
39654
  end
39157
39655
  end
@@ -39180,16 +39678,16 @@ module Google
39180
39678
  class UrlRewrite
39181
39679
  include Google::Apis::Core::Hashable
39182
39680
 
39183
- # Prior to forwarding the request to the selected service, the request's host
39184
- # header is replaced with contents of hostRewrite. The value must be between 1
39185
- # and 255 characters.
39681
+ # Before forwarding the request to the selected service, the request's host
39682
+ # header is replaced with contents of hostRewrite. The value must be from 1 to
39683
+ # 255 characters.
39186
39684
  # Corresponds to the JSON property `hostRewrite`
39187
39685
  # @return [String]
39188
39686
  attr_accessor :host_rewrite
39189
39687
 
39190
- # Prior to forwarding the request to the selected backend service, the matching
39688
+ # Before forwarding the request to the selected backend service, the matching
39191
39689
  # portion of the request's path is replaced by pathPrefixRewrite. The value must
39192
- # be between 1 and 1024 characters.
39690
+ # be from 1 to 1024 characters.
39193
39691
  # Corresponds to the JSON property `pathPrefixRewrite`
39194
39692
  # @return [String]
39195
39693
  attr_accessor :path_prefix_rewrite
@@ -39699,6 +40197,12 @@ module Google
39699
40197
  # @return [String]
39700
40198
  attr_accessor :self_link
39701
40199
 
40200
+ # The stack type for this VPN gateway to identify the IP protocols that are
40201
+ # enabled. If not specified, IPV4_ONLY will be used.
40202
+ # Corresponds to the JSON property `stackType`
40203
+ # @return [String]
40204
+ attr_accessor :stack_type
40205
+
39702
40206
  # The list of VPN interfaces associated with this VPN gateway.
39703
40207
  # Corresponds to the JSON property `vpnInterfaces`
39704
40208
  # @return [Array<Google::Apis::ComputeBeta::VpnGatewayVpnGatewayInterface>]
@@ -39720,6 +40224,7 @@ module Google
39720
40224
  @network = args[:network] if args.key?(:network)
39721
40225
  @region = args[:region] if args.key?(:region)
39722
40226
  @self_link = args[:self_link] if args.key?(:self_link)
40227
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
39723
40228
  @vpn_interfaces = args[:vpn_interfaces] if args.key?(:vpn_interfaces)
39724
40229
  end
39725
40230
  end
@@ -40843,14 +41348,13 @@ module Google
40843
41348
 
40844
41349
  # In contrast to a single BackendService in HttpRouteAction to which all
40845
41350
  # matching traffic is directed to, WeightedBackendService allows traffic to be
40846
- # split across multiple BackendServices. The volume of traffic for each
40847
- # BackendService is proportional to the weight specified in each
40848
- # WeightedBackendService
41351
+ # split across multiple backend services. The volume of traffic for each backend
41352
+ # service is proportional to the weight specified in each WeightedBackendService
40849
41353
  class WeightedBackendService
40850
41354
  include Google::Apis::Core::Hashable
40851
41355
 
40852
41356
  # The full or partial URL to the default BackendService resource. Before
40853
- # forwarding the request to backendService, the loadbalancer applies any
41357
+ # forwarding the request to backendService, the load balancer applies any
40854
41358
  # relevant headerActions specified as part of this backendServiceWeight.
40855
41359
  # Corresponds to the JSON property `backendService`
40856
41360
  # @return [String]
@@ -40862,12 +41366,12 @@ module Google
40862
41366
  # @return [Google::Apis::ComputeBeta::HttpHeaderAction]
40863
41367
  attr_accessor :header_action
40864
41368
 
40865
- # Specifies the fraction of traffic sent to backendService, computed as weight /
40866
- # (sum of all weightedBackendService weights in routeAction) . The selection of
40867
- # a backend service is determined only for new traffic. Once a user's request
40868
- # has been directed to a backendService, subsequent requests will be sent to the
40869
- # same backendService as determined by the BackendService's session affinity
40870
- # policy. The value must be between 0 and 1000
41369
+ # Specifies the fraction of traffic sent to a backend service, computed as
41370
+ # weight / (sum of all weightedBackendService weights in routeAction) . The
41371
+ # selection of a backend service is determined only for new traffic. Once a user'
41372
+ # s request has been directed to a backend service, subsequent requests are sent
41373
+ # to the same backend service as determined by the backend service's session
41374
+ # affinity policy. The value must be from 0 to 1000.
40871
41375
  # Corresponds to the JSON property `weight`
40872
41376
  # @return [Fixnum]
40873
41377
  attr_accessor :weight
@@ -41277,31 +41781,31 @@ module Google
41277
41781
 
41278
41782
  # An Identity and Access Management (IAM) policy, which specifies access
41279
41783
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
41280
- # A `binding` binds one or more `members` to a single `role`. Members can be
41281
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
41282
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
41283
- # role or a user-created custom role. For some types of Google Cloud resources,
41284
- # a `binding` can also specify a `condition`, which is a logical expression that
41285
- # allows access to a resource only if the expression evaluates to `true`. A
41286
- # condition can add constraints based on attributes of the request, the resource,
41287
- # or both. To learn which resources support conditions in their IAM policies,
41288
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
41289
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
41290
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
41291
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
41292
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
41293
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
41294
- # title": "expirable access", "description": "Does not grant access after Sep
41295
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
41296
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
41297
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
41298
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
41299
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
41300
- # roles/resourcemanager.organizationViewer condition: title: expirable access
41301
- # description: Does not grant access after Sep 2020 expression: request.time <
41302
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
41303
- # description of IAM and its features, see the [IAM documentation](https://cloud.
41304
- # google.com/iam/docs/).
41784
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
41785
+ # Principals can be user accounts, service accounts, Google groups, and domains (
41786
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
41787
+ # an IAM predefined role or a user-created custom role. For some types of Google
41788
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
41789
+ # logical expression that allows access to a resource only if the expression
41790
+ # evaluates to `true`. A condition can add constraints based on attributes of
41791
+ # the request, the resource, or both. To learn which resources support
41792
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
41793
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
41794
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
41795
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
41796
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
41797
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
41798
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
41799
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
41800
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
41801
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
41802
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
41803
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
41804
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
41805
+ # access description: Does not grant access after Sep 2020 expression: request.
41806
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
41807
+ # a description of IAM and its features, see the [IAM documentation](https://
41808
+ # cloud.google.com/iam/docs/).
41305
41809
  # Corresponds to the JSON property `policy`
41306
41810
  # @return [Google::Apis::ComputeBeta::Policy]
41307
41811
  attr_accessor :policy