google-apis-compute_v1 0.19.0 → 0.23.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -464,15 +464,15 @@ module Google
464
464
  class AccessConfig
465
465
  include Google::Apis::Core::Hashable
466
466
 
467
- # [Output Only] The first IPv6 address of the external IPv6 range associated
468
- # with this instance, prefix length is stored in externalIpv6PrefixLength in
467
+ # The first IPv6 address of the external IPv6 range associated with this
468
+ # instance, prefix length is stored in externalIpv6PrefixLength in
469
469
  # ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork
470
470
  # associated with the instance will be allocated dynamically.
471
471
  # Corresponds to the JSON property `externalIpv6`
472
472
  # @return [String]
473
473
  attr_accessor :external_ipv6
474
474
 
475
- # [Output Only] The prefix length of the external IPv6 range.
475
+ # The prefix length of the external IPv6 range.
476
476
  # Corresponds to the JSON property `externalIpv6PrefixLength`
477
477
  # @return [Fixnum]
478
478
  attr_accessor :external_ipv6_prefix_length
@@ -633,14 +633,14 @@ module Google
633
633
  # regional internal IP address in a subnet of a VPC network) - VPC_PEERING for
634
634
  # global internal IP addresses used for private services access allocated ranges.
635
635
  # - NAT_AUTO for the regional external IP addresses used by Cloud NAT when
636
- # allocating addresses using . - IPSEC_INTERCONNECT for addresses created from a
637
- # private IP range that are reserved for a VLAN attachment in an *IPsec-
638
- # encrypted Cloud Interconnect* configuration. These addresses are regional
639
- # resources. Not currently available publicly. - `SHARED_LOADBALANCER_VIP` for
640
- # an internal IP address that is assigned to multiple internal forwarding rules.
641
- # - `PRIVATE_SERVICE_CONNECT` for a private network address that is used to
642
- # configure Private Service Connect. Only global internal addresses can use this
643
- # purpose.
636
+ # allocating addresses using automatic NAT IP address allocation. -
637
+ # IPSEC_INTERCONNECT for addresses created from a private IP range that are
638
+ # reserved for a VLAN attachment in an *IPsec-encrypted Cloud Interconnect*
639
+ # configuration. These addresses are regional resources. Not currently available
640
+ # publicly. - `SHARED_LOADBALANCER_VIP` for an internal IP address that is
641
+ # assigned to multiple internal forwarding rules. - `PRIVATE_SERVICE_CONNECT`
642
+ # for a private network address that is used to configure Private Service
643
+ # Connect. Only global internal addresses can use this purpose.
644
644
  # Corresponds to the JSON property `purpose`
645
645
  # @return [String]
646
646
  attr_accessor :purpose
@@ -1051,6 +1051,12 @@ module Google
1051
1051
  attr_accessor :enable_nested_virtualization
1052
1052
  alias_method :enable_nested_virtualization?, :enable_nested_virtualization
1053
1053
 
1054
+ # Whether to enable UEFI networking for instance creation.
1055
+ # Corresponds to the JSON property `enableUefiNetworking`
1056
+ # @return [Boolean]
1057
+ attr_accessor :enable_uefi_networking
1058
+ alias_method :enable_uefi_networking?, :enable_uefi_networking
1059
+
1054
1060
  # The number of threads per physical core. To disable simultaneous
1055
1061
  # multithreading (SMT) set this to 1. If unset, the maximum number of threads
1056
1062
  # supported per core by the underlying processor is assumed.
@@ -1065,6 +1071,7 @@ module Google
1065
1071
  # Update properties of this object
1066
1072
  def update!(**args)
1067
1073
  @enable_nested_virtualization = args[:enable_nested_virtualization] if args.key?(:enable_nested_virtualization)
1074
+ @enable_uefi_networking = args[:enable_uefi_networking] if args.key?(:enable_uefi_networking)
1068
1075
  @threads_per_core = args[:threads_per_core] if args.key?(:threads_per_core)
1069
1076
  end
1070
1077
  end
@@ -1315,7 +1322,8 @@ module Google
1315
1322
  # initializeParams.sourceSnapshot or disks.source is required except for local
1316
1323
  # SSD. If desired, you can also attach existing non-root persistent disks using
1317
1324
  # this property. This field is only applicable for persistent disks. Note that
1318
- # for InstanceTemplate, specify the disk name, not the URL for the disk.
1325
+ # for InstanceTemplate, specify the disk name for zonal disk, and the URL for
1326
+ # regional disk.
1319
1327
  # Corresponds to the JSON property `source`
1320
1328
  # @return [String]
1321
1329
  attr_accessor :source
@@ -1398,6 +1406,11 @@ module Google
1398
1406
  # @return [Hash<String,String>]
1399
1407
  attr_accessor :labels
1400
1408
 
1409
+ # A list of publicly visible licenses. Reserved for Google's use.
1410
+ # Corresponds to the JSON property `licenses`
1411
+ # @return [Array<String>]
1412
+ attr_accessor :licenses
1413
+
1401
1414
  # Specifies which action to take on instance update with this disk. Default is
1402
1415
  # to use the existing disk.
1403
1416
  # Corresponds to the JSON property `onUpdateAction`
@@ -1470,6 +1483,7 @@ module Google
1470
1483
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
1471
1484
  @disk_type = args[:disk_type] if args.key?(:disk_type)
1472
1485
  @labels = args[:labels] if args.key?(:labels)
1486
+ @licenses = args[:licenses] if args.key?(:licenses)
1473
1487
  @on_update_action = args[:on_update_action] if args.key?(:on_update_action)
1474
1488
  @provisioned_iops = args[:provisioned_iops] if args.key?(:provisioned_iops)
1475
1489
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
@@ -2565,6 +2579,12 @@ module Google
2565
2579
  # @return [String]
2566
2580
  attr_accessor :description
2567
2581
 
2582
+ # [Output Only] The resource URL for the edge security policy associated with
2583
+ # this backend bucket.
2584
+ # Corresponds to the JSON property `edgeSecurityPolicy`
2585
+ # @return [String]
2586
+ attr_accessor :edge_security_policy
2587
+
2568
2588
  # If true, enable Cloud CDN for this BackendBucket.
2569
2589
  # Corresponds to the JSON property `enableCdn`
2570
2590
  # @return [Boolean]
@@ -2607,6 +2627,7 @@ module Google
2607
2627
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
2608
2628
  @custom_response_headers = args[:custom_response_headers] if args.key?(:custom_response_headers)
2609
2629
  @description = args[:description] if args.key?(:description)
2630
+ @edge_security_policy = args[:edge_security_policy] if args.key?(:edge_security_policy)
2610
2631
  @enable_cdn = args[:enable_cdn] if args.key?(:enable_cdn)
2611
2632
  @id = args[:id] if args.key?(:id)
2612
2633
  @kind = args[:kind] if args.key?(:kind)
@@ -2626,6 +2647,12 @@ module Google
2626
2647
  # @return [Array<Google::Apis::ComputeV1::BackendBucketCdnPolicyBypassCacheOnRequestHeader>]
2627
2648
  attr_accessor :bypass_cache_on_request_headers
2628
2649
 
2650
+ # Message containing what to include in the cache key for a request for Cloud
2651
+ # CDN.
2652
+ # Corresponds to the JSON property `cacheKeyPolicy`
2653
+ # @return [Google::Apis::ComputeV1::BackendBucketCdnPolicyCacheKeyPolicy]
2654
+ attr_accessor :cache_key_policy
2655
+
2629
2656
  # Specifies the cache setting for all responses from this backend. The possible
2630
2657
  # values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching
2631
2658
  # headers to cache content. Responses without these headers will not be cached
@@ -2749,6 +2776,7 @@ module Google
2749
2776
  # Update properties of this object
2750
2777
  def update!(**args)
2751
2778
  @bypass_cache_on_request_headers = args[:bypass_cache_on_request_headers] if args.key?(:bypass_cache_on_request_headers)
2779
+ @cache_key_policy = args[:cache_key_policy] if args.key?(:cache_key_policy)
2752
2780
  @cache_mode = args[:cache_mode] if args.key?(:cache_mode)
2753
2781
  @client_ttl = args[:client_ttl] if args.key?(:client_ttl)
2754
2782
  @default_ttl = args[:default_ttl] if args.key?(:default_ttl)
@@ -2784,6 +2812,34 @@ module Google
2784
2812
  end
2785
2813
  end
2786
2814
 
2815
+ # Message containing what to include in the cache key for a request for Cloud
2816
+ # CDN.
2817
+ class BackendBucketCdnPolicyCacheKeyPolicy
2818
+ include Google::Apis::Core::Hashable
2819
+
2820
+ # Allows HTTP request headers (by name) to be used in the cache key.
2821
+ # Corresponds to the JSON property `includeHttpHeaders`
2822
+ # @return [Array<String>]
2823
+ attr_accessor :include_http_headers
2824
+
2825
+ # Names of query string parameters to include in cache keys. All other
2826
+ # parameters will be excluded. '&' and '=' will be percent encoded and not
2827
+ # treated as delimiters.
2828
+ # Corresponds to the JSON property `queryStringWhitelist`
2829
+ # @return [Array<String>]
2830
+ attr_accessor :query_string_whitelist
2831
+
2832
+ def initialize(**args)
2833
+ update!(**args)
2834
+ end
2835
+
2836
+ # Update properties of this object
2837
+ def update!(**args)
2838
+ @include_http_headers = args[:include_http_headers] if args.key?(:include_http_headers)
2839
+ @query_string_whitelist = args[:query_string_whitelist] if args.key?(:query_string_whitelist)
2840
+ end
2841
+ end
2842
+
2787
2843
  # Specify CDN TTLs for response error codes.
2788
2844
  class BackendBucketCdnPolicyNegativeCachingPolicy
2789
2845
  include Google::Apis::Core::Hashable
@@ -2977,6 +3033,11 @@ module Google
2977
3033
  # @return [Google::Apis::ComputeV1::ConnectionDraining]
2978
3034
  attr_accessor :connection_draining
2979
3035
 
3036
+ # Connection Tracking configuration for this BackendService.
3037
+ # Corresponds to the JSON property `connectionTrackingPolicy`
3038
+ # @return [Google::Apis::ComputeV1::BackendServiceConnectionTrackingPolicy]
3039
+ attr_accessor :connection_tracking_policy
3040
+
2980
3041
  # This message defines settings for a consistent hash style load balancer.
2981
3042
  # Corresponds to the JSON property `consistentHash`
2982
3043
  # @return [Google::Apis::ComputeV1::ConsistentHashLoadBalancerSettings]
@@ -3005,6 +3066,12 @@ module Google
3005
3066
  # @return [String]
3006
3067
  attr_accessor :description
3007
3068
 
3069
+ # [Output Only] The resource URL for the edge security policy associated with
3070
+ # this backend service.
3071
+ # Corresponds to the JSON property `edgeSecurityPolicy`
3072
+ # @return [String]
3073
+ attr_accessor :edge_security_policy
3074
+
3008
3075
  # If true, enables Cloud CDN for the backend service of an external HTTP(S) load
3009
3076
  # balancer.
3010
3077
  # Corresponds to the JSON property `enableCDN`
@@ -3014,14 +3081,14 @@ module Google
3014
3081
 
3015
3082
  # For load balancers that have configurable failover: [Internal TCP/UDP Load
3016
3083
  # Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-
3017
- # overview) and [external TCP/UDP Load Balancing](/network/networklb-failover-
3018
- # overview). On failover or failback, this field indicates whether connection
3019
- # draining will be honored. Google Cloud has a fixed connection draining timeout
3020
- # of 10 minutes. A setting of true terminates existing TCP connections to the
3021
- # active pool during failover and failback, immediately draining traffic. A
3022
- # setting of false allows existing TCP connections to persist, even on VMs no
3023
- # longer in the active pool, for up to the duration of the connection draining
3024
- # timeout (10 minutes).
3084
+ # overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-
3085
+ # balancing/docs/network/networklb-failover-overview). On failover or failback,
3086
+ # this field indicates whether connection draining will be honored. Google Cloud
3087
+ # has a fixed connection draining timeout of 10 minutes. A setting of true
3088
+ # terminates existing TCP connections to the active pool during failover and
3089
+ # failback, immediately draining traffic. A setting of false allows existing TCP
3090
+ # connections to persist, even on VMs no longer in the active pool, for up to
3091
+ # the duration of the connection draining timeout (10 minutes).
3025
3092
  # Corresponds to the JSON property `failoverPolicy`
3026
3093
  # @return [Google::Apis::ComputeV1::BackendServiceFailoverPolicy]
3027
3094
  attr_accessor :failover_policy
@@ -3092,8 +3159,8 @@ module Google
3092
3159
  # INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme
3093
3160
  # set to INTERNAL_SELF_MANAGED. If sessionAffinity is not NONE, and this field
3094
3161
  # is not set to MAGLEV or RING_HASH, session affinity settings will not take
3095
- # effect. Only the default ROUND_ROBIN policy is supported when the backend
3096
- # service is referenced by a URL map that is bound to target gRPC proxy that has
3162
+ # effect. Only ROUND_ROBIN and RING_HASH are supported when the backend service
3163
+ # is referenced by a URL map that is bound to target gRPC proxy that has
3097
3164
  # validateForProxyless field set to true.
3098
3165
  # Corresponds to the JSON property `localityLbPolicy`
3099
3166
  # @return [String]
@@ -3186,11 +3253,11 @@ module Google
3186
3253
  # @return [String]
3187
3254
  attr_accessor :self_link
3188
3255
 
3189
- # Type of session affinity to use. The default is NONE. For a detailed
3190
- # description of session affinity options, see: [Session affinity](https://cloud.
3191
- # google.com/load-balancing/docs/backend-service#session_affinity). Not
3192
- # supported when the backend service is referenced by a URL map that is bound to
3193
- # target gRPC proxy that has validateForProxyless field set to true.
3256
+ # Type of session affinity to use. The default is NONE. Only NONE and
3257
+ # HEADER_FIELD are supported when the backend service is referenced by a URL map
3258
+ # that is bound to target gRPC proxy that has validateForProxyless field set to
3259
+ # true. For more details, see: [Session Affinity](https://cloud.google.com/load-
3260
+ # balancing/docs/backend-service#session_affinity).
3194
3261
  # Corresponds to the JSON property `sessionAffinity`
3195
3262
  # @return [String]
3196
3263
  attr_accessor :session_affinity
@@ -3220,11 +3287,13 @@ module Google
3220
3287
  @cdn_policy = args[:cdn_policy] if args.key?(:cdn_policy)
3221
3288
  @circuit_breakers = args[:circuit_breakers] if args.key?(:circuit_breakers)
3222
3289
  @connection_draining = args[:connection_draining] if args.key?(:connection_draining)
3290
+ @connection_tracking_policy = args[:connection_tracking_policy] if args.key?(:connection_tracking_policy)
3223
3291
  @consistent_hash = args[:consistent_hash] if args.key?(:consistent_hash)
3224
3292
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
3225
3293
  @custom_request_headers = args[:custom_request_headers] if args.key?(:custom_request_headers)
3226
3294
  @custom_response_headers = args[:custom_response_headers] if args.key?(:custom_response_headers)
3227
3295
  @description = args[:description] if args.key?(:description)
3296
+ @edge_security_policy = args[:edge_security_policy] if args.key?(:edge_security_policy)
3228
3297
  @enable_cdn = args[:enable_cdn] if args.key?(:enable_cdn)
3229
3298
  @failover_policy = args[:failover_policy] if args.key?(:failover_policy)
3230
3299
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
@@ -3581,16 +3650,76 @@ module Google
3581
3650
  end
3582
3651
  end
3583
3652
 
3653
+ # Connection Tracking configuration for this BackendService.
3654
+ class BackendServiceConnectionTrackingPolicy
3655
+ include Google::Apis::Core::Hashable
3656
+
3657
+ # Specifies connection persistence when backends are unhealthy. The default
3658
+ # value is DEFAULT_FOR_PROTOCOL. If set to DEFAULT_FOR_PROTOCOL, the existing
3659
+ # connections persist on unhealthy backends only for connection-oriented
3660
+ # protocols (TCP and SCTP) and only if the Tracking Mode is PER_CONNECTION (
3661
+ # default tracking mode) or the Session Affinity is configured for 5-tuple. They
3662
+ # do not persist for UDP. If set to NEVER_PERSIST, after a backend becomes
3663
+ # unhealthy, the existing connections on the unhealthy backend are never
3664
+ # persisted on the unhealthy backend. They are always diverted to newly selected
3665
+ # healthy backends (unless all backends are unhealthy). If set to ALWAYS_PERSIST,
3666
+ # existing connections always persist on unhealthy backends regardless of
3667
+ # protocol and session affinity. It is generally not recommended to use this
3668
+ # mode overriding the default. For more details, see [Connection Persistence for
3669
+ # Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/
3670
+ # networklb-backend-service#connection-persistence) and [Connection Persistence
3671
+ # for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/
3672
+ # docs/internal#connection-persistence).
3673
+ # Corresponds to the JSON property `connectionPersistenceOnUnhealthyBackends`
3674
+ # @return [String]
3675
+ attr_accessor :connection_persistence_on_unhealthy_backends
3676
+
3677
+ # Specifies how long to keep a Connection Tracking entry while there is no
3678
+ # matching traffic (in seconds). For Internal TCP/UDP Load Balancing: - The
3679
+ # minimum (default) is 10 minutes and the maximum is 16 hours. - It can be set
3680
+ # only if Connection Tracking is less than 5-tuple (i.e. Session Affinity is
3681
+ # CLIENT_IP_NO_DESTINATION, CLIENT_IP or CLIENT_IP_PROTO, and Tracking Mode is
3682
+ # PER_SESSION). For Network Load Balancer the default is 60 seconds. This option
3683
+ # is not available publicly.
3684
+ # Corresponds to the JSON property `idleTimeoutSec`
3685
+ # @return [Fixnum]
3686
+ attr_accessor :idle_timeout_sec
3687
+
3688
+ # Specifies the key used for connection tracking. There are two options: -
3689
+ # PER_CONNECTION: This is the default mode. The Connection Tracking is performed
3690
+ # as per the Connection Key (default Hash Method) for the specific protocol. -
3691
+ # PER_SESSION: The Connection Tracking is performed as per the configured
3692
+ # Session Affinity. It matches the configured Session Affinity. For more details,
3693
+ # see [Tracking Mode for Network Load Balancing](https://cloud.google.com/load-
3694
+ # balancing/docs/network/networklb-backend-service#tracking-mode) and [Tracking
3695
+ # Mode for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-
3696
+ # balancing/docs/internal#tracking-mode).
3697
+ # Corresponds to the JSON property `trackingMode`
3698
+ # @return [String]
3699
+ attr_accessor :tracking_mode
3700
+
3701
+ def initialize(**args)
3702
+ update!(**args)
3703
+ end
3704
+
3705
+ # Update properties of this object
3706
+ def update!(**args)
3707
+ @connection_persistence_on_unhealthy_backends = args[:connection_persistence_on_unhealthy_backends] if args.key?(:connection_persistence_on_unhealthy_backends)
3708
+ @idle_timeout_sec = args[:idle_timeout_sec] if args.key?(:idle_timeout_sec)
3709
+ @tracking_mode = args[:tracking_mode] if args.key?(:tracking_mode)
3710
+ end
3711
+ end
3712
+
3584
3713
  # For load balancers that have configurable failover: [Internal TCP/UDP Load
3585
3714
  # Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-
3586
- # overview) and [external TCP/UDP Load Balancing](/network/networklb-failover-
3587
- # overview). On failover or failback, this field indicates whether connection
3588
- # draining will be honored. Google Cloud has a fixed connection draining timeout
3589
- # of 10 minutes. A setting of true terminates existing TCP connections to the
3590
- # active pool during failover and failback, immediately draining traffic. A
3591
- # setting of false allows existing TCP connections to persist, even on VMs no
3592
- # longer in the active pool, for up to the duration of the connection draining
3593
- # timeout (10 minutes).
3715
+ # overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-
3716
+ # balancing/docs/network/networklb-failover-overview). On failover or failback,
3717
+ # this field indicates whether connection draining will be honored. Google Cloud
3718
+ # has a fixed connection draining timeout of 10 minutes. A setting of true
3719
+ # terminates existing TCP connections to the active pool during failover and
3720
+ # failback, immediately draining traffic. A setting of false allows existing TCP
3721
+ # connections to persist, even on VMs no longer in the active pool, for up to
3722
+ # the duration of the connection draining timeout (10 minutes).
3594
3723
  class BackendServiceFailoverPolicy
3595
3724
  include Google::Apis::Core::Hashable
3596
3725
 
@@ -3605,8 +3734,9 @@ module Google
3605
3734
  # distributed among all primary VMs when all primary and all backup backend VMs
3606
3735
  # are unhealthy. For load balancers that have configurable failover: [Internal
3607
3736
  # TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/
3608
- # failover-overview) and [external TCP/UDP Load Balancing](/network/networklb-
3609
- # failover-overview). The default is false.
3737
+ # failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.
3738
+ # com/load-balancing/docs/network/networklb-failover-overview). The default is
3739
+ # false.
3610
3740
  # Corresponds to the JSON property `dropTrafficIfUnhealthy`
3611
3741
  # @return [Boolean]
3612
3742
  attr_accessor :drop_traffic_if_unhealthy
@@ -3618,7 +3748,8 @@ module Google
3618
3748
  # the total number of healthy primary VMs is less than this ratio. For load
3619
3749
  # balancers that have configurable failover: [Internal TCP/UDP Load Balancing](
3620
3750
  # https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [
3621
- # external TCP/UDP Load Balancing](/network/networklb-failover-overview).
3751
+ # external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/
3752
+ # network/networklb-failover-overview).
3622
3753
  # Corresponds to the JSON property `failoverRatio`
3623
3754
  # @return [Float]
3624
3755
  attr_accessor :failover_ratio
@@ -4219,7 +4350,7 @@ module Google
4219
4350
  end
4220
4351
  end
4221
4352
 
4222
- # Associates `members` with a `role`.
4353
+ # Associates `members`, or principals, with a `role`.
4223
4354
  class Binding
4224
4355
  include Google::Apis::Core::Hashable
4225
4356
 
@@ -4247,7 +4378,7 @@ module Google
4247
4378
  # @return [Google::Apis::ComputeV1::Expr]
4248
4379
  attr_accessor :condition
4249
4380
 
4250
- # Specifies the identities requesting access for a Cloud Platform resource. `
4381
+ # Specifies the principals requesting access for a Cloud Platform resource. `
4251
4382
  # members` can have the following values: * `allUsers`: A special identifier
