google-apis-compute_v1 0.17.0 → 0.21.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -510,13 +510,17 @@ module Google
510
510
  attr_accessor :network_tier
511
511
 
512
512
  # The DNS domain name for the public PTR record. You can set this field only if
513
- # the `setPublicPtr` field is enabled.
513
+ # the `setPublicPtr` field is enabled in accessConfig. If this field is
514
+ # unspecified in ipv6AccessConfig, a default PTR record will be createc for
515
+ # first IP in associated external IPv6 range.
514
516
  # Corresponds to the JSON property `publicPtrDomainName`
515
517
  # @return [String]
516
518
  attr_accessor :public_ptr_domain_name
517
519
 
518
520
  # Specifies whether a public DNS 'PTR' record should be created to map the
519
- # external IP address of the instance to a DNS domain name.
521
+ # external IP address of the instance to a DNS domain name. This field is not
522
+ # used in ipv6AccessConfig. A default PTR record will be created if the VM has
523
+ # external IPv6 range associated.
520
524
  # Corresponds to the JSON property `setPublicPtr`
521
525
  # @return [Boolean]
522
526
  attr_accessor :set_public_ptr
@@ -629,14 +633,14 @@ module Google
629
633
  # regional internal IP address in a subnet of a VPC network) - VPC_PEERING for
630
634
  # global internal IP addresses used for private services access allocated ranges.
631
635
  # - NAT_AUTO for the regional external IP addresses used by Cloud NAT when
632
- # allocating addresses using . - IPSEC_INTERCONNECT for addresses created from a
633
- # private IP range that are reserved for a VLAN attachment in an *IPsec-
634
- # encrypted Cloud Interconnect* configuration. These addresses are regional
635
- # resources. Not currently available publicly. - `SHARED_LOADBALANCER_VIP` for
636
- # an internal IP address that is assigned to multiple internal forwarding rules.
637
- # - `PRIVATE_SERVICE_CONNECT` for a private network address that is used to
638
- # configure Private Service Connect. Only global internal addresses can use this
639
- # 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.
640
644
  # Corresponds to the JSON property `purpose`
641
645
  # @return [String]
642
646
  attr_accessor :purpose
@@ -1311,7 +1315,8 @@ module Google
1311
1315
  # initializeParams.sourceSnapshot or disks.source is required except for local
1312
1316
  # SSD. If desired, you can also attach existing non-root persistent disks using
1313
1317
  # this property. This field is only applicable for persistent disks. Note that
1314
- # for InstanceTemplate, specify the disk name, not the URL for the disk.
1318
+ # for InstanceTemplate, specify the disk name for zonal disk, and the URL for
1319
+ # regional disk.
1315
1320
  # Corresponds to the JSON property `source`
1316
1321
  # @return [String]
1317
1322
  attr_accessor :source
@@ -2561,6 +2566,12 @@ module Google
2561
2566
  # @return [String]
2562
2567
  attr_accessor :description
2563
2568
 
2569
+ # [Output Only] The resource URL for the edge security policy associated with
2570
+ # this backend bucket.
2571
+ # Corresponds to the JSON property `edgeSecurityPolicy`
2572
+ # @return [String]
2573
+ attr_accessor :edge_security_policy
2574
+
2564
2575
  # If true, enable Cloud CDN for this BackendBucket.
2565
2576
  # Corresponds to the JSON property `enableCdn`
2566
2577
  # @return [Boolean]
@@ -2603,6 +2614,7 @@ module Google
2603
2614
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
2604
2615
  @custom_response_headers = args[:custom_response_headers] if args.key?(:custom_response_headers)
2605
2616
  @description = args[:description] if args.key?(:description)
2617
+ @edge_security_policy = args[:edge_security_policy] if args.key?(:edge_security_policy)
2606
2618
  @enable_cdn = args[:enable_cdn] if args.key?(:enable_cdn)
2607
2619
  @id = args[:id] if args.key?(:id)
2608
2620
  @kind = args[:kind] if args.key?(:kind)
@@ -2622,6 +2634,12 @@ module Google
2622
2634
  # @return [Array<Google::Apis::ComputeV1::BackendBucketCdnPolicyBypassCacheOnRequestHeader>]
2623
2635
  attr_accessor :bypass_cache_on_request_headers
2624
2636
 
2637
+ # Message containing what to include in the cache key for a request for Cloud
2638
+ # CDN.
2639
+ # Corresponds to the JSON property `cacheKeyPolicy`
2640
+ # @return [Google::Apis::ComputeV1::BackendBucketCdnPolicyCacheKeyPolicy]
2641
+ attr_accessor :cache_key_policy
2642
+
2625
2643
  # Specifies the cache setting for all responses from this backend. The possible
2626
2644
  # values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching
2627
2645
  # headers to cache content. Responses without these headers will not be cached
@@ -2646,7 +2664,7 @@ module Google
2646
2664
  # specified), or else sets the response max-age directive to the lesser of the
2647
2665
  # client_ttl and default_ttl, and also ensures a "public" cache-control
2648
2666
  # directive is present. If a client TTL is not specified, a default value (1
2649
- # hour) will be used. The maximum allowed value is 86400s (1 day).
2667
+ # hour) will be used. The maximum allowed value is 31,622,400s (1 year).
2650
2668
  # Corresponds to the JSON property `clientTtl`
2651
2669
  # @return [Fixnum]
2652
2670
  attr_accessor :client_ttl
@@ -2745,6 +2763,7 @@ module Google
2745
2763
  # Update properties of this object
2746
2764
  def update!(**args)
2747
2765
  @bypass_cache_on_request_headers = args[:bypass_cache_on_request_headers] if args.key?(:bypass_cache_on_request_headers)
2766
+ @cache_key_policy = args[:cache_key_policy] if args.key?(:cache_key_policy)
2748
2767
  @cache_mode = args[:cache_mode] if args.key?(:cache_mode)
2749
2768
  @client_ttl = args[:client_ttl] if args.key?(:client_ttl)
2750
2769
  @default_ttl = args[:default_ttl] if args.key?(:default_ttl)
@@ -2780,6 +2799,34 @@ module Google
2780
2799
  end
2781
2800
  end
2782
2801
 
2802
+ # Message containing what to include in the cache key for a request for Cloud
2803
+ # CDN.
2804
+ class BackendBucketCdnPolicyCacheKeyPolicy
2805
+ include Google::Apis::Core::Hashable
2806
+
2807
+ # Allows HTTP request headers (by name) to be used in the cache key.
2808
+ # Corresponds to the JSON property `includeHttpHeaders`
2809
+ # @return [Array<String>]
2810
+ attr_accessor :include_http_headers
2811
+
2812
+ # Names of query string parameters to include in cache keys. All other
2813
+ # parameters will be excluded. '&' and '=' will be percent encoded and not
2814
+ # treated as delimiters.
2815
+ # Corresponds to the JSON property `queryStringWhitelist`
2816
+ # @return [Array<String>]
2817
+ attr_accessor :query_string_whitelist
2818
+
2819
+ def initialize(**args)
2820
+ update!(**args)
2821
+ end
2822
+
2823
+ # Update properties of this object
2824
+ def update!(**args)
2825
+ @include_http_headers = args[:include_http_headers] if args.key?(:include_http_headers)
2826
+ @query_string_whitelist = args[:query_string_whitelist] if args.key?(:query_string_whitelist)
2827
+ end
2828
+ end
2829
+
2783
2830
  # Specify CDN TTLs for response error codes.
2784
2831
  class BackendBucketCdnPolicyNegativeCachingPolicy
2785
2832
  include Google::Apis::Core::Hashable
@@ -2973,6 +3020,11 @@ module Google
2973
3020
  # @return [Google::Apis::ComputeV1::ConnectionDraining]
2974
3021
  attr_accessor :connection_draining
2975
3022
 
3023
+ # Connection Tracking configuration for this BackendService.
3024
+ # Corresponds to the JSON property `connectionTrackingPolicy`
3025
+ # @return [Google::Apis::ComputeV1::BackendServiceConnectionTrackingPolicy]
3026
+ attr_accessor :connection_tracking_policy
3027
+
2976
3028
  # This message defines settings for a consistent hash style load balancer.
2977
3029
  # Corresponds to the JSON property `consistentHash`
2978
3030
  # @return [Google::Apis::ComputeV1::ConsistentHashLoadBalancerSettings]
@@ -3001,6 +3053,12 @@ module Google
3001
3053
  # @return [String]
3002
3054
  attr_accessor :description
3003
3055
 
3056
+ # [Output Only] The resource URL for the edge security policy associated with
3057
+ # this backend service.
3058
+ # Corresponds to the JSON property `edgeSecurityPolicy`
3059
+ # @return [String]
3060
+ attr_accessor :edge_security_policy
3061
+
3004
3062
  # If true, enables Cloud CDN for the backend service of an external HTTP(S) load
3005
3063
  # balancer.
3006
3064
  # Corresponds to the JSON property `enableCDN`
@@ -3010,14 +3068,14 @@ module Google
3010
3068
 
3011
3069
  # For load balancers that have configurable failover: [Internal TCP/UDP Load
3012
3070
  # Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-
3013
- # overview) and [external TCP/UDP Load Balancing](/network/networklb-failover-
3014
- # overview). On failover or failback, this field indicates whether connection
3015
- # draining will be honored. Google Cloud has a fixed connection draining timeout
3016
- # of 10 minutes. A setting of true terminates existing TCP connections to the
3017
- # active pool during failover and failback, immediately draining traffic. A
3018
- # setting of false allows existing TCP connections to persist, even on VMs no
3019
- # longer in the active pool, for up to the duration of the connection draining
3020
- # timeout (10 minutes).
3071
+ # overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-
3072
+ # balancing/docs/network/networklb-failover-overview). On failover or failback,
3073
+ # this field indicates whether connection draining will be honored. Google Cloud
3074
+ # has a fixed connection draining timeout of 10 minutes. A setting of true
3075
+ # terminates existing TCP connections to the active pool during failover and
3076
+ # failback, immediately draining traffic. A setting of false allows existing TCP
3077
+ # connections to persist, even on VMs no longer in the active pool, for up to
3078
+ # the duration of the connection draining timeout (10 minutes).
3021
3079
  # Corresponds to the JSON property `failoverPolicy`
3022
3080
  # @return [Google::Apis::ComputeV1::BackendServiceFailoverPolicy]
3023
3081
  attr_accessor :failover_policy
@@ -3088,8 +3146,8 @@ module Google
3088
3146
  # INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme
3089
3147
  # set to INTERNAL_SELF_MANAGED. If sessionAffinity is not NONE, and this field
3090
3148
  # is not set to MAGLEV or RING_HASH, session affinity settings will not take
3091
- # effect. Only the default ROUND_ROBIN policy is supported when the backend
3092
- # service is referenced by a URL map that is bound to target gRPC proxy that has
3149
+ # effect. Only ROUND_ROBIN and RING_HASH are supported when the backend service
3150
+ # is referenced by a URL map that is bound to target gRPC proxy that has
3093
3151
  # validateForProxyless field set to true.
3094
3152
  # Corresponds to the JSON property `localityLbPolicy`
3095
3153
  # @return [String]
@@ -3182,15 +3240,22 @@ module Google
3182
3240
  # @return [String]
3183
3241
  attr_accessor :self_link
3184
3242
 
3185
- # Type of session affinity to use. The default is NONE. For a detailed
3186
- # description of session affinity options, see: [Session affinity](https://cloud.
3187
- # google.com/load-balancing/docs/backend-service#session_affinity). Not
3188
- # supported when the backend service is referenced by a URL map that is bound to
3189
- # target gRPC proxy that has validateForProxyless field set to true.
3243
+ # Type of session affinity to use. The default is NONE. Only NONE and
3244
+ # HEADER_FIELD are supported when the backend service is referenced by a URL map
3245
+ # that is bound to target gRPC proxy that has validateForProxyless field set to
3246
+ # true. For more details, see: [Session Affinity](https://cloud.google.com/load-
3247
+ # balancing/docs/backend-service#session_affinity).
3190
3248
  # Corresponds to the JSON property `sessionAffinity`
3191
3249
  # @return [String]
3192
3250
  attr_accessor :session_affinity
3193
3251
 
3252
+ # Subsetting configuration for this BackendService. Currently this is applicable
3253
+ # only for Internal TCP/UDP load balancing, Internal HTTP(S) load balancing and
3254
+ # Traffic Director.
3255
+ # Corresponds to the JSON property `subsetting`
3256
+ # @return [Google::Apis::ComputeV1::Subsetting]
3257
+ attr_accessor :subsetting
3258
+
3194
3259
  # Not supported when the backend service is referenced by a URL map that is
3195
3260
  # bound to target gRPC proxy that has validateForProxyless field set to true.
3196
3261
  # Instead, use maxStreamDuration.
@@ -3209,11 +3274,13 @@ module Google
3209
3274
  @cdn_policy = args[:cdn_policy] if args.key?(:cdn_policy)
3210
3275
  @circuit_breakers = args[:circuit_breakers] if args.key?(:circuit_breakers)
3211
3276
  @connection_draining = args[:connection_draining] if args.key?(:connection_draining)
3277
+ @connection_tracking_policy = args[:connection_tracking_policy] if args.key?(:connection_tracking_policy)
3212
3278
  @consistent_hash = args[:consistent_hash] if args.key?(:consistent_hash)
3213
3279
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
3214
3280
  @custom_request_headers = args[:custom_request_headers] if args.key?(:custom_request_headers)
3215
3281
  @custom_response_headers = args[:custom_response_headers] if args.key?(:custom_response_headers)
3216
3282
  @description = args[:description] if args.key?(:description)
3283
+ @edge_security_policy = args[:edge_security_policy] if args.key?(:edge_security_policy)
3217
3284
  @enable_cdn = args[:enable_cdn] if args.key?(:enable_cdn)
3218
3285
  @failover_policy = args[:failover_policy] if args.key?(:failover_policy)
3219
3286
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
@@ -3236,6 +3303,7 @@ module Google
3236
3303
  @security_settings = args[:security_settings] if args.key?(:security_settings)
3237
3304
  @self_link = args[:self_link] if args.key?(:self_link)
3238
3305
  @session_affinity = args[:session_affinity] if args.key?(:session_affinity)
3306
+ @subsetting = args[:subsetting] if args.key?(:subsetting)
3239
3307
  @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec)
3240
3308
  end
3241
3309
  end
@@ -3404,7 +3472,7 @@ module Google
3404
3472
  # specified), or else sets the response max-age directive to the lesser of the
3405
3473
  # client_ttl and default_ttl, and also ensures a "public" cache-control
3406
3474
  # directive is present. If a client TTL is not specified, a default value (1
3407
- # hour) will be used. The maximum allowed value is 86400s (1 day).
3475
+ # hour) will be used. The maximum allowed value is 31,622,400s (1 year).
3408
3476
  # Corresponds to the JSON property `clientTtl`
3409
3477
  # @return [Fixnum]
3410
3478
  attr_accessor :client_ttl
@@ -3569,16 +3637,76 @@ module Google
3569
3637
  end
3570
3638
  end
3571
3639
 
3640
+ # Connection Tracking configuration for this BackendService.
3641
+ class BackendServiceConnectionTrackingPolicy
3642
+ include Google::Apis::Core::Hashable
3643
+
3644
+ # Specifies connection persistence when backends are unhealthy. The default
3645
+ # value is DEFAULT_FOR_PROTOCOL. If set to DEFAULT_FOR_PROTOCOL, the existing
3646
+ # connections persist on unhealthy backends only for connection-oriented
3647
+ # protocols (TCP and SCTP) and only if the Tracking Mode is PER_CONNECTION (
3648
+ # default tracking mode) or the Session Affinity is configured for 5-tuple. They
3649
+ # do not persist for UDP. If set to NEVER_PERSIST, after a backend becomes
3650
+ # unhealthy, the existing connections on the unhealthy backend are never
3651
+ # persisted on the unhealthy backend. They are always diverted to newly selected
3652
+ # healthy backends (unless all backends are unhealthy). If set to ALWAYS_PERSIST,
3653
+ # existing connections always persist on unhealthy backends regardless of
3654
+ # protocol and session affinity. It is generally not recommended to use this
3655
+ # mode overriding the default. For more details, see [Connection Persistence for
3656
+ # Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/
3657
+ # networklb-backend-service#connection-persistence) and [Connection Persistence
3658
+ # for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/
3659
+ # docs/internal#connection-persistence).
3660
+ # Corresponds to the JSON property `connectionPersistenceOnUnhealthyBackends`
3661
+ # @return [String]
3662
+ attr_accessor :connection_persistence_on_unhealthy_backends
3663
+
3664
+ # Specifies how long to keep a Connection Tracking entry while there is no
3665
+ # matching traffic (in seconds). For Internal TCP/UDP Load Balancing: - The
3666
+ # minimum (default) is 10 minutes and the maximum is 16 hours. - It can be set
3667
+ # only if Connection Tracking is less than 5-tuple (i.e. Session Affinity is
3668
+ # CLIENT_IP_NO_DESTINATION, CLIENT_IP or CLIENT_IP_PROTO, and Tracking Mode is
3669
+ # PER_SESSION). For Network Load Balancer the default is 60 seconds. This option
3670
+ # is not available publicly.
3671
+ # Corresponds to the JSON property `idleTimeoutSec`
3672
+ # @return [Fixnum]
3673
+ attr_accessor :idle_timeout_sec
3674
+
3675
+ # Specifies the key used for connection tracking. There are two options: -
3676
+ # PER_CONNECTION: This is the default mode. The Connection Tracking is performed
3677
+ # as per the Connection Key (default Hash Method) for the specific protocol. -
3678
+ # PER_SESSION: The Connection Tracking is performed as per the configured
3679
+ # Session Affinity. It matches the configured Session Affinity. For more details,
3680
+ # see [Tracking Mode for Network Load Balancing](https://cloud.google.com/load-
3681
+ # balancing/docs/network/networklb-backend-service#tracking-mode) and [Tracking
3682
+ # Mode for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-
3683
+ # balancing/docs/internal#tracking-mode).
3684
+ # Corresponds to the JSON property `trackingMode`
3685
+ # @return [String]
3686
+ attr_accessor :tracking_mode
3687
+
3688
+ def initialize(**args)
3689
+ update!(**args)
3690
+ end
3691
+
3692
+ # Update properties of this object
3693
+ def update!(**args)
3694
+ @connection_persistence_on_unhealthy_backends = args[:connection_persistence_on_unhealthy_backends] if args.key?(:connection_persistence_on_unhealthy_backends)
3695
+ @idle_timeout_sec = args[:idle_timeout_sec] if args.key?(:idle_timeout_sec)
3696
+ @tracking_mode = args[:tracking_mode] if args.key?(:tracking_mode)
3697
+ end
3698
+ end
3699
+
3572
3700
  # For load balancers that have configurable failover: [Internal TCP/UDP Load
3573
3701
  # Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-
3574
- # overview) and [external TCP/UDP Load Balancing](/network/networklb-failover-
3575
- # overview). On failover or failback, this field indicates whether connection
3576
- # draining will be honored. Google Cloud has a fixed connection draining timeout
3577
- # of 10 minutes. A setting of true terminates existing TCP connections to the
3578
- # active pool during failover and failback, immediately draining traffic. A
3579
- # setting of false allows existing TCP connections to persist, even on VMs no
3580
- # longer in the active pool, for up to the duration of the connection draining
3581
- # timeout (10 minutes).
3702
+ # overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-
3703
+ # balancing/docs/network/networklb-failover-overview). On failover or failback,
3704
+ # this field indicates whether connection draining will be honored. Google Cloud
3705
+ # has a fixed connection draining timeout of 10 minutes. A setting of true
3706
+ # terminates existing TCP connections to the active pool during failover and
3707
+ # failback, immediately draining traffic. A setting of false allows existing TCP
3708
+ # connections to persist, even on VMs no longer in the active pool, for up to
3709
+ # the duration of the connection draining timeout (10 minutes).
3582
3710
  class BackendServiceFailoverPolicy
3583
3711
  include Google::Apis::Core::Hashable
3584
3712
 
@@ -3593,8 +3721,9 @@ module Google
3593
3721
  # distributed among all primary VMs when all primary and all backup backend VMs
3594
3722
  # are unhealthy. For load balancers that have configurable failover: [Internal
3595
3723
  # TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/
3596
- # failover-overview) and [external TCP/UDP Load Balancing](/network/networklb-
3597
- # failover-overview). The default is false.
3724
+ # failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.
3725
+ # com/load-balancing/docs/network/networklb-failover-overview). The default is
3726
+ # false.
3598
3727
  # Corresponds to the JSON property `dropTrafficIfUnhealthy`
3599
3728
  # @return [Boolean]
3600
3729
  attr_accessor :drop_traffic_if_unhealthy
@@ -3606,7 +3735,8 @@ module Google
3606
3735
  # the total number of healthy primary VMs is less than this ratio. For load
3607
3736
  # balancers that have configurable failover: [Internal TCP/UDP Load Balancing](
3608
3737
  # https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [
3609
- # external TCP/UDP Load Balancing](/network/networklb-failover-overview).
3738
+ # external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/
3739
+ # network/networklb-failover-overview).
3610
3740
  # Corresponds to the JSON property `failoverRatio`
3611
3741
  # @return [Float]
3612
3742
  attr_accessor :failover_ratio
@@ -3958,7 +4088,256 @@ module Google
3958
4088
  end
3959
4089
  end
3960
4090
 
