google-apis-compute_v1 0.19.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -464,15 +464,15 @@ module Google
464
464
  class AccessConfig
465
465
  include Google::Apis::Core::Hashable
466
466
 
467
- # [Output Only] The first IPv6 address of the external IPv6 range associated
468
- # with this instance, prefix length is stored in externalIpv6PrefixLength in
467
+ # The first IPv6 address of the external IPv6 range associated with this
468
+ # instance, prefix length is stored in externalIpv6PrefixLength in
469
469
  # ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork
470
470
  # associated with the instance will be allocated dynamically.
471
471
  # Corresponds to the JSON property `externalIpv6`
472
472
  # @return [String]
473
473
  attr_accessor :external_ipv6
474
474
 
475
- # [Output Only] The prefix length of the external IPv6 range.
475
+ # The prefix length of the external IPv6 range.
476
476
  # Corresponds to the JSON property `externalIpv6PrefixLength`
477
477
  # @return [Fixnum]
478
478
  attr_accessor :external_ipv6_prefix_length
@@ -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