4252
4383
  # that represents anyone who is on the internet; with or without a Google
4253
4384
  # account. * `allAuthenticatedUsers`: A special identifier that represents
@@ -4277,8 +4408,8 @@ module Google
4277
4408
  # @return [Array<String>]
4278
4409
  attr_accessor :members
4279
4410
 
4280
- # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
4281
- # , or `roles/owner`.
4411
+ # Role that is assigned to the list of `members`, or principals. For example, `
4412
+ # roles/viewer`, `roles/editor`, or `roles/owner`.
4282
4413
  # Corresponds to the JSON property `role`
4283
4414
  # @return [String]
4284
4415
  attr_accessor :role
@@ -4432,6 +4563,17 @@ module Google
4432
4563
  attr_accessor :include_host
4433
4564
  alias_method :include_host?, :include_host
4434
4565
 
4566
+ # Allows HTTP request headers (by name) to be used in the cache key.
4567
+ # Corresponds to the JSON property `includeHttpHeaders`
4568
+ # @return [Array<String>]
4569
+ attr_accessor :include_http_headers
4570
+
4571
+ # Allows HTTP cookies (by name) to be used in the cache key. The name=value pair
4572
+ # will be used in the cache key Cloud CDN generates.
4573
+ # Corresponds to the JSON property `includeNamedCookies`
4574
+ # @return [Array<String>]
4575
+ attr_accessor :include_named_cookies
4576
+
4435
4577
  # If true, http and https requests will be cached separately.
4436
4578
  # Corresponds to the JSON property `includeProtocol`
4437
4579
  # @return [Boolean]
@@ -4470,6 +4612,8 @@ module Google
4470
4612
  # Update properties of this object
4471
4613
  def update!(**args)
4472
4614
  @include_host = args[:include_host] if args.key?(:include_host)
4615
+ @include_http_headers = args[:include_http_headers] if args.key?(:include_http_headers)
4616
+ @include_named_cookies = args[:include_named_cookies] if args.key?(:include_named_cookies)
4473
4617
  @include_protocol = args[:include_protocol] if args.key?(:include_protocol)
4474
4618
  @include_query_string = args[:include_query_string] if args.key?(:include_query_string)
4475
4619
  @query_string_blacklist = args[:query_string_blacklist] if args.key?(:query_string_blacklist)
@@ -4534,6 +4678,16 @@ module Google
4534
4678
  class Commitment
4535
4679
  include Google::Apis::Core::Hashable
4536
4680
 
4681
+ # Specifies whether to enable automatic renewal for the commitment. The default
4682
+ # value is false if not specified. The field can be updated until the day of the
4683
+ # commitment expiration at 12:00am PST. If the field is set to true, the
4684
+ # commitment will be automatically renewed for either one or three years
4685
+ # according to the terms of the existing commitment.
4686
+ # Corresponds to the JSON property `autoRenew`
4687
+ # @return [Boolean]
4688
+ attr_accessor :auto_renew
4689
+ alias_method :auto_renew?, :auto_renew
4690
+
4537
4691
  # The category of the commitment. Category MACHINE specifies commitments
4538
4692
  # composed of machine resources such as VCPU or MEMORY, listed in resources.
4539
4693
  # Category LICENSE specifies commitments composed of software licenses, listed
@@ -4644,6 +4798,7 @@ module Google
4644
4798
 
4645
4799
  # Update properties of this object
4646
4800
  def update!(**args)
4801
+ @auto_renew = args[:auto_renew] if args.key?(:auto_renew)
4647
4802
  @category = args[:category] if args.key?(:category)
4648
4803
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
4649
4804
  @description = args[:description] if args.key?(:description)
@@ -5152,14 +5307,15 @@ module Google
5152
5307
  end
5153
5308
  end
5154
5309
 
5155
- # The specification for allowing client side cross-origin requests. Please see
5156
- # W3C Recommendation for Cross Origin Resource Sharing
5310
+ # The specification for allowing client-side cross-origin requests. For more
5311
+ # information about the W3C recommendation for cross-origin resource sharing (
5312
+ # CORS), see Fetch API Living Standard.
5157
5313
  class CorsPolicy
5158
5314
  include Google::Apis::Core::Hashable
5159
5315
 
5160
5316
  # In response to a preflight request, setting this to true indicates that the
5161
- # actual request can include user credentials. This translates to the Access-
5162
- # Control-Allow-Credentials header. Default is false.
5317
+ # actual request can include user credentials. This field translates to the
5318
+ # Access-Control-Allow-Credentials header. Default is false.
5163
5319
  # Corresponds to the JSON property `allowCredentials`
5164
5320
  # @return [Boolean]
5165
5321
  attr_accessor :allow_credentials
@@ -5175,23 +5331,23 @@ module Google
5175
5331
  # @return [Array<String>]
5176
5332
  attr_accessor :allow_methods
5177
5333
 
5178
- # Specifies the regualar expression patterns that match allowed origins. For
5179
- # regular expression grammar please see github.com/google/re2/wiki/Syntax An
5180
- # origin is allowed if it matches either an item in allowOrigins or an item in
5334
+ # Specifies a regular expression that matches allowed origins. For more
5335
+ # information about the regular expression syntax, see Syntax. An origin is
5336
+ # allowed if it matches either an item in allowOrigins or an item in
5181
5337
  # allowOriginRegexes.
5182
5338
  # Corresponds to the JSON property `allowOriginRegexes`
5183
5339
  # @return [Array<String>]
5184
5340
  attr_accessor :allow_origin_regexes
5185
5341
 
5186
- # Specifies the list of origins that will be allowed to do CORS requests. An
5187
- # origin is allowed if it matches either an item in allowOrigins or an item in
5342
+ # Specifies the list of origins that is allowed to do CORS requests. An origin
5343
+ # is allowed if it matches either an item in allowOrigins or an item in
5188
5344
  # allowOriginRegexes.
5189
5345
  # Corresponds to the JSON property `allowOrigins`
5190
5346
  # @return [Array<String>]
5191
5347
  attr_accessor :allow_origins
5192
5348
 
5193
- # If true, specifies the CORS policy is disabled. The default value of false,
5194
- # which indicates that the CORS policy is in effect.
5349
+ # If true, the setting specifies the CORS policy is disabled. The default value
5350
+ # of false, which indicates that the CORS policy is in effect.
5195
5351
  # Corresponds to the JSON property `disabled`
5196
5352
  # @return [Boolean]
5197
5353
  attr_accessor :disabled
@@ -5203,7 +5359,7 @@ module Google
5203
5359
  attr_accessor :expose_headers
5204
5360
 
5205
5361
  # Specifies how long results of a preflight request can be cached in seconds.
5206
- # This translates to the Access-Control-Max-Age header.
5362
+ # This field translates to the Access-Control-Max-Age header.
5207
5363
  # Corresponds to the JSON property `maxAge`
5208
5364
  # @return [Fixnum]
5209
5365
  attr_accessor :max_age
@@ -8337,8 +8493,7 @@ module Google
8337
8493
  attr_accessor :self_link
8338
8494
 
8339
8495
  # Service Directory resources to register this forwarding rule with. Currently,
8340
- # only supports a single Service Directory resource. It is only supported for
8341
- # internal load balancing.
8496
+ # only supports a single Service Directory resource.
8342
8497
  # Corresponds to the JSON property `serviceDirectoryRegistrations`
8343
8498
  # @return [Array<Google::Apis::ComputeV1::ForwardingRuleServiceDirectoryRegistration>]
8344
8499
  attr_accessor :service_directory_registrations
@@ -8909,31 +9064,31 @@ module Google
8909
9064
 
8910
9065
  # An Identity and Access Management (IAM) policy, which specifies access
8911
9066
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
8912
- # A `binding` binds one or more `members` to a single `role`. Members can be
8913
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
8914
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
8915
- # role or a user-created custom role. For some types of Google Cloud resources,
8916
- # a `binding` can also specify a `condition`, which is a logical expression that
8917
- # allows access to a resource only if the expression evaluates to `true`. A
8918
- # condition can add constraints based on attributes of the request, the resource,
8919
- # or both. To learn which resources support conditions in their IAM policies,
8920
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
8921
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
8922
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
8923
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
8924
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
8925
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
8926
- # title": "expirable access", "description": "Does not grant access after Sep
8927
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
8928
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
8929
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
8930
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
8931
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
8932
- # roles/resourcemanager.organizationViewer condition: title: expirable access
8933
- # description: Does not grant access after Sep 2020 expression: request.time <
8934
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
8935
- # description of IAM and its features, see the [IAM documentation](https://cloud.
8936
- # google.com/iam/docs/).
9067
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
9068
+ # Principals can be user accounts, service accounts, Google groups, and domains (
9069
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
9070
+ # an IAM predefined role or a user-created custom role. For some types of Google
9071
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
9072
+ # logical expression that allows access to a resource only if the expression
9073
+ # evaluates to `true`. A condition can add constraints based on attributes of
9074
+ # the request, the resource, or both. To learn which resources support
9075
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
9076
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
9077
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
9078
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
9079
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
9080
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
9081
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
9082
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
9083
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
9084
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
9085
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
9086
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
9087
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
9088
+ # access description: Does not grant access after Sep 2020 expression: request.
9089
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
9090
+ # a description of IAM and its features, see the [IAM documentation](https://
9091
+ # cloud.google.com/iam/docs/).
8937
9092
  # Corresponds to the JSON property `policy`
8938
9093
  # @return [Google::Apis::ComputeV1::Policy]
8939
9094
  attr_accessor :policy
@@ -9006,31 +9161,31 @@ module Google
9006
9161
 
9007
9162
  # An Identity and Access Management (IAM) policy, which specifies access
9008
9163
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
9009
- # A `binding` binds one or more `members` to a single `role`. Members can be
9010
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
9011
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
9012
- # role or a user-created custom role. For some types of Google Cloud resources,
9013
- # a `binding` can also specify a `condition`, which is a logical expression that
9014
- # allows access to a resource only if the expression evaluates to `true`. A
9015
- # condition can add constraints based on attributes of the request, the resource,
9016
- # or both. To learn which resources support conditions in their IAM policies,
9017
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
9018
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
9019
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
9020
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
9021
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
9022
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
9023
- # title": "expirable access", "description": "Does not grant access after Sep
9024
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
9025
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
9026
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
9027
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
9028
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
9029
- # roles/resourcemanager.organizationViewer condition: title: expirable access
9030
- # description: Does not grant access after Sep 2020 expression: request.time <
9031
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
9032
- # description of IAM and its features, see the [IAM documentation](https://cloud.
9033
- # google.com/iam/docs/).
9164
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
9165
+ # Principals can be user accounts, service accounts, Google groups, and domains (
9166
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
9167
+ # an IAM predefined role or a user-created custom role. For some types of Google
9168
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
9169
+ # logical expression that allows access to a resource only if the expression
9170
+ # evaluates to `true`. A condition can add constraints based on attributes of
9171
+ # the request, the resource, or both. To learn which resources support
9172
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
9173
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
9174
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
9175
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
9176
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
9177
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
9178
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
9179
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
9180
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
9181
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
9182
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
9183
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
9184
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
9185
+ # access description: Does not grant access after Sep 2020 expression: request.
9186
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
9187
+ # a description of IAM and its features, see the [IAM documentation](https://
9188
+ # cloud.google.com/iam/docs/).
9034
9189
  # Corresponds to the JSON property `policy`
9035
9190
  # @return [Google::Apis::ComputeV1::Policy]
9036
9191
  attr_accessor :policy
@@ -9152,8 +9307,11 @@ module Google
9152
9307
  class GuestOsFeature
9153
9308
  include Google::Apis::Core::Hashable
9154
9309
 
9155
- # The ID of a supported feature. Read Enabling guest operating system features
9156
- # to see a list of available options.
9310
+ # The ID of a supported feature. To add multiple values, use commas to separate
9311
+ # values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE -
9312
+ # WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - SECURE_BOOT - GVNIC -
9313
+ # SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE For more information, see Enabling
9314
+ # guest operating system features.
9157
9315
  # Corresponds to the JSON property `type`
9158
9316
  # @return [String]
9159
9317
  attr_accessor :type
@@ -9487,8 +9645,8 @@ module Google
9487
9645
  attr_accessor :timeout_sec
9488
9646
 
9489
9647
  # Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS or HTTP2.
9490
- # If not specified, the default is TCP. Exactly one of the protocol-specific
9491
- # health check field must be specified, which must match type field.
9648
+ # Exactly one of the protocol-specific health check field must be specified,
9649
+ # which must match type field.
9492
9650
  # Corresponds to the JSON property `type`
9493
9651
  # @return [String]
9494
9652
  attr_accessor :type
@@ -10301,7 +10459,8 @@ module Google
10301
10459
  # port numbers in the format host:port. * matches any string of ([a-z0-9-.]*).
10302
10460
  # In that case, * must be the first character and must be followed in the
10303
10461
  # pattern by either - or .. * based matching is not supported when the URL map
10304
- # is bound to target gRPC proxy that has validateForProxyless field set to true.
10462
+ # is bound to a target gRPC proxy that has the validateForProxyless field set to
10463
+ # true.
10305
10464
  # Corresponds to the JSON property `hosts`
10306
10465
  # @return [Array<String>]
10307
10466
  attr_accessor :hosts
@@ -10328,8 +10487,8 @@ module Google
10328
10487
  class HttpFaultAbort
10329
10488
  include Google::Apis::Core::Hashable
10330
10489
 
10331
- # The HTTP status code used to abort the request. The value must be between 200
10332
- # and 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP
10490
+ # The HTTP status code used to abort the request. The value must be from 200 to
10491
+ # 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP
10333
10492
  # status code according to this mapping table. HTTP status 200 is mapped to gRPC
10334
10493
  # status UNKNOWN. Injecting an OK status is currently not supported by Traffic
10335
10494
  # Director.
@@ -10337,8 +10496,8 @@ module Google
10337
10496
  # @return [Fixnum]
10338
10497
  attr_accessor :http_status
10339
10498
 
10340
- # The percentage of traffic (connections/operations/requests) which will be
10341
- # aborted as part of fault injection. The value must be between 0.0 and 100.0
10499
+ # The percentage of traffic for connections, operations, or requests that is
10500
+ # aborted as part of fault injection. The value must be from 0.0 to 100.0
10342
10501
  # inclusive.
10343
10502
  # Corresponds to the JSON property `percentage`
10344
10503
  # @return [Float]
@@ -10355,8 +10514,8 @@ module Google
10355
10514
  end
10356
10515
  end
10357
10516
 
10358
- # Specifies the delay introduced by Loadbalancer before forwarding the request
10359
- # to the backend service as part of fault injection.
10517
+ # Specifies the delay introduced by the load balancer before forwarding the
10518
+ # request to the backend service as part of fault injection.
10360
10519
  class HttpFaultDelay
10361
10520
  include Google::Apis::Core::Hashable
10362
10521
 
@@ -10368,9 +10527,9 @@ module Google
10368
10527
  # @return [Google::Apis::ComputeV1::Duration]
10369
10528
  attr_accessor :fixed_delay
10370
10529
 
10371
- # The percentage of traffic (connections/operations/requests) on which delay
10372
- # will be introduced as part of fault injection. The value must be between 0.0
10373
- # and 100.0 inclusive.
10530
+ # The percentage of traffic for connections, operations, or requests for which a
10531
+ # delay is introduced as part of fault injection. The value must be from 0.0 to
10532
+ # 100.0 inclusive.
10374
10533
  # Corresponds to the JSON property `percentage`
10375
10534
  # @return [Float]
10376
10535
  attr_accessor :percentage
@@ -10389,9 +10548,9 @@ module Google
10389
10548
  # The specification for fault injection introduced into traffic to test the
10390
10549
  # resiliency of clients to backend service failure. As part of fault injection,
10391
10550
  # when clients send requests to a backend service, delays can be introduced by
10392
- # Loadbalancer on a percentage of requests before sending those request to the
10393
- # backend service. Similarly requests from clients can be aborted by the
10394
- # Loadbalancer for a percentage of requests.
10551
+ # the load balancer on a percentage of requests before sending those request to
10552
+ # the backend service. Similarly requests from clients can be aborted by the
10553
+ # load balancer for a percentage of requests.
10395
10554
  class HttpFaultInjection
10396
10555
  include Google::Apis::Core::Hashable
10397
10556
 
@@ -10400,8 +10559,8 @@ module Google
10400
10559
  # @return [Google::Apis::ComputeV1::HttpFaultAbort]
10401
10560
  attr_accessor :abort
10402
10561
 
10403
- # Specifies the delay introduced by Loadbalancer before forwarding the request
10404
- # to the backend service as part of fault injection.
10562
+ # Specifies the delay introduced by the load balancer before forwarding the
10563
+ # request to the backend service as part of fault injection.
10405
10564
  # Corresponds to the JSON property `delay`
10406
10565
  # @return [Google::Apis::ComputeV1::HttpFaultDelay]
10407
10566
  attr_accessor :delay
@@ -10422,25 +10581,25 @@ module Google
10422
10581
  class HttpHeaderAction
10423
10582
  include Google::Apis::Core::Hashable
10424
10583
 
10425
- # Headers to add to a matching request prior to forwarding the request to the
10584
+ # Headers to add to a matching request before forwarding the request to the
10426
10585
  # backendService.
10427
10586
  # Corresponds to the JSON property `requestHeadersToAdd`
10428
10587
  # @return [Array<Google::Apis::ComputeV1::HttpHeaderOption>]
10429
10588
  attr_accessor :request_headers_to_add
10430
10589
 
10431
10590
  # A list of header names for headers that need to be removed from the request
10432
- # prior to forwarding the request to the backendService.
10591
+ # before forwarding the request to the backendService.
10433
10592
  # Corresponds to the JSON property `requestHeadersToRemove`
10434
10593
  # @return [Array<String>]
10435
10594
  attr_accessor :request_headers_to_remove
10436
10595
 
10437
- # Headers to add the response prior to sending the response back to the client.
10596
+ # Headers to add the response before sending the response back to the client.
10438
10597
  # Corresponds to the JSON property `responseHeadersToAdd`
10439
10598
  # @return [Array<Google::Apis::ComputeV1::HttpHeaderOption>]
10440
10599
  attr_accessor :response_headers_to_add
10441
10600
 
10442
10601
  # A list of header names for headers that need to be removed from the response
10443
- # prior to sending the response back to the client.
10602
+ # before sending the response back to the client.
10444
10603
  # Corresponds to the JSON property `responseHeadersToRemove`
10445
10604
  # @return [Array<String>]
10446
10605
  attr_accessor :response_headers_to_remove
@@ -10470,21 +10629,21 @@ module Google
10470
10629
 
10471
10630
  # The name of the HTTP header to match. For matching against the HTTP request's
10472
10631
  # authority, use a headerMatch with the header name ":authority". For matching a
10473
- # request's method, use the headerName ":method". When the URL map is bound to
10474
- # target gRPC proxy that has validateForProxyless field set to true, only non-
10475
- # binary user-specified custom metadata and the `content-type` header are
10632
+ # request's method, use the headerName ":method". When the URL map is bound to a
10633
+ # target gRPC proxy that has the validateForProxyless field set to true, only
10634
+ # non-binary user-specified custom metadata and the `content-type` header are
10476
10635
  # supported. The following transport-level headers cannot be used in header
10477
10636
  # matching rules: `:authority`, `:method`, `:path`, `:scheme`, `user-agent`, `
10478
10637
  # accept-encoding`, `content-encoding`, `grpc-accept-encoding`, `grpc-encoding`,
10479
10638
  # `grpc-previous-rpc-attempts`, `grpc-tags-bin`, `grpc-timeout` and `grpc-trace-
10480
- # bin.
10639
+ # bin`.
10481
10640
  # Corresponds to the JSON property `headerName`
10482
10641
  # @return [String]
10483
10642
  attr_accessor :header_name
10484
10643
 
10485
- # If set to false, the headerMatch is considered a match if the match criteria
10486
- # above are met. If set to true, the headerMatch is considered a match if the
10487
- # match criteria above are NOT met. The default setting is false.
10644
+ # If set to false, the headerMatch is considered a match if the preceding match
10645
+ # criteria are met. If set to true, the headerMatch is considered a match if the
10646
+ # preceding match criteria are NOT met. The default setting is false.
10488
10647
  # Corresponds to the JSON property `invertMatch`
10489
10648
  # @return [Boolean]
10490
10649
  attr_accessor :invert_match
@@ -10512,13 +10671,13 @@ module Google
10512
10671
  attr_accessor :range_match
10513
10672
 
10514
10673
  # The value of the header must match the regular expression specified in
10515
- # regexMatch. For regular expression grammar, please see: github.com/google/re2/
10516
- # wiki/Syntax For matching against a port specified in the HTTP request, use a
10517
- # headerMatch with headerName set to PORT and a regular expression that
10518
- # satisfies the RFC2616 Host header's port specifier. Only one of exactMatch,
10519
- # prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.
10520
- # Note that regexMatch only applies to Loadbalancers that have their
10521
- # loadBalancingScheme set to INTERNAL_SELF_MANAGED.
10674
+ # regexMatch. For more information about regular expression syntax, see Syntax.
10675
+ # For matching against a port specified in the HTTP request, use a headerMatch
10676
+ # with headerName set to PORT and a regular expression that satisfies the
10677
+ # RFC2616 Host header's port specifier. Only one of exactMatch, prefixMatch,
10678
+ # suffixMatch, regexMatch, presentMatch or rangeMatch must be set. regexMatch
10679
+ # only applies to load balancers that have loadBalancingScheme set to
10680
+ # INTERNAL_SELF_MANAGED.
10522
10681
  # Corresponds to the JSON property `regexMatch`
10523
10682
  # @return [String]
10524
10683
  attr_accessor :regex_match
@@ -10813,8 +10972,8 @@ module Google
10813
10972
  include Google::Apis::Core::Hashable
10814
10973
 
10815
10974
  # The queryParameterMatch matches if the value of the parameter exactly matches
10816
- # the contents of exactMatch. Only one of presentMatch, exactMatch or regexMatch
10817
- # must be set.
10975
+ # the contents of exactMatch. Only one of presentMatch, exactMatch, or
10976
+ # regexMatch must be set.
10818
10977
  # Corresponds to the JSON property `exactMatch`
10819
10978
  # @return [String]
10820
10979
  attr_accessor :exact_match
@@ -10827,17 +10986,17 @@ module Google
10827
10986
 
10828
10987
  # Specifies that the queryParameterMatch matches if the request contains the