3961
- # Associates `members` with a `role`.
4091
+ #
4092
+ class BfdPacket
4093
+ include Google::Apis::Core::Hashable
4094
+
4095
+ # The Authentication Present bit of the BFD packet. This is specified in section
4096
+ # 4.1 of RFC5880
4097
+ # Corresponds to the JSON property `authenticationPresent`
4098
+ # @return [Boolean]
4099
+ attr_accessor :authentication_present
4100
+ alias_method :authentication_present?, :authentication_present
4101
+
4102
+ # The Control Plane Independent bit of the BFD packet. This is specified in
4103
+ # section 4.1 of RFC5880
4104
+ # Corresponds to the JSON property `controlPlaneIndependent`
4105
+ # @return [Boolean]
4106
+ attr_accessor :control_plane_independent
4107
+ alias_method :control_plane_independent?, :control_plane_independent
4108
+
4109
+ # The demand bit of the BFD packet. This is specified in section 4.1 of RFC5880
4110
+ # Corresponds to the JSON property `demand`
4111
+ # @return [Boolean]
4112
+ attr_accessor :demand
4113
+ alias_method :demand?, :demand
4114
+
4115
+ # The diagnostic code specifies the local system's reason for the last change in
4116
+ # session state. This allows remote systems to determine the reason that the
4117
+ # previous session failed, for example. These diagnostic codes are specified in
4118
+ # section 4.1 of RFC5880
4119
+ # Corresponds to the JSON property `diagnostic`
4120
+ # @return [String]
4121
+ attr_accessor :diagnostic
4122
+
4123
+ # The Final bit of the BFD packet. This is specified in section 4.1 of RFC5880
4124
+ # Corresponds to the JSON property `final`
4125
+ # @return [Boolean]
4126
+ attr_accessor :final
4127
+ alias_method :final?, :final
4128
+
4129
+ # The length of the BFD Control packet in bytes. This is specified in section 4.
4130
+ # 1 of RFC5880
4131
+ # Corresponds to the JSON property `length`
4132
+ # @return [Fixnum]
4133
+ attr_accessor :length
4134
+
4135
+ # The Required Min Echo RX Interval value in the BFD packet. This is specified
4136
+ # in section 4.1 of RFC5880
4137
+ # Corresponds to the JSON property `minEchoRxIntervalMs`
4138
+ # @return [Fixnum]
4139
+ attr_accessor :min_echo_rx_interval_ms
4140
+
4141
+ # The Required Min RX Interval value in the BFD packet. This is specified in
4142
+ # section 4.1 of RFC5880
4143
+ # Corresponds to the JSON property `minRxIntervalMs`
4144
+ # @return [Fixnum]
4145
+ attr_accessor :min_rx_interval_ms
4146
+
4147
+ # The Desired Min TX Interval value in the BFD packet. This is specified in
4148
+ # section 4.1 of RFC5880
4149
+ # Corresponds to the JSON property `minTxIntervalMs`
4150
+ # @return [Fixnum]
4151
+ attr_accessor :min_tx_interval_ms
4152
+
4153
+ # The detection time multiplier of the BFD packet. This is specified in section
4154
+ # 4.1 of RFC5880
4155
+ # Corresponds to the JSON property `multiplier`
4156
+ # @return [Fixnum]
4157
+ attr_accessor :multiplier
4158
+
4159
+ # The multipoint bit of the BFD packet. This is specified in section 4.1 of
4160
+ # RFC5880
4161
+ # Corresponds to the JSON property `multipoint`
4162
+ # @return [Boolean]
4163
+ attr_accessor :multipoint
4164
+ alias_method :multipoint?, :multipoint
4165
+
4166
+ # The My Discriminator value in the BFD packet. This is specified in section 4.1
4167
+ # of RFC5880
4168
+ # Corresponds to the JSON property `myDiscriminator`
4169
+ # @return [Fixnum]
4170
+ attr_accessor :my_discriminator
4171
+
4172
+ # The Poll bit of the BFD packet. This is specified in section 4.1 of RFC5880
4173
+ # Corresponds to the JSON property `poll`
4174
+ # @return [Boolean]
4175
+ attr_accessor :poll
4176
+ alias_method :poll?, :poll
4177
+
4178
+ # The current BFD session state as seen by the transmitting system. These states
4179
+ # are specified in section 4.1 of RFC5880
4180
+ # Corresponds to the JSON property `state`
4181
+ # @return [String]
4182
+ attr_accessor :state
4183
+
4184
+ # The version number of the BFD protocol, as specified in section 4.1 of RFC5880.
4185
+ # Corresponds to the JSON property `version`
4186
+ # @return [Fixnum]
4187
+ attr_accessor :version
4188
+
4189
+ # The Your Discriminator value in the BFD packet. This is specified in section 4.
4190
+ # 1 of RFC5880
4191
+ # Corresponds to the JSON property `yourDiscriminator`
4192
+ # @return [Fixnum]
4193
+ attr_accessor :your_discriminator
4194
+
4195
+ def initialize(**args)
4196
+ update!(**args)
4197
+ end
4198
+
4199
+ # Update properties of this object
4200
+ def update!(**args)
4201
+ @authentication_present = args[:authentication_present] if args.key?(:authentication_present)
4202
+ @control_plane_independent = args[:control_plane_independent] if args.key?(:control_plane_independent)
4203
+ @demand = args[:demand] if args.key?(:demand)
4204
+ @diagnostic = args[:diagnostic] if args.key?(:diagnostic)
4205
+ @final = args[:final] if args.key?(:final)
4206
+ @length = args[:length] if args.key?(:length)
4207
+ @min_echo_rx_interval_ms = args[:min_echo_rx_interval_ms] if args.key?(:min_echo_rx_interval_ms)
4208
+ @min_rx_interval_ms = args[:min_rx_interval_ms] if args.key?(:min_rx_interval_ms)
4209
+ @min_tx_interval_ms = args[:min_tx_interval_ms] if args.key?(:min_tx_interval_ms)
4210
+ @multiplier = args[:multiplier] if args.key?(:multiplier)
4211
+ @multipoint = args[:multipoint] if args.key?(:multipoint)
4212
+ @my_discriminator = args[:my_discriminator] if args.key?(:my_discriminator)
4213
+ @poll = args[:poll] if args.key?(:poll)
4214
+ @state = args[:state] if args.key?(:state)
4215
+ @version = args[:version] if args.key?(:version)
4216
+ @your_discriminator = args[:your_discriminator] if args.key?(:your_discriminator)
4217
+ end
4218
+ end
4219
+
4220
+ # Next free: 15
4221
+ class BfdStatus
4222
+ include Google::Apis::Core::Hashable
4223
+
4224
+ # The BFD session initialization mode for this BGP peer. If set to ACTIVE, the
4225
+ # Cloud Router will initiate the BFD session for this BGP peer. If set to
4226
+ # PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD
4227
+ # session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP
4228
+ # peer.
4229
+ # Corresponds to the JSON property `bfdSessionInitializationMode`
4230
+ # @return [String]
4231
+ attr_accessor :bfd_session_initialization_mode
4232
+
4233
+ # Unix timestamp of the most recent config update.
4234
+ # Corresponds to the JSON property `configUpdateTimestampMicros`
4235
+ # @return [Fixnum]
4236
+ attr_accessor :config_update_timestamp_micros
4237
+
4238
+ # Control packet counts for the current BFD session.
4239
+ # Corresponds to the JSON property `controlPacketCounts`
4240
+ # @return [Google::Apis::ComputeV1::BfdStatusPacketCounts]
4241
+ attr_accessor :control_packet_counts
4242
+
4243
+ # Inter-packet time interval statistics for control packets.
4244
+ # Corresponds to the JSON property `controlPacketIntervals`
4245
+ # @return [Array<Google::Apis::ComputeV1::PacketIntervals>]
4246
+ attr_accessor :control_packet_intervals
4247
+
4248
+ # The diagnostic code specifies the local system's reason for the last change in
4249
+ # session state. This allows remote systems to determine the reason that the
4250
+ # previous session failed, for example. These diagnostic codes are specified in
4251
+ # section 4.1 of RFC5880
4252
+ # Corresponds to the JSON property `localDiagnostic`
4253
+ # @return [String]
4254
+ attr_accessor :local_diagnostic
4255
+
4256
+ # The current BFD session state as seen by the transmitting system. These states
4257
+ # are specified in section 4.1 of RFC5880
4258
+ # Corresponds to the JSON property `localState`
4259
+ # @return [String]
4260
+ attr_accessor :local_state
4261
+
4262
+ # Negotiated transmit interval for control packets.
4263
+ # Corresponds to the JSON property `negotiatedLocalControlTxIntervalMs`
4264
+ # @return [Fixnum]
4265
+ attr_accessor :negotiated_local_control_tx_interval_ms
4266
+
4267
+ # The most recent Rx control packet for this BFD session.
4268
+ # Corresponds to the JSON property `rxPacket`
4269
+ # @return [Google::Apis::ComputeV1::BfdPacket]
4270
+ attr_accessor :rx_packet
4271
+
4272
+ # The most recent Tx control packet for this BFD session.
4273
+ # Corresponds to the JSON property `txPacket`
4274
+ # @return [Google::Apis::ComputeV1::BfdPacket]
4275
+ attr_accessor :tx_packet
4276
+
4277
+ # Session uptime in milliseconds. Value will be 0 if session is not up.
4278
+ # Corresponds to the JSON property `uptimeMs`
4279
+ # @return [Fixnum]
4280
+ attr_accessor :uptime_ms
4281
+
4282
+ def initialize(**args)
4283
+ update!(**args)
4284
+ end
4285
+
4286
+ # Update properties of this object
4287
+ def update!(**args)
4288
+ @bfd_session_initialization_mode = args[:bfd_session_initialization_mode] if args.key?(:bfd_session_initialization_mode)
4289
+ @config_update_timestamp_micros = args[:config_update_timestamp_micros] if args.key?(:config_update_timestamp_micros)
4290
+ @control_packet_counts = args[:control_packet_counts] if args.key?(:control_packet_counts)
4291
+ @control_packet_intervals = args[:control_packet_intervals] if args.key?(:control_packet_intervals)
4292
+ @local_diagnostic = args[:local_diagnostic] if args.key?(:local_diagnostic)
4293
+ @local_state = args[:local_state] if args.key?(:local_state)
4294
+ @negotiated_local_control_tx_interval_ms = args[:negotiated_local_control_tx_interval_ms] if args.key?(:negotiated_local_control_tx_interval_ms)
4295
+ @rx_packet = args[:rx_packet] if args.key?(:rx_packet)
4296
+ @tx_packet = args[:tx_packet] if args.key?(:tx_packet)
4297
+ @uptime_ms = args[:uptime_ms] if args.key?(:uptime_ms)
4298
+ end
4299
+ end
4300
+
4301
+ #
4302
+ class BfdStatusPacketCounts
4303
+ include Google::Apis::Core::Hashable
4304
+
4305
+ # Number of packets received since the beginning of the current BFD session.
4306
+ # Corresponds to the JSON property `numRx`
4307
+ # @return [Fixnum]
4308
+ attr_accessor :num_rx
4309
+
4310
+ # Number of packets received that were rejected because of errors since the
4311
+ # beginning of the current BFD session.
4312
+ # Corresponds to the JSON property `numRxRejected`
4313
+ # @return [Fixnum]
4314
+ attr_accessor :num_rx_rejected
4315
+
4316
+ # Number of packets received that were successfully processed since the
4317
+ # beginning of the current BFD session.
4318
+ # Corresponds to the JSON property `numRxSuccessful`
4319
+ # @return [Fixnum]
4320
+ attr_accessor :num_rx_successful
4321
+
4322
+ # Number of packets transmitted since the beginning of the current BFD session.
4323
+ # Corresponds to the JSON property `numTx`
4324
+ # @return [Fixnum]
4325
+ attr_accessor :num_tx
4326
+
4327
+ def initialize(**args)
4328
+ update!(**args)
4329
+ end
4330
+
4331
+ # Update properties of this object
4332
+ def update!(**args)
4333
+ @num_rx = args[:num_rx] if args.key?(:num_rx)
4334
+ @num_rx_rejected = args[:num_rx_rejected] if args.key?(:num_rx_rejected)
4335
+ @num_rx_successful = args[:num_rx_successful] if args.key?(:num_rx_successful)
4336
+ @num_tx = args[:num_tx] if args.key?(:num_tx)
4337
+ end
4338
+ end
4339
+
4340
+ # Associates `members`, or principals, with a `role`.
3962
4341
  class Binding
3963
4342
  include Google::Apis::Core::Hashable
3964
4343
 
@@ -3986,7 +4365,7 @@ module Google
3986
4365
  # @return [Google::Apis::ComputeV1::Expr]
3987
4366
  attr_accessor :condition
3988
4367
 
3989
- # Specifies the identities requesting access for a Cloud Platform resource. `
4368
+ # Specifies the principals requesting access for a Cloud Platform resource. `
3990
4369
  # members` can have the following values: * `allUsers`: A special identifier
3991
4370
  # that represents anyone who is on the internet; with or without a Google
3992
4371
  # account. * `allAuthenticatedUsers`: A special identifier that represents
@@ -4016,8 +4395,8 @@ module Google
4016
4395
  # @return [Array<String>]
4017
4396
  attr_accessor :members
4018
4397
 
4019
- # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
4020
- # , or `roles/owner`.
4398
+ # Role that is assigned to the list of `members`, or principals. For example, `
4399
+ # roles/viewer`, `roles/editor`, or `roles/owner`.
4021
4400
  # Corresponds to the JSON property `role`
4022
4401
  # @return [String]
4023
4402
  attr_accessor :role
@@ -4171,6 +4550,17 @@ module Google
4171
4550
  attr_accessor :include_host
4172
4551
  alias_method :include_host?, :include_host
4173
4552
 
4553
+ # Allows HTTP request headers (by name) to be used in the cache key.
4554
+ # Corresponds to the JSON property `includeHttpHeaders`
4555
+ # @return [Array<String>]
4556
+ attr_accessor :include_http_headers
4557
+
4558
+ # Allows HTTP cookies (by name) to be used in the cache key. The name=value pair
4559
+ # will be used in the cache key Cloud CDN generates.
4560
+ # Corresponds to the JSON property `includeNamedCookies`
4561
+ # @return [Array<String>]
4562
+ attr_accessor :include_named_cookies
4563
+
4174
4564
  # If true, http and https requests will be cached separately.
4175
4565
  # Corresponds to the JSON property `includeProtocol`
4176
4566
  # @return [Boolean]
@@ -4209,6 +4599,8 @@ module Google
4209
4599
  # Update properties of this object
4210
4600
  def update!(**args)
4211
4601
  @include_host = args[:include_host] if args.key?(:include_host)
4602
+ @include_http_headers = args[:include_http_headers] if args.key?(:include_http_headers)
4603
+ @include_named_cookies = args[:include_named_cookies] if args.key?(:include_named_cookies)
4212
4604
  @include_protocol = args[:include_protocol] if args.key?(:include_protocol)
4213
4605
  @include_query_string = args[:include_query_string] if args.key?(:include_query_string)
4214
4606
  @query_string_blacklist = args[:query_string_blacklist] if args.key?(:query_string_blacklist)
@@ -4273,6 +4665,16 @@ module Google
4273
4665
  class Commitment
4274
4666
  include Google::Apis::Core::Hashable
4275
4667
 
4668
+ # Specifies whether to enable automatic renewal for the commitment. The default
4669
+ # value is false if not specified. The field can be updated until the day of the
4670
+ # commitment expiration at 12:00am PST. If the field is set to true, the
4671
+ # commitment will be automatically renewed for either one or three years
4672
+ # according to the terms of the existing commitment.
4673
+ # Corresponds to the JSON property `autoRenew`
4674
+ # @return [Boolean]
4675
+ attr_accessor :auto_renew
4676
+ alias_method :auto_renew?, :auto_renew
4677
+
4276
4678
  # The category of the commitment. Category MACHINE specifies commitments
4277
4679
  # composed of machine resources such as VCPU or MEMORY, listed in resources.
4278
4680
  # Category LICENSE specifies commitments composed of software licenses, listed
@@ -4383,6 +4785,7 @@ module Google
4383
4785
 
4384
4786
  # Update properties of this object
4385
4787
  def update!(**args)
4788
+ @auto_renew = args[:auto_renew] if args.key?(:auto_renew)
4386
4789
  @category = args[:category] if args.key?(:category)
4387
4790
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
4388
4791
  @description = args[:description] if args.key?(:description)
@@ -4891,14 +5294,15 @@ module Google
4891
5294
  end
4892
5295
  end
4893
5296
 
4894
- # The specification for allowing client side cross-origin requests. Please see
4895
- # W3C Recommendation for Cross Origin Resource Sharing
5297
+ # The specification for allowing client-side cross-origin requests. For more
5298
+ # information about the W3C recommendation for cross-origin resource sharing (
5299
+ # CORS), see Fetch API Living Standard.
4896
5300
  class CorsPolicy
4897
5301
  include Google::Apis::Core::Hashable
4898
5302
 
4899
5303
  # In response to a preflight request, setting this to true indicates that the
4900
- # actual request can include user credentials. This translates to the Access-
4901
- # Control-Allow-Credentials header. Default is false.
5304
+ # actual request can include user credentials. This field translates to the
5305
+ # Access-Control-Allow-Credentials header. Default is false.
4902
5306
  # Corresponds to the JSON property `allowCredentials`
4903
5307
  # @return [Boolean]
4904
5308
  attr_accessor :allow_credentials
@@ -4914,23 +5318,23 @@ module Google
4914
5318
  # @return [Array<String>]
4915
5319
  attr_accessor :allow_methods
4916
5320
 
4917
- # Specifies the regualar expression patterns that match allowed origins. For
4918
- # regular expression grammar please see github.com/google/re2/wiki/Syntax An
4919
- # origin is allowed if it matches either an item in allowOrigins or an item in
5321
+ # Specifies a regular expression that matches allowed origins. For more
5322
+ # information about the regular expression syntax, see Syntax. An origin is
5323
+ # allowed if it matches either an item in allowOrigins or an item in
4920
5324
  # allowOriginRegexes.
4921
5325
  # Corresponds to the JSON property `allowOriginRegexes`
4922
5326
  # @return [Array<String>]
4923
5327
  attr_accessor :allow_origin_regexes
4924
5328
 
4925
- # Specifies the list of origins that will be allowed to do CORS requests. An
4926
- # origin is allowed if it matches either an item in allowOrigins or an item in
5329
+ # Specifies the list of origins that is allowed to do CORS requests. An origin
5330
+ # is allowed if it matches either an item in allowOrigins or an item in
4927
5331
  # allowOriginRegexes.
4928
5332
  # Corresponds to the JSON property `allowOrigins`
4929
5333
  # @return [Array<String>]
4930
5334
  attr_accessor :allow_origins
4931
5335
 
4932
- # If true, specifies the CORS policy is disabled. The default value of false,
4933
- # which indicates that the CORS policy is in effect.
5336
+ # If true, the setting specifies the CORS policy is disabled. The default value
5337
+ # of false, which indicates that the CORS policy is in effect.
4934
5338
  # Corresponds to the JSON property `disabled`
4935
5339
  # @return [Boolean]
4936
5340
  attr_accessor :disabled
@@ -4942,7 +5346,7 @@ module Google
4942
5346
  attr_accessor :expose_headers
4943
5347
 
4944
5348
  # Specifies how long results of a preflight request can be cached in seconds.
4945
- # This translates to the Access-Control-Max-Age header.
5349
+ # This field translates to the Access-Control-Max-Age header.
4946
5350
  # Corresponds to the JSON property `maxAge`
4947
5351
  # @return [Fixnum]
4948
5352
  attr_accessor :max_age
@@ -4968,30 +5372,39 @@ module Google
4968
5372
  class CustomerEncryptionKey
4969
5373
  include Google::Apis::Core::Hashable
4970
5374
 
4971
- # The name of the encryption key that is stored in Google Cloud KMS.
5375
+ # The name of the encryption key that is stored in Google Cloud KMS. For example:
5376
+ # "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ key_region/
5377
+ # cryptoKeys/key
4972
5378
  # Corresponds to the JSON property `kmsKeyName`
4973
5379
  # @return [String]
4974
5380
  attr_accessor :kms_key_name
4975
5381
 
4976
5382
  # The service account being used for the encryption request for the given KMS
4977
- # key. If absent, the Compute Engine default service account is used.
5383
+ # key. If absent, the Compute Engine default service account is used. For
5384
+ # example: "kmsKeyServiceAccount": "name@project_id.iam.gserviceaccount.com/
4978
5385
  # Corresponds to the JSON property `kmsKeyServiceAccount`
4979
5386
  # @return [String]
4980
5387
  attr_accessor :kms_key_service_account
4981
5388
 
4982
5389
  # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648
4983
- # base64 to either encrypt or decrypt this resource.
5390
+ # base64 to either encrypt or decrypt this resource. You can provide either the
5391
+ # rawKey or the rsaEncryptedKey. For example: "rawKey": "
5392
+ # SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0="
4984
5393
  # Corresponds to the JSON property `rawKey`
4985
5394
  # @return [String]
4986
5395
  attr_accessor :raw_key
4987
5396
 
4988
5397
  # Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied
4989
- # encryption key to either encrypt or decrypt this resource. The key must meet
4990
- # the following requirements before you can provide it to Compute Engine: 1. The
4991
- # key is wrapped using a RSA public key certificate provided by Google. 2. After
4992
- # being wrapped, the key must be encoded in RFC 4648 base64 encoding. Gets the
4993
- # RSA public key certificate provided by Google at: https://cloud-certs.storage.
4994
- # googleapis.com/google-cloud-csek-ingress.pem
5398
+ # encryption key to either encrypt or decrypt this resource. You can provide
5399
+ # either the rawKey or the rsaEncryptedKey. For example: "rsaEncryptedKey": "
5400
+ # ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH
5401
+ # z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD
5402
+ # D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==" The
5403
+ # key must meet the following requirements before you can provide it to Compute
5404
+ # Engine: 1. The key is wrapped using a RSA public key certificate provided by
5405
+ # Google. 2. After being wrapped, the key must be encoded in RFC 4648 base64
5406
+ # encoding. Gets the RSA public key certificate provided by Google at: https://
5407
+ # cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
4995
5408
  # Corresponds to the JSON property `rsaEncryptedKey`
4996
5409
  # @return [String]
4997
5410
  attr_accessor :rsa_encrypted_key
@@ -5026,7 +5439,8 @@ module Google
5026
5439
  attr_accessor :disk_encryption_key
5027
5440
 
5028
5441
  # Specifies a valid partial or full URL to an existing Persistent Disk resource.
5029
- # This field is only applicable for persistent disks.
5442
+ # This field is only applicable for persistent disks. For example: "source": "/
5443
+ # compute/v1/projects/project_id/zones/zone/disks/ disk_name
5030
5444
  # Corresponds to the JSON property `source`
5031
5445
  # @return [String]
5032
5446
  attr_accessor :source
@@ -6989,7 +7403,7 @@ module Google
6989
7403
  # Name of the resource; provided by the client when the resource is created. The
6990
7404
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
6991
7405
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
6992
- # z0-9]*[a-z0-9])?. The first character must be a lowercase letter, and all
7406
+ # z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all
6993
7407
  # following characters (except for the last character) must be a dash, lowercase
6994
7408
  # letter, or digit. The last character must be a lowercase letter or digit.
6995
7409
  # Corresponds to the JSON property `name`
@@ -8066,8 +8480,7 @@ module Google
8066
8480
  attr_accessor :self_link
8067
8481
 
8068
8482
  # Service Directory resources to register this forwarding rule with. Currently,
8069
- # only supports a single Service Directory resource. It is only supported for
8070
- # internal load balancing.
8483
+ # only supports a single Service Directory resource.
8071
8484
  # Corresponds to the JSON property `serviceDirectoryRegistrations`
8072
8485
  # @return [Array<Google::Apis::ComputeV1::ForwardingRuleServiceDirectoryRegistration>]
8073
8486
  attr_accessor :service_directory_registrations
@@ -8638,31 +9051,31 @@ module Google
8638
9051
 
8639
9052
  # An Identity and Access Management (IAM) policy, which specifies access
8640
9053
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
8641
- # A `binding` binds one or more `members` to a single `role`. Members can be
8642
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
8643
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
8644
- # role or a user-created custom role. For some types of Google Cloud resources,
8645
- # a `binding` can also specify a `condition`, which is a logical expression that
8646
- # allows access to a resource only if the expression evaluates to `true`. A
8647
- # condition can add constraints based on attributes of the request, the resource,
8648
- # or both. To learn which resources support conditions in their IAM policies,
8649
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
8650
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
8651
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
8652
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
8653
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
8654
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
8655
- # title": "expirable access", "description": "Does not grant access after Sep
8656
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
8657
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
8658
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
8659
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
8660
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
8661
- # roles/resourcemanager.organizationViewer condition: title: expirable access
8662
- # description: Does not grant access after Sep 2020 expression: request.time <
8663
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
8664
- # description of IAM and its features, see the [IAM documentation](https://cloud.
8665
- # google.com/iam/docs/).
9054
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
9055
+ # Principals can be user accounts, service accounts, Google groups, and domains (
9056
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
9057
+ # an IAM predefined role or a user-created custom role. For some types of Google
9058
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
9059
+ # logical expression that allows access to a resource only if the expression
9060
+ # evaluates to `true`. A condition can add constraints based on attributes of
9061
+ # the request, the resource, or both. To learn which resources support
9062
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
9063
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
9064
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
9065
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
9066
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
9067
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
9068
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
9069
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
9070
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
9071
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
9072
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
9073
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
9074
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
9075
+ # access description: Does not grant access after Sep 2020 expression: request.
9076
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
9077
+ # a description of IAM and its features, see the [IAM documentation](https://
9078
+ # cloud.google.com/iam/docs/).
8666
9079
  # Corresponds to the JSON property `policy`
8667
9080
  # @return [Google::Apis::ComputeV1::Policy]
8668
9081
  attr_accessor :policy
@@ -8735,31 +9148,31 @@ module Google
8735
9148
 
8736
9149
  # An Identity and Access Management (IAM) policy, which specifies access
8737
9150
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
8738
- # A `binding` binds one or more `members` to a single `role`. Members can be
8739
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
8740
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
8741
- # role or a user-created custom role. For some types of Google Cloud resources,
8742
- # a `binding` can also specify a `condition`, which is a logical expression that
8743
- # allows access to a resource only if the expression evaluates to `true`. A
8744
- # condition can add constraints based on attributes of the request, the resource,
8745
- # or both. To learn which resources support conditions in their IAM policies,
8746
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
8747
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
8748
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
8749
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
8750
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
8751
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
8752
- # title": "expirable access", "description": "Does not grant access after Sep
8753
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
8754
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
8755
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
8756
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
8757
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
8758
- # roles/resourcemanager.organizationViewer condition: title: expirable access
8759
- # description: Does not grant access after Sep 2020 expression: request.time <
8760
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
8761
- # description of IAM and its features, see the [IAM documentation](https://cloud.
8762
- # google.com/iam/docs/).
9151
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
9152
+ # Principals can be user accounts, service accounts, Google groups, and domains (
9153
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
9154
+ # an IAM predefined role or a user-created custom role. For some types of Google
9155
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
9156
+ # logical expression that allows access to a resource only if the expression
9157
+ # evaluates to `true`. A condition can add constraints based on attributes of
9158
+ # the request, the resource, or both. To learn which resources support
9159
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
9160
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
9161
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
9162
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
9163
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
9164
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
9165
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
9166
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
9167
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
9168
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
9169
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
9170
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
9171
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
9172
+ # access description: Does not grant access after Sep 2020 expression: request.
9173
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
9174
+ # a description of IAM and its features, see the [IAM documentation](https://
9175
+ # cloud.google.com/iam/docs/).
8763
9176
  # Corresponds to the JSON property `policy`
8764
9177
  # @return [Google::Apis::ComputeV1::Policy]
8765
9178
  attr_accessor :policy
@@ -8881,8 +9294,11 @@ module Google
8881
9294
  class GuestOsFeature
8882
9295
  include Google::Apis::Core::Hashable
8883
9296
 
8884
- # The ID of a supported feature. Read Enabling guest operating system features
8885
- # to see a list of available options.
9297
+ # The ID of a supported feature. To add multiple values, use commas to separate
9298
+ # values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE -
9299
+ # WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - SECURE_BOOT - GVNIC -
9300
+ # SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE For more information, see Enabling
9301
+ # guest operating system features.
8886
9302
  # Corresponds to the JSON property `type`
8887
9303
  # @return [String]
8888
9304
  attr_accessor :type
@@ -9216,8 +9632,8 @@ module Google
9216
9632
  attr_accessor :timeout_sec
9217
9633
 
9218
9634
  # Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS or HTTP2.
9219
- # If not specified, the default is TCP. Exactly one of the protocol-specific
9220
- # health check field must be specified, which must match type field.
9635
+ # Exactly one of the protocol-specific health check field must be specified,
9636
+ # which must match type field.
9221
9637
  # Corresponds to the JSON property `type`
9222
9638
  # @return [String]
9223
9639
  attr_accessor :type
@@ -10030,7 +10446,8 @@ module Google
10030
10446
  # port numbers in the format host:port. * matches any string of ([a-z0-9-.]*).
10031
10447
  # In that case, * must be the first character and must be followed in the
10032
10448
  # pattern by either - or .. * based matching is not supported when the URL map
10033
- # is bound to target gRPC proxy that has validateForProxyless field set to true.
10449
+ # is bound to a target gRPC proxy that has the validateForProxyless field set to
10450
+ # true.
10034
10451
  # Corresponds to the JSON property `hosts`
10035
10452
  # @return [Array<String>]
10036
10453
  attr_accessor :hosts
@@ -10057,8 +10474,8 @@ module Google
10057
10474
  class HttpFaultAbort
10058
10475
  include Google::Apis::Core::Hashable
10059
10476
 
10060
- # The HTTP status code used to abort the request. The value must be between 200
10061
- # and 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP
10477
+ # The HTTP status code used to abort the request. The value must be from 200 to
10478
+ # 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP
10062
10479
  # status code according to this mapping table. HTTP status 200 is mapped to gRPC
10063
10480
  # status UNKNOWN. Injecting an OK status is currently not supported by Traffic
10064
10481
  # Director.
@@ -10066,8 +10483,8 @@ module Google
10066
10483
  # @return [Fixnum]
10067
10484
  attr_accessor :http_status
10068
10485
 
10069
- # The percentage of traffic (connections/operations/requests) which will be
10070
- # aborted as part of fault injection. The value must be between 0.0 and 100.0
10486
+ # The percentage of traffic for connections, operations, or requests that is
10487
+ # aborted as part of fault injection. The value must be from 0.0 to 100.0
10071
10488
  # inclusive.
10072
10489
  # Corresponds to the JSON property `percentage`
10073
10490
  # @return [Float]
@@ -10084,8 +10501,8 @@ module Google
10084
10501
  end
10085
10502
  end
10086
10503
 
10087
- # Specifies the delay introduced by Loadbalancer before forwarding the request
10088
- # to the backend service as part of fault injection.
10504
+ # Specifies the delay introduced by the load balancer before forwarding the
10505
+ # request to the backend service as part of fault injection.
10089
10506
  class HttpFaultDelay
10090
10507
  include Google::Apis::Core::Hashable
10091
10508
 
@@ -10097,9 +10514,9 @@ module Google
10097
10514
  # @return [Google::Apis::ComputeV1::Duration]
10098
10515
  attr_accessor :fixed_delay
10099
10516
 
10100
- # The percentage of traffic (connections/operations/requests) on which delay
10101
- # will be introduced as part of fault injection. The value must be between 0.0
10102
- # and 100.0 inclusive.
10517
+ # The percentage of traffic for connections, operations, or requests for which a
10518
+ # delay is introduced as part of fault injection. The value must be from 0.0 to
10519
+ # 100.0 inclusive.
10103
10520
  # Corresponds to the JSON property `percentage`
10104
10521
  # @return [Float]
10105
10522
  attr_accessor :percentage
@@ -10118,9 +10535,9 @@ module Google
10118
10535
  # The specification for fault injection introduced into traffic to test the
10119
10536
  # resiliency of clients to backend service failure. As part of fault injection,
10120
10537
  # when clients send requests to a backend service, delays can be introduced by
10121
- # Loadbalancer on a percentage of requests before sending those request to the
10122
- # backend service. Similarly requests from clients can be aborted by the
10123
- # Loadbalancer for a percentage of requests.
10538
+ # the load balancer on a percentage of requests before sending those request to
10539
+ # the backend service. Similarly requests from clients can be aborted by the
10540
+ # load balancer for a percentage of requests.
10124
10541
  class HttpFaultInjection
10125
10542
  include Google::Apis::Core::Hashable
10126
10543
 
@@ -10129,8 +10546,8 @@ module Google
10129
10546
  # @return [Google::Apis::ComputeV1::HttpFaultAbort]
10130
10547
  attr_accessor :abort
10131
10548
 
10132
- # Specifies the delay introduced by Loadbalancer before forwarding the request
10133
- # to the backend service as part of fault injection.
10549
+ # Specifies the delay introduced by the load balancer before forwarding the
10550
+ # request to the backend service as part of fault injection.
10134
10551
  # Corresponds to the JSON property `delay`
10135
10552
  # @return [Google::Apis::ComputeV1::HttpFaultDelay]
10136
10553
  attr_accessor :delay
@@ -10151,25 +10568,25 @@ module Google
10151
10568
  class HttpHeaderAction
10152
10569
  include Google::Apis::Core::Hashable
10153
10570
 
10154
- # Headers to add to a matching request prior to forwarding the request to the
10571
+ # Headers to add to a matching request before forwarding the request to the
10155
10572
  # backendService.
10156
10573
  # Corresponds to the JSON property `requestHeadersToAdd`
10157
10574
  # @return [Array<Google::Apis::ComputeV1::HttpHeaderOption>]
10158
10575
  attr_accessor :request_headers_to_add
10159
10576
 
10160
10577
  # A list of header names for headers that need to be removed from the request
10161
- # prior to forwarding the request to the backendService.
10578
+ # before forwarding the request to the backendService.
10162
10579
  # Corresponds to the JSON property `requestHeadersToRemove`
10163
10580
  # @return [Array<String>]
10164
10581
  attr_accessor :request_headers_to_remove
10165
10582
 
10166
- # Headers to add the response prior to sending the response back to the client.
10583
+ # Headers to add the response before sending the response back to the client.
10167
10584
  # Corresponds to the JSON property `responseHeadersToAdd`
10168
10585
  # @return [Array<Google::Apis::ComputeV1::HttpHeaderOption>]
10169
10586
  attr_accessor :response_headers_to_add
10170
10587
 
10171
10588
  # A list of header names for headers that need to be removed from the response
10172
- # prior to sending the response back to the client.
10589
+ # before sending the response back to the client.
10173
10590
  # Corresponds to the JSON property `responseHeadersToRemove`
10174
10591
  # @return [Array<String>]
10175
10592
  attr_accessor :response_headers_to_remove
@@ -10199,21 +10616,21 @@ module Google
10199
10616
 
10200
10617
  # The name of the HTTP header to match. For matching against the HTTP request's
10201
10618
  # authority, use a headerMatch with the header name ":authority". For matching a
10202
- # request's method, use the headerName ":method". When the URL map is bound to
10203
- # target gRPC proxy that has validateForProxyless field set to true, only non-
10204
- # binary user-specified custom metadata and the `content-type` header are
10619
+ # request's method, use the headerName ":method". When the URL map is bound to a
10620
+ # target gRPC proxy that has the validateForProxyless field set to true, only
10621
+ # non-binary user-specified custom metadata and the `content-type` header are
10205
10622
  # supported. The following transport-level headers cannot be used in header
10206
10623
  # matching rules: `:authority`, `:method`, `:path`, `:scheme`, `user-agent`, `
10207
10624
  # accept-encoding`, `content-encoding`, `grpc-accept-encoding`, `grpc-encoding`,
10208
10625
  # `grpc-previous-rpc-attempts`, `grpc-tags-bin`, `grpc-timeout` and `grpc-trace-
10209
- # bin.
10626
+ # bin`.
10210
10627
  # Corresponds to the JSON property `headerName`
10211
10628
  # @return [String]
10212
10629
  attr_accessor :header_name
10213
10630
 
10214
- # If set to false, the headerMatch is considered a match if the match criteria
10215
- # above are met. If set to true, the headerMatch is considered a match if the
10216
- # match criteria above are NOT met. The default setting is false.
10631
+ # If set to false, the headerMatch is considered a match if the preceding match
10632
+ # criteria are met. If set to true, the headerMatch is considered a match if the
10633
+ # preceding match criteria are NOT met. The default setting is false.
10217
10634
  # Corresponds to the JSON property `invertMatch`
10218
10635
  # @return [Boolean]
10219
10636
  attr_accessor :invert_match
@@ -10241,13 +10658,13 @@ module Google
10241
10658
  attr_accessor :range_match
10242
10659
 
10243
10660
  # The value of the header must match the regular expression specified in
10244
- # regexMatch. For regular expression grammar, please see: github.com/google/re2/
10245
- # wiki/Syntax For matching against a port specified in the HTTP request, use a
10246
- # headerMatch with headerName set to PORT and a regular expression that
10247
- # satisfies the RFC2616 Host header's port specifier. Only one of exactMatch,
10248
- # prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.
10249
- # Note that regexMatch only applies to Loadbalancers that have their
10250
- # loadBalancingScheme set to INTERNAL_SELF_MANAGED.
10661
+ # regexMatch. For more information about regular expression syntax, see Syntax.
10662
+ # For matching against a port specified in the HTTP request, use a headerMatch
10663
+ # with headerName set to PORT and a regular expression that satisfies the
10664
+ # RFC2616 Host header's port specifier. Only one of exactMatch, prefixMatch,
10665
+ # suffixMatch, regexMatch, presentMatch or rangeMatch must be set. regexMatch
10666
+ # only applies to load balancers that have loadBalancingScheme set to
10667
+ # INTERNAL_SELF_MANAGED.
10251
10668
  # Corresponds to the JSON property `regexMatch`
10252
10669
  # @return [String]
10253
10670
  attr_accessor :regex_match
@@ -10542,8 +10959,8 @@ module Google
10542
10959
  include Google::Apis::Core::Hashable
10543
10960
 
10544
10961
  # The queryParameterMatch matches if the value of the parameter exactly matches
10545
- # the contents of exactMatch. Only one of presentMatch, exactMatch or regexMatch
10546
- # must be set.
10962
+ # the contents of exactMatch. Only one of presentMatch, exactMatch, or
10963
+ # regexMatch must be set.
10547
10964
  # Corresponds to the JSON property `exactMatch`
10548
10965
  # @return [String]
10549
10966
  attr_accessor :exact_match
@@ -10556,17 +10973,17 @@ module Google
10556
10973
 
10557
10974
  # Specifies that the queryParameterMatch matches if the request contains the
10558
10975
  # query parameter, irrespective of whether the parameter has a value or not.
10559
- # Only one of presentMatch, exactMatch or regexMatch must be set.
10976
+ # Only one of presentMatch, exactMatch, or regexMatch must be set.
10560
10977
  # Corresponds to the JSON property `presentMatch`
10561
10978
  # @return [Boolean]
10562
10979
  attr_accessor :present_match
10563
10980
  alias_method :present_match?, :present_match
10564
10981
 
10565
10982
  # The queryParameterMatch matches if the value of the parameter matches the
10566
- # regular expression specified by regexMatch. For the regular expression grammar,
10567
- # please see github.com/google/re2/wiki/Syntax Only one of presentMatch,
10568
- # exactMatch or regexMatch must be set. Note that regexMatch only applies when
10569
- # the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.
10983
+ # regular expression specified by regexMatch. For more information about regular
10984
+ # expression syntax, see Syntax. Only one of presentMatch, exactMatch, or
10985
+ # regexMatch must be set. regexMatch only applies when the loadBalancingScheme
10986
+ # is set to INTERNAL_SELF_MANAGED.
10570
10987
  # Corresponds to the JSON property `regexMatch`
10571
10988
  # @return [String]
10572
10989
  attr_accessor :regex_match
@@ -10588,15 +11005,15 @@ module Google
10588
11005
  class HttpRedirectAction
10589
11006
  include Google::Apis::Core::Hashable
10590
11007
 
10591
- # The host that will be used in the redirect response instead of the one that
10592
- # was supplied in the request. The value must be between 1 and 255 characters.
11008
+ # The host that is used in the redirect response instead of the one that was
11009
+ # supplied in the request. The value must be from 1 to 255 characters.
10593
11010
  # Corresponds to the JSON property `hostRedirect`
10594
11011
  # @return [String]
10595
11012
  attr_accessor :host_redirect
10596
11013
 
10597
- # If set to true, the URL scheme in the redirected request is set to https. If
10598
- # set to false, the URL scheme of the redirected request will remain the same as
10599
- # that of the request. This must only be set for UrlMaps used in
11014
+ # If set to true, the URL scheme in the redirected request is set to HTTPS. If
11015
+ # set to false, the URL scheme of the redirected request remains the same as
11016
+ # that of the request. This must only be set for URL maps used in
10600
11017
  # TargetHttpProxys. Setting this true for TargetHttpsProxy is not permitted. The
10601
11018
  # default is set to false.
10602
11019
  # Corresponds to the JSON property `httpsRedirect`
@@ -10604,11 +11021,11 @@ module Google
10604
11021
  attr_accessor :https_redirect
10605
11022
  alias_method :https_redirect?, :https_redirect
10606
11023
 
10607
- # The path that will be used in the redirect response instead of the one that
10608
- # was supplied in the request. pathRedirect cannot be supplied together with
11024
+ # The path that is used in the redirect response instead of the one that was
11025
+ # supplied in the request. pathRedirect cannot be supplied together with
10609
11026
  # prefixRedirect. Supply one alone or neither. If neither is supplied, the path
10610
- # of the original request will be used for the redirect. The value must be
10611
- # between 1 and 1024 characters.
11027
+ # of the original request is used for the redirect. The value must be from 1 to
11028
+ # 1024 characters.
10612
11029
  # Corresponds to the JSON property `pathRedirect`
10613
11030
  # @return [String]
10614
11031
  attr_accessor :path_redirect
@@ -10616,8 +11033,8 @@ module Google
10616
11033
  # The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,
10617
11034
  # retaining the remaining portion of the URL before redirecting the request.
10618
11035
  # prefixRedirect cannot be supplied together with pathRedirect. Supply one alone
10619
- # or neither. If neither is supplied, the path of the original request will be
10620
- # used for the redirect. The value must be between 1 and 1024 characters.
11036
+ # or neither. If neither is supplied, the path of the original request is used
11037
+ # for the redirect. The value must be from 1 to 1024 characters.
10621
11038
  # Corresponds to the JSON property `prefixRedirect`
10622
11039
  # @return [String]
10623
11040
  attr_accessor :prefix_redirect
@@ -10626,14 +11043,14 @@ module Google
10626
11043
  # MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. -
10627
11044
  # FOUND, which corresponds to 302. - SEE_OTHER which corresponds to 303. -
10628
11045
  # TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method
10629
- # will be retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case,
10630
- # the request method will be retained.
11046
+ # is retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case, the
11047
+ # request method is retained.
10631
11048
  # Corresponds to the JSON property `redirectResponseCode`
10632
11049
  # @return [String]
10633
11050
  attr_accessor :redirect_response_code
10634
11051
 
10635
11052
  # If set to true, any accompanying query portion of the original URL is removed
10636
- # prior to redirecting the request. If set to false, the query portion of the
11053
+ # before redirecting the request. If set to false, the query portion of the
10637
11054
  # original URL is retained. The default is set to false.
10638
11055
  # Corresponds to the JSON property `stripQuery`
10639
11056
  # @return [Boolean]
@@ -10674,25 +11091,27 @@ module Google
10674
11091
  attr_accessor :per_try_timeout
10675
11092
 
10676
11093
  # Specifies one or more conditions when this retry policy applies. Valid values
10677
- # are: - 5xx: Retry will be attempted if the instance or endpoint responds with
10678
- # any 5xx response code, or if the instance or endpoint does not respond at all,
10679
- # example: disconnects, reset, read timeout, connection failure, and refused
11094
+ # are: - 5xx: retry is attempted if the instance or endpoint responds with any
11095
+ # 5xx response code, or if the instance or endpoint does not respond at all. For
11096
+ # example, disconnects, reset, read timeout, connection failure, and refused
10680
11097
  # streams. - gateway-error: Similar to 5xx, but only applies to response codes
10681
- # 502, 503 or 504. - - connect-failure: A retry will be attempted on failures
10682
- # connecting to the instance or endpoint, for example due to connection timeouts.
10683
- # - retriable-4xx: A retry will be attempted if the instance or endpoint
10684
- # responds with a retriable 4xx response code. Currently the only retriable
10685
- # error supported is 409. - refused-stream: A retry will be attempted if the
10686
- # instance or endpoint resets the stream with a REFUSED_STREAM error code. This
10687
- # reset type indicates that it is safe to retry. - cancelled: A retry will be
10688
- # attempted if the gRPC status code in the response header is set to cancelled. -
10689
- # deadline-exceeded: A retry will be attempted if the gRPC status code in the
10690
- # response header is set to deadline-exceeded. - internal: A retry will be
10691
- # attempted if the gRPC status code in the response header is set to internal. -
10692
- # resource-exhausted: A retry will be attempted if the gRPC status code in the
10693
- # response header is set to resource-exhausted. - unavailable: A retry will be
10694
- # attempted if the gRPC status code in the response header is set to unavailable.
10695
- #
11098
+ # 502, 503 or 504. - connect-failure: a retry is attempted on failures
11099
+ # connecting to the instance or endpoint. For example, connection timeouts. -
11100
+ # retriable-4xx: a retry is attempted if the instance or endpoint responds with
11101
+ # a 4xx response code. The only error that you can retry is error code 409. -
11102
+ # refused-stream: a retry is attempted if the instance or endpoint resets the
11103
+ # stream with a REFUSED_STREAM error code. This reset type indicates that it is
11104
+ # safe to retry. - cancelled: a retry is attempted if the gRPC status code in
11105
+ # the response header is set to cancelled. - deadline-exceeded: a retry is
11106
+ # attempted if the gRPC status code in the response header is set to deadline-
11107
+ # exceeded. - internal: a retry is attempted if the gRPC status code in the
11108
+ # response header is set to internal. - resource-exhausted: a retry is attempted
11109
+ # if the gRPC status code in the response header is set to resource-exhausted. -
11110
+ # unavailable: a retry is attempted if the gRPC status code in the response
11111
+ # header is set to unavailable. Only the following codes are supported when the
11112
+ # URL map is bound to target gRPC proxy that has validateForProxyless field set
11113
+ # to true. - cancelled - deadline-exceeded - internal - resource-exhausted -
11114
+ # unavailable
10696
11115
  # Corresponds to the JSON property `retryConditions`
10697
11116
  # @return [Array<String>]
10698
11117
  attr_accessor :retry_conditions
@@ -10713,8 +11132,9 @@ module Google
10713
11132
  class HttpRouteAction
10714
11133
  include Google::Apis::Core::Hashable
10715
11134
 
10716
- # The specification for allowing client side cross-origin requests. Please see
10717
- # W3C Recommendation for Cross Origin Resource Sharing
11135
+ # The specification for allowing client-side cross-origin requests. For more
11136
+ # information about the W3C recommendation for cross-origin resource sharing (
11137
+ # CORS), see Fetch API Living Standard.
10718
11138
  # Corresponds to the JSON property `corsPolicy`
10719
11139
  # @return [Google::Apis::ComputeV1::CorsPolicy]
10720
11140
  attr_accessor :cors_policy
@@ -10722,9 +11142,9 @@ module Google
10722
11142
  # The specification for fault injection introduced into traffic to test the
10723
11143
  # resiliency of clients to backend service failure. As part of fault injection,
10724
11144
  # when clients send requests to a backend service, delays can be introduced by
10725
- # Loadbalancer on a percentage of requests before sending those request to the
10726
- # backend service. Similarly requests from clients can be aborted by the
10727
- # Loadbalancer for a percentage of requests.
11145
+ # the load balancer on a percentage of requests before sending those request to
11146
+ # the backend service. Similarly requests from clients can be aborted by the
11147
+ # load balancer for a percentage of requests.
10728
11148
  # Corresponds to the JSON property `faultInjectionPolicy`
10729
11149
  # @return [Google::Apis::ComputeV1::HttpFaultInjection]
10730
11150
  attr_accessor :fault_injection_policy
@@ -10738,9 +11158,9 @@ module Google
10738
11158
  attr_accessor :max_stream_duration
10739
11159
 
10740
11160
  # A policy that specifies how requests intended for the route's backends are
10741
- # shadowed to a separate mirrored backend service. Loadbalancer does not wait
10742
- # for responses from the shadow service. Prior to sending traffic to the shadow
10743
- # service, the host / authority header is suffixed with -shadow.
11161
+ # shadowed to a separate mirrored backend service. The load balancer doesn't
11162
+ # wait for responses from the shadow service. Before sending traffic to the
11163
+ # shadow service, the host or authority header is suffixed with -shadow.
10744
11164
  # Corresponds to the JSON property `requestMirrorPolicy`
10745
11165
  # @return [Google::Apis::ComputeV1::RequestMirrorPolicy]
10746
11166
  attr_accessor :request_mirror_policy
@@ -10768,7 +11188,7 @@ module Google
10768
11188
  # occurs. The weights determine the fraction of traffic that flows to their
10769
11189
  # corresponding backend service. If all traffic needs to go to a single backend
10770
11190
  # service, there must be one weightedBackendService with weight set to a non-
10771
- # zero number. Once a backendService is identified and before forwarding the
11191
+ # zero number. After a backend service is identified and before forwarding the
10772
11192
  # request to the backend service, advanced routing actions such as URL rewrites
10773
11193
  # and header transformations are applied depending on additional settings
10774
11194
  # specified in this HttpRouteAction.
@@ -10793,8 +11213,8 @@ module Google
10793
11213
  end
10794
11214
  end
10795
11215
 
10796
- # An HttpRouteRule specifies how to match an HTTP request and the corresponding
10797
- # routing action that load balancing proxies will perform.
11216
+ # The HttpRouteRule setting specifies how to match an HTTP request and the
11217
+ # corresponding routing action that load balancing proxies perform.
10798
11218
  class HttpRouteRule
10799
11219
  include Google::Apis::Core::Hashable
10800
11220
 
@@ -10820,11 +11240,11 @@ module Google
10820
11240
  attr_accessor :match_rules
10821
11241
 
10822
11242
  # For routeRules within a given pathMatcher, priority determines the order in
10823
- # which load balancer will interpret routeRules. RouteRules are evaluated in
10824
- # order of priority, from the lowest to highest number. The priority of a rule
11243
+ # which a load balancer interprets routeRules. RouteRules are evaluated in order
11244
+ # of priority, from the lowest to highest number. The priority of a rule
10825
11245
  # decreases as its number increases (1, 2, 3, N+1). The first rule that matches
10826
11246
  # the request is applied. You cannot configure two or more routeRules with the
10827
- # same priority. Priority for each rule must be set to a number between 0 and
11247
+ # same priority. Priority for each rule must be set to a number from 0 to
10828
11248
  # 2147483647 inclusive. Priority numbers can have gaps, which enable you to add
10829
11249
  # or remove rules in the future without affecting the rest of the rules. For
10830
11250
  # example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to
@@ -10835,24 +11255,24 @@ module Google
10835
11255
  attr_accessor :priority
10836
11256
 
10837
11257
  # In response to a matching matchRule, the load balancer performs advanced
10838
- # routing actions like URL rewrites, header transformations, etc. prior to
11258
+ # routing actions, such as URL rewrites and header transformations, before
10839
11259
  # forwarding the request to the selected backend. If routeAction specifies any
10840
11260
  # weightedBackendServices, service must not be set. Conversely if service is set,
10841
11261
  # routeAction cannot contain any weightedBackendServices. Only one of
10842
11262
  # urlRedirect, service or routeAction.weightedBackendService must be set.
10843
11263
  # UrlMaps for external HTTP(S) load balancers support only the urlRewrite action
10844
- # within a routeRule's routeAction.
11264
+ # within a route rule's routeAction.
10845
11265
  # Corresponds to the JSON property `routeAction`
10846
11266
  # @return [Google::Apis::ComputeV1::HttpRouteAction]
10847
11267
  attr_accessor :route_action
10848
11268
 
10849
11269
  # The full or partial URL of the backend service resource to which traffic is
10850
- # directed if this rule is matched. If routeAction is additionally specified,
10851
- # advanced routing actions like URL Rewrites, etc. take effect prior to sending
10852
- # the request to the backend. However, if service is specified, routeAction
10853
- # cannot contain any weightedBackendService s. Conversely, if routeAction
10854
- # specifies any weightedBackendServices, service must not be specified. Only one
10855
- # of urlRedirect, service or routeAction.weightedBackendService must be set.
11270
+ # directed if this rule is matched. If routeAction is also specified, advanced
11271
+ # routing actions, such as URL rewrites, take effect before sending the request
11272
+ # to the backend. However, if service is specified, routeAction cannot contain
11273
+ # any weightedBackendServices. Conversely, if routeAction specifies any
11274
+ # weightedBackendServices, service must not be specified. Only one of
11275
+ # urlRedirect, service or routeAction.weightedBackendService must be set.
10856
11276
  # Corresponds to the JSON property `service`
10857
11277
  # @return [String]
10858
11278
  attr_accessor :service
@@ -10885,9 +11305,9 @@ module Google
10885
11305
 
10886
11306
  # For satisfying the matchRule condition, the path of the request must exactly
10887
11307
  # match the value specified in fullPathMatch after removing any query parameters
10888
- # and anchor that may be part of the original URL. fullPathMatch must be between
10889
- # 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch
10890
- # must be specified.
11308
+ # and anchor that may be part of the original URL. fullPathMatch must be from 1
11309
+ # to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must
11310
+ # be specified.
10891
11311
  # Corresponds to the JSON property `fullPathMatch`
10892
11312
  # @return [String]
10893
11313
  attr_accessor :full_path_match
@@ -10900,53 +11320,52 @@ module Google
10900
11320
 
10901
11321
  # Specifies that prefixMatch and fullPathMatch matches are case sensitive. The
10902
11322
  # default value is false. ignoreCase must not be used with regexMatch. Not
10903
- # supported when the URL map is bound to target gRPC proxy.
11323
+ # supported when the URL map is bound to a target gRPC proxy.
10904
11324
  # Corresponds to the JSON property `ignoreCase`
10905
11325
  # @return [Boolean]
10906
11326
  attr_accessor :ignore_case
10907
11327
  alias_method :ignore_case?, :ignore_case
10908
11328
 
10909
- # Opaque filter criteria used by Loadbalancer to restrict routing configuration
10910
- # to a limited set of xDS compliant clients. In their xDS requests to
10911
- # Loadbalancer, xDS clients present node metadata. When there is a match, the
10912
- # relevant routing configuration is made available to those proxies. For each
10913
- # metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY,
10914
- # at least one of the filterLabels must match the corresponding label provided
10915
- # in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of
10916
- # its filterLabels must match with corresponding labels provided in the metadata.
10917
- # If multiple metadataFilters are specified, all of them need to be satisfied
10918
- # in order to be considered a match. metadataFilters specified here will be
11329
+ # Opaque filter criteria used by the load balancer to restrict routing
11330
+ # configuration to a limited set of xDS compliant clients. In their xDS requests
11331
+ # to the load balancer, xDS clients present node metadata. When there is a match,
11332
+ # the relevant routing configuration is made available to those proxies. For
11333
+ # each metadataFilter in this list, if its filterMatchCriteria is set to
11334
+ # MATCH_ANY, at least one of the filterLabels must match the corresponding label
11335
+ # provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then
11336
+ # all of its filterLabels must match with corresponding labels provided in the
11337
+ # metadata. If multiple metadata filters are specified, all of them need to be
11338
+ # satisfied in order to be considered a match. metadataFilters specified here is
10919
11339
  # applied after those specified in ForwardingRule that refers to the UrlMap this