10829
10988
  # query parameter, irrespective of whether the parameter has a value or not.
10830
- # Only one of presentMatch, exactMatch or regexMatch must be set.
10989
+ # Only one of presentMatch, exactMatch, or regexMatch must be set.
10831
10990
  # Corresponds to the JSON property `presentMatch`
10832
10991
  # @return [Boolean]
10833
10992
  attr_accessor :present_match
10834
10993
  alias_method :present_match?, :present_match
10835
10994
 
10836
10995
  # The queryParameterMatch matches if the value of the parameter matches the
10837
- # regular expression specified by regexMatch. For the regular expression grammar,
10838
- # please see github.com/google/re2/wiki/Syntax Only one of presentMatch,
10839
- # exactMatch or regexMatch must be set. Note that regexMatch only applies when
10840
- # the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.
10996
+ # regular expression specified by regexMatch. For more information about regular
10997
+ # expression syntax, see Syntax. Only one of presentMatch, exactMatch, or
10998
+ # regexMatch must be set. regexMatch only applies when the loadBalancingScheme
10999
+ # is set to INTERNAL_SELF_MANAGED.
10841
11000
  # Corresponds to the JSON property `regexMatch`
10842
11001
  # @return [String]
10843
11002
  attr_accessor :regex_match
@@ -10859,15 +11018,15 @@ module Google
10859
11018
  class HttpRedirectAction
10860
11019
  include Google::Apis::Core::Hashable
10861
11020
 
10862
- # The host that will be used in the redirect response instead of the one that
10863
- # was supplied in the request. The value must be between 1 and 255 characters.
11021
+ # The host that is used in the redirect response instead of the one that was
11022
+ # supplied in the request. The value must be from 1 to 255 characters.
10864
11023
  # Corresponds to the JSON property `hostRedirect`
10865
11024
  # @return [String]
10866
11025
  attr_accessor :host_redirect
10867
11026
 
10868
- # If set to true, the URL scheme in the redirected request is set to https. If
10869
- # set to false, the URL scheme of the redirected request will remain the same as
10870
- # that of the request. This must only be set for UrlMaps used in
11027
+ # If set to true, the URL scheme in the redirected request is set to HTTPS. If
11028
+ # set to false, the URL scheme of the redirected request remains the same as
11029
+ # that of the request. This must only be set for URL maps used in
10871
11030
  # TargetHttpProxys. Setting this true for TargetHttpsProxy is not permitted. The
10872
11031
  # default is set to false.
10873
11032
  # Corresponds to the JSON property `httpsRedirect`
@@ -10875,11 +11034,11 @@ module Google
10875
11034
  attr_accessor :https_redirect
10876
11035
  alias_method :https_redirect?, :https_redirect
10877
11036
 
10878
- # The path that will be used in the redirect response instead of the one that
10879
- # was supplied in the request. pathRedirect cannot be supplied together with
11037
+ # The path that is used in the redirect response instead of the one that was
11038
+ # supplied in the request. pathRedirect cannot be supplied together with
10880
11039
  # prefixRedirect. Supply one alone or neither. If neither is supplied, the path
10881
- # of the original request will be used for the redirect. The value must be
10882
- # between 1 and 1024 characters.
11040
+ # of the original request is used for the redirect. The value must be from 1 to
11041
+ # 1024 characters.
10883
11042
  # Corresponds to the JSON property `pathRedirect`
10884
11043
  # @return [String]
10885
11044
  attr_accessor :path_redirect
@@ -10887,8 +11046,8 @@ module Google
10887
11046
  # The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,
10888
11047
  # retaining the remaining portion of the URL before redirecting the request.
10889
11048
  # prefixRedirect cannot be supplied together with pathRedirect. Supply one alone
10890
- # or neither. If neither is supplied, the path of the original request will be
10891
- # used for the redirect. The value must be between 1 and 1024 characters.
11049
+ # or neither. If neither is supplied, the path of the original request is used
11050
+ # for the redirect. The value must be from 1 to 1024 characters.
10892
11051
  # Corresponds to the JSON property `prefixRedirect`
10893
11052
  # @return [String]
10894
11053
  attr_accessor :prefix_redirect
@@ -10897,14 +11056,14 @@ module Google
10897
11056
  # MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. -
10898
11057
  # FOUND, which corresponds to 302. - SEE_OTHER which corresponds to 303. -
10899
11058
  # TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method
10900
- # will be retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case,
10901
- # the request method will be retained.
11059
+ # is retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case, the
11060
+ # request method is retained.
10902
11061
  # Corresponds to the JSON property `redirectResponseCode`
10903
11062
  # @return [String]
10904
11063
  attr_accessor :redirect_response_code
10905
11064
 
10906
11065
  # If set to true, any accompanying query portion of the original URL is removed
10907
- # prior to redirecting the request. If set to false, the query portion of the
11066
+ # before redirecting the request. If set to false, the query portion of the
10908
11067
  # original URL is retained. The default is set to false.
10909
11068
  # Corresponds to the JSON property `stripQuery`
10910
11069
  # @return [Boolean]
@@ -10945,25 +11104,27 @@ module Google
10945
11104
  attr_accessor :per_try_timeout
10946
11105
 
10947
11106
  # Specifies one or more conditions when this retry policy applies. Valid values
10948
- # are: - 5xx: Retry will be attempted if the instance or endpoint responds with
10949
- # any 5xx response code, or if the instance or endpoint does not respond at all,
10950
- # example: disconnects, reset, read timeout, connection failure, and refused
11107
+ # are: - 5xx: retry is attempted if the instance or endpoint responds with any
11108
+ # 5xx response code, or if the instance or endpoint does not respond at all. For
11109
+ # example, disconnects, reset, read timeout, connection failure, and refused
10951
11110
  # streams. - gateway-error: Similar to 5xx, but only applies to response codes
10952
- # 502, 503 or 504. - - connect-failure: A retry will be attempted on failures
10953
- # connecting to the instance or endpoint, for example due to connection timeouts.
10954
- # - retriable-4xx: A retry will be attempted if the instance or endpoint
10955
- # responds with a retriable 4xx response code. Currently the only retriable
10956
- # error supported is 409. - refused-stream: A retry will be attempted if the
10957
- # instance or endpoint resets the stream with a REFUSED_STREAM error code. This
10958
- # reset type indicates that it is safe to retry. - cancelled: A retry will be
10959
- # attempted if the gRPC status code in the response header is set to cancelled. -
10960
- # deadline-exceeded: A retry will be attempted if the gRPC status code in the
10961
- # response header is set to deadline-exceeded. - internal: A retry will be
10962
- # attempted if the gRPC status code in the response header is set to internal. -
10963
- # resource-exhausted: A retry will be attempted if the gRPC status code in the
10964
- # response header is set to resource-exhausted. - unavailable: A retry will be
10965
- # attempted if the gRPC status code in the response header is set to unavailable.
10966
- #
11111
+ # 502, 503 or 504. - connect-failure: a retry is attempted on failures
11112
+ # connecting to the instance or endpoint. For example, connection timeouts. -
11113
+ # retriable-4xx: a retry is attempted if the instance or endpoint responds with
11114
+ # a 4xx response code. The only error that you can retry is error code 409. -
11115
+ # refused-stream: a retry is attempted if the instance or endpoint resets the
11116
+ # stream with a REFUSED_STREAM error code. This reset type indicates that it is
11117
+ # safe to retry. - cancelled: a retry is attempted if the gRPC status code in
11118
+ # the response header is set to cancelled. - deadline-exceeded: a retry is
11119
+ # attempted if the gRPC status code in the response header is set to deadline-
11120
+ # exceeded. - internal: a retry is attempted if the gRPC status code in the
11121
+ # response header is set to internal. - resource-exhausted: a retry is attempted
11122
+ # if the gRPC status code in the response header is set to resource-exhausted. -
11123
+ # unavailable: a retry is attempted if the gRPC status code in the response
11124
+ # header is set to unavailable. Only the following codes are supported when the
11125
+ # URL map is bound to target gRPC proxy that has validateForProxyless field set
11126
+ # to true. - cancelled - deadline-exceeded - internal - resource-exhausted -
11127
+ # unavailable
10967
11128
  # Corresponds to the JSON property `retryConditions`
10968
11129
  # @return [Array<String>]
10969
11130
  attr_accessor :retry_conditions
@@ -10984,8 +11145,9 @@ module Google
10984
11145
  class HttpRouteAction
10985
11146
  include Google::Apis::Core::Hashable
10986
11147
 
10987
- # The specification for allowing client side cross-origin requests. Please see
10988
- # W3C Recommendation for Cross Origin Resource Sharing
11148
+ # The specification for allowing client-side cross-origin requests. For more
11149
+ # information about the W3C recommendation for cross-origin resource sharing (
11150
+ # CORS), see Fetch API Living Standard.
10989
11151
  # Corresponds to the JSON property `corsPolicy`
10990
11152
  # @return [Google::Apis::ComputeV1::CorsPolicy]
10991
11153
  attr_accessor :cors_policy
@@ -10993,9 +11155,9 @@ module Google
10993
11155
  # The specification for fault injection introduced into traffic to test the
10994
11156
  # resiliency of clients to backend service failure. As part of fault injection,
10995
11157
  # when clients send requests to a backend service, delays can be introduced by
10996
- # Loadbalancer on a percentage of requests before sending those request to the
10997
- # backend service. Similarly requests from clients can be aborted by the
10998
- # Loadbalancer for a percentage of requests.
11158
+ # the load balancer on a percentage of requests before sending those request to
11159
+ # the backend service. Similarly requests from clients can be aborted by the
11160
+ # load balancer for a percentage of requests.
10999
11161
  # Corresponds to the JSON property `faultInjectionPolicy`
11000
11162
  # @return [Google::Apis::ComputeV1::HttpFaultInjection]
11001
11163
  attr_accessor :fault_injection_policy
@@ -11009,9 +11171,9 @@ module Google
11009
11171
  attr_accessor :max_stream_duration
11010
11172
 
11011
11173
  # A policy that specifies how requests intended for the route's backends are
11012
- # shadowed to a separate mirrored backend service. Loadbalancer does not wait
11013
- # for responses from the shadow service. Prior to sending traffic to the shadow
11014
- # service, the host / authority header is suffixed with -shadow.
11174
+ # shadowed to a separate mirrored backend service. The load balancer doesn't
11175
+ # wait for responses from the shadow service. Before sending traffic to the
11176
+ # shadow service, the host or authority header is suffixed with -shadow.
11015
11177
  # Corresponds to the JSON property `requestMirrorPolicy`
11016
11178
  # @return [Google::Apis::ComputeV1::RequestMirrorPolicy]
11017
11179
  attr_accessor :request_mirror_policy
@@ -11039,7 +11201,7 @@ module Google
11039
11201
  # occurs. The weights determine the fraction of traffic that flows to their
11040
11202
  # corresponding backend service. If all traffic needs to go to a single backend
11041
11203
  # service, there must be one weightedBackendService with weight set to a non-
11042
- # zero number. Once a backendService is identified and before forwarding the
11204
+ # zero number. After a backend service is identified and before forwarding the
11043
11205
  # request to the backend service, advanced routing actions such as URL rewrites
11044
11206
  # and header transformations are applied depending on additional settings
11045
11207
  # specified in this HttpRouteAction.
@@ -11064,8 +11226,8 @@ module Google
11064
11226
  end
11065
11227
  end
11066
11228
 
11067
- # An HttpRouteRule specifies how to match an HTTP request and the corresponding
11068
- # routing action that load balancing proxies will perform.
11229
+ # The HttpRouteRule setting specifies how to match an HTTP request and the
11230
+ # corresponding routing action that load balancing proxies perform.
11069
11231
  class HttpRouteRule
11070
11232
  include Google::Apis::Core::Hashable
11071
11233
 
@@ -11091,11 +11253,11 @@ module Google
11091
11253
  attr_accessor :match_rules
11092
11254
 
11093
11255
  # For routeRules within a given pathMatcher, priority determines the order in
11094
- # which load balancer will interpret routeRules. RouteRules are evaluated in
11095
- # order of priority, from the lowest to highest number. The priority of a rule
11256
+ # which a load balancer interprets routeRules. RouteRules are evaluated in order
11257
+ # of priority, from the lowest to highest number. The priority of a rule
11096
11258
  # decreases as its number increases (1, 2, 3, N+1). The first rule that matches
11097
11259
  # the request is applied. You cannot configure two or more routeRules with the
11098
- # same priority. Priority for each rule must be set to a number between 0 and
11260
+ # same priority. Priority for each rule must be set to a number from 0 to
11099
11261
  # 2147483647 inclusive. Priority numbers can have gaps, which enable you to add
11100
11262
  # or remove rules in the future without affecting the rest of the rules. For
11101
11263
  # example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to
@@ -11106,24 +11268,24 @@ module Google
11106
11268
  attr_accessor :priority
11107
11269
 
11108
11270
  # In response to a matching matchRule, the load balancer performs advanced
11109
- # routing actions like URL rewrites, header transformations, etc. prior to
11271
+ # routing actions, such as URL rewrites and header transformations, before
11110
11272
  # forwarding the request to the selected backend. If routeAction specifies any
11111
11273
  # weightedBackendServices, service must not be set. Conversely if service is set,
11112
11274
  # routeAction cannot contain any weightedBackendServices. Only one of
11113
11275
  # urlRedirect, service or routeAction.weightedBackendService must be set.
11114
11276
  # UrlMaps for external HTTP(S) load balancers support only the urlRewrite action
11115
- # within a routeRule's routeAction.
11277
+ # within a route rule's routeAction.
11116
11278
  # Corresponds to the JSON property `routeAction`
11117
11279
  # @return [Google::Apis::ComputeV1::HttpRouteAction]
11118
11280
  attr_accessor :route_action
11119
11281
 
11120
11282
  # The full or partial URL of the backend service resource to which traffic is
11121
- # directed if this rule is matched. If routeAction is additionally specified,
11122
- # advanced routing actions like URL Rewrites, etc. take effect prior to sending
11123
- # the request to the backend. However, if service is specified, routeAction
11124
- # cannot contain any weightedBackendService s. Conversely, if routeAction
11125
- # specifies any weightedBackendServices, service must not be specified. Only one
11126
- # of urlRedirect, service or routeAction.weightedBackendService must be set.
11283
+ # directed if this rule is matched. If routeAction is also specified, advanced
11284
+ # routing actions, such as URL rewrites, take effect before sending the request
11285
+ # to the backend. However, if service is specified, routeAction cannot contain
11286
+ # any weightedBackendServices. Conversely, if routeAction specifies any
11287
+ # weightedBackendServices, service must not be specified. Only one of
11288
+ # urlRedirect, service or routeAction.weightedBackendService must be set.
11127
11289
  # Corresponds to the JSON property `service`
11128
11290
  # @return [String]
11129
11291
  attr_accessor :service
@@ -11156,9 +11318,9 @@ module Google
11156
11318
 
11157
11319
  # For satisfying the matchRule condition, the path of the request must exactly
11158
11320
  # match the value specified in fullPathMatch after removing any query parameters
11159
- # and anchor that may be part of the original URL. fullPathMatch must be between
11160
- # 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch
11161
- # must be specified.
11321
+ # and anchor that may be part of the original URL. fullPathMatch must be from 1
11322
+ # to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must
11323
+ # be specified.
11162
11324
  # Corresponds to the JSON property `fullPathMatch`
11163
11325
  # @return [String]
11164
11326
  attr_accessor :full_path_match
@@ -11171,53 +11333,52 @@ module Google
11171
11333
 
11172
11334
  # Specifies that prefixMatch and fullPathMatch matches are case sensitive. The
11173
11335
  # default value is false. ignoreCase must not be used with regexMatch. Not
11174
- # supported when the URL map is bound to target gRPC proxy.
11336
+ # supported when the URL map is bound to a target gRPC proxy.
11175
11337
  # Corresponds to the JSON property `ignoreCase`
11176
11338
  # @return [Boolean]
11177
11339
  attr_accessor :ignore_case
11178
11340
  alias_method :ignore_case?, :ignore_case
11179
11341
 
11180
- # Opaque filter criteria used by Loadbalancer to restrict routing configuration
11181
- # to a limited set of xDS compliant clients. In their xDS requests to
11182
- # Loadbalancer, xDS clients present node metadata. When there is a match, the
11183
- # relevant routing configuration is made available to those proxies. For each
11184
- # metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY,
11185
- # at least one of the filterLabels must match the corresponding label provided
11186
- # in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of
11187
- # its filterLabels must match with corresponding labels provided in the metadata.
11188
- # If multiple metadataFilters are specified, all of them need to be satisfied
11189
- # in order to be considered a match. metadataFilters specified here will be
11342
+ # Opaque filter criteria used by the load balancer to restrict routing
11343
+ # configuration to a limited set of xDS compliant clients. In their xDS requests
11344
+ # to the load balancer, xDS clients present node metadata. When there is a match,
11345
+ # the relevant routing configuration is made available to those proxies. For
11346
+ # each metadataFilter in this list, if its filterMatchCriteria is set to
11347
+ # MATCH_ANY, at least one of the filterLabels must match the corresponding label
11348
+ # provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then
11349
+ # all of its filterLabels must match with corresponding labels provided in the
11350
+ # metadata. If multiple metadata filters are specified, all of them need to be
11351
+ # satisfied in order to be considered a match. metadataFilters specified here is
11190
11352
  # applied after those specified in ForwardingRule that refers to the UrlMap this
11191
- # HttpRouteRuleMatch belongs to. metadataFilters only applies to Loadbalancers
11192
- # that have their loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not
11193
- # supported when the URL map is bound to target gRPC proxy that has
11194
- # validateForProxyless field set to true.
11353
+ # HttpRouteRuleMatch belongs to. metadataFilters only applies to load balancers
11354
+ # that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not supported when
11355
+ # the URL map is bound to a target gRPC proxy that has validateForProxyless
11356
+ # field set to true.
11195
11357
  # Corresponds to the JSON property `metadataFilters`
11196
11358
  # @return [Array<Google::Apis::ComputeV1::MetadataFilter>]
11197
11359
  attr_accessor :metadata_filters
11198
11360
 
11199
11361
  # For satisfying the matchRule condition, the request's path must begin with the
11200
- # specified prefixMatch. prefixMatch must begin with a /. The value must be
11201
- # between 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or
11202
- # regexMatch must be specified.
11362
+ # specified prefixMatch. prefixMatch must begin with a /. The value must be from
11363
+ # 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch
11364
+ # must be specified.
11203
11365
  # Corresponds to the JSON property `prefixMatch`
11204
11366
  # @return [String]
11205
11367
  attr_accessor :prefix_match
11206
11368
 
11207
11369
  # Specifies a list of query parameter match criteria, all of which must match
11208
11370
  # corresponding query parameters in the request. Not supported when the URL map
11209
- # is bound to target gRPC proxy.
11371
+ # is bound to a target gRPC proxy.
11210
11372
  # Corresponds to the JSON property `queryParameterMatches`
11211
11373
  # @return [Array<Google::Apis::ComputeV1::HttpQueryParameterMatch>]
11212
11374
  attr_accessor :query_parameter_matches
11213
11375
 
11214
11376
  # For satisfying the matchRule condition, the path of the request must satisfy
11215
11377
  # the regular expression specified in regexMatch after removing any query
11216
- # parameters and anchor supplied with the original URL. For regular expression
11217
- # grammar please see github.com/google/re2/wiki/Syntax Only one of prefixMatch,
11218
- # fullPathMatch or regexMatch must be specified. Note that regexMatch only
11219
- # applies to Loadbalancers that have their loadBalancingScheme set to
11220
- # INTERNAL_SELF_MANAGED.
11378
+ # parameters and anchor supplied with the original URL. For more information
11379
+ # about regular expression syntax, see Syntax. Only one of prefixMatch,
11380
+ # fullPathMatch or regexMatch must be specified. regexMatch only applies to load
11381
+ # balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED.
11221
11382
  # Corresponds to the JSON property `regexMatch`
11222
11383
  # @return [String]
11223
11384
  attr_accessor :regex_match
@@ -11505,8 +11666,8 @@ module Google
11505
11666
  attr_accessor :family
11506
11667
 
11507
11668
  # A list of features to enable on the guest operating system. Applicable only
11508
- # for bootable images. Read Enabling guest operating system features to see a
11509
- # list of available options.
11669
+ # for bootable images. To see a list of available options, see the
11670
+ # guestOSfeatures[].type parameter.
11510
11671
  # Corresponds to the JSON property `guestOsFeatures`
11511
11672
  # @return [Array<Google::Apis::ComputeV1::GuestOsFeature>]
11512
11673
  attr_accessor :guest_os_features
@@ -12109,6 +12270,11 @@ module Google
12109
12270
  # @return [Array<Google::Apis::ComputeV1::NetworkInterface>]
12110
12271
  attr_accessor :network_interfaces
12111
12272
 
12273
+ #
12274
+ # Corresponds to the JSON property `networkPerformanceConfig`
12275
+ # @return [Google::Apis::ComputeV1::NetworkPerformanceConfig]
12276
+ attr_accessor :network_performance_config
12277
+
12112
12278
  # The private IPv6 google access type for the VM. If not specified, use
12113
12279
  # INHERIT_FROM_SUBNETWORK as default.
12114
12280
  # Corresponds to the JSON property `privateIpv6GoogleAccess`
@@ -12161,6 +12327,17 @@ module Google
12161
12327
  # @return [Google::Apis::ComputeV1::ShieldedInstanceIntegrityPolicy]
12162
12328
  attr_accessor :shielded_instance_integrity_policy
12163
12329
 
12330
+ # Source machine image
12331
+ # Corresponds to the JSON property `sourceMachineImage`
12332
+ # @return [String]
12333
+ attr_accessor :source_machine_image
12334
+
12335
+ # Source machine image encryption key when creating an instance from a machine
12336
+ # image.
12337
+ # Corresponds to the JSON property `sourceMachineImageEncryptionKey`
12338
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
12339
+ attr_accessor :source_machine_image_encryption_key
12340
+
12164
12341
  # [Output Only] Whether a VM has been restricted for start because Compute
12165
12342
  # Engine has detected suspicious activity.
12166
12343
  # Corresponds to the JSON property `startRestricted`
@@ -12223,6 +12400,7 @@ module Google
12223
12400
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
12224
12401
  @name = args[:name] if args.key?(:name)
12225
12402
  @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
12403
+ @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
12226
12404
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
12227
12405
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
12228
12406
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
@@ -12232,6 +12410,8 @@ module Google
12232
12410
  @service_accounts = args[:service_accounts] if args.key?(:service_accounts)