10920
- # HttpRouteRuleMatch belongs to. metadataFilters only applies to Loadbalancers
10921
- # that have their loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not
10922
- # supported when the URL map is bound to target gRPC proxy that has
10923
- # validateForProxyless field set to true.
11340
+ # HttpRouteRuleMatch belongs to. metadataFilters only applies to load balancers
11341
+ # that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not supported when
11342
+ # the URL map is bound to a target gRPC proxy that has validateForProxyless
11343
+ # field set to true.
10924
11344
  # Corresponds to the JSON property `metadataFilters`
10925
11345
  # @return [Array<Google::Apis::ComputeV1::MetadataFilter>]
10926
11346
  attr_accessor :metadata_filters
10927
11347
 
10928
11348
  # For satisfying the matchRule condition, the request's path must begin with the
10929
- # specified prefixMatch. prefixMatch must begin with a /. The value must be
10930
- # between 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or
10931
- # regexMatch must be specified.
11349
+ # specified prefixMatch. prefixMatch must begin with a /. The value must be from
11350
+ # 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch
11351
+ # must be specified.
10932
11352
  # Corresponds to the JSON property `prefixMatch`
10933
11353
  # @return [String]
10934
11354
  attr_accessor :prefix_match
10935
11355
 
10936
11356
  # Specifies a list of query parameter match criteria, all of which must match
10937
11357
  # corresponding query parameters in the request. Not supported when the URL map
10938
- # is bound to target gRPC proxy.
11358
+ # is bound to a target gRPC proxy.
10939
11359
  # Corresponds to the JSON property `queryParameterMatches`
10940
11360
  # @return [Array<Google::Apis::ComputeV1::HttpQueryParameterMatch>]
10941
11361
  attr_accessor :query_parameter_matches
10942
11362
 
10943
11363
  # For satisfying the matchRule condition, the path of the request must satisfy
10944
11364
  # the regular expression specified in regexMatch after removing any query
10945
- # parameters and anchor supplied with the original URL. For regular expression
10946
- # grammar please see github.com/google/re2/wiki/Syntax Only one of prefixMatch,
10947
- # fullPathMatch or regexMatch must be specified. Note that regexMatch only
10948
- # applies to Loadbalancers that have their loadBalancingScheme set to
10949
- # INTERNAL_SELF_MANAGED.
11365
+ # parameters and anchor supplied with the original URL. For more information
11366
+ # about regular expression syntax, see Syntax. Only one of prefixMatch,
11367
+ # fullPathMatch or regexMatch must be specified. regexMatch only applies to load
11368
+ # balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED.
10950
11369
  # Corresponds to the JSON property `regexMatch`
10951
11370
  # @return [String]
10952
11371
  attr_accessor :regex_match
@@ -11234,8 +11653,8 @@ module Google
11234
11653
  attr_accessor :family
11235
11654
 
11236
11655
  # A list of features to enable on the guest operating system. Applicable only
11237
- # for bootable images. Read Enabling guest operating system features to see a
11238
- # list of available options.
11656
+ # for bootable images. To see a list of available options, see the
11657
+ # guestOSfeatures[].type parameter.
11239
11658
  # Corresponds to the JSON property `guestOsFeatures`
11240
11659
  # @return [Array<Google::Apis::ComputeV1::GuestOsFeature>]
11241
11660
  attr_accessor :guest_os_features
@@ -11838,6 +12257,11 @@ module Google
11838
12257
  # @return [Array<Google::Apis::ComputeV1::NetworkInterface>]
11839
12258
  attr_accessor :network_interfaces
11840
12259
 
12260
+ #
12261
+ # Corresponds to the JSON property `networkPerformanceConfig`
12262
+ # @return [Google::Apis::ComputeV1::NetworkPerformanceConfig]
12263
+ attr_accessor :network_performance_config
12264
+
11841
12265
  # The private IPv6 google access type for the VM. If not specified, use
11842
12266
  # INHERIT_FROM_SUBNETWORK as default.
11843
12267
  # Corresponds to the JSON property `privateIpv6GoogleAccess`
@@ -11890,6 +12314,17 @@ module Google
11890
12314
  # @return [Google::Apis::ComputeV1::ShieldedInstanceIntegrityPolicy]
11891
12315
  attr_accessor :shielded_instance_integrity_policy
11892
12316
 
12317
+ # Source machine image
12318
+ # Corresponds to the JSON property `sourceMachineImage`
12319
+ # @return [String]
12320
+ attr_accessor :source_machine_image
12321
+
12322
+ # Source machine image encryption key when creating an instance from a machine
12323
+ # image.
12324
+ # Corresponds to the JSON property `sourceMachineImageEncryptionKey`
12325
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
12326
+ attr_accessor :source_machine_image_encryption_key
12327
+
11893
12328
  # [Output Only] Whether a VM has been restricted for start because Compute
11894
12329
  # Engine has detected suspicious activity.
11895
12330
  # Corresponds to the JSON property `startRestricted`
@@ -11952,6 +12387,7 @@ module Google
11952
12387
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
11953
12388
  @name = args[:name] if args.key?(:name)
11954
12389
  @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
12390
+ @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
11955
12391
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
11956
12392
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
11957
12393
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
@@ -11961,6 +12397,8 @@ module Google
11961
12397
  @service_accounts = args[:service_accounts] if args.key?(:service_accounts)
11962
12398
  @shielded_instance_config = args[:shielded_instance_config] if args.key?(:shielded_instance_config)
11963
12399
  @shielded_instance_integrity_policy = args[:shielded_instance_integrity_policy] if args.key?(:shielded_instance_integrity_policy)
12400
+ @source_machine_image = args[:source_machine_image] if args.key?(:source_machine_image)
12401
+ @source_machine_image_encryption_key = args[:source_machine_image_encryption_key] if args.key?(:source_machine_image_encryption_key)
11964
12402
  @start_restricted = args[:start_restricted] if args.key?(:start_restricted)
11965
12403
  @status = args[:status] if args.key?(:status)
11966
12404
  @status_message = args[:status_message] if args.key?(:status_message)
@@ -13145,6 +13583,17 @@ module Google
13145
13583
  # @return [String]
13146
13584
  attr_accessor :minimal_action
13147
13585
 
13586
+ # Most disruptive action that is allowed to be taken on an instance. You can
13587
+ # specify either NONE to forbid any actions, REFRESH to allow actions that do
13588
+ # not need instance restart, RESTART to allow actions that can be applied
13589
+ # without instance replacing or REPLACE to allow all possible actions. If the
13590
+ # Updater determines that the minimal update action needed is more disruptive
13591
+ # than most disruptive allowed action you specify it will not perform the update
13592
+ # at all.
13593
+ # Corresponds to the JSON property `mostDisruptiveAllowedAction`
13594
+ # @return [String]
13595
+ attr_accessor :most_disruptive_allowed_action
13596
+
13148
13597
  # What action should be used to replace instances. See minimal_action.REPLACE
13149
13598
  # Corresponds to the JSON property `replacementMethod`
13150
13599
  # @return [String]
@@ -13169,6 +13618,7 @@ module Google
13169
13618
  @max_surge = args[:max_surge] if args.key?(:max_surge)
13170
13619
  @max_unavailable = args[:max_unavailable] if args.key?(:max_unavailable)
13171
13620
  @minimal_action = args[:minimal_action] if args.key?(:minimal_action)
13621
+ @most_disruptive_allowed_action = args[:most_disruptive_allowed_action] if args.key?(:most_disruptive_allowed_action)
13172
13622
  @replacement_method = args[:replacement_method] if args.key?(:replacement_method)
13173
13623
  @type = args[:type] if args.key?(:type)
13174
13624
  end
@@ -14459,8 +14909,14 @@ module Google
14459
14909
  # @return [Array<Google::Apis::ComputeV1::NetworkInterface>]
14460
14910
  attr_accessor :network_interfaces
14461
14911
 
14912
+ # Note that for MachineImage, this is not supported yet.
14913
+ # Corresponds to the JSON property `networkPerformanceConfig`
14914
+ # @return [Google::Apis::ComputeV1::NetworkPerformanceConfig]
14915
+ attr_accessor :network_performance_config
14916
+
14462
14917
  # The private IPv6 google access type for VMs. If not specified, use
14463
- # INHERIT_FROM_SUBNETWORK as default.
14918
+ # INHERIT_FROM_SUBNETWORK as default. Note that for MachineImage, this is not
14919
+ # supported yet.
14464
14920
  # Corresponds to the JSON property `privateIpv6GoogleAccess`
14465
14921
  # @return [String]
14466
14922
  attr_accessor :private_ipv6_google_access
@@ -14471,7 +14927,7 @@ module Google
14471
14927
  attr_accessor :reservation_affinity
14472
14928
 
14473
14929
  # Resource policies (names, not ULRs) applied to instances created from these
14474
- # properties.
14930
+ # properties. Note that for MachineImage, this is not supported yet.
14475
14931
  # Corresponds to the JSON property `resourcePolicies`
14476
14932
  # @return [Array<String>]
14477
14933
  attr_accessor :resource_policies
@@ -14516,6 +14972,7 @@ module Google
14516
14972
  @metadata = args[:metadata] if args.key?(:metadata)
14517
14973
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
14518
14974
  @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
14975
+ @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
14519
14976
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
14520
14977
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
14521
14978
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
@@ -15278,6 +15735,14 @@ module Google
15278
15735
  # @return [Fixnum]
15279
15736
  attr_accessor :requested_link_count
15280
15737
 
15738
+ # [Output Only] Set to true if the resource satisfies the zone separation
15739
+ # organization policy constraints and false otherwise. Defaults to false if the
15740
+ # field is not present.
15741
+ # Corresponds to the JSON property `satisfiesPzs`
15742
+ # @return [Boolean]
15743
+ attr_accessor :satisfies_pzs
15744
+ alias_method :satisfies_pzs?, :satisfies_pzs
15745
+
15281
15746
  # [Output Only] Server-defined URL for the resource.
15282
15747
  # Corresponds to the JSON property `selfLink`
15283
15748
  # @return [String]
@@ -15320,6 +15785,7 @@ module Google
15320
15785
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
15321
15786
  @provisioned_link_count = args[:provisioned_link_count] if args.key?(:provisioned_link_count)
15322
15787
  @requested_link_count = args[:requested_link_count] if args.key?(:requested_link_count)
15788
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
15323
15789
  @self_link = args[:self_link] if args.key?(:self_link)
15324
15790
  @state = args[:state] if args.key?(:state)
15325
15791
  end
@@ -15380,7 +15846,10 @@ module Google
15380
15846
  # @return [String]
15381
15847
  attr_accessor :customer_router_ip_address
15382
15848
 
15383
- # [Output Only] Dataplane version for this InterconnectAttachment.
15849
+ # [Output only for types PARTNER and DEDICATED. Not present for PARTNER_PROVIDER.
15850
+ # ] Dataplane version for this InterconnectAttachment. This field is only
15851
+ # present for Dataplane version 2 and higher. Absence of this field in the API
15852
+ # output indicates that the Dataplane is version 1.
15384
15853
  # Corresponds to the JSON property `dataplaneVersion`
15385
15854
  # @return [Fixnum]
15386
15855
  attr_accessor :dataplane_version
@@ -15526,6 +15995,14 @@ module Google
15526
15995
  # @return [String]
15527
15996
  attr_accessor :router
15528
15997
 
15998
+ # [Output Only] Set to true if the resource satisfies the zone separation
15999
+ # organization policy constraints and false otherwise. Defaults to false if the
16000
+ # field is not present.
16001
+ # Corresponds to the JSON property `satisfiesPzs`
16002
+ # @return [Boolean]
16003
+ attr_accessor :satisfies_pzs
16004
+ alias_method :satisfies_pzs?, :satisfies_pzs
16005
+
15529
16006
  # [Output Only] Server-defined URL for the resource.
15530
16007
  # Corresponds to the JSON property `selfLink`
15531
16008
  # @return [String]
@@ -15595,6 +16072,7 @@ module Google
15595
16072
  @private_interconnect_info = args[:private_interconnect_info] if args.key?(:private_interconnect_info)
15596
16073
  @region = args[:region] if args.key?(:region)
15597
16074
  @router = args[:router] if args.key?(:router)
16075
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
15598
16076
  @self_link = args[:self_link] if args.key?(:self_link)
15599
16077
  @state = args[:state] if args.key?(:state)
15600
16078
  @type = args[:type] if args.key?(:type)
@@ -16422,6 +16900,13 @@ module Google
16422
16900
  # @return [String]
16423
16901
  attr_accessor :status
16424
16902
 
16903
+ # [Output Only] Set to true for locations that support physical zone separation.
16904
+ # Defaults to false if the field is not present.
16905
+ # Corresponds to the JSON property `supportsPzs`
16906
+ # @return [Boolean]
16907
+ attr_accessor :supports_pzs
16908
+ alias_method :supports_pzs?, :supports_pzs
16909
+
16425
16910
  def initialize(**args)
16426
16911
  update!(**args)
16427
16912
  end
@@ -16443,6 +16928,7 @@ module Google
16443
16928
  @region_infos = args[:region_infos] if args.key?(:region_infos)
16444
16929
  @self_link = args[:self_link] if args.key?(:self_link)
16445
16930
  @status = args[:status] if args.key?(:status)
16931
+ @supports_pzs = args[:supports_pzs] if args.key?(:supports_pzs)
16446
16932
  end
16447
16933
  end
16448
16934
 
@@ -17249,6 +17735,272 @@ module Google
17249
17735
  end
17250
17736
  end
17251
17737
 
17738
+ # Represents a machine image resource. A machine image is a Compute Engine
17739
+ # resource that stores all the configuration, metadata, permissions, and data
17740
+ # from one or more disks required to create a Virtual machine (VM) instance. For
17741
+ # more information, see Machine images.
17742
+ class MachineImage
17743
+ include Google::Apis::Core::Hashable
17744
+
17745
+ # [Output Only] The creation timestamp for this machine image in RFC3339 text
17746
+ # format.
17747
+ # Corresponds to the JSON property `creationTimestamp`
17748
+ # @return [String]
17749
+ attr_accessor :creation_timestamp
17750
+
17751
+ # An optional description of this resource. Provide this property when you
17752
+ # create the resource.
17753
+ # Corresponds to the JSON property `description`
17754
+ # @return [String]
17755
+ attr_accessor :description
17756
+
17757
+ # [Input Only] Whether to attempt an application consistent machine image by
17758
+ # informing the OS to prepare for the snapshot process. Currently only supported
17759
+ # on Windows instances using the Volume Shadow Copy Service (VSS).
17760
+ # Corresponds to the JSON property `guestFlush`
17761
+ # @return [Boolean]
17762
+ attr_accessor :guest_flush
17763
+ alias_method :guest_flush?, :guest_flush
17764
+
17765
+ # [Output Only] A unique identifier for this machine image. The server defines
17766
+ # this identifier.
17767
+ # Corresponds to the JSON property `id`
17768
+ # @return [Fixnum]
17769
+ attr_accessor :id
17770
+
17771
+ # [Output Only] Properties of source instance
17772
+ # Corresponds to the JSON property `instanceProperties`
17773
+ # @return [Google::Apis::ComputeV1::InstanceProperties]
17774
+ attr_accessor :instance_properties
17775
+
17776
+ # [Output Only] The resource type, which is always compute#machineImage for
17777
+ # machine image.
17778
+ # Corresponds to the JSON property `kind`
17779
+ # @return [String]
17780
+ attr_accessor :kind
17781
+
17782
+ # Encrypts the machine image using a customer-supplied encryption key. After you
17783
+ # encrypt a machine image using a customer-supplied key, you must provide the
17784
+ # same key if you use the machine image later. For example, you must provide the
17785
+ # encryption key when you create an instance from the encrypted machine image in
17786
+ # a future request. Customer-supplied encryption keys do not protect access to
17787
+ # metadata of the machine image. If you do not provide an encryption key when
17788
+ # creating the machine image, then the machine image will be encrypted using an
17789
+ # automatically generated key and you do not need to provide a key to use the
17790
+ # machine image later.
17791
+ # Corresponds to the JSON property `machineImageEncryptionKey`
17792
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
17793
+ attr_accessor :machine_image_encryption_key
17794
+
17795
+ # Name of the resource; provided by the client when the resource is created. The
17796
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
17797
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
17798
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
17799
+ # and all following characters must be a dash, lowercase letter, or digit,
17800
+ # except the last character, which cannot be a dash.
17801
+ # Corresponds to the JSON property `name`
17802
+ # @return [String]
17803
+ attr_accessor :name
17804
+
17805
+ # [Output Only] Reserved for future use.
17806
+ # Corresponds to the JSON property `satisfiesPzs`
17807
+ # @return [Boolean]
17808
+ attr_accessor :satisfies_pzs
17809
+ alias_method :satisfies_pzs?, :satisfies_pzs
17810
+
17811
+ # An array of Machine Image specific properties for disks attached to the source
17812
+ # instance
17813
+ # Corresponds to the JSON property `savedDisks`
17814
+ # @return [Array<Google::Apis::ComputeV1::SavedDisk>]
17815
+ attr_accessor :saved_disks
17816
+
17817
+ # [Output Only] The URL for this machine image. The server defines this URL.
17818
+ # Corresponds to the JSON property `selfLink`
17819
+ # @return [String]
17820
+ attr_accessor :self_link
17821
+
17822
+ # [Input Only] The customer-supplied encryption key of the disks attached to the
17823
+ # source instance. Required if the source disk is protected by a customer-
17824
+ # supplied encryption key.
17825
+ # Corresponds to the JSON property `sourceDiskEncryptionKeys`
17826
+ # @return [Array<Google::Apis::ComputeV1::SourceDiskEncryptionKey>]
17827
+ attr_accessor :source_disk_encryption_keys
17828
+
17829
+ # The source instance used to create the machine image. You can provide this as
17830
+ # a partial or full URL to the resource. For example, the following are valid
17831
+ # values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /
17832
+ # instances/instance - projects/project/zones/zone/instances/instance
17833
+ # Corresponds to the JSON property `sourceInstance`
17834
+ # @return [String]
17835
+ attr_accessor :source_instance
17836
+
17837
+ # DEPRECATED: Please use compute#instanceProperties instead. New properties will
17838
+ # not be added to this field.
17839
+ # Corresponds to the JSON property `sourceInstanceProperties`
17840
+ # @return [Google::Apis::ComputeV1::SourceInstanceProperties]
17841
+ attr_accessor :source_instance_properties
17842
+
17843
+ # [Output Only] The status of the machine image. One of the following values:
17844
+ # INVALID, CREATING, READY, DELETING, and UPLOADING.
17845
+ # Corresponds to the JSON property `status`
17846
+ # @return [String]
17847
+ attr_accessor :status
17848
+
17849
+ # The regional or multi-regional Cloud Storage bucket location where the machine
17850
+ # image is stored.
17851
+ # Corresponds to the JSON property `storageLocations`
17852
+ # @return [Array<String>]
17853
+ attr_accessor :storage_locations
17854
+
17855
+ # [Output Only] Total size of the storage used by the machine image.
17856
+ # Corresponds to the JSON property `totalStorageBytes`
17857
+ # @return [Fixnum]
17858
+ attr_accessor :total_storage_bytes
17859
+
17860
+ def initialize(**args)
17861
+ update!(**args)
17862
+ end
17863
+
17864
+ # Update properties of this object
17865
+ def update!(**args)
17866
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
17867
+ @description = args[:description] if args.key?(:description)
17868
+ @guest_flush = args[:guest_flush] if args.key?(:guest_flush)
17869
+ @id = args[:id] if args.key?(:id)
17870
+ @instance_properties = args[:instance_properties] if args.key?(:instance_properties)
17871
+ @kind = args[:kind] if args.key?(:kind)
17872
+ @machine_image_encryption_key = args[:machine_image_encryption_key] if args.key?(:machine_image_encryption_key)
17873
+ @name = args[:name] if args.key?(:name)
17874
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
17875
+ @saved_disks = args[:saved_disks] if args.key?(:saved_disks)
17876
+ @self_link = args[:self_link] if args.key?(:self_link)
17877
+ @source_disk_encryption_keys = args[:source_disk_encryption_keys] if args.key?(:source_disk_encryption_keys)
17878
+ @source_instance = args[:source_instance] if args.key?(:source_instance)
17879
+ @source_instance_properties = args[:source_instance_properties] if args.key?(:source_instance_properties)
17880
+ @status = args[:status] if args.key?(:status)
17881
+ @storage_locations = args[:storage_locations] if args.key?(:storage_locations)
17882
+ @total_storage_bytes = args[:total_storage_bytes] if args.key?(:total_storage_bytes)
17883
+ end
17884
+ end
17885
+
17886
+ # A list of machine images.
17887
+ class MachineImageList
17888
+ include Google::Apis::Core::Hashable
17889
+
17890
+ # [Output Only] Unique identifier for the resource; defined by the server.
17891
+ # Corresponds to the JSON property `id`
17892
+ # @return [String]
17893
+ attr_accessor :id
17894
+
17895
+ # A list of MachineImage resources.
17896
+ # Corresponds to the JSON property `items`
17897
+ # @return [Array<Google::Apis::ComputeV1::MachineImage>]
17898
+ attr_accessor :items
17899
+
17900
+ # [Output Only] The resource type, which is always compute#
17901
+ # machineImagesListResponse for machine image lists.
17902
+ # Corresponds to the JSON property `kind`
17903
+ # @return [String]
17904
+ attr_accessor :kind
17905
+
17906
+ # [Output Only] This token allows you to get the next page of results for list
17907
+ # requests. If the number of results is larger than maxResults, use the
17908
+ # nextPageToken as a value for the query parameter pageToken in the next list
17909
+ # request. Subsequent list requests will have their own nextPageToken to
17910
+ # continue paging through the results.
17911
+ # Corresponds to the JSON property `nextPageToken`
17912
+ # @return [String]
17913
+ attr_accessor :next_page_token
17914
+
17915
+ # [Output Only] Server-defined URL for this resource.
17916
+ # Corresponds to the JSON property `selfLink`
17917
+ # @return [String]
17918
+ attr_accessor :self_link
17919
+
17920
+ # [Output Only] Informational warning message.
17921
+ # Corresponds to the JSON property `warning`
17922
+ # @return [Google::Apis::ComputeV1::MachineImageList::Warning]
17923
+ attr_accessor :warning
17924
+
17925
+ def initialize(**args)
17926
+ update!(**args)
17927
+ end
17928
+
17929
+ # Update properties of this object
17930
+ def update!(**args)
17931
+ @id = args[:id] if args.key?(:id)
17932
+ @items = args[:items] if args.key?(:items)
17933
+ @kind = args[:kind] if args.key?(:kind)
17934
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
17935
+ @self_link = args[:self_link] if args.key?(:self_link)
17936
+ @warning = args[:warning] if args.key?(:warning)
17937
+ end
17938
+
17939
+ # [Output Only] Informational warning message.
17940
+ class Warning
17941
+ include Google::Apis::Core::Hashable
17942
+
17943
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
17944
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
17945
+ # Corresponds to the JSON property `code`
17946
+ # @return [String]
17947
+ attr_accessor :code
17948
+
17949
+ # [Output Only] Metadata about this warning in key: value format. For example: "
17950
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
17951
+ # Corresponds to the JSON property `data`
17952
+ # @return [Array<Google::Apis::ComputeV1::MachineImageList::Warning::Datum>]
17953
+ attr_accessor :data
17954
+
17955
+ # [Output Only] A human-readable description of the warning code.
17956
+ # Corresponds to the JSON property `message`
17957
+ # @return [String]
17958
+ attr_accessor :message
17959
+
17960
+ def initialize(**args)
17961
+ update!(**args)
17962
+ end
17963
+
17964
+ # Update properties of this object
17965
+ def update!(**args)
17966
+ @code = args[:code] if args.key?(:code)
17967
+ @data = args[:data] if args.key?(:data)
17968
+ @message = args[:message] if args.key?(:message)
17969
+ end
17970
+
17971
+ #
17972
+ class Datum
17973
+ include Google::Apis::Core::Hashable
17974
+
17975
+ # [Output Only] A key that provides more detail on the warning being returned.
17976
+ # For example, for warnings where there are no results in a list request for a
17977
+ # particular zone, this key might be scope and the key value might be the zone
17978
+ # name. Other examples might be a key indicating a deprecated resource and a
17979
+ # suggested replacement, or a warning about invalid network settings (for
17980
+ # example, if an instance attempts to perform IP forwarding but is not enabled
17981
+ # for IP forwarding).
17982
+ # Corresponds to the JSON property `key`
17983
+ # @return [String]
17984
+ attr_accessor :key
17985
+
17986
+ # [Output Only] A warning data value corresponding to the key.
17987
+ # Corresponds to the JSON property `value`
17988
+ # @return [String]
17989
+ attr_accessor :value
17990
+
17991
+ def initialize(**args)
17992
+ update!(**args)
17993
+ end
17994
+
17995
+ # Update properties of this object
17996
+ def update!(**args)
17997
+ @key = args[:key] if args.key?(:key)
17998
+ @value = args[:value] if args.key?(:value)
17999
+ end
18000
+ end
18001
+ end
18002
+ end
18003
+
17252
18004
  # Represents a Machine Type resource. You can use specific machine types for
17253
18005
  # your VM instances based on performance and pricing requirements. For more
17254
18006
  # information, read Machine Types.
@@ -18027,18 +18779,18 @@ module Google
18027
18779
  end
18028
18780
  end
18029
18781
 
18030
- # Opaque filter criteria used by loadbalancers to restrict routing configuration
18031
- # to a limited set of loadbalancing proxies. Proxies and sidecars involved in
18032
- # loadbalancing would typically present metadata to the loadbalancers which need
18033
- # to match criteria specified here. If a match takes place, the relevant
18034
- # configuration is made available to those proxies. For each metadataFilter in
18035
- # this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the
18036
- # filterLabels must match the corresponding label provided in the metadata. If
18037
- # its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must
18038
- # match with corresponding labels provided in the metadata. An example for using
18039
- # metadataFilters would be: if loadbalancing involves Envoys, they will only
18040
- # receive routing configuration when values in metadataFilters match values
18041
- # supplied in of their XDS requests to loadbalancers.
18782
+ # Opaque filter criteria used by load balancers to restrict routing
18783
+ # configuration to a limited set of load balancing proxies. Proxies and sidecars
18784
+ # involved in load balancing would typically present metadata to the load
18785
+ # balancers that need to match criteria specified here. If a match takes place,
18786
+ # the relevant configuration is made available to those proxies. For each
18787
+ # metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY,
18788
+ # at least one of the filterLabels must match the corresponding label provided
18789
+ # in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of
18790
+ # its filterLabels must match with corresponding labels provided in the metadata.
18791
+ # An example for using metadataFilters would be: if load balancing involves
18792
+ # Envoys, they receive routing configuration when values in metadataFilters
18793
+ # match values supplied in of their XDS requests to loadbalancers.
18042
18794
  class MetadataFilter
18043
18795
  include Google::Apis::Core::Hashable
18044
18796
 
@@ -18049,11 +18801,11 @@ module Google
18049
18801
  # @return [Array<Google::Apis::ComputeV1::MetadataFilterLabelMatch>]
18050
18802
  attr_accessor :filter_labels
18051
18803
 
18052
- # Specifies how individual filterLabel matches within the list of filterLabels
18053
- # contribute towards the overall metadataFilter match. Supported values are: -
18054
- # MATCH_ANY: At least one of the filterLabels must have a matching label in the
18055
- # provided metadata. - MATCH_ALL: All filterLabels must have matching labels in
18056
- # the provided metadata.
18804
+ # Specifies how individual filter label matches within the list of filterLabels
18805
+ # and contributes toward the overall metadataFilter match. Supported values are:
18806
+ # - MATCH_ANY: at least one of the filterLabels must have a matching label in
18807
+ # the provided metadata. - MATCH_ALL: all filterLabels must have matching labels
18808
+ # in the provided metadata.
18057
18809
  # Corresponds to the JSON property `filterMatchCriteria`
18058
18810
  # @return [String]
18059
18811
  attr_accessor :filter_match_criteria
@@ -18070,7 +18822,7 @@ module Google
18070
18822
  end
18071
18823
 
18072
18824
  # MetadataFilter label name value pairs that are expected to match corresponding
18073
- # labels presented as metadata to the loadbalancer.
18825
+ # labels presented as metadata to the load balancer.
18074
18826
  class MetadataFilterLabelMatch
18075
18827
  include Google::Apis::Core::Hashable
18076
18828
 
@@ -19139,14 +19891,15 @@ module Google
19139
19891
  # @return [String]
19140
19892
  attr_accessor :name
19141
19893
 
19142
- # URL of the network resource for this instance. When creating an instance, if
19143
- # neither the network nor the subnetwork is specified, the default network
19144
- # global/networks/default is used; if the network is not specified but the
19145
- # subnetwork is specified, the network is inferred. If you specify this property,
19146
- # you can specify the network as a full or partial URL. For example, the
19147
- # following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/
19148
- # project/global/networks/ network - projects/project/global/networks/network -
19149
- # global/networks/default
19894
+ # URL of the VPC network resource for this instance. When creating an instance,
19895
+ # if neither the network nor the subnetwork is specified, the default network
19896
+ # global/networks/default is used. If the selected project doesn't have the
19897
+ # default network, you must specify a network or subnet. If the network is not
19898
+ # specified but the subnetwork is specified, the network is inferred. If you
19899
+ # specify this property, you can specify the network as a full or partial URL.
19900
+ # For example, the following are all valid URLs: - https://www.googleapis.com/
19901
+ # compute/v1/projects/project/global/networks/ network - projects/project/global/
19902
+ # networks/network - global/networks/default
19150
19903
  # Corresponds to the JSON property `network`
19151
19904
  # @return [String]
19152
19905
  attr_accessor :network
@@ -19355,7 +20108,8 @@ module Google
19355
20108
  attr_accessor :exchange_subnet_routes
19356
20109
  alias_method :exchange_subnet_routes?, :exchange_subnet_routes
19357
20110
 
19358
- # Whether to export the custom routes to peer network.
20111
+ # Whether to export the custom routes to peer network. The default value is
20112
+ # false.
19359
20113
  # Corresponds to the JSON property `exportCustomRoutes`
19360
20114
  # @return [Boolean]
19361
20115
  attr_accessor :export_custom_routes
@@ -19369,7 +20123,8 @@ module Google
19369
20123
  attr_accessor :export_subnet_routes_with_public_ip
19370
20124
  alias_method :export_subnet_routes_with_public_ip?, :export_subnet_routes_with_public_ip
19371
20125
 
19372
- # Whether to import the custom routes from peer network.
20126
+ # Whether to import the custom routes from peer network. The default value is
20127
+ # false.
19373
20128
  # Corresponds to the JSON property `importCustomRoutes`
19374
20129
  # @return [Boolean]
19375
20130
  attr_accessor :import_custom_routes
@@ -19437,6 +20192,25 @@ module Google
19437
20192
  end
19438
20193
  end
19439
20194
 
20195
+ #
20196
+ class NetworkPerformanceConfig
20197
+ include Google::Apis::Core::Hashable
20198
+
20199
+ #
20200
+ # Corresponds to the JSON property `totalEgressBandwidthTier`
20201
+ # @return [String]
20202
+ attr_accessor :total_egress_bandwidth_tier
20203
+
20204
+ def initialize(**args)
20205
+ update!(**args)
20206
+ end
20207
+
20208
+ # Update properties of this object
20209
+ def update!(**args)
20210
+ @total_egress_bandwidth_tier = args[:total_egress_bandwidth_tier] if args.key?(:total_egress_bandwidth_tier)
20211
+ end
20212
+ end
20213
+
19440
20214
  # A routing configuration attached to a network resource. The message includes
19441
20215
  # the list of routers associated with the network, and a flag indicating the
19442
20216
  # type of routing behavior to enforce network-wide.
@@ -22303,6 +23077,55 @@ module Google
22303
23077
  end
22304
23078
  end
22305
23079
 
23080
+ # Next free: 7
23081
+ class PacketIntervals
23082
+ include Google::Apis::Core::Hashable
23083
+
23084
+ # Average observed inter-packet interval in milliseconds.
23085
+ # Corresponds to the JSON property `avgMs`
23086
+ # @return [Fixnum]
23087
+ attr_accessor :avg_ms
23088
+
23089
+ # From how long ago in the past these intervals were observed.
23090
+ # Corresponds to the JSON property `duration`
23091
+ # @return [String]
23092
+ attr_accessor :duration
23093
+
23094
+ # Maximum observed inter-packet interval in milliseconds.
23095
+ # Corresponds to the JSON property `maxMs`
23096
+ # @return [Fixnum]
23097
+ attr_accessor :max_ms
23098
+
23099
+ # Minimum observed inter-packet interval in milliseconds.
23100
+ # Corresponds to the JSON property `minMs`
23101
+ # @return [Fixnum]
23102
+ attr_accessor :min_ms
23103
+
23104
+ # Number of inter-packet intervals from which these statistics were derived.
23105
+ # Corresponds to the JSON property `numIntervals`
23106
+ # @return [Fixnum]
23107
+ attr_accessor :num_intervals
23108
+
23109
+ # The type of packets for which inter-packet intervals were computed.
23110
+ # Corresponds to the JSON property `type`
23111
+ # @return [String]
23112
+ attr_accessor :type
23113
+
23114
+ def initialize(**args)
23115
+ update!(**args)
23116
+ end
23117
+
23118
+ # Update properties of this object
23119
+ def update!(**args)
23120
+ @avg_ms = args[:avg_ms] if args.key?(:avg_ms)
23121
+ @duration = args[:duration] if args.key?(:duration)
23122
+ @max_ms = args[:max_ms] if args.key?(:max_ms)
23123
+ @min_ms = args[:min_ms] if args.key?(:min_ms)
23124
+ @num_intervals = args[:num_intervals] if args.key?(:num_intervals)
23125
+ @type = args[:type] if args.key?(:type)
23126
+ end
23127
+ end
23128
+
22306
23129
  # Represents a Packet Mirroring resource. Packet Mirroring clones the traffic of
22307
23130
  # specified instances in your Virtual Private Cloud (VPC) network and forwards
22308
23131
  # it to a collector destination, such as an instance group of an internal TCP/
@@ -22928,37 +23751,37 @@ module Google
22928
23751
 
22929
23752
  # A matcher for the path portion of the URL. The BackendService from the longest-
22930
23753
  # matched rule will serve the URL. If no rule was matched, the default service
22931
- # will be used.
23754
+ # is used.
22932
23755
  class PathMatcher
22933
23756
  include Google::Apis::Core::Hashable
22934
23757
 
22935
23758
  # defaultRouteAction takes effect when none of the pathRules or routeRules match.
22936
- # The load balancer performs advanced routing actions like URL rewrites, header
22937
- # transformations, etc. prior to forwarding the request to the selected backend.
23759
+ # The load balancer performs advanced routing actions, such as URL rewrites and
23760
+ # header transformations, before forwarding the request to the selected backend.
22938
23761
  # If defaultRouteAction specifies any weightedBackendServices, defaultService
22939
23762
  # must not be set. Conversely if defaultService is set, defaultRouteAction
22940
23763
  # cannot contain any weightedBackendServices. Only one of defaultRouteAction or
22941
23764
  # defaultUrlRedirect must be set. UrlMaps for external HTTP(S) load balancers
22942
- # support only the urlRewrite action within a pathMatcher's defaultRouteAction.
23765
+ # support only the urlRewrite action within a path matcher's defaultRouteAction.
22943
23766
  # Corresponds to the JSON property `defaultRouteAction`
22944
23767
  # @return [Google::Apis::ComputeV1::HttpRouteAction]
22945
23768
  attr_accessor :default_route_action
22946
23769
 
22947
- # The full or partial URL to the BackendService resource. This will be used if
23770
+ # The full or partial URL to the BackendService resource. This URL is used if
22948
23771
  # none of the pathRules or routeRules defined by this PathMatcher are matched.
22949
23772
  # For example, the following are all valid URLs to a BackendService resource: -
22950
23773
  # https://www.googleapis.com/compute/v1/projects/project /global/backendServices/
22951
23774
  # backendService - compute/v1/projects/project/global/backendServices/
22952
23775
  # backendService - global/backendServices/backendService If defaultRouteAction
22953
- # is additionally specified, advanced routing actions like URL Rewrites, etc.
22954
- # take effect prior to sending the request to the backend. However, if
22955
- # defaultService is specified, defaultRouteAction cannot contain any
22956
- # weightedBackendServices. Conversely, if defaultRouteAction specifies any
22957
- # weightedBackendServices, defaultService must not be specified. Only one of
22958
- # defaultService, defaultUrlRedirect or defaultRouteAction.
22959
- # weightedBackendService must be set. Authorization requires one or more of the
22960
- # following Google IAM permissions on the specified resource default_service: -
22961
- # compute.backendBuckets.use - compute.backendServices.use
23776
+ # is also specified, advanced routing actions, such as URL rewrites, take effect
23777
+ # before sending the request to the backend. However, if defaultService is
23778
+ # specified, defaultRouteAction cannot contain any weightedBackendServices.
23779
+ # Conversely, if defaultRouteAction specifies any weightedBackendServices,
23780
+ # defaultService must not be specified. Only one of defaultService,
23781
+ # defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set.
23782
+ # Authorization requires one or more of the following Google IAM permissions on
23783
+ # the specified resource default_service: - compute.backendBuckets.use - compute.
23784
+ # backendServices.use
22962
23785
  # Corresponds to the JSON property `defaultService`
22963
23786
  # @return [String]
22964
23787
  attr_accessor :default_service
@@ -23034,23 +23857,23 @@ module Google
23034
23857
  attr_accessor :paths
23035
23858
 
23036
23859
  # In response to a matching path, the load balancer performs advanced routing
23037
- # actions like URL rewrites, header transformations, etc. prior to forwarding
23860
+ # actions, such as URL rewrites and header transformations, before forwarding
23038
23861
  # the request to the selected backend. If routeAction specifies any
23039
23862
  # weightedBackendServices, service must not be set. Conversely if service is set,
23040
23863
  # routeAction cannot contain any weightedBackendServices. Only one of
23041
- # routeAction or urlRedirect must be set. UrlMaps for external HTTP(S) load
23042
- # balancers support only the urlRewrite action within a pathRule's routeAction.
23864
+ # routeAction or urlRedirect must be set. URL maps for external HTTP(S) load
23865
+ # balancers support only the urlRewrite action within a path rule's routeAction.
23043
23866
  # Corresponds to the JSON property `routeAction`
23044
23867
  # @return [Google::Apis::ComputeV1::HttpRouteAction]
23045
23868
  attr_accessor :route_action
23046
23869
 
23047
23870
  # The full or partial URL of the backend service resource to which traffic is
23048
- # directed if this rule is matched. If routeAction is additionally specified,
23049
- # advanced routing actions like URL Rewrites, etc. take effect prior to sending
23050
- # the request to the backend. However, if service is specified, routeAction
23051
- # cannot contain any weightedBackendService s. Conversely, if routeAction
23052
- # specifies any weightedBackendServices, service must not be specified. Only one
23053
- # of urlRedirect, service or routeAction.weightedBackendService must be set.
23871
+ # directed if this rule is matched. If routeAction is also specified, advanced
23872
+ # routing actions, such as URL rewrites, take effect before sending the request
23873
+ # to the backend. However, if service is specified, routeAction cannot contain
23874
+ # any weightedBackendServices. Conversely, if routeAction specifies any
23875
+ # weightedBackendServices, service must not be specified. Only one of
23876
+ # urlRedirect, service or routeAction.weightedBackendService must be set.
23054
23877
  # Corresponds to the JSON property `service`
23055
23878
  # @return [String]
23056
23879
  attr_accessor :service
@@ -23122,31 +23945,31 @@ module Google
23122
23945
 
23123
23946
  # An Identity and Access Management (IAM) policy, which specifies access
23124
23947
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
23125
- # A `binding` binds one or more `members` to a single `role`. Members can be
23126
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
23127
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
23128
- # role or a user-created custom role. For some types of Google Cloud resources,
23129
- # a `binding` can also specify a `condition`, which is a logical expression that
23130
- # allows access to a resource only if the expression evaluates to `true`. A
23131
- # condition can add constraints based on attributes of the request, the resource,
23132
- # or both. To learn which resources support conditions in their IAM policies,
23133
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
23134
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
23135
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
23136
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
23137
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
23138
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
23139
- # title": "expirable access", "description": "Does not grant access after Sep
23140
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
23141
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
23142
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
23143
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
23144
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
23145
- # roles/resourcemanager.organizationViewer condition: title: expirable access
23146
- # description: Does not grant access after Sep 2020 expression: request.time <
23147
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
23148
- # description of IAM and its features, see the [IAM documentation](https://cloud.
23149
- # google.com/iam/docs/).
23948
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
23949
+ # Principals can be user accounts, service accounts, Google groups, and domains (
23950
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
23951
+ # an IAM predefined role or a user-created custom role. For some types of Google
23952
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
23953
+ # logical expression that allows access to a resource only if the expression
23954
+ # evaluates to `true`. A condition can add constraints based on attributes of
23955
+ # the request, the resource, or both. To learn which resources support
23956
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
23957
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
23958
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
23959
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
23960
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
23961
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
23962
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
23963
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
23964
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
23965
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
23966
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
23967
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
23968
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
23969
+ # access description: Does not grant access after Sep 2020 expression: request.
23970
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
23971
+ # a description of IAM and its features, see the [IAM documentation](https://
23972
+ # cloud.google.com/iam/docs/).
23150
23973
  class Policy
23151
23974
  include Google::Apis::Core::Hashable
23152
23975
 
@@ -23155,9 +23978,14 @@ module Google
23155
23978
  # @return [Array<Google::Apis::ComputeV1::AuditConfig>]
23156
23979
  attr_accessor :audit_configs
23157
23980
 
23158
- # Associates a list of `members` to a `role`. Optionally, may specify a `
23159
- # condition` that determines how and when the `bindings` are applied. Each of
23160
- # the `bindings` must contain at least one member.
23981
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
23982
+ # specify a `condition` that determines how and when the `bindings` are applied.
23983
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
23984
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
23985
+ # can be Google groups. Each occurrence of a principal counts towards these
23986
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
23987
+ # example.com`, and not to any other principal, then you can add another 1,450
23988
+ # principals to the `bindings` in the `Policy`.
23161
23989
  # Corresponds to the JSON property `bindings`
23162
23990
  # @return [Array<Google::Apis::ComputeV1::Binding>]
23163
23991
  attr_accessor :bindings
@@ -23178,12 +24006,6 @@ module Google
23178
24006
  # @return [String]
23179
24007
  attr_accessor :etag
23180
24008
 
23181
- # This is deprecated and has no effect. Do not use.
23182
- # Corresponds to the JSON property `iamOwned`
23183
- # @return [Boolean]
23184
- attr_accessor :iam_owned
23185
- alias_method :iam_owned?, :iam_owned
23186
-
23187
24009
  # This is deprecated and has no effect. Do not use.
23188
24010
  # Corresponds to the JSON property `rules`
23189
24011
  # @return [Array<Google::Apis::ComputeV1::Rule>]
@@ -23217,7 +24039,6 @@ module Google
23217
24039
  @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
23218
24040
  @bindings = args[:bindings] if args.key?(:bindings)
23219
24041
  @etag = args[:etag] if args.key?(:etag)
23220
- @iam_owned = args[:iam_owned] if args.key?(:iam_owned)
23221
24042
  @rules = args[:rules] if args.key?(:rules)
23222
24043
  @version = args[:version] if args.key?(:version)
23223
24044
  end
@@ -23598,7 +24419,13 @@ module Google
23598
24419
  # @return [String]
23599
24420
  attr_accessor :shared_secret
23600
24421
 
23601
- # The status of the public advertised prefix.
24422
+ # The status of the public advertised prefix. Possible values include: - `
24423
+ # INITIAL`: RPKI validation is complete. - `PTR_CONFIGURED`: User has configured
24424
+ # the PTR. - `VALIDATED`: Reverse DNS lookup is successful. - `
24425
+ # REVERSE_DNS_LOOKUP_FAILED`: Reverse DNS lookup failed. - `
24426
+ # PREFIX_CONFIGURATION_IN_PROGRESS`: The prefix is being configured. - `
24427
+ # PREFIX_CONFIGURATION_COMPLETE`: The prefix is fully configured. - `
24428
+ # PREFIX_REMOVAL_IN_PROGRESS`: The prefix is being removed.
23602
24429
  # Corresponds to the JSON property `status`
23603
24430
  # @return [String]
23604
24431
  attr_accessor :status
@@ -23877,7 +24704,12 @@ module Google
23877
24704
  # @return [String]
23878
24705
  attr_accessor :self_link
23879
24706
 
23880
- # [Output Only] The status of the public delegated prefix.
24707
+ # [Output Only] The status of the public delegated prefix, which can be one of
24708
+ # following values: - `INITIALIZING` The public delegated prefix is being
24709
+ # initialized and addresses cannot be created yet. - `READY_TO_ANNOUNCE` The
24710
+ # public delegated prefix is a live migration prefix and is active. - `ANNOUNCED`
24711
+ # The public delegated prefix is active. - `DELETING` The public delegated
24712
+ # prefix is being deprovsioned.
23881
24713
  # Corresponds to the JSON property `status`
23882
24714
  # @return [String]
23883
24715
  attr_accessor :status
@@ -25737,31 +26569,31 @@ module Google
25737
26569
 
25738
26570
  # An Identity and Access Management (IAM) policy, which specifies access
25739
26571
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
25740
- # A `binding` binds one or more `members` to a single `role`. Members can be
25741
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
25742
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
25743
- # role or a user-created custom role. For some types of Google Cloud resources,
25744
- # a `binding` can also specify a `condition`, which is a logical expression that
25745
- # allows access to a resource only if the expression evaluates to `true`. A
25746
- # condition can add constraints based on attributes of the request, the resource,
25747
- # or both. To learn which resources support conditions in their IAM policies,
25748
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
25749
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
25750
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
25751
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
25752
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
25753
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
25754
- # title": "expirable access", "description": "Does not grant access after Sep
25755
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
25756
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
25757
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
25758
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
25759
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
25760
- # roles/resourcemanager.organizationViewer condition: title: expirable access
25761
- # description: Does not grant access after Sep 2020 expression: request.time <
25762
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
25763
- # description of IAM and its features, see the [IAM documentation](https://cloud.
25764
- # google.com/iam/docs/).
26572
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
26573
+ # Principals can be user accounts, service accounts, Google groups, and domains (
26574
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
26575
+ # an IAM predefined role or a user-created custom role. For some types of Google
26576
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
26577
+ # logical expression that allows access to a resource only if the expression
26578
+ # evaluates to `true`. A condition can add constraints based on attributes of
26579
+ # the request, the resource, or both. To learn which resources support
26580
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
26581
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
26582
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
26583
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
26584
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
26585
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
26586
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
26587
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
26588
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
26589
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
26590
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
26591
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
26592
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
26593
+ # access description: Does not grant access after Sep 2020 expression: request.
26594
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
26595
+ # a description of IAM and its features, see the [IAM documentation](https://
26596
+ # cloud.google.com/iam/docs/).
25765
26597
  # Corresponds to the JSON property `policy`
25766
26598
  # @return [Google::Apis::ComputeV1::Policy]
25767
26599
  attr_accessor :policy
@@ -25802,17 +26634,17 @@ module Google
25802
26634
  class RegionUrlMapsValidateRequest
25803
26635
  include Google::Apis::Core::Hashable
25804
26636
 
25805
- # Represents a URL Map resource. Google Compute Engine has two URL Map resources:
25806
- # * [Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/
25807
- # docs/reference/rest/v1/regionUrlMaps) A URL map resource is a component of
25808
- # certain types of GCP load balancers and Traffic Director. * urlMaps are used
25809
- # by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are
25810
- # used by internal HTTP(S) load balancers. For a list of supported URL map
25811
- # features by load balancer type, see the Load balancing features: Routing and
26637
+ # Represents a URL Map resource. Compute Engine has two URL Map resources: * [
26638
+ # Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/docs/
26639
+ # reference/rest/v1/regionUrlMaps) A URL map resource is a component of certain
26640
+ # types of cloud load balancers and Traffic Director: * urlMaps are used by
26641
+ # external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are used
26642
+ # by internal HTTP(S) load balancers. For a list of supported URL map features
26643
+ # by the load balancer type, see the Load balancing features: Routing and
25812
26644
  # traffic management table. For a list of supported URL map features for Traffic
25813
26645
  # Director, see the Traffic Director features: Routing and traffic management
25814
- # table. This resource defines mappings from host names and URL paths to either
25815
- # a backend service or a backend bucket. To use the global urlMaps resource, the
26646
+ # table. This resource defines mappings from hostnames and URL paths to either a
26647
+ # backend service or a backend bucket. To use the global urlMaps resource, the
25816
26648
  # backend service must have a loadBalancingScheme of either EXTERNAL or
25817
26649
  # INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service
25818
26650
  # must have a loadBalancingScheme of INTERNAL_MANAGED. For more information,
@@ -25832,9 +26664,9 @@ module Google
25832
26664
  end
25833
26665
 
25834
26666
  # A policy that specifies how requests intended for the route's backends are
25835
- # shadowed to a separate mirrored backend service. Loadbalancer does not wait
25836
- # for responses from the shadow service. Prior to sending traffic to the shadow
25837
- # service, the host / authority header is suffixed with -shadow.
26667
+ # shadowed to a separate mirrored backend service. The load balancer doesn't
26668
+ # wait for responses from the shadow service. Before sending traffic to the
26669
+ # shadow service, the host or authority header is suffixed with -shadow.
25838
26670
  class RequestMirrorPolicy
25839
26671
  include Google::Apis::Core::Hashable
25840
26672
 
@@ -25910,6 +26742,11 @@ module Google
25910
26742
  # @return [String]
25911
26743
  attr_accessor :self_link
25912
26744
 
26745
+ # The share setting for reservations and sole tenancy node groups.
26746
+ # Corresponds to the JSON property `shareSettings`
26747
+ # @return [Google::Apis::ComputeV1::ShareSettings]
26748
+ attr_accessor :share_settings
26749
+
25913
26750
  # This reservation type allows to pre allocate specific instance configuration.
25914
26751
  # Next ID: 5
25915
26752
  # Corresponds to the JSON property `specificReservation`
@@ -25949,6 +26786,7 @@ module Google
25949
26786
  @name = args[:name] if args.key?(:name)
25950
26787
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
25951
26788
  @self_link = args[:self_link] if args.key?(:self_link)
26789
+ @share_settings = args[:share_settings] if args.key?(:share_settings)
25952
26790
  @specific_reservation = args[:specific_reservation] if args.key?(:specific_reservation)