12233
12411
  @shielded_instance_config = args[:shielded_instance_config] if args.key?(:shielded_instance_config)
12234
12412
  @shielded_instance_integrity_policy = args[:shielded_instance_integrity_policy] if args.key?(:shielded_instance_integrity_policy)
12413
+ @source_machine_image = args[:source_machine_image] if args.key?(:source_machine_image)
12414
+ @source_machine_image_encryption_key = args[:source_machine_image_encryption_key] if args.key?(:source_machine_image_encryption_key)
12235
12415
  @start_restricted = args[:start_restricted] if args.key?(:start_restricted)
12236
12416
  @status = args[:status] if args.key?(:status)
12237
12417
  @status_message = args[:status_message] if args.key?(:status_message)
@@ -12966,6 +13146,30 @@ module Google
12966
13146
  # @return [Fixnum]
12967
13147
  attr_accessor :restarting
12968
13148
 
13149
+ # [Output Only] The number of instances in the managed instance group that are
13150
+ # scheduled to be resumed or are currently being resumed.
13151
+ # Corresponds to the JSON property `resuming`
13152
+ # @return [Fixnum]
13153
+ attr_accessor :resuming
13154
+
13155
+ # [Output Only] The number of instances in the managed instance group that are
13156
+ # scheduled to be started or are currently being started.
13157
+ # Corresponds to the JSON property `starting`
13158
+ # @return [Fixnum]
13159
+ attr_accessor :starting
13160
+
13161
+ # [Output Only] The number of instances in the managed instance group that are
13162
+ # scheduled to be stopped or are currently being stopped.
13163
+ # Corresponds to the JSON property `stopping`
13164
+ # @return [Fixnum]
13165
+ attr_accessor :stopping
13166
+
13167
+ # [Output Only] The number of instances in the managed instance group that are
13168
+ # scheduled to be suspended or are currently being suspended.
13169
+ # Corresponds to the JSON property `suspending`
13170
+ # @return [Fixnum]
13171
+ attr_accessor :suspending
13172
+
12969
13173
  # [Output Only] The number of instances in the managed instance group that are
12970
13174
  # being verified. See the managedInstances[].currentAction property in the
12971
13175
  # listManagedInstances method documentation.
@@ -12987,6 +13191,10 @@ module Google
12987
13191
  @recreating = args[:recreating] if args.key?(:recreating)
12988
13192
  @refreshing = args[:refreshing] if args.key?(:refreshing)
12989
13193
  @restarting = args[:restarting] if args.key?(:restarting)
13194
+ @resuming = args[:resuming] if args.key?(:resuming)
13195
+ @starting = args[:starting] if args.key?(:starting)
13196
+ @stopping = args[:stopping] if args.key?(:stopping)
13197
+ @suspending = args[:suspending] if args.key?(:suspending)
12990
13198
  @verifying = args[:verifying] if args.key?(:verifying)
12991
13199
  end
12992
13200
  end
@@ -13416,6 +13624,17 @@ module Google
13416
13624
  # @return [String]
13417
13625
  attr_accessor :minimal_action
13418
13626
 
13627
+ # Most disruptive action that is allowed to be taken on an instance. You can
13628
+ # specify either NONE to forbid any actions, REFRESH to allow actions that do
13629
+ # not need instance restart, RESTART to allow actions that can be applied
13630
+ # without instance replacing or REPLACE to allow all possible actions. If the
13631
+ # Updater determines that the minimal update action needed is more disruptive
13632
+ # than most disruptive allowed action you specify it will not perform the update
13633
+ # at all.
13634
+ # Corresponds to the JSON property `mostDisruptiveAllowedAction`
13635
+ # @return [String]
13636
+ attr_accessor :most_disruptive_allowed_action
13637
+
13419
13638
  # What action should be used to replace instances. See minimal_action.REPLACE
13420
13639
  # Corresponds to the JSON property `replacementMethod`
13421
13640
  # @return [String]
@@ -13440,6 +13659,7 @@ module Google
13440
13659
  @max_surge = args[:max_surge] if args.key?(:max_surge)
13441
13660
  @max_unavailable = args[:max_unavailable] if args.key?(:max_unavailable)
13442
13661
  @minimal_action = args[:minimal_action] if args.key?(:minimal_action)
13662
+ @most_disruptive_allowed_action = args[:most_disruptive_allowed_action] if args.key?(:most_disruptive_allowed_action)
13443
13663
  @replacement_method = args[:replacement_method] if args.key?(:replacement_method)
13444
13664
  @type = args[:type] if args.key?(:type)
13445
13665
  end
@@ -14730,6 +14950,11 @@ module Google
14730
14950
  # @return [Array<Google::Apis::ComputeV1::NetworkInterface>]
14731
14951
  attr_accessor :network_interfaces
14732
14952
 
14953
+ # Note that for MachineImage, this is not supported yet.
14954
+ # Corresponds to the JSON property `networkPerformanceConfig`
14955
+ # @return [Google::Apis::ComputeV1::NetworkPerformanceConfig]
14956
+ attr_accessor :network_performance_config
14957
+
14733
14958
  # The private IPv6 google access type for VMs. If not specified, use
14734
14959
  # INHERIT_FROM_SUBNETWORK as default. Note that for MachineImage, this is not
14735
14960
  # supported yet.
@@ -14742,7 +14967,15 @@ module Google
14742
14967
  # @return [Google::Apis::ComputeV1::ReservationAffinity]
14743
14968
  attr_accessor :reservation_affinity
14744
14969
 
14745
- # Resource policies (names, not ULRs) applied to instances created from these
14970
+ # Resource manager tags to be bound to the instance. Tag keys and values have
14971
+ # the same definition as resource manager tags. Keys must be in the format `
14972
+ # tagKeys/`tag_key_id``, and values are in the format `tagValues/456`. The field
14973
+ # is ignored (both PUT & PATCH) when empty.
14974
+ # Corresponds to the JSON property `resourceManagerTags`
14975
+ # @return [Hash<String,String>]
14976
+ attr_accessor :resource_manager_tags
14977
+
14978
+ # Resource policies (names, not URLs) applied to instances created from these
14746
14979
  # properties. Note that for MachineImage, this is not supported yet.
14747
14980
  # Corresponds to the JSON property `resourcePolicies`
14748
14981
  # @return [Array<String>]
@@ -14788,8 +15021,10 @@ module Google
14788
15021
  @metadata = args[:metadata] if args.key?(:metadata)
14789
15022
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
14790
15023
  @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
15024
+ @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
14791
15025
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
14792
15026
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
15027
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
14793
15028
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
14794
15029
  @scheduling = args[:scheduling] if args.key?(:scheduling)
14795
15030
  @service_accounts = args[:service_accounts] if args.key?(:service_accounts)
@@ -15633,6 +15868,17 @@ module Google
15633
15868
  # @return [String]
15634
15869
  attr_accessor :bandwidth
15635
15870
 
15871
+ # Up to 16 candidate prefixes that control the allocation of
15872
+ # cloudRouterIpv6Address and customerRouterIpv6Address for this attachment. Each
15873
+ # prefix must be in the Global Unique Address (GUA) space. It is highly
15874
+ # recommended that it be in a range owned by the requestor. A GUA in a range
15875
+ # owned by Google will cause the request to fail. Google will select an
15876
+ # available prefix from the supplied candidates or fail the request. If not
15877
+ # supplied, a /125 from a Google-owned GUA block will be selected.
15878
+ # Corresponds to the JSON property `candidateIpv6Subnets`
15879
+ # @return [Array<String>]
15880
+ attr_accessor :candidate_ipv6_subnets
15881
+
15636
15882
  # Up to 16 candidate prefixes that can be used to restrict the allocation of
15637
15883
  # cloudRouterIpAddress and customerRouterIpAddress for this attachment. All
15638
15884
  # prefixes must be within link-local address space (169.254.0.0/16) and must be /
@@ -15650,6 +15896,20 @@ module Google
15650
15896
  # @return [String]
15651
15897
  attr_accessor :cloud_router_ip_address
15652
15898
 
15899
+ # [Output Only] IPv6 address + prefix length to be configured on Cloud Router
15900
+ # Interface for this interconnect attachment.
15901
+ # Corresponds to the JSON property `cloudRouterIpv6Address`
15902
+ # @return [String]
15903
+ attr_accessor :cloud_router_ipv6_address
15904
+
15905
+ # If supplied, the interface id (index within the subnet) to be used for the
15906
+ # cloud router address. The id must be in the range of 1 to 6. If a subnet mask
15907
+ # is supplied, it must be /125, and the subnet should either be 0 or match the
15908
+ # selected subnet.
15909
+ # Corresponds to the JSON property `cloudRouterIpv6InterfaceId`
15910
+ # @return [String]
15911
+ attr_accessor :cloud_router_ipv6_interface_id
15912
+
15653
15913
  # [Output Only] Creation timestamp in RFC3339 text format.
15654
15914
  # Corresponds to the JSON property `creationTimestamp`
15655
15915
  # @return [String]
@@ -15661,7 +15921,24 @@ module Google
15661
15921
  # @return [String]
15662
15922
  attr_accessor :customer_router_ip_address
15663
15923
 
15664
- # [Output Only] Dataplane version for this InterconnectAttachment.
15924
+ # [Output Only] IPv6 address + prefix length to be configured on the customer
15925
+ # router subinterface for this interconnect attachment.
15926
+ # Corresponds to the JSON property `customerRouterIpv6Address`
15927
+ # @return [String]
15928
+ attr_accessor :customer_router_ipv6_address
15929
+
15930
+ # If supplied, the interface id (index within the subnet) to be used for the
15931
+ # customer router address. The id must be in the range of 1 to 6. If a subnet
15932
+ # mask is supplied, it must be /125, and the subnet should either be 0 or match
15933
+ # the selected subnet.
15934
+ # Corresponds to the JSON property `customerRouterIpv6InterfaceId`
15935
+ # @return [String]
15936
+ attr_accessor :customer_router_ipv6_interface_id
15937
+
15938
+ # [Output only for types PARTNER and DEDICATED. Not present for PARTNER_PROVIDER.
15939
+ # ] Dataplane version for this InterconnectAttachment. This field is only
15940
+ # present for Dataplane version 2 and higher. Absence of this field in the API
15941
+ # output indicates that the Dataplane is version 1.
15665
15942
  # Corresponds to the JSON property `dataplaneVersion`
15666
15943
  # @return [Fixnum]
15667
15944
  attr_accessor :dataplane_version
@@ -15820,6 +16097,14 @@ module Google
15820
16097
  # @return [String]
15821
16098
  attr_accessor :self_link
15822
16099
 
16100
+ # The stack type for this interconnect attachment to identify whether the IPv6
16101
+ # feature is enabled or not. If not specified, IPV4_ONLY will be used. This
16102
+ # field can be both set at interconnect attachments creation and update
16103
+ # interconnect attachment operations.
16104
+ # Corresponds to the JSON property `stackType`
16105
+ # @return [String]
16106
+ attr_accessor :stack_type
16107
+
15823
16108
  # [Output Only] The current state of this attachment's functionality. Enum
15824
16109
  # values ACTIVE and UNPROVISIONED are shared by DEDICATED/PRIVATE, PARTNER, and
15825
16110
  # PARTNER_PROVIDER interconnect attachments, while enum values PENDING_PARTNER,
@@ -15862,10 +16147,15 @@ module Google
15862
16147
  def update!(**args)
15863
16148
  @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
15864
16149
  @bandwidth = args[:bandwidth] if args.key?(:bandwidth)
16150
+ @candidate_ipv6_subnets = args[:candidate_ipv6_subnets] if args.key?(:candidate_ipv6_subnets)
15865
16151
  @candidate_subnets = args[:candidate_subnets] if args.key?(:candidate_subnets)
15866
16152
  @cloud_router_ip_address = args[:cloud_router_ip_address] if args.key?(:cloud_router_ip_address)
16153
+ @cloud_router_ipv6_address = args[:cloud_router_ipv6_address] if args.key?(:cloud_router_ipv6_address)
16154
+ @cloud_router_ipv6_interface_id = args[:cloud_router_ipv6_interface_id] if args.key?(:cloud_router_ipv6_interface_id)
15867
16155
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
15868
16156
  @customer_router_ip_address = args[:customer_router_ip_address] if args.key?(:customer_router_ip_address)
16157
+ @customer_router_ipv6_address = args[:customer_router_ipv6_address] if args.key?(:customer_router_ipv6_address)
16158
+ @customer_router_ipv6_interface_id = args[:customer_router_ipv6_interface_id] if args.key?(:customer_router_ipv6_interface_id)
15869
16159
  @dataplane_version = args[:dataplane_version] if args.key?(:dataplane_version)
15870
16160
  @description = args[:description] if args.key?(:description)
15871
16161
  @edge_availability_domain = args[:edge_availability_domain] if args.key?(:edge_availability_domain)
@@ -15886,6 +16176,7 @@ module Google
15886
16176
  @router = args[:router] if args.key?(:router)
15887
16177
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
15888
16178
  @self_link = args[:self_link] if args.key?(:self_link)
16179
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
15889
16180
  @state = args[:state] if args.key?(:state)
15890
16181
  @type = args[:type] if args.key?(:type)
15891
16182
  @vlan_tag8021q = args[:vlan_tag8021q] if args.key?(:vlan_tag8021q)
@@ -17401,7 +17692,7 @@ module Google
17401
17692
  class LocationPolicyLocation
17402
17693
  include Google::Apis::Core::Hashable
17403
17694
 
17404
- # Preference for a given location: ALLOW or DENY.
17695
+ # Preference for a given location.
17405
17696
  # Corresponds to the JSON property `preference`
17406
17697
  # @return [String]
17407
17698
  attr_accessor :preference
@@ -17547,6 +17838,272 @@ module Google
17547
17838
  end
17548
17839
  end
17549
17840
 
17841
+ # Represents a machine image resource. A machine image is a Compute Engine
17842
+ # resource that stores all the configuration, metadata, permissions, and data
17843
+ # from one or more disks required to create a Virtual machine (VM) instance. For
17844
+ # more information, see Machine images.
17845
+ class MachineImage
17846
+ include Google::Apis::Core::Hashable
17847
+
17848
+ # [Output Only] The creation timestamp for this machine image in RFC3339 text
17849
+ # format.
17850
+ # Corresponds to the JSON property `creationTimestamp`
17851
+ # @return [String]
17852
+ attr_accessor :creation_timestamp
17853
+
17854
+ # An optional description of this resource. Provide this property when you
17855
+ # create the resource.
17856
+ # Corresponds to the JSON property `description`
17857
+ # @return [String]
17858
+ attr_accessor :description
17859
+
17860
+ # [Input Only] Whether to attempt an application consistent machine image by
17861
+ # informing the OS to prepare for the snapshot process. Currently only supported
17862
+ # on Windows instances using the Volume Shadow Copy Service (VSS).
17863
+ # Corresponds to the JSON property `guestFlush`
17864
+ # @return [Boolean]
17865
+ attr_accessor :guest_flush
17866
+ alias_method :guest_flush?, :guest_flush
17867
+
17868
+ # [Output Only] A unique identifier for this machine image. The server defines
17869
+ # this identifier.
17870
+ # Corresponds to the JSON property `id`
17871
+ # @return [Fixnum]
17872
+ attr_accessor :id
17873
+
17874
+ # [Output Only] Properties of source instance
17875
+ # Corresponds to the JSON property `instanceProperties`
17876
+ # @return [Google::Apis::ComputeV1::InstanceProperties]
17877
+ attr_accessor :instance_properties
17878
+
17879
+ # [Output Only] The resource type, which is always compute#machineImage for
17880
+ # machine image.
17881
+ # Corresponds to the JSON property `kind`
17882
+ # @return [String]
17883
+ attr_accessor :kind
17884
+
17885
+ # Encrypts the machine image using a customer-supplied encryption key. After you
17886
+ # encrypt a machine image using a customer-supplied key, you must provide the
17887
+ # same key if you use the machine image later. For example, you must provide the
17888
+ # encryption key when you create an instance from the encrypted machine image in
17889
+ # a future request. Customer-supplied encryption keys do not protect access to
17890
+ # metadata of the machine image. If you do not provide an encryption key when
17891
+ # creating the machine image, then the machine image will be encrypted using an
17892
+ # automatically generated key and you do not need to provide a key to use the
17893
+ # machine image later.
17894
+ # Corresponds to the JSON property `machineImageEncryptionKey`
17895
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
17896
+ attr_accessor :machine_image_encryption_key
17897
+
17898
+ # Name of the resource; provided by the client when the resource is created. The
17899
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
17900
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
17901
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
17902
+ # and all following characters must be a dash, lowercase letter, or digit,
17903
+ # except the last character, which cannot be a dash.
17904
+ # Corresponds to the JSON property `name`
17905
+ # @return [String]
17906
+ attr_accessor :name
17907
+
17908
+ # [Output Only] Reserved for future use.
17909
+ # Corresponds to the JSON property `satisfiesPzs`
17910
+ # @return [Boolean]
17911
+ attr_accessor :satisfies_pzs
17912
+ alias_method :satisfies_pzs?, :satisfies_pzs
17913
+
17914
+ # An array of Machine Image specific properties for disks attached to the source
17915
+ # instance
17916
+ # Corresponds to the JSON property `savedDisks`
17917
+ # @return [Array<Google::Apis::ComputeV1::SavedDisk>]
17918
+ attr_accessor :saved_disks
17919
+
17920
+ # [Output Only] The URL for this machine image. The server defines this URL.
17921
+ # Corresponds to the JSON property `selfLink`
17922
+ # @return [String]
17923
+ attr_accessor :self_link
17924
+
17925
+ # [Input Only] The customer-supplied encryption key of the disks attached to the
17926
+ # source instance. Required if the source disk is protected by a customer-
17927
+ # supplied encryption key.
17928
+ # Corresponds to the JSON property `sourceDiskEncryptionKeys`
17929
+ # @return [Array<Google::Apis::ComputeV1::SourceDiskEncryptionKey>]
17930
+ attr_accessor :source_disk_encryption_keys
17931
+
17932
+ # The source instance used to create the machine image. You can provide this as
17933
+ # a partial or full URL to the resource. For example, the following are valid
17934
+ # values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /
17935
+ # instances/instance - projects/project/zones/zone/instances/instance
17936
+ # Corresponds to the JSON property `sourceInstance`
17937
+ # @return [String]
17938
+ attr_accessor :source_instance
17939
+
17940
+ # DEPRECATED: Please use compute#instanceProperties instead. New properties will
17941
+ # not be added to this field.
17942
+ # Corresponds to the JSON property `sourceInstanceProperties`
17943
+ # @return [Google::Apis::ComputeV1::SourceInstanceProperties]
17944
+ attr_accessor :source_instance_properties
17945
+
17946
+ # [Output Only] The status of the machine image. One of the following values:
17947
+ # INVALID, CREATING, READY, DELETING, and UPLOADING.
17948
+ # Corresponds to the JSON property `status`
17949
+ # @return [String]
17950
+ attr_accessor :status
17951
+
17952
+ # The regional or multi-regional Cloud Storage bucket location where the machine
17953
+ # image is stored.
17954
+ # Corresponds to the JSON property `storageLocations`
17955
+ # @return [Array<String>]
17956
+ attr_accessor :storage_locations
17957
+
17958
+ # [Output Only] Total size of the storage used by the machine image.
17959
+ # Corresponds to the JSON property `totalStorageBytes`
17960
+ # @return [Fixnum]
17961
+ attr_accessor :total_storage_bytes
17962
+
17963
+ def initialize(**args)
17964
+ update!(**args)
17965
+ end
17966
+
17967
+ # Update properties of this object
17968
+ def update!(**args)
17969
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
17970
+ @description = args[:description] if args.key?(:description)
17971
+ @guest_flush = args[:guest_flush] if args.key?(:guest_flush)
17972
+ @id = args[:id] if args.key?(:id)
17973
+ @instance_properties = args[:instance_properties] if args.key?(:instance_properties)
17974
+ @kind = args[:kind] if args.key?(:kind)
17975
+ @machine_image_encryption_key = args[:machine_image_encryption_key] if args.key?(:machine_image_encryption_key)
17976
+ @name = args[:name] if args.key?(:name)
17977
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
17978
+ @saved_disks = args[:saved_disks] if args.key?(:saved_disks)
17979
+ @self_link = args[:self_link] if args.key?(:self_link)
17980
+ @source_disk_encryption_keys = args[:source_disk_encryption_keys] if args.key?(:source_disk_encryption_keys)
17981
+ @source_instance = args[:source_instance] if args.key?(:source_instance)
17982
+ @source_instance_properties = args[:source_instance_properties] if args.key?(:source_instance_properties)
17983
+ @status = args[:status] if args.key?(:status)
17984
+ @storage_locations = args[:storage_locations] if args.key?(:storage_locations)
17985
+ @total_storage_bytes = args[:total_storage_bytes] if args.key?(:total_storage_bytes)
17986
+ end
17987
+ end
17988
+
17989
+ # A list of machine images.
17990
+ class MachineImageList
17991
+ include Google::Apis::Core::Hashable
17992
+
17993
+ # [Output Only] Unique identifier for the resource; defined by the server.
17994
+ # Corresponds to the JSON property `id`
17995
+ # @return [String]
17996
+ attr_accessor :id
17997
+
17998
+ # A list of MachineImage resources.
17999
+ # Corresponds to the JSON property `items`
18000
+ # @return [Array<Google::Apis::ComputeV1::MachineImage>]
18001
+ attr_accessor :items
18002
+
18003
+ # [Output Only] The resource type, which is always compute#
18004
+ # machineImagesListResponse for machine image lists.
18005
+ # Corresponds to the JSON property `kind`
18006
+ # @return [String]
18007
+ attr_accessor :kind
18008
+
18009
+ # [Output Only] This token allows you to get the next page of results for list
18010
+ # requests. If the number of results is larger than maxResults, use the
18011
+ # nextPageToken as a value for the query parameter pageToken in the next list
18012
+ # request. Subsequent list requests will have their own nextPageToken to
18013
+ # continue paging through the results.
18014
+ # Corresponds to the JSON property `nextPageToken`
18015
+ # @return [String]
18016
+ attr_accessor :next_page_token
18017
+
18018
+ # [Output Only] Server-defined URL for this resource.
18019
+ # Corresponds to the JSON property `selfLink`
18020
+ # @return [String]
18021
+ attr_accessor :self_link
18022
+
18023
+ # [Output Only] Informational warning message.
18024
+ # Corresponds to the JSON property `warning`
18025
+ # @return [Google::Apis::ComputeV1::MachineImageList::Warning]
18026
+ attr_accessor :warning
18027
+
18028
+ def initialize(**args)
18029
+ update!(**args)
18030
+ end
18031
+
18032
+ # Update properties of this object
18033
+ def update!(**args)
18034
+ @id = args[:id] if args.key?(:id)
18035
+ @items = args[:items] if args.key?(:items)
18036
+ @kind = args[:kind] if args.key?(:kind)
18037
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
18038
+ @self_link = args[:self_link] if args.key?(:self_link)
18039
+ @warning = args[:warning] if args.key?(:warning)
18040
+ end
18041
+
18042
+ # [Output Only] Informational warning message.
18043
+ class Warning
18044
+ include Google::Apis::Core::Hashable
18045
+
18046
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
18047
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
18048
+ # Corresponds to the JSON property `code`
18049
+ # @return [String]
18050
+ attr_accessor :code
18051
+
18052
+ # [Output Only] Metadata about this warning in key: value format. For example: "
18053
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
18054
+ # Corresponds to the JSON property `data`
18055
+ # @return [Array<Google::Apis::ComputeV1::MachineImageList::Warning::Datum>]
18056
+ attr_accessor :data
18057
+
18058
+ # [Output Only] A human-readable description of the warning code.
18059
+ # Corresponds to the JSON property `message`
18060
+ # @return [String]
18061
+ attr_accessor :message
18062
+
18063
+ def initialize(**args)
18064
+ update!(**args)
18065
+ end
18066
+
18067
+ # Update properties of this object
18068
+ def update!(**args)
18069
+ @code = args[:code] if args.key?(:code)
18070
+ @data = args[:data] if args.key?(:data)
18071
+ @message = args[:message] if args.key?(:message)
18072
+ end
18073
+
18074
+ #
18075
+ class Datum
18076
+ include Google::Apis::Core::Hashable
18077
+
18078
+ # [Output Only] A key that provides more detail on the warning being returned.
18079
+ # For example, for warnings where there are no results in a list request for a
18080
+ # particular zone, this key might be scope and the key value might be the zone
18081
+ # name. Other examples might be a key indicating a deprecated resource and a
18082
+ # suggested replacement, or a warning about invalid network settings (for
18083
+ # example, if an instance attempts to perform IP forwarding but is not enabled
18084
+ # for IP forwarding).
18085
+ # Corresponds to the JSON property `key`
18086
+ # @return [String]
18087
+ attr_accessor :key
18088
+
18089
+ # [Output Only] A warning data value corresponding to the key.
18090
+ # Corresponds to the JSON property `value`
18091
+ # @return [String]
18092
+ attr_accessor :value
18093
+
18094
+ def initialize(**args)
18095
+ update!(**args)
18096
+ end
18097
+
18098
+ # Update properties of this object
18099
+ def update!(**args)
18100
+ @key = args[:key] if args.key?(:key)
18101
+ @value = args[:value] if args.key?(:value)
18102
+ end
18103
+ end
18104
+ end
18105
+ end
18106
+
17550
18107
  # Represents a Machine Type resource. You can use specific machine types for