25953
26791
  @specific_reservation_required = args[:specific_reservation_required] if args.key?(:specific_reservation_required)
25954
26792
  @status = args[:status] if args.key?(:status)
@@ -27258,6 +28096,11 @@ module Google
27258
28096
  class Route
27259
28097
  include Google::Apis::Core::Hashable
27260
28098
 
28099
+ # [Output Only] AS path.
28100
+ # Corresponds to the JSON property `asPaths`
28101
+ # @return [Array<Google::Apis::ComputeV1::RouteAsPath>]
28102
+ attr_accessor :as_paths
28103
+
27261
28104
  # [Output Only] Creation timestamp in RFC3339 text format.
27262
28105
  # Corresponds to the JSON property `creationTimestamp`
27263
28106
  # @return [String]
@@ -27355,6 +28198,15 @@ module Google
27355
28198
  # @return [Fixnum]
27356
28199
  attr_accessor :priority
27357
28200
 
28201
+ # [Output Only] The type of this route, which can be one of the following values:
28202
+ # - 'TRANSIT' for a transit route that this router learned from another Cloud
28203
+ # Router and will readvertise to one of its BGP peers - 'SUBNET' for a route
28204
+ # from a subnet of the VPC - 'BGP' for a route learned from a BGP peer of this
28205
+ # router - 'STATIC' for a static route
28206
+ # Corresponds to the JSON property `routeType`
28207
+ # @return [String]
28208
+ attr_accessor :route_type
28209
+
27358
28210
  # [Output Only] Server-defined fully-qualified URL for this resource.
27359
28211
  # Corresponds to the JSON property `selfLink`
27360
28212
  # @return [String]
@@ -27377,6 +28229,7 @@ module Google
27377
28229
 
27378
28230
  # Update properties of this object
27379
28231
  def update!(**args)
28232
+ @as_paths = args[:as_paths] if args.key?(:as_paths)
27380
28233
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
27381
28234
  @description = args[:description] if args.key?(:description)
27382
28235
  @dest_range = args[:dest_range] if args.key?(:dest_range)
@@ -27392,6 +28245,7 @@ module Google
27392
28245
  @next_hop_peering = args[:next_hop_peering] if args.key?(:next_hop_peering)
27393
28246
  @next_hop_vpn_tunnel = args[:next_hop_vpn_tunnel] if args.key?(:next_hop_vpn_tunnel)
27394
28247
  @priority = args[:priority] if args.key?(:priority)
28248
+ @route_type = args[:route_type] if args.key?(:route_type)
27395
28249
  @self_link = args[:self_link] if args.key?(:self_link)
27396
28250
  @tags = args[:tags] if args.key?(:tags)
27397
28251
  @warnings = args[:warnings] if args.key?(:warnings)
@@ -27462,6 +28316,37 @@ module Google
27462
28316
  end
27463
28317
  end
27464
28318
 
28319
+ #
28320
+ class RouteAsPath
28321
+ include Google::Apis::Core::Hashable
28322
+
28323
+ # [Output Only] The AS numbers of the AS Path.
28324
+ # Corresponds to the JSON property `asLists`
28325
+ # @return [Array<Fixnum>]
28326
+ attr_accessor :as_lists
28327
+
28328
+ # [Output Only] The type of the AS Path, which can be one of the following
28329
+ # values: - 'AS_SET': unordered set of autonomous systems that the route in has
28330
+ # traversed - 'AS_SEQUENCE': ordered set of autonomous systems that the route
28331
+ # has traversed - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems
28332
+ # in the local confederation that the route has traversed - 'AS_CONFED_SET':
28333
+ # unordered set of Member Autonomous Systems in the local confederation that the
28334
+ # route has traversed
28335
+ # Corresponds to the JSON property `pathSegmentType`
28336
+ # @return [String]
28337
+ attr_accessor :path_segment_type
28338
+
28339
+ def initialize(**args)
28340
+ update!(**args)
28341
+ end
28342
+
28343
+ # Update properties of this object
28344
+ def update!(**args)
28345
+ @as_lists = args[:as_lists] if args.key?(:as_lists)
28346
+ @path_segment_type = args[:path_segment_type] if args.key?(:path_segment_type)
28347
+ end
28348
+ end
28349
+
27465
28350
  # Contains a list of Route resources.
27466
28351
  class RouteList
27467
28352
  include Google::Apis::Core::Hashable
@@ -27941,6 +28826,12 @@ module Google
27941
28826
  # @return [String]
27942
28827
  attr_accessor :enable
27943
28828
 
28829
+ # Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.
28830
+ # Corresponds to the JSON property `enableIpv6`
28831
+ # @return [Boolean]
28832
+ attr_accessor :enable_ipv6
28833
+ alias_method :enable_ipv6?, :enable_ipv6
28834
+
27944
28835
  # Name of the interface the BGP peer is associated with.
27945
28836
  # Corresponds to the JSON property `interfaceName`
27946
28837
  # @return [String]
@@ -27952,6 +28843,11 @@ module Google
27952
28843
  # @return [String]
27953
28844
  attr_accessor :ip_address
27954
28845
 
28846
+ # IPv6 address of the interface inside Google Cloud Platform.
28847
+ # Corresponds to the JSON property `ipv6NexthopAddress`
28848
+ # @return [String]
28849
+ attr_accessor :ipv6_nexthop_address
28850
+
27955
28851
  # [Output Only] The resource that configures and manages this BGP peer. -
27956
28852
  # MANAGED_BY_USER is the default value and can be managed by you or other users -
27957
28853
  # MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed by Cloud
@@ -27984,6 +28880,11 @@ module Google
27984
28880
  # @return [String]
27985
28881
  attr_accessor :peer_ip_address
27986
28882
 
28883
+ # IPv6 address of the BGP interface outside Google Cloud Platform.
28884
+ # Corresponds to the JSON property `peerIpv6NexthopAddress`
28885
+ # @return [String]
28886
+ attr_accessor :peer_ipv6_nexthop_address
28887
+
27987
28888
  # URI of the VM instance that is used as third-party router appliances such as
27988
28889
  # Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance
27989
28890
  # must be located in zones contained in the same region as this Cloud Router.
@@ -28004,12 +28905,15 @@ module Google
28004
28905
  @advertised_route_priority = args[:advertised_route_priority] if args.key?(:advertised_route_priority)
28005
28906
  @bfd = args[:bfd] if args.key?(:bfd)
28006
28907
  @enable = args[:enable] if args.key?(:enable)
28908
+ @enable_ipv6 = args[:enable_ipv6] if args.key?(:enable_ipv6)
28007
28909
  @interface_name = args[:interface_name] if args.key?(:interface_name)
28008
28910
  @ip_address = args[:ip_address] if args.key?(:ip_address)
28911
+ @ipv6_nexthop_address = args[:ipv6_nexthop_address] if args.key?(:ipv6_nexthop_address)
28009
28912
  @management_type = args[:management_type] if args.key?(:management_type)
28010
28913
  @name = args[:name] if args.key?(:name)
28011
28914
  @peer_asn = args[:peer_asn] if args.key?(:peer_asn)
28012
28915
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
28916
+ @peer_ipv6_nexthop_address = args[:peer_ipv6_nexthop_address] if args.key?(:peer_ipv6_nexthop_address)
28013
28917
  @router_appliance_instance = args[:router_appliance_instance] if args.key?(:router_appliance_instance)
28014
28918
  end
28015
28919
  end
@@ -28289,6 +29193,17 @@ module Google
28289
29193
  # @return [Array<String>]
28290
29194
  attr_accessor :drain_nat_ips
28291
29195
 
29196
+ # Enable Dynamic Port Allocation. If not specified, it is disabled by default.
29197
+ # If set to true, - Dynamic Port Allocation will be enabled on this NAT config. -
29198
+ # enableEndpointIndependentMapping cannot be set to true. - If minPorts is set,
29199
+ # minPortsPerVm must be set to a power of two greater than or equal to 32. If
29200
+ # minPortsPerVm is not set, a minimum of 32 ports will be allocated to a VM from
29201
+ # this NAT config.
29202
+ # Corresponds to the JSON property `enableDynamicPortAllocation`
29203
+ # @return [Boolean]
29204
+ attr_accessor :enable_dynamic_port_allocation
29205
+ alias_method :enable_dynamic_port_allocation?, :enable_dynamic_port_allocation
29206
+
28292
29207
  #
28293
29208
  # Corresponds to the JSON property `enableEndpointIndependentMapping`
28294
29209
  # @return [Boolean]
@@ -28305,6 +29220,17 @@ module Google
28305
29220
  # @return [Google::Apis::ComputeV1::RouterNatLogConfig]
28306
29221
  attr_accessor :log_config
28307
29222
 
29223
+ # Maximum number of ports allocated to a VM from this NAT config when Dynamic
29224
+ # Port Allocation is enabled. If Dynamic Port Allocation is not enabled, this
29225
+ # field has no effect. If Dynamic Port Allocation is enabled, and this field is
29226
+ # set, it must be set to a power of two greater than minPortsPerVm, or 64 if
29227
+ # minPortsPerVm is not set. If Dynamic Port Allocation is enabled and this field
29228
+ # is not set, a maximum of 65536 ports will be allocated to a VM from this NAT
29229
+ # config.
29230
+ # Corresponds to the JSON property `maxPortsPerVm`
29231
+ # @return [Fixnum]
29232
+ attr_accessor :max_ports_per_vm
29233
+
28308
29234
  # Minimum number of ports allocated to a VM from this NAT config. If not set, a
28309
29235
  # default number of ports is allocated to a VM. This is rounded up to the
28310
29236
  # nearest power of 2. For example, if the value of this field is 50, at least 64
@@ -28334,6 +29260,11 @@ module Google
28334
29260
  # @return [Array<String>]
28335
29261
  attr_accessor :nat_ips
28336
29262
 
29263
+ # A list of rules associated with this NAT.
29264
+ # Corresponds to the JSON property `rules`
29265
+ # @return [Array<Google::Apis::ComputeV1::RouterNatRule>]
29266
+ attr_accessor :rules
29267
+
28337
29268
  # Specify the Nat option, which can take one of the following values: -
28338
29269
  # ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every Subnetwork are
28339
29270
  # allowed to Nat. - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP
@@ -28360,6 +29291,12 @@ module Google
28360
29291
  # @return [Fixnum]
28361
29292
  attr_accessor :tcp_established_idle_timeout_sec
28362
29293
 
29294
+ # Timeout (in seconds) for TCP connections that are in TIME_WAIT state. Defaults
29295
+ # to 120s if not set.
29296
+ # Corresponds to the JSON property `tcpTimeWaitTimeoutSec`
29297
+ # @return [Fixnum]
29298
+ attr_accessor :tcp_time_wait_timeout_sec
29299
+
28363
29300
  # Timeout (in seconds) for TCP transitory connections. Defaults to 30s if not
28364
29301
  # set.
28365
29302
  # Corresponds to the JSON property `tcpTransitoryIdleTimeoutSec`
@@ -28378,16 +29315,20 @@ module Google
28378
29315
  # Update properties of this object
28379
29316
  def update!(**args)
28380
29317
  @drain_nat_ips = args[:drain_nat_ips] if args.key?(:drain_nat_ips)
29318
+ @enable_dynamic_port_allocation = args[:enable_dynamic_port_allocation] if args.key?(:enable_dynamic_port_allocation)
28381
29319
  @enable_endpoint_independent_mapping = args[:enable_endpoint_independent_mapping] if args.key?(:enable_endpoint_independent_mapping)
28382
29320
  @icmp_idle_timeout_sec = args[:icmp_idle_timeout_sec] if args.key?(:icmp_idle_timeout_sec)
28383
29321
  @log_config = args[:log_config] if args.key?(:log_config)
29322
+ @max_ports_per_vm = args[:max_ports_per_vm] if args.key?(:max_ports_per_vm)
28384
29323
  @min_ports_per_vm = args[:min_ports_per_vm] if args.key?(:min_ports_per_vm)
28385
29324
  @name = args[:name] if args.key?(:name)
28386
29325
  @nat_ip_allocate_option = args[:nat_ip_allocate_option] if args.key?(:nat_ip_allocate_option)
28387
29326
  @nat_ips = args[:nat_ips] if args.key?(:nat_ips)
29327
+ @rules = args[:rules] if args.key?(:rules)
28388
29328
  @source_subnetwork_ip_ranges_to_nat = args[:source_subnetwork_ip_ranges_to_nat] if args.key?(:source_subnetwork_ip_ranges_to_nat)
28389
29329
  @subnetworks = args[:subnetworks] if args.key?(:subnetworks)
28390
29330
  @tcp_established_idle_timeout_sec = args[:tcp_established_idle_timeout_sec] if args.key?(:tcp_established_idle_timeout_sec)
29331
+ @tcp_time_wait_timeout_sec = args[:tcp_time_wait_timeout_sec] if args.key?(:tcp_time_wait_timeout_sec)
28391
29332
  @tcp_transitory_idle_timeout_sec = args[:tcp_transitory_idle_timeout_sec] if args.key?(:tcp_transitory_idle_timeout_sec)
28392
29333
  @udp_idle_timeout_sec = args[:udp_idle_timeout_sec] if args.key?(:udp_idle_timeout_sec)
28393
29334
  end
@@ -28423,6 +29364,81 @@ module Google
28423
29364
  end
28424
29365
  end
28425
29366
 
29367
+ #
29368
+ class RouterNatRule
29369
+ include Google::Apis::Core::Hashable
29370
+
29371
+ # The action to be enforced for traffic that matches this rule.
29372
+ # Corresponds to the JSON property `action`
29373
+ # @return [Google::Apis::ComputeV1::RouterNatRuleAction]
29374
+ attr_accessor :action
29375
+
29376
+ # An optional description of this rule.
29377
+ # Corresponds to the JSON property `description`
29378
+ # @return [String]
29379
+ attr_accessor :description
29380
+
29381
+ # CEL expression that specifies the match condition that egress traffic from a
29382
+ # VM is evaluated against. If it evaluates to true, the corresponding `action`
29383
+ # is enforced. The following examples are valid match expressions for public NAT:
29384
+ # "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.
29385
+ # 0/16')" "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" The
29386
+ # following example is a valid match expression for private NAT: "nexthop.hub ==
29387
+ # 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/
29388
+ # global/hub/hub-1'"
29389
+ # Corresponds to the JSON property `match`
29390
+ # @return [String]
29391
+ attr_accessor :match
29392
+
29393
+ # An integer uniquely identifying a rule in the list. The rule number must be a
29394
+ # positive value between 0 and 65000, and must be unique among rules within a
29395
+ # NAT.
29396
+ # Corresponds to the JSON property `ruleNumber`
29397
+ # @return [Fixnum]
29398
+ attr_accessor :rule_number
29399
+
29400
+ def initialize(**args)
29401
+ update!(**args)
29402
+ end
29403
+
29404
+ # Update properties of this object
29405
+ def update!(**args)
29406
+ @action = args[:action] if args.key?(:action)
29407
+ @description = args[:description] if args.key?(:description)
29408
+ @match = args[:match] if args.key?(:match)
29409
+ @rule_number = args[:rule_number] if args.key?(:rule_number)
29410
+ end
29411
+ end
29412
+
29413
+ #
29414
+ class RouterNatRuleAction
29415
+ include Google::Apis::Core::Hashable
29416
+
29417
+ # A list of URLs of the IP resources used for this NAT rule. These IP addresses
29418
+ # must be valid static external IP addresses assigned to the project. This field
29419
+ # is used for public NAT.
29420
+ # Corresponds to the JSON property `sourceNatActiveIps`
29421
+ # @return [Array<String>]
29422
+ attr_accessor :source_nat_active_ips
29423
+
29424
+ # A list of URLs of the IP resources to be drained. These IPs must be valid
29425
+ # static external IPs that have been assigned to the NAT. These IPs should be
29426
+ # used for updating/patching a NAT rule only. This field is used for public NAT.
29427
+ # Corresponds to the JSON property `sourceNatDrainIps`
29428
+ # @return [Array<String>]
29429
+ attr_accessor :source_nat_drain_ips
29430
+
29431
+ def initialize(**args)
29432
+ update!(**args)
29433
+ end
29434
+
29435
+ # Update properties of this object
29436
+ def update!(**args)
29437
+ @source_nat_active_ips = args[:source_nat_active_ips] if args.key?(:source_nat_active_ips)
29438
+ @source_nat_drain_ips = args[:source_nat_drain_ips] if args.key?(:source_nat_drain_ips)
29439
+ end
29440
+ end
29441
+
28426
29442
  # Defines the IP ranges that want to use NAT for a subnetwork.
28427
29443
  class RouterNatSubnetworkToNat
28428
29444
  include Google::Apis::Core::Hashable
@@ -28511,6 +29527,11 @@ module Google
28511
29527
  # @return [Array<Google::Apis::ComputeV1::Route>]
28512
29528
  attr_accessor :advertised_routes
28513
29529
 
29530
+ # Next free: 15
29531
+ # Corresponds to the JSON property `bfdStatus`
29532
+ # @return [Google::Apis::ComputeV1::BfdStatus]
29533
+ attr_accessor :bfd_status
29534
+
28514
29535
  # IP address of the local BGP interface.
28515
29536
  # Corresponds to the JSON property `ipAddress`
28516
29537
  # @return [String]
@@ -28571,6 +29592,7 @@ module Google
28571
29592
  # Update properties of this object
28572
29593
  def update!(**args)
28573
29594
  @advertised_routes = args[:advertised_routes] if args.key?(:advertised_routes)
29595
+ @bfd_status = args[:bfd_status] if args.key?(:bfd_status)
28574
29596
  @ip_address = args[:ip_address] if args.key?(:ip_address)
28575
29597
  @linked_vpn_tunnel = args[:linked_vpn_tunnel] if args.key?(:linked_vpn_tunnel)
28576
29598
  @name = args[:name] if args.key?(:name)
@@ -28622,6 +29644,11 @@ module Google
28622
29644
  # @return [Fixnum]
28623
29645
  attr_accessor :num_vm_endpoints_with_nat_mappings
28624
29646
 
29647
+ # Status of rules in this NAT.
29648
+ # Corresponds to the JSON property `ruleStatus`
29649
+ # @return [Array<Google::Apis::ComputeV1::RouterStatusNatStatusNatRuleStatus>]
29650
+ attr_accessor :rule_status
29651
+
28625
29652
  # A list of fully qualified URLs of reserved IP address resources.
28626
29653
  # Corresponds to the JSON property `userAllocatedNatIpResources`
28627
29654
  # @return [Array<String>]
@@ -28645,11 +29672,58 @@ module Google
28645
29672
  @min_extra_nat_ips_needed = args[:min_extra_nat_ips_needed] if args.key?(:min_extra_nat_ips_needed)
28646
29673
  @name = args[:name] if args.key?(:name)
28647
29674
  @num_vm_endpoints_with_nat_mappings = args[:num_vm_endpoints_with_nat_mappings] if args.key?(:num_vm_endpoints_with_nat_mappings)
29675
+ @rule_status = args[:rule_status] if args.key?(:rule_status)
28648
29676
  @user_allocated_nat_ip_resources = args[:user_allocated_nat_ip_resources] if args.key?(:user_allocated_nat_ip_resources)
28649
29677
  @user_allocated_nat_ips = args[:user_allocated_nat_ips] if args.key?(:user_allocated_nat_ips)
28650
29678
  end
28651
29679
  end
28652
29680
 
29681
+ # Status of a NAT Rule contained in this NAT.
29682
+ class RouterStatusNatStatusNatRuleStatus
29683
+ include Google::Apis::Core::Hashable
29684
+
29685
+ # A list of active IPs for NAT. Example: ["1.1.1.1", "179.12.26.133"].
29686
+ # Corresponds to the JSON property `activeNatIps`
29687
+ # @return [Array<String>]
29688
+ attr_accessor :active_nat_ips
29689
+
29690
+ # A list of IPs for NAT that are in drain mode. Example: ["1.1.1.1", "179.12.26.
29691
+ # 133"].
29692
+ # Corresponds to the JSON property `drainNatIps`
29693
+ # @return [Array<String>]
29694
+ attr_accessor :drain_nat_ips
29695
+
29696
+ # The number of extra IPs to allocate. This will be greater than 0 only if the
29697
+ # existing IPs in this NAT Rule are NOT enough to allow all configured VMs to
29698
+ # use NAT.
29699
+ # Corresponds to the JSON property `minExtraIpsNeeded`
29700
+ # @return [Fixnum]
29701
+ attr_accessor :min_extra_ips_needed
29702
+
29703
+ # Number of VM endpoints (i.e., NICs) that have NAT Mappings from this NAT Rule.
29704
+ # Corresponds to the JSON property `numVmEndpointsWithNatMappings`
29705
+ # @return [Fixnum]
29706
+ attr_accessor :num_vm_endpoints_with_nat_mappings
29707
+
29708
+ # Rule number of the rule.
29709
+ # Corresponds to the JSON property `ruleNumber`
29710
+ # @return [Fixnum]
29711
+ attr_accessor :rule_number
29712
+
29713
+ def initialize(**args)
29714
+ update!(**args)
29715
+ end
29716
+
29717
+ # Update properties of this object
29718
+ def update!(**args)
29719
+ @active_nat_ips = args[:active_nat_ips] if args.key?(:active_nat_ips)
29720
+ @drain_nat_ips = args[:drain_nat_ips] if args.key?(:drain_nat_ips)
29721
+ @min_extra_ips_needed = args[:min_extra_ips_needed] if args.key?(:min_extra_ips_needed)
29722
+ @num_vm_endpoints_with_nat_mappings = args[:num_vm_endpoints_with_nat_mappings] if args.key?(:num_vm_endpoints_with_nat_mappings)
29723
+ @rule_number = args[:rule_number] if args.key?(:rule_number)
29724
+ end
29725
+ end
29726
+
28653
29727
  #
28654
29728
  class RouterStatusResponse
28655
29729
  include Google::Apis::Core::Hashable
@@ -28904,6 +29978,171 @@ module Google
28904
29978
  end
28905
29979
  end
28906
29980
 
29981
+ # DEPRECATED: Please use compute#savedDisk instead. An instance-attached disk
29982
+ # resource.
29983
+ class SavedAttachedDisk
29984
+ include Google::Apis::Core::Hashable
29985
+
29986
+ # Specifies whether the disk will be auto-deleted when the instance is deleted (
29987
+ # but not when the disk is detached from the instance).
29988
+ # Corresponds to the JSON property `autoDelete`
29989
+ # @return [Boolean]
29990
+ attr_accessor :auto_delete
29991
+ alias_method :auto_delete?, :auto_delete
29992
+
29993
+ # Indicates that this is a boot disk. The virtual machine will use the first
29994
+ # partition of the disk for its root filesystem.
29995
+ # Corresponds to the JSON property `boot`
29996
+ # @return [Boolean]
29997
+ attr_accessor :boot
29998
+ alias_method :boot?, :boot
29999
+
30000
+ # Specifies the name of the disk attached to the source instance.
30001
+ # Corresponds to the JSON property `deviceName`
30002
+ # @return [String]
30003
+ attr_accessor :device_name
30004
+
30005
+ # The encryption key for the disk.
30006
+ # Corresponds to the JSON property `diskEncryptionKey`
30007
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
30008
+ attr_accessor :disk_encryption_key
30009
+
30010
+ # The size of the disk in base-2 GB.
30011
+ # Corresponds to the JSON property `diskSizeGb`
30012
+ # @return [Fixnum]
30013
+ attr_accessor :disk_size_gb
30014
+
30015
+ # [Output Only] URL of the disk type resource. For example: projects/project /
30016
+ # zones/zone/diskTypes/pd-standard or pd-ssd
30017
+ # Corresponds to the JSON property `diskType`
30018
+ # @return [String]
30019
+ attr_accessor :disk_type
30020
+
30021
+ # A list of features to enable on the guest operating system. Applicable only
30022
+ # for bootable images. Read Enabling guest operating system features to see a
30023
+ # list of available options.
30024
+ # Corresponds to the JSON property `guestOsFeatures`
30025
+ # @return [Array<Google::Apis::ComputeV1::GuestOsFeature>]
30026
+ attr_accessor :guest_os_features
30027
+
30028
+ # Specifies zero-based index of the disk that is attached to the source instance.
30029
+ # Corresponds to the JSON property `index`
30030
+ # @return [Fixnum]
30031
+ attr_accessor :index
30032
+
30033
+ # Specifies the disk interface to use for attaching this disk, which is either
30034
+ # SCSI or NVME.
30035
+ # Corresponds to the JSON property `interface`
30036
+ # @return [String]
30037
+ attr_accessor :interface
30038
+
30039
+ # [Output Only] Type of the resource. Always compute#attachedDisk for attached
30040
+ # disks.
30041
+ # Corresponds to the JSON property `kind`
30042
+ # @return [String]
30043
+ attr_accessor :kind
30044
+
30045
+ # [Output Only] Any valid publicly visible licenses.
30046
+ # Corresponds to the JSON property `licenses`
30047
+ # @return [Array<String>]
30048
+ attr_accessor :licenses
30049
+
30050
+ # The mode in which this disk is attached to the source instance, either
30051
+ # READ_WRITE or READ_ONLY.
30052
+ # Corresponds to the JSON property `mode`
30053
+ # @return [String]
30054
+ attr_accessor :mode
30055
+
30056
+ # Specifies a URL of the disk attached to the source instance.
30057
+ # Corresponds to the JSON property `source`
30058
+ # @return [String]
30059
+ attr_accessor :source
30060
+
30061
+ # [Output Only] A size of the storage used by the disk's snapshot by this
30062
+ # machine image.
30063
+ # Corresponds to the JSON property `storageBytes`
30064
+ # @return [Fixnum]
30065
+ attr_accessor :storage_bytes
30066
+
30067
+ # [Output Only] An indicator whether storageBytes is in a stable state or it is
30068
+ # being adjusted as a result of shared storage reallocation. This status can
30069
+ # either be UPDATING, meaning the size of the snapshot is being updated, or
30070
+ # UP_TO_DATE, meaning the size of the snapshot is up-to-date.
30071
+ # Corresponds to the JSON property `storageBytesStatus`
30072
+ # @return [String]
30073
+ attr_accessor :storage_bytes_status
30074
+
30075
+ # Specifies the type of the attached disk, either SCRATCH or PERSISTENT.
30076
+ # Corresponds to the JSON property `type`
30077
+ # @return [String]
30078
+ attr_accessor :type
30079
+
30080
+ def initialize(**args)
30081
+ update!(**args)
30082
+ end
30083
+
30084
+ # Update properties of this object
30085
+ def update!(**args)
30086
+ @auto_delete = args[:auto_delete] if args.key?(:auto_delete)
30087
+ @boot = args[:boot] if args.key?(:boot)
30088
+ @device_name = args[:device_name] if args.key?(:device_name)
30089
+ @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
30090
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
30091
+ @disk_type = args[:disk_type] if args.key?(:disk_type)
30092
+ @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features)
30093
+ @index = args[:index] if args.key?(:index)
30094
+ @interface = args[:interface] if args.key?(:interface)
30095
+ @kind = args[:kind] if args.key?(:kind)
30096
+ @licenses = args[:licenses] if args.key?(:licenses)
30097
+ @mode = args[:mode] if args.key?(:mode)
30098
+ @source = args[:source] if args.key?(:source)
30099
+ @storage_bytes = args[:storage_bytes] if args.key?(:storage_bytes)
30100
+ @storage_bytes_status = args[:storage_bytes_status] if args.key?(:storage_bytes_status)
30101
+ @type = args[:type] if args.key?(:type)
30102
+ end
30103
+ end
30104
+
30105
+ # An instance-attached disk resource.
30106
+ class SavedDisk
30107
+ include Google::Apis::Core::Hashable
30108
+
30109
+ # [Output Only] Type of the resource. Always compute#savedDisk for attached
30110
+ # disks.
30111
+ # Corresponds to the JSON property `kind`
30112
+ # @return [String]
30113
+ attr_accessor :kind
30114
+
30115
+ # Specifies a URL of the disk attached to the source instance.
30116
+ # Corresponds to the JSON property `sourceDisk`
30117
+ # @return [String]
30118
+ attr_accessor :source_disk
30119
+
30120
+ # [Output Only] Size of the individual disk snapshot used by this machine image.
30121
+ # Corresponds to the JSON property `storageBytes`
30122
+ # @return [Fixnum]
30123
+ attr_accessor :storage_bytes
30124
+
30125
+ # [Output Only] An indicator whether storageBytes is in a stable state or it is
30126
+ # being adjusted as a result of shared storage reallocation. This status can
30127
+ # either be UPDATING, meaning the size of the snapshot is being updated, or
30128
+ # UP_TO_DATE, meaning the size of the snapshot is up-to-date.
30129
+ # Corresponds to the JSON property `storageBytesStatus`
30130
+ # @return [String]
30131
+ attr_accessor :storage_bytes_status
30132
+
30133
+ def initialize(**args)
30134
+ update!(**args)
30135
+ end
30136
+
30137
+ # Update properties of this object
30138
+ def update!(**args)
30139
+ @kind = args[:kind] if args.key?(:kind)
30140
+ @source_disk = args[:source_disk] if args.key?(:source_disk)
30141
+ @storage_bytes = args[:storage_bytes] if args.key?(:storage_bytes)
30142
+ @storage_bytes_status = args[:storage_bytes_status] if args.key?(:storage_bytes_status)
30143
+ end
30144
+ end
30145
+
28907
30146
  #
28908
30147
  class ScalingScheduleStatus
28909
30148
  include Google::Apis::Core::Hashable
@@ -28953,6 +30192,11 @@ module Google
28953
30192
  attr_accessor :automatic_restart
28954
30193
  alias_method :automatic_restart?, :automatic_restart
28955
30194
 
30195
+ # Specifies the termination action for the instance.
30196
+ # Corresponds to the JSON property `instanceTerminationAction`
30197
+ # @return [String]
30198
+ attr_accessor :instance_termination_action
30199
+
28956
30200
  # An opaque location hint used to place the instance close to other resources.
28957
30201
  # This field is for use by internal tools that use the public API.
28958
30202
  # Corresponds to the JSON property `locationHint`
@@ -28988,6 +30232,11 @@ module Google
28988
30232
  attr_accessor :preemptible
28989
30233
  alias_method :preemptible?, :preemptible
28990
30234
 
30235
+ # Specifies the provisioning model of the instance.
30236
+ # Corresponds to the JSON property `provisioningModel`
30237
+ # @return [String]
30238
+ attr_accessor :provisioning_model
30239
+
28991
30240
  def initialize(**args)
28992
30241
  update!(**args)
28993
30242
  end
@@ -28995,11 +30244,13 @@ module Google
28995
30244
  # Update properties of this object
28996
30245
  def update!(**args)
28997
30246
  @automatic_restart = args[:automatic_restart] if args.key?(:automatic_restart)
30247
+ @instance_termination_action = args[:instance_termination_action] if args.key?(:instance_termination_action)
28998
30248
  @location_hint = args[:location_hint] if args.key?(:location_hint)
28999
30249
  @min_node_cpus = args[:min_node_cpus] if args.key?(:min_node_cpus)
29000
30250
  @node_affinities = args[:node_affinities] if args.key?(:node_affinities)
29001
30251
  @on_host_maintenance = args[:on_host_maintenance] if args.key?(:on_host_maintenance)
29002
30252
  @preemptible = args[:preemptible] if args.key?(:preemptible)
30253
+ @provisioning_model = args[:provisioning_model] if args.key?(:provisioning_model)
29003
30254
  end
29004
30255
  end
29005
30256
 
@@ -29161,6 +30412,11 @@ module Google
29161
30412
  # @return [String]
29162
30413
  attr_accessor :name
29163
30414
 
30415
+ #
30416
+ # Corresponds to the JSON property `recaptchaOptionsConfig`
30417
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRecaptchaOptionsConfig]
30418
+ attr_accessor :recaptcha_options_config
30419
+
29164
30420
  # A list of rules that belong to this policy. There must always be a default
29165
30421
  # rule (rule with priority 2147483647 and match "*"). If no rules are provided
29166
30422
  # when creating a security policy, a default rule with action "allow" will be
@@ -29174,6 +30430,17 @@ module Google
29174
30430
  # @return [String]
29175
30431
  attr_accessor :self_link
29176
30432
 
30433
+ # The type indicates the intended use of the security policy. CLOUD_ARMOR -
30434
+ # Cloud Armor backend security policies can be configured to filter incoming
30435
+ # HTTP requests targeting backend services. They filter requests before they hit
30436
+ # the origin servers. CLOUD_ARMOR_EDGE - Cloud Armor edge security policies can
30437
+ # be configured to filter incoming HTTP requests targeting backend services (
30438
+ # including Cloud CDN-enabled) as well as backend buckets (Cloud Storage). They
30439
+ # filter requests before the request is served from Google's cache.
30440
+ # Corresponds to the JSON property `type`
30441
+ # @return [String]
30442
+ attr_accessor :type
30443
+
29177
30444
  def initialize(**args)
29178
30445
  update!(**args)
29179
30446
  end
@@ -29188,8 +30455,10 @@ module Google
29188
30455
  @id = args[:id] if args.key?(:id)
29189
30456
  @kind = args[:kind] if args.key?(:kind)
29190
30457
  @name = args[:name] if args.key?(:name)
30458
+ @recaptcha_options_config = args[:recaptcha_options_config] if args.key?(:recaptcha_options_config)
29191
30459
  @rules = args[:rules] if args.key?(:rules)
29192
30460
  @self_link = args[:self_link] if args.key?(:self_link)
30461
+ @type = args[:type] if args.key?(:type)
29193
30462
  end
29194
30463
  end
29195
30464
 
@@ -29376,6 +30645,29 @@ module Google
29376
30645
  end
29377
30646
  end
29378
30647
 
30648
+ #
30649
+ class SecurityPolicyRecaptchaOptionsConfig
30650
+ include Google::Apis::Core::Hashable
30651
+
30652
+ # An optional field to supply a reCAPTCHA site key to be used for all the rules
30653
+ # using the redirect action with the type of GOOGLE_RECAPTCHA under the security
30654
+ # policy. The specified site key needs to be created from the reCAPTCHA API. The
30655
+ # user is responsible for the validity of the specified site key. If not
30656
+ # specified, a Google-managed site key is used.
30657
+ # Corresponds to the JSON property `redirectSiteKey`
30658
+ # @return [String]
30659
+ attr_accessor :redirect_site_key
30660
+
30661
+ def initialize(**args)
30662
+ update!(**args)
30663
+ end
30664
+
30665
+ # Update properties of this object
30666
+ def update!(**args)
30667
+ @redirect_site_key = args[:redirect_site_key] if args.key?(:redirect_site_key)
30668
+ end
30669
+ end
30670
+
29379
30671
  #
29380
30672
  class SecurityPolicyReference
29381
30673
  include Google::Apis::Core::Hashable
@@ -29400,9 +30692,17 @@ module Google
29400
30692
  class SecurityPolicyRule
29401
30693
  include Google::Apis::Core::Hashable
29402
30694
 
29403
- # The Action to perform when the client connection triggers the rule. Can
29404
- # currently be either "allow" or "deny()" where valid values for status are 403,
29405
- # 404, and 502.
30695
+ # The Action to perform when the rule is matched. The following are the valid
30696
+ # actions: - allow: allow access to target. - deny(): deny access to target,
30697
+ # returns the HTTP response code specified (valid values are 403, 404, and 502).
30698
+ # - rate_based_ban: limit client traffic to the configured threshold and ban the
30699
+ # client if the traffic exceeds the threshold. Configure parameters for this
30700
+ # action in RateLimitOptions. Requires rate_limit_options to be set. - redirect:
30701
+ # redirect to a different target. This can either be an internal reCAPTCHA
30702
+ # redirect, or an external URL-based redirect via a 302 response. Parameters for
30703
+ # this action can be configured via redirectOptions. - throttle: limit client
30704
+ # traffic to the configured threshold. Configure parameters for this action in
30705
+ # rateLimitOptions. Requires rate_limit_options to be set for this.
29406
30706
  # Corresponds to the JSON property `action`
29407
30707
  # @return [String]
29408
30708
  attr_accessor :action
@@ -29413,6 +30713,11 @@ module Google
29413
30713
  # @return [String]
29414
30714
  attr_accessor :description
29415
30715
 
30716
+ # Optional, additional actions that are performed on headers.
30717
+ # Corresponds to the JSON property `headerAction`
30718
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleHttpHeaderAction]
30719
+ attr_accessor :header_action
30720
+
29416
30721
  # [Output only] Type of the resource. Always compute#securityPolicyRule for
29417
30722
  # security policy rules
29418
30723
  # Corresponds to the JSON property `kind`
@@ -29439,6 +30744,18 @@ module Google
29439
30744
  # @return [Fixnum]
29440
30745
  attr_accessor :priority
29441
30746
 
30747
+ # Must be specified if the action is "rate_based_ban" or "throttle". Cannot be
30748
+ # specified for any other actions.
30749
+ # Corresponds to the JSON property `rateLimitOptions`
30750
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleRateLimitOptions]
30751
+ attr_accessor :rate_limit_options
30752
+
30753
+ # Parameters defining the redirect action. Cannot be specified for any other
30754
+ # actions.
30755
+ # Corresponds to the JSON property `redirectOptions`
30756
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleRedirectOptions]
30757
+ attr_accessor :redirect_options
30758
+
29442
30759
  def initialize(**args)
29443
30760
  update!(**args)
29444
30761
  end
@@ -29447,10 +30764,57 @@ module Google
29447
30764
  def update!(**args)
29448
30765
  @action = args[:action] if args.key?(:action)
29449
30766
  @description = args[:description] if args.key?(:description)
30767
+ @header_action = args[:header_action] if args.key?(:header_action)
29450
30768
  @kind = args[:kind] if args.key?(:kind)
29451
30769
  @match = args[:match] if args.key?(:match)
29452
30770
  @preview = args[:preview] if args.key?(:preview)
29453
30771
  @priority = args[:priority] if args.key?(:priority)
30772
+ @rate_limit_options = args[:rate_limit_options] if args.key?(:rate_limit_options)
30773
+ @redirect_options = args[:redirect_options] if args.key?(:redirect_options)
30774
+ end
30775
+ end
30776
+
30777
+ #
30778
+ class SecurityPolicyRuleHttpHeaderAction
30779
+ include Google::Apis::Core::Hashable
30780
+
30781
+ # The list of request headers to add or overwrite if they're already present.
30782
+ # Corresponds to the JSON property `requestHeadersToAdds`
30783
+ # @return [Array<Google::Apis::ComputeV1::SecurityPolicyRuleHttpHeaderActionHttpHeaderOption>]
30784
+ attr_accessor :request_headers_to_adds
30785
+
30786
+ def initialize(**args)
30787
+ update!(**args)
30788
+ end
30789
+
30790
+ # Update properties of this object
30791
+ def update!(**args)
30792
+ @request_headers_to_adds = args[:request_headers_to_adds] if args.key?(:request_headers_to_adds)
30793
+ end
30794
+ end
30795
+
30796
+ #
30797
+ class SecurityPolicyRuleHttpHeaderActionHttpHeaderOption
30798
+ include Google::Apis::Core::Hashable
30799
+
30800
+ # The name of the header to set.
30801
+ # Corresponds to the JSON property `headerName`
30802
+ # @return [String]
30803
+ attr_accessor :header_name
30804
+
30805
+ # The value to set the named header to.
30806
+ # Corresponds to the JSON property `headerValue`
30807
+ # @return [String]
30808
+ attr_accessor :header_value
30809
+
30810
+ def initialize(**args)
30811
+ update!(**args)
30812
+ end
30813
+
30814
+ # Update properties of this object
30815
+ def update!(**args)
30816
+ @header_name = args[:header_name] if args.key?(:header_name)
30817
+ @header_value = args[:header_value] if args.key?(:header_value)
29454
30818
  end
29455
30819
  end
29456
30820
 
@@ -29524,6 +30888,144 @@ module Google
29524
30888
  end
29525
30889
  end
29526
30890
 
30891
+ #
30892
+ class SecurityPolicyRuleRateLimitOptions
30893
+ include Google::Apis::Core::Hashable
30894
+
30895
+ # Can only be specified if the action for the rule is "rate_based_ban". If
30896
+ # specified, determines the time (in seconds) the traffic will continue to be
30897
+ # banned by the rate limit after the rate falls below the threshold.
30898
+ # Corresponds to the JSON property `banDurationSec`
30899
+ # @return [Fixnum]
30900
+ attr_accessor :ban_duration_sec
30901
+
30902
+ # Can only be specified if the action for the rule is "rate_based_ban". If
30903
+ # specified, the key will be banned for the configured 'ban_duration_sec' when
30904
+ # the number of requests that exceed the 'rate_limit_threshold' also exceed this
30905
+ # 'ban_threshold'.
30906
+ # Corresponds to the JSON property `banThreshold`
30907
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleRateLimitOptionsThreshold]
30908
+ attr_accessor :ban_threshold
30909
+
30910
+ # Action to take for requests that are under the configured rate limit threshold.
30911
+ # Valid option is "allow" only.
30912
+ # Corresponds to the JSON property `conformAction`
30913
+ # @return [String]
30914
+ attr_accessor :conform_action
30915
+
30916
+ # Determines the key to enforce the rate_limit_threshold on. Possible values are:
30917
+ # - ALL: A single rate limit threshold is applied to all the requests matching
30918
+ # this rule. This is the default value if this field 'enforce_on_key' is not
30919
+ # configured. - IP: The source IP address of the request is the key. Each IP has
30920
+ # this limit enforced separately. - HTTP_HEADER: The value of the HTTP header
30921
+ # whose name is configured under "enforce_on_key_name". The key value is
30922
+ # truncated to the first 128 bytes of the header value. If no such header is
30923
+ # present in the request, the key type defaults to ALL. - XFF_IP: The first IP
30924
+ # address (i.e. the originating client IP address) specified in the list of IPs
30925
+ # under X-Forwarded-For HTTP header. If no such header is present or the value
30926
+ # is not a valid IP, the key type defaults to ALL. - HTTP_COOKIE: The value of
30927
+ # the HTTP cookie whose name is configured under "enforce_on_key_name". The key
30928
+ # value is truncated to the first 128 bytes of the cookie value. If no such
30929
+ # cookie is present in the request, the key type defaults to ALL.
30930
+ # Corresponds to the JSON property `enforceOnKey`
30931
+ # @return [String]
30932
+ attr_accessor :enforce_on_key
30933
+
30934
+ # Rate limit key name applicable only for the following key types: HTTP_HEADER --
30935
+ # Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE --
30936
+ # Name of the HTTP cookie whose value is taken as the key value.
30937
+ # Corresponds to the JSON property `enforceOnKeyName`
30938
+ # @return [String]
30939
+ attr_accessor :enforce_on_key_name
30940
+
30941
+ # Action to take for requests that are above the configured rate limit threshold,
30942
+ # to either deny with a specified HTTP response code, or redirect to a
30943
+ # different endpoint. Valid options are "deny()" where valid values for status
30944
+ # are 403, 404, 429, and 502, and "redirect" where the redirect parameters come
30945
+ # from exceed_redirect_options below.
30946
+ # Corresponds to the JSON property `exceedAction`
30947
+ # @return [String]
30948
+ attr_accessor :exceed_action
30949
+
30950
+ # Parameters defining the redirect action that is used as the exceed action.
30951
+ # Cannot be specified if the exceed action is not redirect.
30952
+ # Corresponds to the JSON property `exceedRedirectOptions`
30953
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleRedirectOptions]
30954
+ attr_accessor :exceed_redirect_options
30955
+
30956
+ # Threshold at which to begin ratelimiting.
30957
+ # Corresponds to the JSON property `rateLimitThreshold`
30958
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleRateLimitOptionsThreshold]
30959
+ attr_accessor :rate_limit_threshold
30960
+
30961
+ def initialize(**args)
30962
+ update!(**args)
30963
+ end
30964
+
30965
+ # Update properties of this object
30966
+ def update!(**args)
30967
+ @ban_duration_sec = args[:ban_duration_sec] if args.key?(:ban_duration_sec)
30968
+ @ban_threshold = args[:ban_threshold] if args.key?(:ban_threshold)
30969
+ @conform_action = args[:conform_action] if args.key?(:conform_action)
30970
+ @enforce_on_key = args[:enforce_on_key] if args.key?(:enforce_on_key)
30971
+ @enforce_on_key_name = args[:enforce_on_key_name] if args.key?(:enforce_on_key_name)
30972
+ @exceed_action = args[:exceed_action] if args.key?(:exceed_action)
30973
+ @exceed_redirect_options = args[:exceed_redirect_options] if args.key?(:exceed_redirect_options)
30974
+ @rate_limit_threshold = args[:rate_limit_threshold] if args.key?(:rate_limit_threshold)
30975
+ end
30976
+ end
30977
+
30978
+ #
30979
+ class SecurityPolicyRuleRateLimitOptionsThreshold
30980
+ include Google::Apis::Core::Hashable
30981
+
30982
+ # Number of HTTP(S) requests for calculating the threshold.
30983
+ # Corresponds to the JSON property `count`
30984
+ # @return [Fixnum]
30985
+ attr_accessor :count
30986
+
30987
+ # Interval over which the threshold is computed.
30988
+ # Corresponds to the JSON property `intervalSec`
30989
+ # @return [Fixnum]
30990
+ attr_accessor :interval_sec
30991
+
30992
+ def initialize(**args)
30993
+ update!(**args)
30994
+ end
30995
+
30996
+ # Update properties of this object
30997
+ def update!(**args)
30998
+ @count = args[:count] if args.key?(:count)
30999
+ @interval_sec = args[:interval_sec] if args.key?(:interval_sec)
31000
+ end
31001
+ end
31002
+
31003
+ #
31004
+ class SecurityPolicyRuleRedirectOptions
31005
+ include Google::Apis::Core::Hashable
31006
+
31007
+ # Target for the redirect action. This is required if the type is EXTERNAL_302
31008
+ # and cannot be specified for GOOGLE_RECAPTCHA.
31009
+ # Corresponds to the JSON property `target`
31010
+ # @return [String]
31011
+ attr_accessor :target
31012
+
31013
+ # Type of the redirect action.
31014
+ # Corresponds to the JSON property `type`
31015
+ # @return [String]
31016
+ attr_accessor :type
31017
+
31018
+ def initialize(**args)
31019
+ update!(**args)
31020
+ end
31021
+
31022
+ # Update properties of this object
31023
+ def update!(**args)
31024
+ @target = args[:target] if args.key?(:target)
31025
+ @type = args[:type] if args.key?(:type)
31026
+ end
31027
+ end
31028
+
29527
31029
  # The authentication and authorization settings for a BackendService.
29528
31030
  class SecuritySettings
29529
31031
  include Google::Apis::Core::Hashable
@@ -30191,6 +31693,52 @@ module Google
30191
31693
  end
30192
31694
  end
30193
31695
 
31696
+ # The share setting for reservations and sole tenancy node groups.
31697
+ class ShareSettings
31698
+ include Google::Apis::Core::Hashable
31699
+
31700
+ # A map of project id and project config. This is only valid when share_type's
31701
+ # value is SPECIFIC_PROJECTS.
31702
+ # Corresponds to the JSON property `projectMap`
31703
+ # @return [Hash<String,Google::Apis::ComputeV1::ShareSettingsProjectConfig>]
31704
+ attr_accessor :project_map
31705
+
31706
+ # Type of sharing for this shared-reservation
31707
+ # Corresponds to the JSON property `shareType`
31708
+ # @return [String]
31709
+ attr_accessor :share_type
31710
+
31711
+ def initialize(**args)
31712
+ update!(**args)
31713
+ end
31714
+
31715
+ # Update properties of this object
31716
+ def update!(**args)
31717
+ @project_map = args[:project_map] if args.key?(:project_map)
31718
+ @share_type = args[:share_type] if args.key?(:share_type)
31719
+ end
31720
+ end
31721
+
31722
+ # Config for each project in the share settings.
31723
+ class ShareSettingsProjectConfig
31724
+ include Google::Apis::Core::Hashable
31725
+
31726
+ # The project ID, should be same as the key of this project config in the parent
31727
+ # map.
31728
+ # Corresponds to the JSON property `projectId`
31729
+ # @return [String]
31730
+ attr_accessor :project_id
31731
+
31732
+ def initialize(**args)
31733
+ update!(**args)
31734
+ end
31735
+
31736
+ # Update properties of this object
31737
+ def update!(**args)
31738
+ @project_id = args[:project_id] if args.key?(:project_id)
31739
+ end
31740
+ end
31741
+
30194
31742
  # A set of Shielded Instance options.
30195
31743
  class ShieldedInstanceConfig
30196
31744
  include Google::Apis::Core::Hashable
@@ -30656,6 +32204,35 @@ module Google
30656
32204
  end
30657
32205
  end
30658
32206
 
32207
+ #
32208
+ class SourceDiskEncryptionKey
32209
+ include Google::Apis::Core::Hashable
32210
+
32211
+ # The customer-supplied encryption key of the source disk. Required if the
32212
+ # source disk is protected by a customer-supplied encryption key.
32213
+ # Corresponds to the JSON property `diskEncryptionKey`
32214
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
32215
+ attr_accessor :disk_encryption_key
32216
+
32217
+ # URL of the disk attached to the source instance. This can be a full or valid
32218
+ # partial URL. For example, the following are valid values: - https://www.
32219
+ # googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/
32220
+ # project/zones/zone/disks/disk - zones/zone/disks/disk
32221
+ # Corresponds to the JSON property `sourceDisk`
32222
+ # @return [String]
32223
+ attr_accessor :source_disk
32224
+
32225
+ def initialize(**args)
32226
+ update!(**args)
32227
+ end
32228
+
32229
+ # Update properties of this object
32230
+ def update!(**args)
32231
+ @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
32232
+ @source_disk = args[:source_disk] if args.key?(:source_disk)
32233
+ end
32234
+ end
32235
+
30659
32236
  # A specification of the parameters to use when creating the instance template
30660
32237
  # from a source instance.
30661
32238
  class SourceInstanceParams
@@ -30679,6 +32256,116 @@ module Google
30679
32256
  end
30680
32257
  end
30681
32258
 