17551
18108
  # your VM instances based on performance and pricing requirements. For more
17552
18109
  # information, read Machine Types.
@@ -18325,18 +18882,18 @@ module Google
18325
18882
  end
18326
18883
  end
18327
18884
 
18328
- # Opaque filter criteria used by loadbalancers to restrict routing configuration
18329
- # to a limited set of loadbalancing proxies. Proxies and sidecars involved in
18330
- # loadbalancing would typically present metadata to the loadbalancers which need
18331
- # to match criteria specified here. If a match takes place, the relevant
18332
- # configuration is made available to those proxies. For each metadataFilter in
18333
- # this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the
18334
- # filterLabels must match the corresponding label provided in the metadata. If
18335
- # its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must
18336
- # match with corresponding labels provided in the metadata. An example for using
18337
- # metadataFilters would be: if loadbalancing involves Envoys, they will only
18338
- # receive routing configuration when values in metadataFilters match values
18339
- # supplied in of their XDS requests to loadbalancers.
18885
+ # Opaque filter criteria used by load balancers to restrict routing
18886
+ # configuration to a limited set of load balancing proxies. Proxies and sidecars
18887
+ # involved in load balancing would typically present metadata to the load
18888
+ # balancers that need to match criteria specified here. If a match takes place,
18889
+ # the relevant configuration is made available to those proxies. For each
18890
+ # metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY,
18891
+ # at least one of the filterLabels must match the corresponding label provided
18892
+ # in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of
18893
+ # its filterLabels must match with corresponding labels provided in the metadata.
18894
+ # An example for using metadataFilters would be: if load balancing involves
18895
+ # Envoys, they receive routing configuration when values in metadataFilters
18896
+ # match values supplied in of their XDS requests to loadbalancers.
18340
18897
  class MetadataFilter
18341
18898
  include Google::Apis::Core::Hashable
18342
18899
 
@@ -18347,11 +18904,11 @@ module Google
18347
18904
  # @return [Array<Google::Apis::ComputeV1::MetadataFilterLabelMatch>]
18348
18905
  attr_accessor :filter_labels
18349
18906
 
18350
- # Specifies how individual filterLabel matches within the list of filterLabels
18351
- # contribute towards the overall metadataFilter match. Supported values are: -
18352
- # MATCH_ANY: At least one of the filterLabels must have a matching label in the
18353
- # provided metadata. - MATCH_ALL: All filterLabels must have matching labels in
18354
- # the provided metadata.
18907
+ # Specifies how individual filter label matches within the list of filterLabels
18908
+ # and contributes toward the overall metadataFilter match. Supported values are:
18909
+ # - MATCH_ANY: at least one of the filterLabels must have a matching label in
18910
+ # the provided metadata. - MATCH_ALL: all filterLabels must have matching labels
18911
+ # in the provided metadata.
18355
18912
  # Corresponds to the JSON property `filterMatchCriteria`
18356
18913
  # @return [String]
18357
18914
  attr_accessor :filter_match_criteria
@@ -18368,7 +18925,7 @@ module Google
18368
18925
  end
18369
18926
 
18370
18927
  # MetadataFilter label name value pairs that are expected to match corresponding
18371
- # labels presented as metadata to the loadbalancer.
18928
+ # labels presented as metadata to the load balancer.
18372
18929
  class MetadataFilterLabelMatch
18373
18930
  include Google::Apis::Core::Hashable
18374
18931
 
@@ -18675,6 +19232,12 @@ module Google
18675
19232
  # @return [String]
18676
19233
  attr_accessor :network_endpoint_type
18677
19234
 
19235
+ # The target service url used to set up private service connection to a Google
19236
+ # API. An example value is: "asia-northeast3-cloudkms.googleapis.com"
19237
+ # Corresponds to the JSON property `pscTargetService`
19238
+ # @return [String]
19239
+ attr_accessor :psc_target_service
19240
+
18678
19241
  # [Output Only] The URL of the region where the network endpoint group is
18679
19242
  # located.
18680
19243
  # Corresponds to the JSON property `region`
@@ -18720,6 +19283,7 @@ module Google
18720
19283
  @name = args[:name] if args.key?(:name)
18721
19284
  @network = args[:network] if args.key?(:network)
18722
19285
  @network_endpoint_type = args[:network_endpoint_type] if args.key?(:network_endpoint_type)
19286
+ @psc_target_service = args[:psc_target_service] if args.key?(:psc_target_service)
18723
19287
  @region = args[:region] if args.key?(:region)
18724
19288
  @self_link = args[:self_link] if args.key?(:self_link)
18725
19289
  @size = args[:size] if args.key?(:size)
@@ -19420,7 +19984,7 @@ module Google
19420
19984
  # @return [String]
19421
19985
  attr_accessor :ipv6_access_type
19422
19986
 
19423
- # [Output Only] An IPv6 internal network address for this network interface.
19987
+ # An IPv6 internal network address for this network interface.
19424
19988
  # Corresponds to the JSON property `ipv6Address`
19425
19989
  # @return [String]
19426
19990
  attr_accessor :ipv6_address
@@ -19437,14 +20001,15 @@ module Google
19437
20001
  # @return [String]
19438
20002
  attr_accessor :name
19439
20003
 
19440
- # URL of the network resource for this instance. When creating an instance, if
19441
- # neither the network nor the subnetwork is specified, the default network
19442
- # global/networks/default is used; if the network is not specified but the
19443
- # subnetwork is specified, the network is inferred. If you specify this property,
19444
- # you can specify the network as a full or partial URL. For example, the
19445
- # following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/
19446
- # project/global/networks/ network - projects/project/global/networks/network -
19447
- # global/networks/default
20004
+ # URL of the VPC network resource for this instance. When creating an instance,
20005
+ # if neither the network nor the subnetwork is specified, the default network
20006
+ # global/networks/default is used. If the selected project doesn't have the
20007
+ # default network, you must specify a network or subnet. If the network is not
20008
+ # specified but the subnetwork is specified, the network is inferred. If you
20009
+ # specify this property, you can specify the network as a full or partial URL.
20010
+ # For example, the following are all valid URLs: - https://www.googleapis.com/
20011
+ # compute/v1/projects/project/global/networks/ network - projects/project/global/
20012
+ # networks/network - global/networks/default
19448
20013
  # Corresponds to the JSON property `network`
19449
20014
  # @return [String]
19450
20015
  attr_accessor :network
@@ -19653,7 +20218,8 @@ module Google
19653
20218
  attr_accessor :exchange_subnet_routes
19654
20219
  alias_method :exchange_subnet_routes?, :exchange_subnet_routes
19655
20220
 
19656
- # Whether to export the custom routes to peer network.
20221
+ # Whether to export the custom routes to peer network. The default value is
20222
+ # false.
19657
20223
  # Corresponds to the JSON property `exportCustomRoutes`
19658
20224
  # @return [Boolean]
19659
20225
  attr_accessor :export_custom_routes
@@ -19667,7 +20233,8 @@ module Google
19667
20233
  attr_accessor :export_subnet_routes_with_public_ip
19668
20234
  alias_method :export_subnet_routes_with_public_ip?, :export_subnet_routes_with_public_ip
19669
20235
 
19670
- # Whether to import the custom routes from peer network.
20236
+ # Whether to import the custom routes from peer network. The default value is
20237
+ # false.
19671
20238
  # Corresponds to the JSON property `importCustomRoutes`
19672
20239
  # @return [Boolean]
19673
20240
  attr_accessor :import_custom_routes
@@ -19735,6 +20302,25 @@ module Google
19735
20302
  end
19736
20303
  end
19737
20304
 
20305
+ #
20306
+ class NetworkPerformanceConfig
20307
+ include Google::Apis::Core::Hashable
20308
+
20309
+ #
20310
+ # Corresponds to the JSON property `totalEgressBandwidthTier`
20311
+ # @return [String]
20312
+ attr_accessor :total_egress_bandwidth_tier
20313
+
20314
+ def initialize(**args)
20315
+ update!(**args)
20316
+ end
20317
+
20318
+ # Update properties of this object
20319
+ def update!(**args)
20320
+ @total_egress_bandwidth_tier = args[:total_egress_bandwidth_tier] if args.key?(:total_egress_bandwidth_tier)
20321
+ end
20322
+ end
20323
+
19738
20324
  # A routing configuration attached to a network resource. The message includes
19739
20325
  # the list of routers associated with the network, and a flag indicating the
19740
20326
  # type of routing behavior to enforce network-wide.
@@ -23275,37 +23861,37 @@ module Google
23275
23861
 
23276
23862
  # A matcher for the path portion of the URL. The BackendService from the longest-
23277
23863
  # matched rule will serve the URL. If no rule was matched, the default service
23278
- # will be used.
23864
+ # is used.
23279
23865
  class PathMatcher
23280
23866
  include Google::Apis::Core::Hashable
23281
23867
 
23282
23868
  # defaultRouteAction takes effect when none of the pathRules or routeRules match.
23283
- # The load balancer performs advanced routing actions like URL rewrites, header
23284
- # transformations, etc. prior to forwarding the request to the selected backend.
23869
+ # The load balancer performs advanced routing actions, such as URL rewrites and
23870
+ # header transformations, before forwarding the request to the selected backend.
23285
23871
  # If defaultRouteAction specifies any weightedBackendServices, defaultService
23286
23872
  # must not be set. Conversely if defaultService is set, defaultRouteAction
23287
23873
  # cannot contain any weightedBackendServices. Only one of defaultRouteAction or
23288
23874
  # defaultUrlRedirect must be set. UrlMaps for external HTTP(S) load balancers
23289
- # support only the urlRewrite action within a pathMatcher's defaultRouteAction.
23875
+ # support only the urlRewrite action within a path matcher's defaultRouteAction.
23290
23876
  # Corresponds to the JSON property `defaultRouteAction`
23291
23877
  # @return [Google::Apis::ComputeV1::HttpRouteAction]
23292
23878
  attr_accessor :default_route_action
23293
23879
 
23294
- # The full or partial URL to the BackendService resource. This will be used if
23880
+ # The full or partial URL to the BackendService resource. This URL is used if
23295
23881
  # none of the pathRules or routeRules defined by this PathMatcher are matched.
23296
23882
  # For example, the following are all valid URLs to a BackendService resource: -
23297
23883
  # https://www.googleapis.com/compute/v1/projects/project /global/backendServices/
23298
23884
  # backendService - compute/v1/projects/project/global/backendServices/
23299
23885
  # backendService - global/backendServices/backendService If defaultRouteAction
23300
- # is additionally specified, advanced routing actions like URL Rewrites, etc.
23301
- # take effect prior to sending the request to the backend. However, if
23302
- # defaultService is specified, defaultRouteAction cannot contain any
23303
- # weightedBackendServices. Conversely, if defaultRouteAction specifies any
23304
- # weightedBackendServices, defaultService must not be specified. Only one of
23305
- # defaultService, defaultUrlRedirect or defaultRouteAction.
23306
- # weightedBackendService must be set. Authorization requires one or more of the
23307
- # following Google IAM permissions on the specified resource default_service: -
23308
- # compute.backendBuckets.use - compute.backendServices.use
23886
+ # is also specified, advanced routing actions, such as URL rewrites, take effect
23887
+ # before sending the request to the backend. However, if defaultService is
23888
+ # specified, defaultRouteAction cannot contain any weightedBackendServices.
23889
+ # Conversely, if defaultRouteAction specifies any weightedBackendServices,
23890
+ # defaultService must not be specified. Only one of defaultService,
23891
+ # defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set.
23892
+ # Authorization requires one or more of the following Google IAM permissions on
23893
+ # the specified resource default_service: - compute.backendBuckets.use - compute.
23894
+ # backendServices.use
23309
23895
  # Corresponds to the JSON property `defaultService`
23310
23896
  # @return [String]
23311
23897
  attr_accessor :default_service
@@ -23381,23 +23967,23 @@ module Google
23381
23967
  attr_accessor :paths
23382
23968
 
23383
23969
  # In response to a matching path, the load balancer performs advanced routing
23384
- # actions like URL rewrites, header transformations, etc. prior to forwarding
23970
+ # actions, such as URL rewrites and header transformations, before forwarding
23385
23971
  # the request to the selected backend. If routeAction specifies any
23386
23972
  # weightedBackendServices, service must not be set. Conversely if service is set,
23387
23973
  # routeAction cannot contain any weightedBackendServices. Only one of
23388
- # routeAction or urlRedirect must be set. UrlMaps for external HTTP(S) load
23389
- # balancers support only the urlRewrite action within a pathRule's routeAction.
23974
+ # routeAction or urlRedirect must be set. URL maps for external HTTP(S) load
23975
+ # balancers support only the urlRewrite action within a path rule's routeAction.
23390
23976
  # Corresponds to the JSON property `routeAction`
23391
23977
  # @return [Google::Apis::ComputeV1::HttpRouteAction]
23392
23978
  attr_accessor :route_action
23393
23979
 
23394
23980
  # The full or partial URL of the backend service resource to which traffic is
23395
- # directed if this rule is matched. If routeAction is additionally specified,
23396
- # advanced routing actions like URL Rewrites, etc. take effect prior to sending
23397
- # the request to the backend. However, if service is specified, routeAction
23398
- # cannot contain any weightedBackendService s. Conversely, if routeAction
23399
- # specifies any weightedBackendServices, service must not be specified. Only one
23400
- # of urlRedirect, service or routeAction.weightedBackendService must be set.
23981
+ # directed if this rule is matched. If routeAction is also specified, advanced
23982
+ # routing actions, such as URL rewrites, take effect before sending the request
23983
+ # to the backend. However, if service is specified, routeAction cannot contain
23984
+ # any weightedBackendServices. Conversely, if routeAction specifies any
23985
+ # weightedBackendServices, service must not be specified. Only one of
23986
+ # urlRedirect, service or routeAction.weightedBackendService must be set.
23401
23987
  # Corresponds to the JSON property `service`
23402
23988
  # @return [String]
23403
23989
  attr_accessor :service
@@ -23469,31 +24055,31 @@ module Google
23469
24055
 
23470
24056
  # An Identity and Access Management (IAM) policy, which specifies access
23471
24057
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
23472
- # A `binding` binds one or more `members` to a single `role`. Members can be
23473
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
23474
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
23475
- # role or a user-created custom role. For some types of Google Cloud resources,
23476
- # a `binding` can also specify a `condition`, which is a logical expression that
23477
- # allows access to a resource only if the expression evaluates to `true`. A
23478
- # condition can add constraints based on attributes of the request, the resource,
23479
- # or both. To learn which resources support conditions in their IAM policies,
23480
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
23481
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
23482
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
23483
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
23484
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
23485
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
23486
- # title": "expirable access", "description": "Does not grant access after Sep
23487
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
23488
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
23489
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
23490
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
23491
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
23492
- # roles/resourcemanager.organizationViewer condition: title: expirable access
23493
- # description: Does not grant access after Sep 2020 expression: request.time <
23494
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
23495
- # description of IAM and its features, see the [IAM documentation](https://cloud.
23496
- # google.com/iam/docs/).
24058
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
24059
+ # Principals can be user accounts, service accounts, Google groups, and domains (
24060
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
24061
+ # an IAM predefined role or a user-created custom role. For some types of Google
24062
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
24063
+ # logical expression that allows access to a resource only if the expression
24064
+ # evaluates to `true`. A condition can add constraints based on attributes of
24065
+ # the request, the resource, or both. To learn which resources support
24066
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
24067
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
24068
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
24069
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
24070
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
24071
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
24072
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
24073
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
24074
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
24075
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
24076
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
24077
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
24078
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
24079
+ # access description: Does not grant access after Sep 2020 expression: request.
24080
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
24081
+ # a description of IAM and its features, see the [IAM documentation](https://
24082
+ # cloud.google.com/iam/docs/).
23497
24083
  class Policy
23498
24084
  include Google::Apis::Core::Hashable
23499
24085
 
@@ -23502,9 +24088,14 @@ module Google
23502
24088
  # @return [Array<Google::Apis::ComputeV1::AuditConfig>]
23503
24089
  attr_accessor :audit_configs
23504
24090
 
23505
- # Associates a list of `members` to a `role`. Optionally, may specify a `
23506
- # condition` that determines how and when the `bindings` are applied. Each of
23507
- # the `bindings` must contain at least one member.
24091
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
24092
+ # specify a `condition` that determines how and when the `bindings` are applied.
24093
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
24094
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
24095
+ # can be Google groups. Each occurrence of a principal counts towards these
24096
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
24097
+ # example.com`, and not to any other principal, then you can add another 1,450
24098
+ # principals to the `bindings` in the `Policy`.
23508
24099
  # Corresponds to the JSON property `bindings`
23509
24100
  # @return [Array<Google::Apis::ComputeV1::Binding>]
23510
24101
  attr_accessor :bindings
@@ -23525,12 +24116,6 @@ module Google
23525
24116
  # @return [String]
23526
24117
  attr_accessor :etag
23527
24118
 
23528
- # This is deprecated and has no effect. Do not use.
23529
- # Corresponds to the JSON property `iamOwned`
23530
- # @return [Boolean]
23531
- attr_accessor :iam_owned
23532
- alias_method :iam_owned?, :iam_owned
23533
-
23534
24119
  # This is deprecated and has no effect. Do not use.
23535
24120
  # Corresponds to the JSON property `rules`
23536
24121
  # @return [Array<Google::Apis::ComputeV1::Rule>]
@@ -23564,7 +24149,6 @@ module Google
23564
24149
  @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
23565
24150
  @bindings = args[:bindings] if args.key?(:bindings)
23566
24151
  @etag = args[:etag] if args.key?(:etag)
23567
- @iam_owned = args[:iam_owned] if args.key?(:iam_owned)
23568
24152
  @rules = args[:rules] if args.key?(:rules)
23569
24153
  @version = args[:version] if args.key?(:version)
23570
24154
  end
@@ -23945,7 +24529,13 @@ module Google
23945
24529
  # @return [String]
23946
24530
  attr_accessor :shared_secret
23947
24531
 
23948
- # The status of the public advertised prefix.
24532
+ # The status of the public advertised prefix. Possible values include: - `
24533
+ # INITIAL`: RPKI validation is complete. - `PTR_CONFIGURED`: User has configured
24534
+ # the PTR. - `VALIDATED`: Reverse DNS lookup is successful. - `
24535
+ # REVERSE_DNS_LOOKUP_FAILED`: Reverse DNS lookup failed. - `
24536
+ # PREFIX_CONFIGURATION_IN_PROGRESS`: The prefix is being configured. - `
24537
+ # PREFIX_CONFIGURATION_COMPLETE`: The prefix is fully configured. - `
24538
+ # PREFIX_REMOVAL_IN_PROGRESS`: The prefix is being removed.
23949
24539
  # Corresponds to the JSON property `status`
23950
24540
  # @return [String]
23951
24541
  attr_accessor :status
@@ -24224,7 +24814,12 @@ module Google
24224
24814
  # @return [String]
24225
24815
  attr_accessor :self_link
24226
24816
 
24227
- # [Output Only] The status of the public delegated prefix.
24817
+ # [Output Only] The status of the public delegated prefix, which can be one of
24818
+ # following values: - `INITIALIZING` The public delegated prefix is being
24819
+ # initialized and addresses cannot be created yet. - `READY_TO_ANNOUNCE` The
24820
+ # public delegated prefix is a live migration prefix and is active. - `ANNOUNCED`
24821
+ # The public delegated prefix is active. - `DELETING` The public delegated
24822
+ # prefix is being deprovsioned.
24228
24823
  # Corresponds to the JSON property `status`
24229
24824
  # @return [String]
24230
24825
  attr_accessor :status
@@ -26084,31 +26679,31 @@ module Google
26084
26679
 
26085
26680
  # An Identity and Access Management (IAM) policy, which specifies access
26086
26681
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
26087
- # A `binding` binds one or more `members` to a single `role`. Members can be
26088
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
26089
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
26090
- # role or a user-created custom role. For some types of Google Cloud resources,
26091
- # a `binding` can also specify a `condition`, which is a logical expression that
26092
- # allows access to a resource only if the expression evaluates to `true`. A
26093
- # condition can add constraints based on attributes of the request, the resource,
26094
- # or both. To learn which resources support conditions in their IAM policies,
26095
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
26096
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
26097
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
26098
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
26099
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
26100
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
26101
- # title": "expirable access", "description": "Does not grant access after Sep
26102
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
26103
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
26104
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
26105
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
26106
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
26107
- # roles/resourcemanager.organizationViewer condition: title: expirable access
26108
- # description: Does not grant access after Sep 2020 expression: request.time <
26109
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
26110
- # description of IAM and its features, see the [IAM documentation](https://cloud.
26111
- # google.com/iam/docs/).
26682
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
26683
+ # Principals can be user accounts, service accounts, Google groups, and domains (
26684
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
26685
+ # an IAM predefined role or a user-created custom role. For some types of Google
26686
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
26687
+ # logical expression that allows access to a resource only if the expression
26688
+ # evaluates to `true`. A condition can add constraints based on attributes of
26689
+ # the request, the resource, or both. To learn which resources support
26690
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
26691
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
26692
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
26693
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
26694
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
26695
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
26696
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
26697
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
26698
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
26699
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
26700
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
26701
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
26702
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
26703
+ # access description: Does not grant access after Sep 2020 expression: request.
26704
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
26705
+ # a description of IAM and its features, see the [IAM documentation](https://
26706
+ # cloud.google.com/iam/docs/).
26112
26707
  # Corresponds to the JSON property `policy`
26113
26708
  # @return [Google::Apis::ComputeV1::Policy]
26114
26709
  attr_accessor :policy
@@ -26149,17 +26744,17 @@ module Google
26149
26744
  class RegionUrlMapsValidateRequest
26150
26745
  include Google::Apis::Core::Hashable
26151
26746
 
26152
- # Represents a URL Map resource. Google Compute Engine has two URL Map resources:
26153
- # * [Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/
26154
- # docs/reference/rest/v1/regionUrlMaps) A URL map resource is a component of
26155
- # certain types of GCP load balancers and Traffic Director. * urlMaps are used
26156
- # by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are
26157
- # used by internal HTTP(S) load balancers. For a list of supported URL map
26158
- # features by load balancer type, see the Load balancing features: Routing and
26747
+ # Represents a URL Map resource. Compute Engine has two URL Map resources: * [
26748
+ # Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/docs/
26749
+ # reference/rest/v1/regionUrlMaps) A URL map resource is a component of certain
26750
+ # types of cloud load balancers and Traffic Director: * urlMaps are used by
26751
+ # external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are used
26752
+ # by internal HTTP(S) load balancers. For a list of supported URL map features
26753
+ # by the load balancer type, see the Load balancing features: Routing and
26159
26754
  # traffic management table. For a list of supported URL map features for Traffic
26160
26755
  # Director, see the Traffic Director features: Routing and traffic management
26161
- # table. This resource defines mappings from host names and URL paths to either
26162
- # a backend service or a backend bucket. To use the global urlMaps resource, the
26756
+ # table. This resource defines mappings from hostnames and URL paths to either a
26757
+ # backend service or a backend bucket. To use the global urlMaps resource, the
26163
26758
  # backend service must have a loadBalancingScheme of either EXTERNAL or
26164
26759
  # INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service
26165
26760
  # must have a loadBalancingScheme of INTERNAL_MANAGED. For more information,
@@ -26179,9 +26774,9 @@ module Google
26179
26774
  end
26180
26775
 
26181
26776
  # A policy that specifies how requests intended for the route's backends are
26182
- # shadowed to a separate mirrored backend service. Loadbalancer does not wait
26183
- # for responses from the shadow service. Prior to sending traffic to the shadow
26184
- # service, the host / authority header is suffixed with -shadow.
26777
+ # shadowed to a separate mirrored backend service. The load balancer doesn't
26778
+ # wait for responses from the shadow service. Before sending traffic to the
26779
+ # shadow service, the host or authority header is suffixed with -shadow.
26185
26780
  class RequestMirrorPolicy
26186
26781
  include Google::Apis::Core::Hashable
26187
26782
 
@@ -28341,6 +28936,12 @@ module Google
28341
28936
  # @return [String]
28342
28937
  attr_accessor :enable
28343
28938
 
28939
+ # Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.
28940
+ # Corresponds to the JSON property `enableIpv6`
28941
+ # @return [Boolean]
28942
+ attr_accessor :enable_ipv6
28943
+ alias_method :enable_ipv6?, :enable_ipv6
28944
+
28344
28945
  # Name of the interface the BGP peer is associated with.
28345
28946
  # Corresponds to the JSON property `interfaceName`
28346
28947
  # @return [String]
@@ -28352,6 +28953,11 @@ module Google
28352
28953
  # @return [String]
28353
28954
  attr_accessor :ip_address
28354
28955
 
28956
+ # IPv6 address of the interface inside Google Cloud Platform.
28957
+ # Corresponds to the JSON property `ipv6NexthopAddress`
28958
+ # @return [String]
28959
+ attr_accessor :ipv6_nexthop_address
28960
+
28355
28961
  # [Output Only] The resource that configures and manages this BGP peer. -
28356
28962
  # MANAGED_BY_USER is the default value and can be managed by you or other users -
28357
28963
  # MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed by Cloud
@@ -28384,6 +28990,11 @@ module Google
28384
28990
  # @return [String]
28385
28991
  attr_accessor :peer_ip_address
28386
28992
 
28993
+ # IPv6 address of the BGP interface outside Google Cloud Platform.
28994
+ # Corresponds to the JSON property `peerIpv6NexthopAddress`
28995
+ # @return [String]
28996
+ attr_accessor :peer_ipv6_nexthop_address
28997
+
28387
28998
  # URI of the VM instance that is used as third-party router appliances such as
28388
28999
  # Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance
28389
29000
  # must be located in zones contained in the same region as this Cloud Router.
@@ -28404,12 +29015,15 @@ module Google
28404
29015
  @advertised_route_priority = args[:advertised_route_priority] if args.key?(:advertised_route_priority)
28405
29016
  @bfd = args[:bfd] if args.key?(:bfd)
28406
29017
  @enable = args[:enable] if args.key?(:enable)
29018
+ @enable_ipv6 = args[:enable_ipv6] if args.key?(:enable_ipv6)
28407
29019
  @interface_name = args[:interface_name] if args.key?(:interface_name)
28408
29020
  @ip_address = args[:ip_address] if args.key?(:ip_address)
29021
+ @ipv6_nexthop_address = args[:ipv6_nexthop_address] if args.key?(:ipv6_nexthop_address)
28409
29022
  @management_type = args[:management_type] if args.key?(:management_type)
28410
29023
  @name = args[:name] if args.key?(:name)
28411
29024
  @peer_asn = args[:peer_asn] if args.key?(:peer_asn)
28412
29025
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
29026
+ @peer_ipv6_nexthop_address = args[:peer_ipv6_nexthop_address] if args.key?(:peer_ipv6_nexthop_address)
28413
29027
  @router_appliance_instance = args[:router_appliance_instance] if args.key?(:router_appliance_instance)
28414
29028
  end
28415
29029
  end
@@ -28689,6 +29303,17 @@ module Google
28689
29303
  # @return [Array<String>]
28690
29304
  attr_accessor :drain_nat_ips
28691
29305
 
29306
+ # Enable Dynamic Port Allocation. If not specified, it is disabled by default.
29307
+ # If set to true, - Dynamic Port Allocation will be enabled on this NAT config. -
29308
+ # enableEndpointIndependentMapping cannot be set to true. - If minPorts is set,
29309
+ # minPortsPerVm must be set to a power of two greater than or equal to 32. If
29310
+ # minPortsPerVm is not set, a minimum of 32 ports will be allocated to a VM from
29311
+ # this NAT config.
29312
+ # Corresponds to the JSON property `enableDynamicPortAllocation`
29313
+ # @return [Boolean]
29314
+ attr_accessor :enable_dynamic_port_allocation
29315
+ alias_method :enable_dynamic_port_allocation?, :enable_dynamic_port_allocation
29316
+
28692
29317
  #
28693
29318
  # Corresponds to the JSON property `enableEndpointIndependentMapping`
28694
29319
  # @return [Boolean]
@@ -28705,6 +29330,17 @@ module Google
28705
29330
  # @return [Google::Apis::ComputeV1::RouterNatLogConfig]
28706
29331
  attr_accessor :log_config
28707
29332
 
29333
+ # Maximum number of ports allocated to a VM from this NAT config when Dynamic
29334
+ # Port Allocation is enabled. If Dynamic Port Allocation is not enabled, this
29335
+ # field has no effect. If Dynamic Port Allocation is enabled, and this field is
29336
+ # set, it must be set to a power of two greater than minPortsPerVm, or 64 if
29337
+ # minPortsPerVm is not set. If Dynamic Port Allocation is enabled and this field
29338
+ # is not set, a maximum of 65536 ports will be allocated to a VM from this NAT
29339
+ # config.
29340
+ # Corresponds to the JSON property `maxPortsPerVm`
29341
+ # @return [Fixnum]
29342
+ attr_accessor :max_ports_per_vm
29343
+
28708
29344
  # Minimum number of ports allocated to a VM from this NAT config. If not set, a
28709
29345
  # default number of ports is allocated to a VM. This is rounded up to the
28710
29346
  # nearest power of 2. For example, if the value of this field is 50, at least 64
@@ -28789,9 +29425,11 @@ module Google
28789
29425
  # Update properties of this object
28790
29426
  def update!(**args)
28791
29427
  @drain_nat_ips = args[:drain_nat_ips] if args.key?(:drain_nat_ips)
29428
+ @enable_dynamic_port_allocation = args[:enable_dynamic_port_allocation] if args.key?(:enable_dynamic_port_allocation)
28792
29429
  @enable_endpoint_independent_mapping = args[:enable_endpoint_independent_mapping] if args.key?(:enable_endpoint_independent_mapping)
28793
29430
  @icmp_idle_timeout_sec = args[:icmp_idle_timeout_sec] if args.key?(:icmp_idle_timeout_sec)
28794
29431
  @log_config = args[:log_config] if args.key?(:log_config)
29432
+ @max_ports_per_vm = args[:max_ports_per_vm] if args.key?(:max_ports_per_vm)
28795
29433
  @min_ports_per_vm = args[:min_ports_per_vm] if args.key?(:min_ports_per_vm)
28796
29434
  @name = args[:name] if args.key?(:name)
28797
29435
  @nat_ip_allocate_option = args[:nat_ip_allocate_option] if args.key?(:nat_ip_allocate_option)
@@ -28856,7 +29494,8 @@ module Google
28856
29494
  # "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.
28857
29495
  # 0/16')" "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" The
28858
29496
  # following example is a valid match expression for private NAT: "nexthop.hub ==
28859
- # '/projects/my-project/global/hub/hub-1'"
29497
+ # 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/
29498
+ # global/hub/hub-1'"
28860
29499
  # Corresponds to the JSON property `match`
28861
29500
  # @return [String]
28862
29501
  attr_accessor :match
@@ -29449,6 +30088,171 @@ module Google
29449
30088
  end
29450
30089
  end
29451
30090
 
30091
+ # DEPRECATED: Please use compute#savedDisk instead. An instance-attached disk
30092
+ # resource.
30093
+ class SavedAttachedDisk
30094
+ include Google::Apis::Core::Hashable
30095
+
30096
+ # Specifies whether the disk will be auto-deleted when the instance is deleted (
30097
+ # but not when the disk is detached from the instance).
30098
+ # Corresponds to the JSON property `autoDelete`
30099
+ # @return [Boolean]
30100
+ attr_accessor :auto_delete
30101
+ alias_method :auto_delete?, :auto_delete
30102
+
30103
+ # Indicates that this is a boot disk. The virtual machine will use the first
30104
+ # partition of the disk for its root filesystem.
30105
+ # Corresponds to the JSON property `boot`
30106
+ # @return [Boolean]
30107
+ attr_accessor :boot
30108
+ alias_method :boot?, :boot
30109
+
30110
+ # Specifies the name of the disk attached to the source instance.
30111
+ # Corresponds to the JSON property `deviceName`
30112
+ # @return [String]
30113
+ attr_accessor :device_name
30114
+
30115
+ # The encryption key for the disk.
30116
+ # Corresponds to the JSON property `diskEncryptionKey`
30117
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
30118
+ attr_accessor :disk_encryption_key
30119
+
30120
+ # The size of the disk in base-2 GB.
30121
+ # Corresponds to the JSON property `diskSizeGb`
30122
+ # @return [Fixnum]
30123
+ attr_accessor :disk_size_gb
30124
+
30125
+ # [Output Only] URL of the disk type resource. For example: projects/project /
30126
+ # zones/zone/diskTypes/pd-standard or pd-ssd
30127
+ # Corresponds to the JSON property `diskType`
30128
+ # @return [String]
30129
+ attr_accessor :disk_type
30130
+
30131
+ # A list of features to enable on the guest operating system. Applicable only
30132
+ # for bootable images. Read Enabling guest operating system features to see a
30133
+ # list of available options.
30134
+ # Corresponds to the JSON property `guestOsFeatures`
30135
+ # @return [Array<Google::Apis::ComputeV1::GuestOsFeature>]
30136
+ attr_accessor :guest_os_features
30137
+
30138
+ # Specifies zero-based index of the disk that is attached to the source instance.
30139
+ # Corresponds to the JSON property `index`
30140
+ # @return [Fixnum]
30141
+ attr_accessor :index
30142
+
30143
+ # Specifies the disk interface to use for attaching this disk, which is either
30144
+ # SCSI or NVME.
30145
+ # Corresponds to the JSON property `interface`
30146
+ # @return [String]
30147
+ attr_accessor :interface
30148
+
30149
+ # [Output Only] Type of the resource. Always compute#attachedDisk for attached
30150
+ # disks.
30151
+ # Corresponds to the JSON property `kind`
30152
+ # @return [String]
30153
+ attr_accessor :kind
30154
+
30155
+ # [Output Only] Any valid publicly visible licenses.
30156
+ # Corresponds to the JSON property `licenses`
30157
+ # @return [Array<String>]
30158
+ attr_accessor :licenses
30159
+
30160
+ # The mode in which this disk is attached to the source instance, either
30161
+ # READ_WRITE or READ_ONLY.
30162
+ # Corresponds to the JSON property `mode`
30163
+ # @return [String]
30164
+ attr_accessor :mode
30165
+
30166
+ # Specifies a URL of the disk attached to the source instance.
30167
+ # Corresponds to the JSON property `source`
30168
+ # @return [String]
30169
+ attr_accessor :source
30170
+
30171
+ # [Output Only] A size of the storage used by the disk's snapshot by this
30172
+ # machine image.
30173
+ # Corresponds to the JSON property `storageBytes`
30174
+ # @return [Fixnum]
30175
+ attr_accessor :storage_bytes
30176
+
30177
+ # [Output Only] An indicator whether storageBytes is in a stable state or it is
30178
+ # being adjusted as a result of shared storage reallocation. This status can
30179
+ # either be UPDATING, meaning the size of the snapshot is being updated, or
30180
+ # UP_TO_DATE, meaning the size of the snapshot is up-to-date.
30181
+ # Corresponds to the JSON property `storageBytesStatus`
30182
+ # @return [String]
30183
+ attr_accessor :storage_bytes_status
30184
+
30185
+ # Specifies the type of the attached disk, either SCRATCH or PERSISTENT.
30186
+ # Corresponds to the JSON property `type`
30187
+ # @return [String]
30188
+ attr_accessor :type
30189
+
30190
+ def initialize(**args)
30191
+ update!(**args)
30192
+ end
30193
+
30194
+ # Update properties of this object
30195
+ def update!(**args)
30196
+ @auto_delete = args[:auto_delete] if args.key?(:auto_delete)
30197
+ @boot = args[:boot] if args.key?(:boot)
30198
+ @device_name = args[:device_name] if args.key?(:device_name)
30199
+ @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
30200
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
30201
+ @disk_type = args[:disk_type] if args.key?(:disk_type)
30202
+ @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features)
30203
+ @index = args[:index] if args.key?(:index)
30204
+ @interface = args[:interface] if args.key?(:interface)
30205
+ @kind = args[:kind] if args.key?(:kind)
30206
+ @licenses = args[:licenses] if args.key?(:licenses)
30207
+ @mode = args[:mode] if args.key?(:mode)
30208
+ @source = args[:source] if args.key?(:source)
30209
+ @storage_bytes = args[:storage_bytes] if args.key?(:storage_bytes)
30210
+ @storage_bytes_status = args[:storage_bytes_status] if args.key?(:storage_bytes_status)
30211
+ @type = args[:type] if args.key?(:type)
30212
+ end
30213
+ end
30214
+
30215
+ # An instance-attached disk resource.
30216
+ class SavedDisk
30217
+ include Google::Apis::Core::Hashable
30218
+
30219
+ # [Output Only] Type of the resource. Always compute#savedDisk for attached
30220
+ # disks.
30221
+ # Corresponds to the JSON property `kind`
30222
+ # @return [String]
30223
+ attr_accessor :kind
30224
+
30225
+ # Specifies a URL of the disk attached to the source instance.
30226
+ # Corresponds to the JSON property `sourceDisk`
30227
+ # @return [String]
30228
+ attr_accessor :source_disk
30229
+
30230
+ # [Output Only] Size of the individual disk snapshot used by this machine image.
30231
+ # Corresponds to the JSON property `storageBytes`
30232
+ # @return [Fixnum]
30233
+ attr_accessor :storage_bytes
30234
+
30235
+ # [Output Only] An indicator whether storageBytes is in a stable state or it is
30236
+ # being adjusted as a result of shared storage reallocation. This status can
30237
+ # either be UPDATING, meaning the size of the snapshot is being updated, or
30238
+ # UP_TO_DATE, meaning the size of the snapshot is up-to-date.
30239
+ # Corresponds to the JSON property `storageBytesStatus`
30240
+ # @return [String]
30241
+ attr_accessor :storage_bytes_status
30242
+
30243
+ def initialize(**args)
30244
+ update!(**args)
30245
+ end
30246
+
30247
+ # Update properties of this object
30248
+ def update!(**args)
30249
+ @kind = args[:kind] if args.key?(:kind)
30250
+ @source_disk = args[:source_disk] if args.key?(:source_disk)
30251
+ @storage_bytes = args[:storage_bytes] if args.key?(:storage_bytes)
30252
+ @storage_bytes_status = args[:storage_bytes_status] if args.key?(:storage_bytes_status)
30253
+ end
30254
+ end
30255
+
29452
30256
  #
29453
30257
  class ScalingScheduleStatus
29454
30258
  include Google::Apis::Core::Hashable
@@ -29498,6 +30302,11 @@ module Google
29498
30302
  attr_accessor :automatic_restart
29499
30303
  alias_method :automatic_restart?, :automatic_restart
29500
30304
 
30305
+ # Specifies the termination action for the instance.
30306
+ # Corresponds to the JSON property `instanceTerminationAction`
30307
+ # @return [String]
30308
+ attr_accessor :instance_termination_action
30309
+
29501
30310
  # An opaque location hint used to place the instance close to other resources.
29502
30311
  # This field is for use by internal tools that use the public API.
29503
30312
  # Corresponds to the JSON property `locationHint`
@@ -29533,6 +30342,11 @@ module Google
29533
30342
  attr_accessor :preemptible
29534
30343
  alias_method :preemptible?, :preemptible
29535
30344
 
30345
+ # Specifies the provisioning model of the instance.
30346
+ # Corresponds to the JSON property `provisioningModel`
30347
+ # @return [String]
30348
+ attr_accessor :provisioning_model
30349
+
29536
30350
  def initialize(**args)
29537
30351
  update!(**args)
29538
30352
  end
@@ -29540,11 +30354,13 @@ module Google
29540
30354
  # Update properties of this object
29541
30355
  def update!(**args)
29542
30356
  @automatic_restart = args[:automatic_restart] if args.key?(:automatic_restart)
30357
+ @instance_termination_action = args[:instance_termination_action] if args.key?(:instance_termination_action)
29543
30358
  @location_hint = args[:location_hint] if args.key?(:location_hint)
29544
30359
  @min_node_cpus = args[:min_node_cpus] if args.key?(:min_node_cpus)
29545
30360
  @node_affinities = args[:node_affinities] if args.key?(:node_affinities)
29546
30361
  @on_host_maintenance = args[:on_host_maintenance] if args.key?(:on_host_maintenance)
29547
30362
  @preemptible = args[:preemptible] if args.key?(:preemptible)
30363
+ @provisioning_model = args[:provisioning_model] if args.key?(:provisioning_model)
29548
30364
  end
29549
30365
  end
29550
30366
 
@@ -29706,6 +30522,11 @@ module Google
29706
30522
  # @return [String]
29707
30523
  attr_accessor :name
29708
30524
 
30525
+ #
30526
+ # Corresponds to the JSON property `recaptchaOptionsConfig`
30527
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRecaptchaOptionsConfig]
30528
+ attr_accessor :recaptcha_options_config
30529
+
29709
30530
  # A list of rules that belong to this policy. There must always be a default
29710
30531
  # rule (rule with priority 2147483647 and match "*"). If no rules are provided
29711
30532
  # when creating a security policy, a default rule with action "allow" will be
@@ -29719,6 +30540,17 @@ module Google
29719
30540
  # @return [String]
29720
30541
  attr_accessor :self_link
29721
30542
 
30543
+ # The type indicates the intended use of the security policy. CLOUD_ARMOR -
30544
+ # Cloud Armor backend security policies can be configured to filter incoming
30545
+ # HTTP requests targeting backend services. They filter requests before they hit
30546
+ # the origin servers. CLOUD_ARMOR_EDGE - Cloud Armor edge security policies can
30547
+ # be configured to filter incoming HTTP requests targeting backend services (
30548
+ # including Cloud CDN-enabled) as well as backend buckets (Cloud Storage). They
30549
+ # filter requests before the request is served from Google's cache.
30550
+ # Corresponds to the JSON property `type`
30551
+ # @return [String]
30552
+ attr_accessor :type
30553
+
29722
30554
  def initialize(**args)