32259
+ # DEPRECATED: Please use compute#instanceProperties instead. New properties will
32260
+ # not be added to this field.
32261
+ class SourceInstanceProperties
32262
+ include Google::Apis::Core::Hashable
32263
+
32264
+ # Enables instances created based on this machine image to send packets with
32265
+ # source IP addresses other than their own and receive packets with destination
32266
+ # IP addresses other than their own. If these instances will be used as an IP
32267
+ # gateway or it will be set as the next-hop in a Route resource, specify true.
32268
+ # If unsure, leave this set to false. See the Enable IP forwarding documentation
32269
+ # for more information.
32270
+ # Corresponds to the JSON property `canIpForward`
32271
+ # @return [Boolean]
32272
+ attr_accessor :can_ip_forward
32273
+ alias_method :can_ip_forward?, :can_ip_forward
32274
+
32275
+ # Whether the instance created from this machine image should be protected
32276
+ # against deletion.
32277
+ # Corresponds to the JSON property `deletionProtection`
32278
+ # @return [Boolean]
32279
+ attr_accessor :deletion_protection
32280
+ alias_method :deletion_protection?, :deletion_protection
32281
+
32282
+ # An optional text description for the instances that are created from this
32283
+ # machine image.
32284
+ # Corresponds to the JSON property `description`
32285
+ # @return [String]
32286
+ attr_accessor :description
32287
+
32288
+ # An array of disks that are associated with the instances that are created from
32289
+ # this machine image.
32290
+ # Corresponds to the JSON property `disks`
32291
+ # @return [Array<Google::Apis::ComputeV1::SavedAttachedDisk>]
32292
+ attr_accessor :disks
32293
+
32294
+ # A list of guest accelerator cards' type and count to use for instances created
32295
+ # from this machine image.
32296
+ # Corresponds to the JSON property `guestAccelerators`
32297
+ # @return [Array<Google::Apis::ComputeV1::AcceleratorConfig>]
32298
+ attr_accessor :guest_accelerators
32299
+
32300
+ # Labels to apply to instances that are created from this machine image.
32301
+ # Corresponds to the JSON property `labels`
32302
+ # @return [Hash<String,String>]
32303
+ attr_accessor :labels
32304
+
32305
+ # The machine type to use for instances that are created from this machine image.
32306
+ # Corresponds to the JSON property `machineType`
32307
+ # @return [String]
32308
+ attr_accessor :machine_type
32309
+
32310
+ # A metadata key/value entry.
32311
+ # Corresponds to the JSON property `metadata`
32312
+ # @return [Google::Apis::ComputeV1::Metadata]
32313
+ attr_accessor :metadata
32314
+
32315
+ # Minimum cpu/platform to be used by instances created from this machine image.
32316
+ # The instance may be scheduled on the specified or newer cpu/platform.
32317
+ # Applicable values are the friendly names of CPU platforms, such as
32318
+ # minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge". For
32319
+ # more information, read Specifying a Minimum CPU Platform.
32320
+ # Corresponds to the JSON property `minCpuPlatform`
32321
+ # @return [String]
32322
+ attr_accessor :min_cpu_platform
32323
+
32324
+ # An array of network access configurations for this interface.
32325
+ # Corresponds to the JSON property `networkInterfaces`
32326
+ # @return [Array<Google::Apis::ComputeV1::NetworkInterface>]
32327
+ attr_accessor :network_interfaces
32328
+
32329
+ # Sets the scheduling options for an Instance. NextID: 21
32330
+ # Corresponds to the JSON property `scheduling`
32331
+ # @return [Google::Apis::ComputeV1::Scheduling]
32332
+ attr_accessor :scheduling
32333
+
32334
+ # A list of service accounts with specified scopes. Access tokens for these
32335
+ # service accounts are available to the instances that are created from this
32336
+ # machine image. Use metadata queries to obtain the access tokens for these
32337
+ # instances.
32338
+ # Corresponds to the JSON property `serviceAccounts`
32339
+ # @return [Array<Google::Apis::ComputeV1::ServiceAccount>]
32340
+ attr_accessor :service_accounts
32341
+
32342
+ # A set of instance tags.
32343
+ # Corresponds to the JSON property `tags`
32344
+ # @return [Google::Apis::ComputeV1::Tags]
32345
+ attr_accessor :tags
32346
+
32347
+ def initialize(**args)
32348
+ update!(**args)
32349
+ end
32350
+
32351
+ # Update properties of this object
32352
+ def update!(**args)
32353
+ @can_ip_forward = args[:can_ip_forward] if args.key?(:can_ip_forward)
32354
+ @deletion_protection = args[:deletion_protection] if args.key?(:deletion_protection)
32355
+ @description = args[:description] if args.key?(:description)
32356
+ @disks = args[:disks] if args.key?(:disks)
32357
+ @guest_accelerators = args[:guest_accelerators] if args.key?(:guest_accelerators)
32358
+ @labels = args[:labels] if args.key?(:labels)
32359
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
32360
+ @metadata = args[:metadata] if args.key?(:metadata)
32361
+ @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
32362
+ @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
32363
+ @scheduling = args[:scheduling] if args.key?(:scheduling)
32364
+ @service_accounts = args[:service_accounts] if args.key?(:service_accounts)
32365
+ @tags = args[:tags] if args.key?(:tags)
32366
+ end
32367
+ end
32368
+
30682
32369
  # Represents an SSL Certificate resource. Google Compute Engine has two SSL
30683
32370
  # Certificate resources: * [Global](/compute/docs/reference/rest/v1/
30684
32371
  # sslCertificates) * [Regional](/compute/docs/reference/rest/v1/
@@ -31607,8 +33294,9 @@ module Google
31607
33294
 
31608
33295
  # Whether to enable flow logging for this subnetwork. If this field is not
31609
33296
  # explicitly set, it will not appear in get listings. If not set the default
31610
- # behavior is to disable flow logging. This field isn't supported with the
31611
- # purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.
33297
+ # behavior is determined by the org policy, if there is no org policy specified,
33298
+ # then it will default to disabled. This field isn't supported with the purpose
33299
+ # field set to INTERNAL_HTTPS_LOAD_BALANCER.
31612
33300
  # Corresponds to the JSON property `enableFlowLogs`
31613
33301
  # @return [Boolean]
31614
33302
  attr_accessor :enable_flow_logs
@@ -32055,7 +33743,8 @@ module Google
32055
33743
 
32056
33744
  # Whether to enable flow logging for this subnetwork. If this field is not
32057
33745
  # explicitly set, it will not appear in get listings. If not set the default
32058
- # behavior is to disable flow logging.
33746
+ # behavior is determined by the org policy, if there is no org policy specified,
33747
+ # then it will default to disabled.
32059
33748
  # Corresponds to the JSON property `enable`
32060
33749
  # @return [Boolean]
32061
33750
  attr_accessor :enable
@@ -32070,8 +33759,8 @@ module Google
32070
33759
  # Can only be specified if VPC flow logging for this subnetwork is enabled. The
32071
33760
  # value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs
32072
33761
  # within the subnetwork where 1.0 means all collected logs are reported and 0.0
32073
- # means no logs are reported. Default is 0.5, which means half of all collected
32074
- # logs are reported.
33762
+ # means no logs are reported. Default is 0.5 unless otherwise specified by the
33763
+ # org policy, which means half of all collected logs are reported.
32075
33764
  # Corresponds to the JSON property `flowSampling`
32076
33765
  # @return [Float]
32077
33766
  attr_accessor :flow_sampling
@@ -32266,6 +33955,27 @@ module Google
32266
33955
  end
32267
33956
  end
32268
33957
 
33958
+ # Subsetting configuration for this BackendService. Currently this is applicable
33959
+ # only for Internal TCP/UDP load balancing, Internal HTTP(S) load balancing and
33960
+ # Traffic Director.
33961
+ class Subsetting
33962
+ include Google::Apis::Core::Hashable
33963
+
33964
+ #
33965
+ # Corresponds to the JSON property `policy`
33966
+ # @return [String]
33967
+ attr_accessor :policy
33968
+
33969
+ def initialize(**args)
33970
+ update!(**args)
33971
+ end
33972
+
33973
+ # Update properties of this object
33974
+ def update!(**args)
33975
+ @policy = args[:policy] if args.key?(:policy)
33976
+ end
33977
+ end
33978
+
32269
33979
  #
32270
33980
  class TcpHealthCheck
32271
33981
  include Google::Apis::Core::Hashable
@@ -35432,7 +37142,7 @@ module Google
35432
37142
  class TestFailure
35433
37143
  include Google::Apis::Core::Hashable
35434
37144
 
35435
- # The actual output URL evaluated by load balancer containing the scheme, host,
37145
+ # The actual output URL evaluated by a load balancer containing the scheme, host,
35436
37146
  # path and query parameters.
35437
37147
  # Corresponds to the JSON property `actualOutputUrl`
35438
37148
  # @return [String]
@@ -35449,8 +37159,8 @@ module Google
35449
37159
  # @return [String]
35450
37160
  attr_accessor :actual_service
35451
37161
 
35452
- # The expected output URL evaluated by load balancer containing the scheme, host,
35453
- # path and query parameters.
37162
+ # The expected output URL evaluated by a load balancer containing the scheme,
37163
+ # host, path and query parameters.
35454
37164
  # Corresponds to the JSON property `expectedOutputUrl`
35455
37165
  # @return [String]
35456
37166
  attr_accessor :expected_output_url
@@ -35564,17 +37274,17 @@ module Google
35564
37274
  end
35565
37275
  end
35566
37276
 
35567
- # Represents a URL Map resource. Google Compute Engine has two URL Map resources:
35568
- # * [Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/
35569
- # docs/reference/rest/v1/regionUrlMaps) A URL map resource is a component of
35570
- # certain types of GCP load balancers and Traffic Director. * urlMaps are used
35571
- # by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are
35572
- # used by internal HTTP(S) load balancers. For a list of supported URL map
35573
- # features by load balancer type, see the Load balancing features: Routing and
37277
+ # Represents a URL Map resource. Compute Engine has two URL Map resources: * [
37278
+ # Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/docs/
37279
+ # reference/rest/v1/regionUrlMaps) A URL map resource is a component of certain
37280
+ # types of cloud load balancers and Traffic Director: * urlMaps are used by
37281
+ # external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are used
37282
+ # by internal HTTP(S) load balancers. For a list of supported URL map features
37283
+ # by the load balancer type, see the Load balancing features: Routing and
35574
37284
  # traffic management table. For a list of supported URL map features for Traffic
35575
37285
  # Director, see the Traffic Director features: Routing and traffic management
35576
- # table. This resource defines mappings from host names and URL paths to either
35577
- # a backend service or a backend bucket. To use the global urlMaps resource, the
37286
+ # table. This resource defines mappings from hostnames and URL paths to either a
37287
+ # backend service or a backend bucket. To use the global urlMaps resource, the
35578
37288
  # backend service must have a loadBalancingScheme of either EXTERNAL or
35579
37289
  # INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service
35580
37290
  # must have a loadBalancingScheme of INTERNAL_MANAGED. For more information,
@@ -35588,28 +37298,28 @@ module Google
35588
37298
  attr_accessor :creation_timestamp
35589
37299
 
35590
37300
  # defaultRouteAction takes effect when none of the hostRules match. The load
35591
- # balancer performs advanced routing actions like URL rewrites, header
35592
- # transformations, etc. prior to forwarding the request to the selected backend.
35593
- # If defaultRouteAction specifies any weightedBackendServices, defaultService
35594
- # must not be set. Conversely if defaultService is set, defaultRouteAction
35595
- # cannot contain any weightedBackendServices. Only one of defaultRouteAction or
37301
+ # balancer performs advanced routing actions, such as URL rewrites and header
37302
+ # transformations, before forwarding the request to the selected backend. If
37303
+ # defaultRouteAction specifies any weightedBackendServices, defaultService must
37304
+ # not be set. Conversely if defaultService is set, defaultRouteAction cannot
37305
+ # contain any weightedBackendServices. Only one of defaultRouteAction or
35596
37306
  # defaultUrlRedirect must be set. UrlMaps for external HTTP(S) load balancers
35597
37307
  # support only the urlRewrite action within defaultRouteAction.
35598
- # defaultRouteAction has no effect when the URL map is bound to target gRPC
35599
- # proxy that has validateForProxyless field set to true.
37308
+ # defaultRouteAction has no effect when the URL map is bound to a target gRPC
37309
+ # proxy that has the validateForProxyless field set to true.
35600
37310
  # Corresponds to the JSON property `defaultRouteAction`
35601
37311
  # @return [Google::Apis::ComputeV1::HttpRouteAction]
35602
37312
  attr_accessor :default_route_action
35603
37313
 
35604
37314
  # The full or partial URL of the defaultService resource to which traffic is
35605
- # directed if none of the hostRules match. If defaultRouteAction is additionally
35606
- # specified, advanced routing actions like URL Rewrites, etc. take effect prior
35607
- # to sending the request to the backend. However, if defaultService is specified,
37315
+ # directed if none of the hostRules match. If defaultRouteAction is also
37316
+ # specified, advanced routing actions, such as URL rewrites, take effect before
37317
+ # sending the request to the backend. However, if defaultService is specified,
35608
37318
  # defaultRouteAction cannot contain any weightedBackendServices. Conversely, if
35609
37319
  # routeAction specifies any weightedBackendServices, service must not be
35610
- # specified. Only one of defaultService, defaultUrlRedirect or
37320
+ # specified. Only one of defaultService, defaultUrlRedirect , or
35611
37321
  # defaultRouteAction.weightedBackendService must be set. defaultService has no
35612
- # effect when the URL map is bound to target gRPC proxy that has
37322
+ # effect when the URL map is bound to a target gRPC proxy that has the
35613
37323
  # validateForProxyless field set to true.
35614
37324
  # Corresponds to the JSON property `defaultService`
35615
37325
  # @return [String]
@@ -35627,11 +37337,10 @@ module Google
35627
37337
  attr_accessor :description
35628
37338
 
35629
37339
  # Fingerprint of this resource. A hash of the contents stored in this object.
35630
- # This field is used in optimistic locking. This field will be ignored when
35631
- # inserting a UrlMap. An up-to-date fingerprint must be provided in order to
35632
- # update the UrlMap, otherwise the request will fail with error 412
35633
- # conditionNotMet. To see the latest fingerprint, make a get() request to
35634
- # retrieve a UrlMap.
37340
+ # This field is used in optimistic locking. This field is ignored when inserting
37341
+ # a UrlMap. An up-to-date fingerprint must be provided in order to update the
37342
+ # UrlMap, otherwise the request will fail with error 412 conditionNotMet. To see
37343
+ # the latest fingerprint, make a get() request to retrieve a UrlMap.
35635
37344
  # Corresponds to the JSON property `fingerprint`
35636
37345
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
35637
37346
  # @return [String]
@@ -35643,7 +37352,7 @@ module Google
35643
37352
  # @return [Google::Apis::ComputeV1::HttpHeaderAction]
35644
37353
  attr_accessor :header_action
35645
37354
 
35646
- # The list of HostRules to use against the URL.
37355
+ # The list of host rules to use against the URL.
35647
37356
  # Corresponds to the JSON property `hostRules`
35648
37357
  # @return [Array<Google::Apis::ComputeV1::HostRule>]
35649
37358
  attr_accessor :host_rules
@@ -35686,10 +37395,10 @@ module Google
35686
37395
  # @return [String]
35687
37396
  attr_accessor :self_link
35688
37397
 
35689
- # The list of expected URL mapping tests. Request to update this UrlMap will
35690
- # succeed only if all of the test cases pass. You can specify a maximum of 100
35691
- # tests per UrlMap. Not supported when the URL map is bound to target gRPC proxy
35692
- # that has validateForProxyless field set to true.
37398
+ # The list of expected URL mapping tests. Request to update the UrlMap succeeds
37399
+ # only if all test cases pass. You can specify a maximum of 100 tests per UrlMap.
37400
+ # Not supported when the URL map is bound to a target gRPC proxy that has
37401
+ # validateForProxyless field set to true.
35693
37402
  # Corresponds to the JSON property `tests`
35694
37403
  # @return [Array<Google::Apis::ComputeV1::UrlMapTest>]
35695
37404
  attr_accessor :tests
@@ -35863,18 +37572,18 @@ module Google
35863
37572
  # @return [String]
35864
37573
  attr_accessor :description
35865
37574
 
35866
- # The expected output URL evaluated by load balancer containing the scheme, host,
35867
- # path and query parameters. For rules that forward requests to backends, the
35868
- # test passes only when expectedOutputUrl matches the request forwarded by load
35869
- # balancer to backends. For rules with urlRewrite, the test verifies that the
35870
- # forwarded request matches hostRewrite and pathPrefixRewrite in the urlRewrite
35871
- # action. When service is specified, expectedOutputUrl`s scheme is ignored. For
35872
- # rules with urlRedirect, the test passes only if expectedOutputUrl matches the
35873
- # URL in the load balancer's redirect response. If urlRedirect specifies
35874
- # https_redirect, the test passes only if the scheme in expectedOutputUrl is
35875
- # also set to https. If urlRedirect specifies strip_query, the test passes only
35876
- # if expectedOutputUrl does not contain any query parameters. expectedOutputUrl
35877
- # is optional when service is specified.
37575
+ # The expected output URL evaluated by the load balancer containing the scheme,
37576
+ # host, path and query parameters. For rules that forward requests to backends,
37577
+ # the test passes only when expectedOutputUrl matches the request forwarded by
37578
+ # the load balancer to backends. For rules with urlRewrite, the test verifies
37579
+ # that the forwarded request matches hostRewrite and pathPrefixRewrite in the
37580
+ # urlRewrite action. When service is specified, expectedOutputUrl`s scheme is
37581
+ # ignored. For rules with urlRedirect, the test passes only if expectedOutputUrl
37582
+ # matches the URL in the load balancer's redirect response. If urlRedirect
37583
+ # specifies https_redirect, the test passes only if the scheme in
37584
+ # expectedOutputUrl is also set to HTTPS. If urlRedirect specifies strip_query,
37585
+ # the test passes only if expectedOutputUrl does not contain any query
37586
+ # parameters. expectedOutputUrl is optional when service is specified.
35878
37587
  # Corresponds to the JSON property `expectedOutputUrl`
35879
37588
  # @return [String]
35880
37589
  attr_accessor :expected_output_url
@@ -35905,7 +37614,8 @@ module Google
35905
37614
  attr_accessor :path
35906
37615
 
35907
37616
  # Expected BackendService or BackendBucket resource the given URL should be
35908
- # mapped to. service cannot be set if expectedRedirectResponseCode is set.
37617
+ # mapped to. The service field cannot be set if expectedRedirectResponseCode is
37618
+ # set.
35909
37619
  # Corresponds to the JSON property `service`
35910
37620
  # @return [String]
35911
37621
  attr_accessor :service
@@ -36210,17 +37920,17 @@ module Google
36210
37920
  class ValidateUrlMapsRequest
36211
37921
  include Google::Apis::Core::Hashable
36212
37922
 
36213
- # Represents a URL Map resource. Google Compute Engine has two URL Map resources:
36214
- # * [Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/
36215
- # docs/reference/rest/v1/regionUrlMaps) A URL map resource is a component of
36216
- # certain types of GCP load balancers and Traffic Director. * urlMaps are used
36217
- # by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are
36218
- # used by internal HTTP(S) load balancers. For a list of supported URL map
36219
- # features by load balancer type, see the Load balancing features: Routing and
37923
+ # Represents a URL Map resource. Compute Engine has two URL Map resources: * [
37924
+ # Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/docs/
37925
+ # reference/rest/v1/regionUrlMaps) A URL map resource is a component of certain
37926
+ # types of cloud load balancers and Traffic Director: * urlMaps are used by
37927
+ # external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are used
37928
+ # by internal HTTP(S) load balancers. For a list of supported URL map features
37929
+ # by the load balancer type, see the Load balancing features: Routing and
36220
37930
  # traffic management table. For a list of supported URL map features for Traffic
36221
37931
  # Director, see the Traffic Director features: Routing and traffic management
36222
- # table. This resource defines mappings from host names and URL paths to either
36223
- # a backend service or a backend bucket. To use the global urlMaps resource, the
37932
+ # table. This resource defines mappings from hostnames and URL paths to either a
37933
+ # backend service or a backend bucket. To use the global urlMaps resource, the
36224
37934
  # backend service must have a loadBalancingScheme of either EXTERNAL or
36225
37935
  # INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service
36226
37936
  # must have a loadBalancingScheme of INTERNAL_MANAGED. For more information,
@@ -36263,16 +37973,16 @@ module Google
36263
37973
  class UrlRewrite
36264
37974
  include Google::Apis::Core::Hashable
36265
37975
 
36266
- # Prior to forwarding the request to the selected service, the request's host
36267
- # header is replaced with contents of hostRewrite. The value must be between 1
36268
- # and 255 characters.
37976
+ # Before forwarding the request to the selected service, the request's host
37977
+ # header is replaced with contents of hostRewrite. The value must be from 1 to
37978
+ # 255 characters.
36269
37979
  # Corresponds to the JSON property `hostRewrite`
36270
37980
  # @return [String]
36271
37981
  attr_accessor :host_rewrite
36272
37982
 
36273
- # Prior to forwarding the request to the selected backend service, the matching
37983
+ # Before forwarding the request to the selected backend service, the matching
36274
37984
  # portion of the request's path is replaced by pathPrefixRewrite. The value must
36275
- # be between 1 and 1024 characters.
37985
+ # be from 1 to 1024 characters.
36276
37986
  # Corresponds to the JSON property `pathPrefixRewrite`
36277
37987
  # @return [String]
36278
37988
  attr_accessor :path_prefix_rewrite
@@ -36782,6 +38492,12 @@ module Google
36782
38492
  # @return [String]
36783
38493
  attr_accessor :self_link
36784
38494
 
38495
+ # The stack type for this VPN gateway to identify the IP protocols that are
38496
+ # enabled. If not specified, IPV4_ONLY will be used.
38497
+ # Corresponds to the JSON property `stackType`
38498
+ # @return [String]
38499
+ attr_accessor :stack_type
38500
+
36785
38501
  # The list of VPN interfaces associated with this VPN gateway.
36786
38502
  # Corresponds to the JSON property `vpnInterfaces`
36787
38503
  # @return [Array<Google::Apis::ComputeV1::VpnGatewayVpnGatewayInterface>]
@@ -36803,6 +38519,7 @@ module Google
36803
38519
  @network = args[:network] if args.key?(:network)
36804
38520
  @region = args[:region] if args.key?(:region)
36805
38521
  @self_link = args[:self_link] if args.key?(:self_link)
38522
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
36806
38523
  @vpn_interfaces = args[:vpn_interfaces] if args.key?(:vpn_interfaces)
36807
38524
  end
36808
38525
  end
@@ -37905,14 +39622,13 @@ module Google
37905
39622
 
37906
39623
  # In contrast to a single BackendService in HttpRouteAction to which all
37907
39624
  # matching traffic is directed to, WeightedBackendService allows traffic to be
37908
- # split across multiple BackendServices. The volume of traffic for each
37909
- # BackendService is proportional to the weight specified in each
37910
- # WeightedBackendService
39625
+ # split across multiple backend services. The volume of traffic for each backend
39626
+ # service is proportional to the weight specified in each WeightedBackendService
37911
39627
  class WeightedBackendService
37912
39628
  include Google::Apis::Core::Hashable
37913
39629
 
37914
39630
  # The full or partial URL to the default BackendService resource. Before
37915
- # forwarding the request to backendService, the loadbalancer applies any
39631
+ # forwarding the request to backendService, the load balancer applies any
37916
39632
  # relevant headerActions specified as part of this backendServiceWeight.
37917
39633
  # Corresponds to the JSON property `backendService`
37918
39634
  # @return [String]
@@ -37924,12 +39640,12 @@ module Google
37924
39640
  # @return [Google::Apis::ComputeV1::HttpHeaderAction]
37925
39641
  attr_accessor :header_action
37926
39642
 
37927
- # Specifies the fraction of traffic sent to backendService, computed as weight /
37928
- # (sum of all weightedBackendService weights in routeAction) . The selection of
37929
- # a backend service is determined only for new traffic. Once a user's request
37930
- # has been directed to a backendService, subsequent requests will be sent to the
37931
- # same backendService as determined by the BackendService's session affinity
37932
- # policy. The value must be between 0 and 1000
39643
+ # Specifies the fraction of traffic sent to a backend service, computed as
39644
+ # weight / (sum of all weightedBackendService weights in routeAction) . The
39645
+ # selection of a backend service is determined only for new traffic. Once a user'
39646
+ # s request has been directed to a backend service, subsequent requests are sent
39647
+ # to the same backend service as determined by the backend service's session
39648
+ # affinity policy. The value must be from 0 to 1000.
37933
39649
  # Corresponds to the JSON property `weight`
37934
39650
  # @return [Fixnum]
37935
39651
  attr_accessor :weight
@@ -38339,31 +40055,31 @@ module Google
38339
40055
 
38340
40056
  # An Identity and Access Management (IAM) policy, which specifies access
38341
40057
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
38342
- # A `binding` binds one or more `members` to a single `role`. Members can be
38343
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
38344
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
38345
- # role or a user-created custom role. For some types of Google Cloud resources,
38346
- # a `binding` can also specify a `condition`, which is a logical expression that
38347
- # allows access to a resource only if the expression evaluates to `true`. A
38348
- # condition can add constraints based on attributes of the request, the resource,
38349
- # or both. To learn which resources support conditions in their IAM policies,
38350
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
38351
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
38352
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
38353
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
38354
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
38355
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
38356
- # title": "expirable access", "description": "Does not grant access after Sep
38357
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
38358
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
38359
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
38360
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
38361
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
38362
- # roles/resourcemanager.organizationViewer condition: title: expirable access
38363
- # description: Does not grant access after Sep 2020 expression: request.time <
38364
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
38365
- # description of IAM and its features, see the [IAM documentation](https://cloud.
38366
- # google.com/iam/docs/).
40058
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
40059
+ # Principals can be user accounts, service accounts, Google groups, and domains (
40060
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
40061
+ # an IAM predefined role or a user-created custom role. For some types of Google
40062
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
40063
+ # logical expression that allows access to a resource only if the expression
40064
+ # evaluates to `true`. A condition can add constraints based on attributes of
40065
+ # the request, the resource, or both. To learn which resources support
40066
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
40067
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
40068
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
40069
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
40070
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
40071
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
40072
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
40073
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
40074
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
40075
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
40076
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
40077
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
40078
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
40079
+ # access description: Does not grant access after Sep 2020 expression: request.
40080
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
40081
+ # a description of IAM and its features, see the [IAM documentation](https://
40082
+ # cloud.google.com/iam/docs/).
38367
40083
  # Corresponds to the JSON property `policy`
38368
40084
  # @return [Google::Apis::ComputeV1::Policy]
38369
40085
  attr_accessor :policy