29723
30555
  update!(**args)
29724
30556
  end
@@ -29733,8 +30565,10 @@ module Google
29733
30565
  @id = args[:id] if args.key?(:id)
29734
30566
  @kind = args[:kind] if args.key?(:kind)
29735
30567
  @name = args[:name] if args.key?(:name)
30568
+ @recaptcha_options_config = args[:recaptcha_options_config] if args.key?(:recaptcha_options_config)
29736
30569
  @rules = args[:rules] if args.key?(:rules)
29737
30570
  @self_link = args[:self_link] if args.key?(:self_link)
30571
+ @type = args[:type] if args.key?(:type)
29738
30572
  end
29739
30573
  end
29740
30574
 
@@ -29921,6 +30755,29 @@ module Google
29921
30755
  end
29922
30756
  end
29923
30757
 
30758
+ #
30759
+ class SecurityPolicyRecaptchaOptionsConfig
30760
+ include Google::Apis::Core::Hashable
30761
+
30762
+ # An optional field to supply a reCAPTCHA site key to be used for all the rules
30763
+ # using the redirect action with the type of GOOGLE_RECAPTCHA under the security
30764
+ # policy. The specified site key needs to be created from the reCAPTCHA API. The
30765
+ # user is responsible for the validity of the specified site key. If not
30766
+ # specified, a Google-managed site key is used.
30767
+ # Corresponds to the JSON property `redirectSiteKey`
30768
+ # @return [String]
30769
+ attr_accessor :redirect_site_key
30770
+
30771
+ def initialize(**args)
30772
+ update!(**args)
30773
+ end
30774
+
30775
+ # Update properties of this object
30776
+ def update!(**args)
30777
+ @redirect_site_key = args[:redirect_site_key] if args.key?(:redirect_site_key)
30778
+ end
30779
+ end
30780
+
29924
30781
  #
29925
30782
  class SecurityPolicyReference
29926
30783
  include Google::Apis::Core::Hashable
@@ -29945,9 +30802,17 @@ module Google
29945
30802
  class SecurityPolicyRule
29946
30803
  include Google::Apis::Core::Hashable
29947
30804
 
29948
- # The Action to perform when the client connection triggers the rule. Can
29949
- # currently be either "allow" or "deny()" where valid values for status are 403,
29950
- # 404, and 502.
30805
+ # The Action to perform when the rule is matched. The following are the valid
30806
+ # actions: - allow: allow access to target. - deny(): deny access to target,
30807
+ # returns the HTTP response code specified (valid values are 403, 404, and 502).
30808
+ # - rate_based_ban: limit client traffic to the configured threshold and ban the
30809
+ # client if the traffic exceeds the threshold. Configure parameters for this
30810
+ # action in RateLimitOptions. Requires rate_limit_options to be set. - redirect:
30811
+ # redirect to a different target. This can either be an internal reCAPTCHA
30812
+ # redirect, or an external URL-based redirect via a 302 response. Parameters for
30813
+ # this action can be configured via redirectOptions. - throttle: limit client
30814
+ # traffic to the configured threshold. Configure parameters for this action in
30815
+ # rateLimitOptions. Requires rate_limit_options to be set for this.
29951
30816
  # Corresponds to the JSON property `action`
29952
30817
  # @return [String]
29953
30818
  attr_accessor :action
@@ -29958,6 +30823,11 @@ module Google
29958
30823
  # @return [String]
29959
30824
  attr_accessor :description
29960
30825
 
30826
+ # Optional, additional actions that are performed on headers.
30827
+ # Corresponds to the JSON property `headerAction`
30828
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleHttpHeaderAction]
30829
+ attr_accessor :header_action
30830
+
29961
30831
  # [Output only] Type of the resource. Always compute#securityPolicyRule for
29962
30832
  # security policy rules
29963
30833
  # Corresponds to the JSON property `kind`
@@ -29984,6 +30854,18 @@ module Google
29984
30854
  # @return [Fixnum]
29985
30855
  attr_accessor :priority
29986
30856
 
30857
+ # Must be specified if the action is "rate_based_ban" or "throttle". Cannot be
30858
+ # specified for any other actions.
30859
+ # Corresponds to the JSON property `rateLimitOptions`
30860
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleRateLimitOptions]
30861
+ attr_accessor :rate_limit_options
30862
+
30863
+ # Parameters defining the redirect action. Cannot be specified for any other
30864
+ # actions.
30865
+ # Corresponds to the JSON property `redirectOptions`
30866
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleRedirectOptions]
30867
+ attr_accessor :redirect_options
30868
+
29987
30869
  def initialize(**args)
29988
30870
  update!(**args)
29989
30871
  end
@@ -29992,10 +30874,57 @@ module Google
29992
30874
  def update!(**args)
29993
30875
  @action = args[:action] if args.key?(:action)
29994
30876
  @description = args[:description] if args.key?(:description)
30877
+ @header_action = args[:header_action] if args.key?(:header_action)
29995
30878
  @kind = args[:kind] if args.key?(:kind)
29996
30879
  @match = args[:match] if args.key?(:match)
29997
30880
  @preview = args[:preview] if args.key?(:preview)
29998
30881
  @priority = args[:priority] if args.key?(:priority)
30882
+ @rate_limit_options = args[:rate_limit_options] if args.key?(:rate_limit_options)
30883
+ @redirect_options = args[:redirect_options] if args.key?(:redirect_options)
30884
+ end
30885
+ end
30886
+
30887
+ #
30888
+ class SecurityPolicyRuleHttpHeaderAction
30889
+ include Google::Apis::Core::Hashable
30890
+
30891
+ # The list of request headers to add or overwrite if they're already present.
30892
+ # Corresponds to the JSON property `requestHeadersToAdds`
30893
+ # @return [Array<Google::Apis::ComputeV1::SecurityPolicyRuleHttpHeaderActionHttpHeaderOption>]
30894
+ attr_accessor :request_headers_to_adds
30895
+
30896
+ def initialize(**args)
30897
+ update!(**args)
30898
+ end
30899
+
30900
+ # Update properties of this object
30901
+ def update!(**args)
30902
+ @request_headers_to_adds = args[:request_headers_to_adds] if args.key?(:request_headers_to_adds)
30903
+ end
30904
+ end
30905
+
30906
+ #
30907
+ class SecurityPolicyRuleHttpHeaderActionHttpHeaderOption
30908
+ include Google::Apis::Core::Hashable
30909
+
30910
+ # The name of the header to set.
30911
+ # Corresponds to the JSON property `headerName`
30912
+ # @return [String]
30913
+ attr_accessor :header_name
30914
+
30915
+ # The value to set the named header to.
30916
+ # Corresponds to the JSON property `headerValue`
30917
+ # @return [String]
30918
+ attr_accessor :header_value
30919
+
30920
+ def initialize(**args)
30921
+ update!(**args)
30922
+ end
30923
+
30924
+ # Update properties of this object
30925
+ def update!(**args)
30926
+ @header_name = args[:header_name] if args.key?(:header_name)
30927
+ @header_value = args[:header_value] if args.key?(:header_value)
29999
30928
  end
30000
30929
  end
30001
30930
 
@@ -30069,6 +30998,144 @@ module Google
30069
30998
  end
30070
30999
  end
30071
31000
 
31001
+ #
31002
+ class SecurityPolicyRuleRateLimitOptions
31003
+ include Google::Apis::Core::Hashable
31004
+
31005
+ # Can only be specified if the action for the rule is "rate_based_ban". If
31006
+ # specified, determines the time (in seconds) the traffic will continue to be
31007
+ # banned by the rate limit after the rate falls below the threshold.
31008
+ # Corresponds to the JSON property `banDurationSec`
31009
+ # @return [Fixnum]
31010
+ attr_accessor :ban_duration_sec
31011
+
31012
+ # Can only be specified if the action for the rule is "rate_based_ban". If
31013
+ # specified, the key will be banned for the configured 'ban_duration_sec' when
31014
+ # the number of requests that exceed the 'rate_limit_threshold' also exceed this
31015
+ # 'ban_threshold'.
31016
+ # Corresponds to the JSON property `banThreshold`
31017
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleRateLimitOptionsThreshold]
31018
+ attr_accessor :ban_threshold
31019
+
31020
+ # Action to take for requests that are under the configured rate limit threshold.
31021
+ # Valid option is "allow" only.
31022
+ # Corresponds to the JSON property `conformAction`
31023
+ # @return [String]
31024
+ attr_accessor :conform_action
31025
+
31026
+ # Determines the key to enforce the rate_limit_threshold on. Possible values are:
31027
+ # - ALL: A single rate limit threshold is applied to all the requests matching
31028
+ # this rule. This is the default value if this field 'enforce_on_key' is not
31029
+ # configured. - IP: The source IP address of the request is the key. Each IP has
31030
+ # this limit enforced separately. - HTTP_HEADER: The value of the HTTP header
31031
+ # whose name is configured under "enforce_on_key_name". The key value is
31032
+ # truncated to the first 128 bytes of the header value. If no such header is
31033
+ # present in the request, the key type defaults to ALL. - XFF_IP: The first IP
31034
+ # address (i.e. the originating client IP address) specified in the list of IPs
31035
+ # under X-Forwarded-For HTTP header. If no such header is present or the value
31036
+ # is not a valid IP, the key type defaults to ALL. - HTTP_COOKIE: The value of
31037
+ # the HTTP cookie whose name is configured under "enforce_on_key_name". The key
31038
+ # value is truncated to the first 128 bytes of the cookie value. If no such
31039
+ # cookie is present in the request, the key type defaults to ALL.
31040
+ # Corresponds to the JSON property `enforceOnKey`
31041
+ # @return [String]
31042
+ attr_accessor :enforce_on_key
31043
+
31044
+ # Rate limit key name applicable only for the following key types: HTTP_HEADER --
31045
+ # Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE --
31046
+ # Name of the HTTP cookie whose value is taken as the key value.
31047
+ # Corresponds to the JSON property `enforceOnKeyName`
31048
+ # @return [String]
31049
+ attr_accessor :enforce_on_key_name
31050
+
31051
+ # Action to take for requests that are above the configured rate limit threshold,
31052
+ # to either deny with a specified HTTP response code, or redirect to a
31053
+ # different endpoint. Valid options are "deny()" where valid values for status
31054
+ # are 403, 404, 429, and 502, and "redirect" where the redirect parameters come
31055
+ # from exceed_redirect_options below.
31056
+ # Corresponds to the JSON property `exceedAction`
31057
+ # @return [String]
31058
+ attr_accessor :exceed_action
31059
+
31060
+ # Parameters defining the redirect action that is used as the exceed action.
31061
+ # Cannot be specified if the exceed action is not redirect.
31062
+ # Corresponds to the JSON property `exceedRedirectOptions`
31063
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleRedirectOptions]
31064
+ attr_accessor :exceed_redirect_options
31065
+
31066
+ # Threshold at which to begin ratelimiting.
31067
+ # Corresponds to the JSON property `rateLimitThreshold`
31068
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleRateLimitOptionsThreshold]
31069
+ attr_accessor :rate_limit_threshold
31070
+
31071
+ def initialize(**args)
31072
+ update!(**args)
31073
+ end
31074
+
31075
+ # Update properties of this object
31076
+ def update!(**args)
31077
+ @ban_duration_sec = args[:ban_duration_sec] if args.key?(:ban_duration_sec)
31078
+ @ban_threshold = args[:ban_threshold] if args.key?(:ban_threshold)
31079
+ @conform_action = args[:conform_action] if args.key?(:conform_action)
31080
+ @enforce_on_key = args[:enforce_on_key] if args.key?(:enforce_on_key)
31081
+ @enforce_on_key_name = args[:enforce_on_key_name] if args.key?(:enforce_on_key_name)
31082
+ @exceed_action = args[:exceed_action] if args.key?(:exceed_action)
31083
+ @exceed_redirect_options = args[:exceed_redirect_options] if args.key?(:exceed_redirect_options)
31084
+ @rate_limit_threshold = args[:rate_limit_threshold] if args.key?(:rate_limit_threshold)
31085
+ end
31086
+ end
31087
+
31088
+ #
31089
+ class SecurityPolicyRuleRateLimitOptionsThreshold
31090
+ include Google::Apis::Core::Hashable
31091
+
31092
+ # Number of HTTP(S) requests for calculating the threshold.
31093
+ # Corresponds to the JSON property `count`
31094
+ # @return [Fixnum]
31095
+ attr_accessor :count
31096
+
31097
+ # Interval over which the threshold is computed.
31098
+ # Corresponds to the JSON property `intervalSec`
31099
+ # @return [Fixnum]
31100
+ attr_accessor :interval_sec
31101
+
31102
+ def initialize(**args)
31103
+ update!(**args)
31104
+ end
31105
+
31106
+ # Update properties of this object
31107
+ def update!(**args)
31108
+ @count = args[:count] if args.key?(:count)
31109
+ @interval_sec = args[:interval_sec] if args.key?(:interval_sec)
31110
+ end
31111
+ end
31112
+
31113
+ #
31114
+ class SecurityPolicyRuleRedirectOptions
31115
+ include Google::Apis::Core::Hashable
31116
+
31117
+ # Target for the redirect action. This is required if the type is EXTERNAL_302
31118
+ # and cannot be specified for GOOGLE_RECAPTCHA.
31119
+ # Corresponds to the JSON property `target`
31120
+ # @return [String]
31121
+ attr_accessor :target
31122
+
31123
+ # Type of the redirect action.
31124
+ # Corresponds to the JSON property `type`
31125
+ # @return [String]
31126
+ attr_accessor :type
31127
+
31128
+ def initialize(**args)
31129
+ update!(**args)
31130
+ end
31131
+
31132
+ # Update properties of this object
31133
+ def update!(**args)
31134
+ @target = args[:target] if args.key?(:target)
31135
+ @type = args[:type] if args.key?(:type)
31136
+ end
31137
+ end
31138
+
30072
31139
  # The authentication and authorization settings for a BackendService.
30073
31140
  class SecuritySettings
30074
31141
  include Google::Apis::Core::Hashable
@@ -30246,6 +31313,13 @@ module Google
30246
31313
  # @return [String]
30247
31314
  attr_accessor :description
30248
31315
 
31316
+ # If specified, the domain name will be used during the integration between the
31317
+ # PSC connected endpoints and the Cloud DNS. For example, this is a valid domain
31318
+ # name: "p.mycompany.com.". Current max number of domain names supported is 1.
31319
+ # Corresponds to the JSON property `domainNames`
31320
+ # @return [Array<String>]
31321
+ attr_accessor :domain_names
31322
+
30249
31323
  # If true, enable the proxy protocol which is for supplying client TCP/IP
30250
31324
  # address data in TCP connections that traverse proxies on their way to
30251
31325
  # destination servers.
@@ -30334,6 +31408,7 @@ module Google
30334
31408
  @consumer_reject_lists = args[:consumer_reject_lists] if args.key?(:consumer_reject_lists)
30335
31409
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
30336
31410
  @description = args[:description] if args.key?(:description)
31411
+ @domain_names = args[:domain_names] if args.key?(:domain_names)
30337
31412
  @enable_proxy_protocol = args[:enable_proxy_protocol] if args.key?(:enable_proxy_protocol)
30338
31413
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
30339
31414
  @id = args[:id] if args.key?(:id)
@@ -30740,6 +31815,12 @@ module Google
30740
31815
  class ShareSettings
30741
31816
  include Google::Apis::Core::Hashable
30742
31817
 
31818
+ # A map of project id and project config. This is only valid when share_type's
31819
+ # value is SPECIFIC_PROJECTS.
31820
+ # Corresponds to the JSON property `projectMap`
31821
+ # @return [Hash<String,Google::Apis::ComputeV1::ShareSettingsProjectConfig>]
31822
+ attr_accessor :project_map
31823
+
30743
31824
  # Type of sharing for this shared-reservation
30744
31825
  # Corresponds to the JSON property `shareType`
30745
31826
  # @return [String]
@@ -30751,10 +31832,31 @@ module Google
30751
31832
 
30752
31833
  # Update properties of this object
30753
31834
  def update!(**args)
31835
+ @project_map = args[:project_map] if args.key?(:project_map)
30754
31836
  @share_type = args[:share_type] if args.key?(:share_type)
30755
31837
  end
30756
31838
  end
30757
31839
 
31840
+ # Config for each project in the share settings.
31841
+ class ShareSettingsProjectConfig
31842
+ include Google::Apis::Core::Hashable
31843
+
31844
+ # The project ID, should be same as the key of this project config in the parent
31845
+ # map.
31846
+ # Corresponds to the JSON property `projectId`
31847
+ # @return [String]
31848
+ attr_accessor :project_id
31849
+
31850
+ def initialize(**args)
31851
+ update!(**args)
31852
+ end
31853
+
31854
+ # Update properties of this object
31855
+ def update!(**args)
31856
+ @project_id = args[:project_id] if args.key?(:project_id)
31857
+ end
31858
+ end
31859
+
30758
31860
  # A set of Shielded Instance options.
30759
31861
  class ShieldedInstanceConfig
30760
31862
  include Google::Apis::Core::Hashable
@@ -31220,6 +32322,35 @@ module Google
31220
32322
  end
31221
32323
  end
31222
32324
 
32325
+ #
32326
+ class SourceDiskEncryptionKey
32327
+ include Google::Apis::Core::Hashable
32328
+
32329
+ # The customer-supplied encryption key of the source disk. Required if the
32330
+ # source disk is protected by a customer-supplied encryption key.
32331
+ # Corresponds to the JSON property `diskEncryptionKey`
32332
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
32333
+ attr_accessor :disk_encryption_key
32334
+
32335
+ # URL of the disk attached to the source instance. This can be a full or valid
32336
+ # partial URL. For example, the following are valid values: - https://www.
32337
+ # googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/
32338
+ # project/zones/zone/disks/disk - zones/zone/disks/disk
32339
+ # Corresponds to the JSON property `sourceDisk`
32340
+ # @return [String]
32341
+ attr_accessor :source_disk
32342
+
32343
+ def initialize(**args)
32344
+ update!(**args)
32345
+ end
32346
+
32347
+ # Update properties of this object
32348
+ def update!(**args)
32349
+ @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
32350
+ @source_disk = args[:source_disk] if args.key?(:source_disk)
32351
+ end
32352
+ end
32353
+
31223
32354
  # A specification of the parameters to use when creating the instance template
31224
32355
  # from a source instance.
31225
32356
  class SourceInstanceParams
@@ -31243,6 +32374,116 @@ module Google
31243
32374
  end
31244
32375
  end
31245
32376
 
32377
+ # DEPRECATED: Please use compute#instanceProperties instead. New properties will
32378
+ # not be added to this field.
32379
+ class SourceInstanceProperties
32380
+ include Google::Apis::Core::Hashable
32381
+
32382
+ # Enables instances created based on this machine image to send packets with
32383
+ # source IP addresses other than their own and receive packets with destination
32384
+ # IP addresses other than their own. If these instances will be used as an IP
32385
+ # gateway or it will be set as the next-hop in a Route resource, specify true.
32386
+ # If unsure, leave this set to false. See the Enable IP forwarding documentation
32387
+ # for more information.
32388
+ # Corresponds to the JSON property `canIpForward`
32389
+ # @return [Boolean]
32390
+ attr_accessor :can_ip_forward
32391
+ alias_method :can_ip_forward?, :can_ip_forward
32392
+
32393
+ # Whether the instance created from this machine image should be protected
32394
+ # against deletion.
32395
+ # Corresponds to the JSON property `deletionProtection`
32396
+ # @return [Boolean]
32397
+ attr_accessor :deletion_protection
32398
+ alias_method :deletion_protection?, :deletion_protection
32399
+
32400
+ # An optional text description for the instances that are created from this
32401
+ # machine image.
32402
+ # Corresponds to the JSON property `description`
32403
+ # @return [String]
32404
+ attr_accessor :description
32405
+
32406
+ # An array of disks that are associated with the instances that are created from
32407
+ # this machine image.
32408
+ # Corresponds to the JSON property `disks`
32409
+ # @return [Array<Google::Apis::ComputeV1::SavedAttachedDisk>]
32410
+ attr_accessor :disks
32411
+
32412
+ # A list of guest accelerator cards' type and count to use for instances created
32413
+ # from this machine image.
32414
+ # Corresponds to the JSON property `guestAccelerators`
32415
+ # @return [Array<Google::Apis::ComputeV1::AcceleratorConfig>]
32416
+ attr_accessor :guest_accelerators
32417
+
32418
+ # Labels to apply to instances that are created from this machine image.
32419
+ # Corresponds to the JSON property `labels`
32420
+ # @return [Hash<String,String>]
32421
+ attr_accessor :labels
32422
+
32423
+ # The machine type to use for instances that are created from this machine image.
32424
+ # Corresponds to the JSON property `machineType`
32425
+ # @return [String]
32426
+ attr_accessor :machine_type
32427
+
32428
+ # A metadata key/value entry.
32429
+ # Corresponds to the JSON property `metadata`
32430
+ # @return [Google::Apis::ComputeV1::Metadata]
32431
+ attr_accessor :metadata
32432
+
32433
+ # Minimum cpu/platform to be used by instances created from this machine image.
32434
+ # The instance may be scheduled on the specified or newer cpu/platform.
32435
+ # Applicable values are the friendly names of CPU platforms, such as
32436
+ # minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge". For
32437
+ # more information, read Specifying a Minimum CPU Platform.
32438
+ # Corresponds to the JSON property `minCpuPlatform`
32439
+ # @return [String]
32440
+ attr_accessor :min_cpu_platform
32441
+
32442
+ # An array of network access configurations for this interface.
32443
+ # Corresponds to the JSON property `networkInterfaces`
32444
+ # @return [Array<Google::Apis::ComputeV1::NetworkInterface>]
32445
+ attr_accessor :network_interfaces
32446
+
32447
+ # Sets the scheduling options for an Instance. NextID: 21
32448
+ # Corresponds to the JSON property `scheduling`
32449
+ # @return [Google::Apis::ComputeV1::Scheduling]
32450
+ attr_accessor :scheduling
32451
+
32452
+ # A list of service accounts with specified scopes. Access tokens for these
32453
+ # service accounts are available to the instances that are created from this
32454
+ # machine image. Use metadata queries to obtain the access tokens for these
32455
+ # instances.
32456
+ # Corresponds to the JSON property `serviceAccounts`
32457
+ # @return [Array<Google::Apis::ComputeV1::ServiceAccount>]
32458
+ attr_accessor :service_accounts
32459
+
32460
+ # A set of instance tags.
32461
+ # Corresponds to the JSON property `tags`
32462
+ # @return [Google::Apis::ComputeV1::Tags]
32463
+ attr_accessor :tags
32464
+
32465
+ def initialize(**args)
32466
+ update!(**args)
32467
+ end
32468
+
32469
+ # Update properties of this object
32470
+ def update!(**args)
32471
+ @can_ip_forward = args[:can_ip_forward] if args.key?(:can_ip_forward)
32472
+ @deletion_protection = args[:deletion_protection] if args.key?(:deletion_protection)
32473
+ @description = args[:description] if args.key?(:description)
32474
+ @disks = args[:disks] if args.key?(:disks)
32475
+ @guest_accelerators = args[:guest_accelerators] if args.key?(:guest_accelerators)
32476
+ @labels = args[:labels] if args.key?(:labels)
32477
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
32478
+ @metadata = args[:metadata] if args.key?(:metadata)
32479
+ @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
32480
+ @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
32481
+ @scheduling = args[:scheduling] if args.key?(:scheduling)
32482
+ @service_accounts = args[:service_accounts] if args.key?(:service_accounts)
32483
+ @tags = args[:tags] if args.key?(:tags)
32484
+ end
32485
+ end
32486
+
31246
32487
  # Represents an SSL Certificate resource. Google Compute Engine has two SSL
31247
32488
  # Certificate resources: * [Global](/compute/docs/reference/rest/v1/
31248
32489
  # sslCertificates) * [Regional](/compute/docs/reference/rest/v1/
@@ -32171,8 +33412,9 @@ module Google
32171
33412
 
32172
33413
  # Whether to enable flow logging for this subnetwork. If this field is not
32173
33414
  # explicitly set, it will not appear in get listings. If not set the default
32174
- # behavior is to disable flow logging. This field isn't supported with the
32175
- # purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.
33415
+ # behavior is determined by the org policy, if there is no org policy specified,
33416
+ # then it will default to disabled. This field isn't supported with the purpose
33417
+ # field set to INTERNAL_HTTPS_LOAD_BALANCER.
32176
33418
  # Corresponds to the JSON property `enableFlowLogs`
32177
33419
  # @return [Boolean]
32178
33420
  attr_accessor :enable_flow_logs
@@ -32226,7 +33468,7 @@ module Google
32226
33468
  attr_accessor :ipv6_access_type
32227
33469
 
32228
33470
  # [Output Only] The range of internal IPv6 addresses that are owned by this
32229
- # subnetwork.
33471
+ # subnetwork. Note this will be for private google access only eventually.
32230
33472
  # Corresponds to the JSON property `ipv6CidrRange`
32231
33473
  # @return [String]
32232
33474
  attr_accessor :ipv6_cidr_range
@@ -32619,7 +33861,8 @@ module Google
32619
33861
 
32620
33862
  # Whether to enable flow logging for this subnetwork. If this field is not
32621
33863
  # explicitly set, it will not appear in get listings. If not set the default
32622
- # behavior is to disable flow logging.
33864
+ # behavior is determined by the org policy, if there is no org policy specified,
33865
+ # then it will default to disabled.
32623
33866
  # Corresponds to the JSON property `enable`
32624
33867
  # @return [Boolean]
32625
33868
  attr_accessor :enable
@@ -32634,8 +33877,8 @@ module Google
32634
33877
  # Can only be specified if VPC flow logging for this subnetwork is enabled. The
32635
33878
  # value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs
32636
33879
  # within the subnetwork where 1.0 means all collected logs are reported and 0.0
32637
- # means no logs are reported. Default is 0.5, which means half of all collected
32638
- # logs are reported.
33880
+ # means no logs are reported. Default is 0.5 unless otherwise specified by the
33881
+ # org policy, which means half of all collected logs are reported.
32639
33882
  # Corresponds to the JSON property `flowSampling`
32640
33883
  # @return [Float]
32641
33884
  attr_accessor :flow_sampling
@@ -36017,7 +37260,7 @@ module Google
36017
37260
  class TestFailure
36018
37261
  include Google::Apis::Core::Hashable
36019
37262
 
36020
- # The actual output URL evaluated by load balancer containing the scheme, host,
37263
+ # The actual output URL evaluated by a load balancer containing the scheme, host,
36021
37264
  # path and query parameters.
36022
37265
  # Corresponds to the JSON property `actualOutputUrl`
36023
37266
  # @return [String]
@@ -36034,8 +37277,8 @@ module Google
36034
37277
  # @return [String]
36035
37278
  attr_accessor :actual_service
36036
37279
 
36037
- # The expected output URL evaluated by load balancer containing the scheme, host,
36038
- # path and query parameters.
37280
+ # The expected output URL evaluated by a load balancer containing the scheme,
37281
+ # host, path and query parameters.
36039
37282
  # Corresponds to the JSON property `expectedOutputUrl`
36040
37283
  # @return [String]
36041
37284
  attr_accessor :expected_output_url
@@ -36149,17 +37392,17 @@ module Google
36149
37392
  end
36150
37393
  end
36151
37394
 
36152
- # Represents a URL Map resource. Google Compute Engine has two URL Map resources:
36153
- # * [Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/
36154
- # docs/reference/rest/v1/regionUrlMaps) A URL map resource is a component of
36155
- # certain types of GCP load balancers and Traffic Director. * urlMaps are used
36156
- # by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are
36157
- # used by internal HTTP(S) load balancers. For a list of supported URL map
36158
- # features by load balancer type, see the Load balancing features: Routing and
37395
+ # Represents a URL Map resource. Compute Engine has two URL Map resources: * [
37396
+ # Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/docs/
37397
+ # reference/rest/v1/regionUrlMaps) A URL map resource is a component of certain
37398
+ # types of cloud load balancers and Traffic Director: * urlMaps are used by
37399
+ # external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are used
37400
+ # by internal HTTP(S) load balancers. For a list of supported URL map features
37401
+ # by the load balancer type, see the Load balancing features: Routing and
36159
37402
  # traffic management table. For a list of supported URL map features for Traffic
36160
37403
  # Director, see the Traffic Director features: Routing and traffic management
36161
- # table. This resource defines mappings from host names and URL paths to either
36162
- # a backend service or a backend bucket. To use the global urlMaps resource, the
37404
+ # table. This resource defines mappings from hostnames and URL paths to either a
37405
+ # backend service or a backend bucket. To use the global urlMaps resource, the
36163
37406
  # backend service must have a loadBalancingScheme of either EXTERNAL or
36164
37407
  # INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service
36165
37408
  # must have a loadBalancingScheme of INTERNAL_MANAGED. For more information,
@@ -36173,28 +37416,28 @@ module Google
36173
37416
  attr_accessor :creation_timestamp
36174
37417
 
36175
37418
  # defaultRouteAction takes effect when none of the hostRules match. The load
36176
- # balancer performs advanced routing actions like URL rewrites, header
36177
- # transformations, etc. prior to forwarding the request to the selected backend.
36178
- # If defaultRouteAction specifies any weightedBackendServices, defaultService
36179
- # must not be set. Conversely if defaultService is set, defaultRouteAction
36180
- # cannot contain any weightedBackendServices. Only one of defaultRouteAction or
37419
+ # balancer performs advanced routing actions, such as URL rewrites and header
37420
+ # transformations, before forwarding the request to the selected backend. If
37421
+ # defaultRouteAction specifies any weightedBackendServices, defaultService must
37422
+ # not be set. Conversely if defaultService is set, defaultRouteAction cannot
37423
+ # contain any weightedBackendServices. Only one of defaultRouteAction or
36181
37424
  # defaultUrlRedirect must be set. UrlMaps for external HTTP(S) load balancers
36182
37425
  # support only the urlRewrite action within defaultRouteAction.
36183
- # defaultRouteAction has no effect when the URL map is bound to target gRPC
36184
- # proxy that has validateForProxyless field set to true.
37426
+ # defaultRouteAction has no effect when the URL map is bound to a target gRPC
37427
+ # proxy that has the validateForProxyless field set to true.
36185
37428
  # Corresponds to the JSON property `defaultRouteAction`
36186
37429
  # @return [Google::Apis::ComputeV1::HttpRouteAction]
36187
37430
  attr_accessor :default_route_action
36188
37431
 
36189
37432
  # The full or partial URL of the defaultService resource to which traffic is
36190
- # directed if none of the hostRules match. If defaultRouteAction is additionally
36191
- # specified, advanced routing actions like URL Rewrites, etc. take effect prior
36192
- # to sending the request to the backend. However, if defaultService is specified,
37433
+ # directed if none of the hostRules match. If defaultRouteAction is also
37434
+ # specified, advanced routing actions, such as URL rewrites, take effect before
37435
+ # sending the request to the backend. However, if defaultService is specified,
36193
37436
  # defaultRouteAction cannot contain any weightedBackendServices. Conversely, if
36194
37437
  # routeAction specifies any weightedBackendServices, service must not be
36195
- # specified. Only one of defaultService, defaultUrlRedirect or
37438
+ # specified. Only one of defaultService, defaultUrlRedirect , or
36196
37439
  # defaultRouteAction.weightedBackendService must be set. defaultService has no
36197
- # effect when the URL map is bound to target gRPC proxy that has
37440
+ # effect when the URL map is bound to a target gRPC proxy that has the
36198
37441
  # validateForProxyless field set to true.
36199
37442
  # Corresponds to the JSON property `defaultService`
36200
37443
  # @return [String]
@@ -36212,11 +37455,10 @@ module Google
36212
37455
  attr_accessor :description
36213
37456
 
36214
37457
  # Fingerprint of this resource. A hash of the contents stored in this object.
36215
- # This field is used in optimistic locking. This field will be ignored when
36216
- # inserting a UrlMap. An up-to-date fingerprint must be provided in order to
36217
- # update the UrlMap, otherwise the request will fail with error 412
36218
- # conditionNotMet. To see the latest fingerprint, make a get() request to
36219
- # retrieve a UrlMap.
37458
+ # This field is used in optimistic locking. This field is ignored when inserting
37459
+ # a UrlMap. An up-to-date fingerprint must be provided in order to update the
37460
+ # UrlMap, otherwise the request will fail with error 412 conditionNotMet. To see
37461
+ # the latest fingerprint, make a get() request to retrieve a UrlMap.
36220
37462
  # Corresponds to the JSON property `fingerprint`
36221
37463
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
36222
37464
  # @return [String]
@@ -36228,7 +37470,7 @@ module Google
36228
37470
  # @return [Google::Apis::ComputeV1::HttpHeaderAction]
36229
37471
  attr_accessor :header_action
36230
37472
 
36231
- # The list of HostRules to use against the URL.
37473
+ # The list of host rules to use against the URL.
36232
37474
  # Corresponds to the JSON property `hostRules`
36233
37475
  # @return [Array<Google::Apis::ComputeV1::HostRule>]
36234
37476
  attr_accessor :host_rules
@@ -36271,10 +37513,10 @@ module Google
36271
37513
  # @return [String]
36272
37514
  attr_accessor :self_link
36273
37515
 
36274
- # The list of expected URL mapping tests. Request to update this UrlMap will
36275
- # succeed only if all of the test cases pass. You can specify a maximum of 100
36276
- # tests per UrlMap. Not supported when the URL map is bound to target gRPC proxy
36277
- # that has validateForProxyless field set to true.
37516
+ # The list of expected URL mapping tests. Request to update the UrlMap succeeds
37517
+ # only if all test cases pass. You can specify a maximum of 100 tests per UrlMap.
37518
+ # Not supported when the URL map is bound to a target gRPC proxy that has
37519
+ # validateForProxyless field set to true.
36278
37520
  # Corresponds to the JSON property `tests`
36279
37521
  # @return [Array<Google::Apis::ComputeV1::UrlMapTest>]
36280
37522
  attr_accessor :tests
@@ -36448,18 +37690,18 @@ module Google
36448
37690
  # @return [String]
36449
37691
  attr_accessor :description
36450
37692
 
36451
- # The expected output URL evaluated by load balancer containing the scheme, host,
36452
- # path and query parameters. For rules that forward requests to backends, the
36453
- # test passes only when expectedOutputUrl matches the request forwarded by load
36454
- # balancer to backends. For rules with urlRewrite, the test verifies that the
36455
- # forwarded request matches hostRewrite and pathPrefixRewrite in the urlRewrite
36456
- # action. When service is specified, expectedOutputUrl`s scheme is ignored. For
36457
- # rules with urlRedirect, the test passes only if expectedOutputUrl matches the
36458
- # URL in the load balancer's redirect response. If urlRedirect specifies
36459
- # https_redirect, the test passes only if the scheme in expectedOutputUrl is
36460
- # also set to https. If urlRedirect specifies strip_query, the test passes only
36461
- # if expectedOutputUrl does not contain any query parameters. expectedOutputUrl
36462
- # is optional when service is specified.
37693
+ # The expected output URL evaluated by the load balancer containing the scheme,
37694
+ # host, path and query parameters. For rules that forward requests to backends,
37695
+ # the test passes only when expectedOutputUrl matches the request forwarded by
37696
+ # the load balancer to backends. For rules with urlRewrite, the test verifies
37697
+ # that the forwarded request matches hostRewrite and pathPrefixRewrite in the
37698
+ # urlRewrite action. When service is specified, expectedOutputUrl`s scheme is
37699
+ # ignored. For rules with urlRedirect, the test passes only if expectedOutputUrl
37700
+ # matches the URL in the load balancer's redirect response. If urlRedirect
37701
+ # specifies https_redirect, the test passes only if the scheme in
37702
+ # expectedOutputUrl is also set to HTTPS. If urlRedirect specifies strip_query,
37703
+ # the test passes only if expectedOutputUrl does not contain any query
37704
+ # parameters. expectedOutputUrl is optional when service is specified.
36463
37705
  # Corresponds to the JSON property `expectedOutputUrl`
36464
37706
  # @return [String]
36465
37707
  attr_accessor :expected_output_url
@@ -36490,7 +37732,8 @@ module Google
36490
37732
  attr_accessor :path
36491
37733
 
36492
37734
  # Expected BackendService or BackendBucket resource the given URL should be
36493
- # mapped to. service cannot be set if expectedRedirectResponseCode is set.
37735
+ # mapped to. The service field cannot be set if expectedRedirectResponseCode is
37736
+ # set.
36494
37737
  # Corresponds to the JSON property `service`
36495
37738
  # @return [String]
36496
37739
  attr_accessor :service
@@ -36795,17 +38038,17 @@ module Google
36795
38038
  class ValidateUrlMapsRequest
36796
38039
  include Google::Apis::Core::Hashable
36797
38040
 
36798
- # Represents a URL Map resource. Google Compute Engine has two URL Map resources:
36799
- # * [Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/
36800
- # docs/reference/rest/v1/regionUrlMaps) A URL map resource is a component of
36801
- # certain types of GCP load balancers and Traffic Director. * urlMaps are used
36802
- # by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are
36803
- # used by internal HTTP(S) load balancers. For a list of supported URL map
36804
- # features by load balancer type, see the Load balancing features: Routing and
38041
+ # Represents a URL Map resource. Compute Engine has two URL Map resources: * [
38042
+ # Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/docs/
38043
+ # reference/rest/v1/regionUrlMaps) A URL map resource is a component of certain
38044
+ # types of cloud load balancers and Traffic Director: * urlMaps are used by
38045
+ # external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are used
38046
+ # by internal HTTP(S) load balancers. For a list of supported URL map features
38047
+ # by the load balancer type, see the Load balancing features: Routing and
36805
38048
  # traffic management table. For a list of supported URL map features for Traffic
36806
38049
  # Director, see the Traffic Director features: Routing and traffic management
36807
- # table. This resource defines mappings from host names and URL paths to either
36808
- # a backend service or a backend bucket. To use the global urlMaps resource, the
38050
+ # table. This resource defines mappings from hostnames and URL paths to either a
38051
+ # backend service or a backend bucket. To use the global urlMaps resource, the
36809
38052
  # backend service must have a loadBalancingScheme of either EXTERNAL or
36810
38053
  # INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service
36811
38054
  # must have a loadBalancingScheme of INTERNAL_MANAGED. For more information,
@@ -36848,16 +38091,16 @@ module Google
36848
38091
  class UrlRewrite
36849
38092
  include Google::Apis::Core::Hashable
36850
38093
 
36851
- # Prior to forwarding the request to the selected service, the request's host
36852
- # header is replaced with contents of hostRewrite. The value must be between 1
36853
- # and 255 characters.
38094
+ # Before forwarding the request to the selected service, the request's host
38095
+ # header is replaced with contents of hostRewrite. The value must be from 1 to
38096
+ # 255 characters.
36854
38097
  # Corresponds to the JSON property `hostRewrite`
36855
38098
  # @return [String]
36856
38099
  attr_accessor :host_rewrite
36857
38100
 
36858
- # Prior to forwarding the request to the selected backend service, the matching
38101
+ # Before forwarding the request to the selected backend service, the matching
36859
38102
  # portion of the request's path is replaced by pathPrefixRewrite. The value must
36860
- # be between 1 and 1024 characters.
38103
+ # be from 1 to 1024 characters.
36861
38104
  # Corresponds to the JSON property `pathPrefixRewrite`
36862
38105
  # @return [String]
36863
38106
  attr_accessor :path_prefix_rewrite
@@ -37367,6 +38610,12 @@ module Google
37367
38610
  # @return [String]
37368
38611
  attr_accessor :self_link
37369
38612
 
38613
+ # The stack type for this VPN gateway to identify the IP protocols that are
38614
+ # enabled. If not specified, IPV4_ONLY will be used.
38615
+ # Corresponds to the JSON property `stackType`
38616
+ # @return [String]
38617
+ attr_accessor :stack_type
38618
+
37370
38619
  # The list of VPN interfaces associated with this VPN gateway.
37371
38620
  # Corresponds to the JSON property `vpnInterfaces`
37372
38621
  # @return [Array<Google::Apis::ComputeV1::VpnGatewayVpnGatewayInterface>]
@@ -37388,6 +38637,7 @@ module Google
37388
38637
  @network = args[:network] if args.key?(:network)
37389
38638
  @region = args[:region] if args.key?(:region)
37390
38639
  @self_link = args[:self_link] if args.key?(:self_link)
38640
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
37391
38641
  @vpn_interfaces = args[:vpn_interfaces] if args.key?(:vpn_interfaces)
37392
38642
  end
37393
38643
  end
@@ -38490,14 +39740,13 @@ module Google
38490
39740
 
38491
39741
  # In contrast to a single BackendService in HttpRouteAction to which all
38492
39742
  # matching traffic is directed to, WeightedBackendService allows traffic to be
38493
- # split across multiple BackendServices. The volume of traffic for each
38494
- # BackendService is proportional to the weight specified in each
38495
- # WeightedBackendService
39743
+ # split across multiple backend services. The volume of traffic for each backend
39744
+ # service is proportional to the weight specified in each WeightedBackendService
38496
39745
  class WeightedBackendService
38497
39746
  include Google::Apis::Core::Hashable
38498
39747
 
38499
39748
  # The full or partial URL to the default BackendService resource. Before
38500
- # forwarding the request to backendService, the loadbalancer applies any
39749
+ # forwarding the request to backendService, the load balancer applies any
38501
39750
  # relevant headerActions specified as part of this backendServiceWeight.
38502
39751
  # Corresponds to the JSON property `backendService`
38503
39752
  # @return [String]
@@ -38509,12 +39758,12 @@ module Google
38509
39758
  # @return [Google::Apis::ComputeV1::HttpHeaderAction]
38510
39759
  attr_accessor :header_action
38511
39760
 
38512
- # Specifies the fraction of traffic sent to backendService, computed as weight /
38513
- # (sum of all weightedBackendService weights in routeAction) . The selection of
38514
- # a backend service is determined only for new traffic. Once a user's request
38515
- # has been directed to a backendService, subsequent requests will be sent to the
38516
- # same backendService as determined by the BackendService's session affinity
38517
- # policy. The value must be between 0 and 1000
39761
+ # Specifies the fraction of traffic sent to a backend service, computed as
39762
+ # weight / (sum of all weightedBackendService weights in routeAction) . The
39763
+ # selection of a backend service is determined only for new traffic. Once a user'
39764
+ # s request has been directed to a backend service, subsequent requests are sent
39765
+ # to the same backend service as determined by the backend service's session
39766
+ # affinity policy. The value must be from 0 to 1000.
38518
39767
  # Corresponds to the JSON property `weight`
38519
39768
  # @return [Fixnum]
38520
39769
  attr_accessor :weight
@@ -38924,31 +40173,31 @@ module Google
38924
40173
 
38925
40174
  # An Identity and Access Management (IAM) policy, which specifies access
38926
40175
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
38927
- # A `binding` binds one or more `members` to a single `role`. Members can be
38928
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
38929
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
38930
- # role or a user-created custom role. For some types of Google Cloud resources,
38931
- # a `binding` can also specify a `condition`, which is a logical expression that
38932
- # allows access to a resource only if the expression evaluates to `true`. A
38933
- # condition can add constraints based on attributes of the request, the resource,
38934
- # or both. To learn which resources support conditions in their IAM policies,
38935
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
38936
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
38937
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
38938
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
38939
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
38940
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
38941
- # title": "expirable access", "description": "Does not grant access after Sep
38942
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
38943
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
38944
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
38945
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
38946
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
38947
- # roles/resourcemanager.organizationViewer condition: title: expirable access
38948
- # description: Does not grant access after Sep 2020 expression: request.time <
38949
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
38950
- # description of IAM and its features, see the [IAM documentation](https://cloud.
38951
- # google.com/iam/docs/).
40176
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
40177
+ # Principals can be user accounts, service accounts, Google groups, and domains (
40178
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
40179
+ # an IAM predefined role or a user-created custom role. For some types of Google
40180
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
40181
+ # logical expression that allows access to a resource only if the expression
40182
+ # evaluates to `true`. A condition can add constraints based on attributes of
40183
+ # the request, the resource, or both. To learn which resources support
40184
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
40185
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
40186
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
40187
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
40188
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
40189
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
40190
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
40191
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
40192
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
40193
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
40194
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
40195
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
40196
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
40197
+ # access description: Does not grant access after Sep 2020 expression: request.
40198
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
40199
+ # a description of IAM and its features, see the [IAM documentation](https://
40200
+ # cloud.google.com/iam/docs/).
38952
40201
  # Corresponds to the JSON property `policy`
38953
40202
  # @return [Google::Apis::ComputeV1::Policy]
38954
40203
  attr_accessor :policy