google-apis-compute_v1 0.18.0 → 0.22.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -464,15 +464,15 @@ module Google
464
464
  class AccessConfig
465
465
  include Google::Apis::Core::Hashable
466
466
 
467
- # [Output Only] The first IPv6 address of the external IPv6 range associated
468
- # with this instance, prefix length is stored in externalIpv6PrefixLength in
467
+ # The first IPv6 address of the external IPv6 range associated with this
468
+ # instance, prefix length is stored in externalIpv6PrefixLength in
469
469
  # ipv6AccessConfig. The field is output only, an IPv6 address from a subnetwork
470
470
  # associated with the instance will be allocated dynamically.
471
471
  # Corresponds to the JSON property `externalIpv6`
472
472
  # @return [String]
473
473
  attr_accessor :external_ipv6
474
474
 
475
- # [Output Only] The prefix length of the external IPv6 range.
475
+ # The prefix length of the external IPv6 range.
476
476
  # Corresponds to the JSON property `externalIpv6PrefixLength`
477
477
  # @return [Fixnum]
478
478
  attr_accessor :external_ipv6_prefix_length
@@ -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
@@ -1394,6 +1399,11 @@ module Google
1394
1399
  # @return [Hash<String,String>]
1395
1400
  attr_accessor :labels
1396
1401
 
1402
+ # A list of publicly visible licenses. Reserved for Google's use.
1403
+ # Corresponds to the JSON property `licenses`
1404
+ # @return [Array<String>]
1405
+ attr_accessor :licenses
1406
+
1397
1407
  # Specifies which action to take on instance update with this disk. Default is
1398
1408
  # to use the existing disk.
1399
1409
  # Corresponds to the JSON property `onUpdateAction`
@@ -1466,6 +1476,7 @@ module Google
1466
1476
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
1467
1477
  @disk_type = args[:disk_type] if args.key?(:disk_type)
1468
1478
  @labels = args[:labels] if args.key?(:labels)
1479
+ @licenses = args[:licenses] if args.key?(:licenses)
1469
1480
  @on_update_action = args[:on_update_action] if args.key?(:on_update_action)
1470
1481
  @provisioned_iops = args[:provisioned_iops] if args.key?(:provisioned_iops)
1471
1482
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
@@ -2561,6 +2572,12 @@ module Google
2561
2572
  # @return [String]
2562
2573
  attr_accessor :description
2563
2574
 
2575
+ # [Output Only] The resource URL for the edge security policy associated with
2576
+ # this backend bucket.
2577
+ # Corresponds to the JSON property `edgeSecurityPolicy`
2578
+ # @return [String]
2579
+ attr_accessor :edge_security_policy
2580
+
2564
2581
  # If true, enable Cloud CDN for this BackendBucket.
2565
2582
  # Corresponds to the JSON property `enableCdn`
2566
2583
  # @return [Boolean]
@@ -2603,6 +2620,7 @@ module Google
2603
2620
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
2604
2621
  @custom_response_headers = args[:custom_response_headers] if args.key?(:custom_response_headers)
2605
2622
  @description = args[:description] if args.key?(:description)
2623
+ @edge_security_policy = args[:edge_security_policy] if args.key?(:edge_security_policy)
2606
2624
  @enable_cdn = args[:enable_cdn] if args.key?(:enable_cdn)
2607
2625
  @id = args[:id] if args.key?(:id)
2608
2626
  @kind = args[:kind] if args.key?(:kind)
@@ -2622,6 +2640,12 @@ module Google
2622
2640
  # @return [Array<Google::Apis::ComputeV1::BackendBucketCdnPolicyBypassCacheOnRequestHeader>]
2623
2641
  attr_accessor :bypass_cache_on_request_headers
2624
2642
 
2643
+ # Message containing what to include in the cache key for a request for Cloud
2644
+ # CDN.
2645
+ # Corresponds to the JSON property `cacheKeyPolicy`
2646
+ # @return [Google::Apis::ComputeV1::BackendBucketCdnPolicyCacheKeyPolicy]
2647
+ attr_accessor :cache_key_policy
2648
+
2625
2649
  # Specifies the cache setting for all responses from this backend. The possible
2626
2650
  # values are: USE_ORIGIN_HEADERS Requires the origin to set valid caching
2627
2651
  # headers to cache content. Responses without these headers will not be cached
@@ -2646,7 +2670,7 @@ module Google
2646
2670
  # specified), or else sets the response max-age directive to the lesser of the
2647
2671
  # client_ttl and default_ttl, and also ensures a "public" cache-control
2648
2672
  # 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).
2673
+ # hour) will be used. The maximum allowed value is 31,622,400s (1 year).
2650
2674
  # Corresponds to the JSON property `clientTtl`
2651
2675
  # @return [Fixnum]
2652
2676
  attr_accessor :client_ttl
@@ -2745,6 +2769,7 @@ module Google
2745
2769
  # Update properties of this object
2746
2770
  def update!(**args)
2747
2771
  @bypass_cache_on_request_headers = args[:bypass_cache_on_request_headers] if args.key?(:bypass_cache_on_request_headers)
2772
+ @cache_key_policy = args[:cache_key_policy] if args.key?(:cache_key_policy)
2748
2773
  @cache_mode = args[:cache_mode] if args.key?(:cache_mode)
2749
2774
  @client_ttl = args[:client_ttl] if args.key?(:client_ttl)
2750
2775
  @default_ttl = args[:default_ttl] if args.key?(:default_ttl)
@@ -2780,6 +2805,34 @@ module Google
2780
2805
  end
2781
2806
  end
2782
2807
 
2808
+ # Message containing what to include in the cache key for a request for Cloud
2809
+ # CDN.
2810
+ class BackendBucketCdnPolicyCacheKeyPolicy
2811
+ include Google::Apis::Core::Hashable
2812
+
2813
+ # Allows HTTP request headers (by name) to be used in the cache key.
2814
+ # Corresponds to the JSON property `includeHttpHeaders`
2815
+ # @return [Array<String>]
2816
+ attr_accessor :include_http_headers
2817
+
2818
+ # Names of query string parameters to include in cache keys. All other
2819
+ # parameters will be excluded. '&' and '=' will be percent encoded and not
2820
+ # treated as delimiters.
2821
+ # Corresponds to the JSON property `queryStringWhitelist`
2822
+ # @return [Array<String>]
2823
+ attr_accessor :query_string_whitelist
2824
+
2825
+ def initialize(**args)
2826
+ update!(**args)
2827
+ end
2828
+
2829
+ # Update properties of this object
2830
+ def update!(**args)
2831
+ @include_http_headers = args[:include_http_headers] if args.key?(:include_http_headers)
2832
+ @query_string_whitelist = args[:query_string_whitelist] if args.key?(:query_string_whitelist)
2833
+ end
2834
+ end
2835
+
2783
2836
  # Specify CDN TTLs for response error codes.
2784
2837
  class BackendBucketCdnPolicyNegativeCachingPolicy
2785
2838
  include Google::Apis::Core::Hashable
@@ -2973,6 +3026,11 @@ module Google
2973
3026
  # @return [Google::Apis::ComputeV1::ConnectionDraining]
2974
3027
  attr_accessor :connection_draining
2975
3028
 
3029
+ # Connection Tracking configuration for this BackendService.
3030
+ # Corresponds to the JSON property `connectionTrackingPolicy`
3031
+ # @return [Google::Apis::ComputeV1::BackendServiceConnectionTrackingPolicy]
3032
+ attr_accessor :connection_tracking_policy
3033
+
2976
3034
  # This message defines settings for a consistent hash style load balancer.
2977
3035
  # Corresponds to the JSON property `consistentHash`
2978
3036
  # @return [Google::Apis::ComputeV1::ConsistentHashLoadBalancerSettings]
@@ -3001,6 +3059,12 @@ module Google
3001
3059
  # @return [String]
3002
3060
  attr_accessor :description
3003
3061
 
3062
+ # [Output Only] The resource URL for the edge security policy associated with
3063
+ # this backend service.
3064
+ # Corresponds to the JSON property `edgeSecurityPolicy`
3065
+ # @return [String]
3066
+ attr_accessor :edge_security_policy
3067
+
3004
3068
  # If true, enables Cloud CDN for the backend service of an external HTTP(S) load
3005
3069
  # balancer.
3006
3070
  # Corresponds to the JSON property `enableCDN`
@@ -3010,14 +3074,14 @@ module Google
3010
3074
 
3011
3075
  # For load balancers that have configurable failover: [Internal TCP/UDP Load
3012
3076
  # 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).
3077
+ # overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-
3078
+ # balancing/docs/network/networklb-failover-overview). On failover or failback,
3079
+ # this field indicates whether connection draining will be honored. Google Cloud
3080
+ # has a fixed connection draining timeout of 10 minutes. A setting of true
3081
+ # terminates existing TCP connections to the active pool during failover and
3082
+ # failback, immediately draining traffic. A setting of false allows existing TCP
3083
+ # connections to persist, even on VMs no longer in the active pool, for up to
3084
+ # the duration of the connection draining timeout (10 minutes).
3021
3085
  # Corresponds to the JSON property `failoverPolicy`
3022
3086
  # @return [Google::Apis::ComputeV1::BackendServiceFailoverPolicy]
3023
3087
  attr_accessor :failover_policy
@@ -3088,8 +3152,8 @@ module Google
3088
3152
  # INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme
3089
3153
  # set to INTERNAL_SELF_MANAGED. If sessionAffinity is not NONE, and this field
3090
3154
  # 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
3155
+ # effect. Only ROUND_ROBIN and RING_HASH are supported when the backend service
3156
+ # is referenced by a URL map that is bound to target gRPC proxy that has
3093
3157
  # validateForProxyless field set to true.
3094
3158
  # Corresponds to the JSON property `localityLbPolicy`
3095
3159
  # @return [String]
@@ -3182,11 +3246,11 @@ module Google
3182
3246
  # @return [String]
3183
3247
  attr_accessor :self_link
3184
3248
 
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.
3249
+ # Type of session affinity to use. The default is NONE. Only NONE and
3250
+ # HEADER_FIELD are supported when the backend service is referenced by a URL map
3251
+ # that is bound to target gRPC proxy that has validateForProxyless field set to
3252
+ # true. For more details, see: [Session Affinity](https://cloud.google.com/load-
3253
+ # balancing/docs/backend-service#session_affinity).
3190
3254
  # Corresponds to the JSON property `sessionAffinity`
3191
3255
  # @return [String]
3192
3256
  attr_accessor :session_affinity
@@ -3216,11 +3280,13 @@ module Google
3216
3280
  @cdn_policy = args[:cdn_policy] if args.key?(:cdn_policy)
3217
3281
  @circuit_breakers = args[:circuit_breakers] if args.key?(:circuit_breakers)
3218
3282
  @connection_draining = args[:connection_draining] if args.key?(:connection_draining)
3283
+ @connection_tracking_policy = args[:connection_tracking_policy] if args.key?(:connection_tracking_policy)
3219
3284
  @consistent_hash = args[:consistent_hash] if args.key?(:consistent_hash)
3220
3285
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
3221
3286
  @custom_request_headers = args[:custom_request_headers] if args.key?(:custom_request_headers)
3222
3287
  @custom_response_headers = args[:custom_response_headers] if args.key?(:custom_response_headers)
3223
3288
  @description = args[:description] if args.key?(:description)
3289
+ @edge_security_policy = args[:edge_security_policy] if args.key?(:edge_security_policy)
3224
3290
  @enable_cdn = args[:enable_cdn] if args.key?(:enable_cdn)
3225
3291
  @failover_policy = args[:failover_policy] if args.key?(:failover_policy)
3226
3292
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
@@ -3412,7 +3478,7 @@ module Google
3412
3478
  # specified), or else sets the response max-age directive to the lesser of the
3413
3479
  # client_ttl and default_ttl, and also ensures a "public" cache-control
3414
3480
  # directive is present. If a client TTL is not specified, a default value (1
3415
- # hour) will be used. The maximum allowed value is 86400s (1 day).
3481
+ # hour) will be used. The maximum allowed value is 31,622,400s (1 year).
3416
3482
  # Corresponds to the JSON property `clientTtl`
3417
3483
  # @return [Fixnum]
3418
3484
  attr_accessor :client_ttl
@@ -3577,16 +3643,76 @@ module Google
3577
3643
  end
3578
3644
  end
3579
3645
 
3646
+ # Connection Tracking configuration for this BackendService.
3647
+ class BackendServiceConnectionTrackingPolicy
3648
+ include Google::Apis::Core::Hashable
3649
+
3650
+ # Specifies connection persistence when backends are unhealthy. The default
3651
+ # value is DEFAULT_FOR_PROTOCOL. If set to DEFAULT_FOR_PROTOCOL, the existing
3652
+ # connections persist on unhealthy backends only for connection-oriented
3653
+ # protocols (TCP and SCTP) and only if the Tracking Mode is PER_CONNECTION (
3654
+ # default tracking mode) or the Session Affinity is configured for 5-tuple. They
3655
+ # do not persist for UDP. If set to NEVER_PERSIST, after a backend becomes
3656
+ # unhealthy, the existing connections on the unhealthy backend are never
3657
+ # persisted on the unhealthy backend. They are always diverted to newly selected
3658
+ # healthy backends (unless all backends are unhealthy). If set to ALWAYS_PERSIST,
3659
+ # existing connections always persist on unhealthy backends regardless of
3660
+ # protocol and session affinity. It is generally not recommended to use this
3661
+ # mode overriding the default. For more details, see [Connection Persistence for
3662
+ # Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/
3663
+ # networklb-backend-service#connection-persistence) and [Connection Persistence
3664
+ # for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/
3665
+ # docs/internal#connection-persistence).
3666
+ # Corresponds to the JSON property `connectionPersistenceOnUnhealthyBackends`
3667
+ # @return [String]
3668
+ attr_accessor :connection_persistence_on_unhealthy_backends
3669
+
3670
+ # Specifies how long to keep a Connection Tracking entry while there is no
3671
+ # matching traffic (in seconds). For Internal TCP/UDP Load Balancing: - The
3672
+ # minimum (default) is 10 minutes and the maximum is 16 hours. - It can be set
3673
+ # only if Connection Tracking is less than 5-tuple (i.e. Session Affinity is
3674
+ # CLIENT_IP_NO_DESTINATION, CLIENT_IP or CLIENT_IP_PROTO, and Tracking Mode is
3675
+ # PER_SESSION). For Network Load Balancer the default is 60 seconds. This option
3676
+ # is not available publicly.
3677
+ # Corresponds to the JSON property `idleTimeoutSec`
3678
+ # @return [Fixnum]
3679
+ attr_accessor :idle_timeout_sec
3680
+
3681
+ # Specifies the key used for connection tracking. There are two options: -
3682
+ # PER_CONNECTION: This is the default mode. The Connection Tracking is performed
3683
+ # as per the Connection Key (default Hash Method) for the specific protocol. -
3684
+ # PER_SESSION: The Connection Tracking is performed as per the configured
3685
+ # Session Affinity. It matches the configured Session Affinity. For more details,
3686
+ # see [Tracking Mode for Network Load Balancing](https://cloud.google.com/load-
3687
+ # balancing/docs/network/networklb-backend-service#tracking-mode) and [Tracking
3688
+ # Mode for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-
3689
+ # balancing/docs/internal#tracking-mode).
3690
+ # Corresponds to the JSON property `trackingMode`
3691
+ # @return [String]
3692
+ attr_accessor :tracking_mode
3693
+
3694
+ def initialize(**args)
3695
+ update!(**args)
3696
+ end
3697
+
3698
+ # Update properties of this object
3699
+ def update!(**args)
3700
+ @connection_persistence_on_unhealthy_backends = args[:connection_persistence_on_unhealthy_backends] if args.key?(:connection_persistence_on_unhealthy_backends)
3701
+ @idle_timeout_sec = args[:idle_timeout_sec] if args.key?(:idle_timeout_sec)
3702
+ @tracking_mode = args[:tracking_mode] if args.key?(:tracking_mode)
3703
+ end
3704
+ end
3705
+
3580
3706
  # For load balancers that have configurable failover: [Internal TCP/UDP Load
3581
3707
  # Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-
3582
- # overview) and [external TCP/UDP Load Balancing](/network/networklb-failover-
3583
- # overview). On failover or failback, this field indicates whether connection
3584
- # draining will be honored. Google Cloud has a fixed connection draining timeout
3585
- # of 10 minutes. A setting of true terminates existing TCP connections to the
3586
- # active pool during failover and failback, immediately draining traffic. A
3587
- # setting of false allows existing TCP connections to persist, even on VMs no
3588
- # longer in the active pool, for up to the duration of the connection draining
3589
- # timeout (10 minutes).
3708
+ # overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-
3709
+ # balancing/docs/network/networklb-failover-overview). On failover or failback,
3710
+ # this field indicates whether connection draining will be honored. Google Cloud
3711
+ # has a fixed connection draining timeout of 10 minutes. A setting of true
3712
+ # terminates existing TCP connections to the active pool during failover and
3713
+ # failback, immediately draining traffic. A setting of false allows existing TCP
3714
+ # connections to persist, even on VMs no longer in the active pool, for up to
3715
+ # the duration of the connection draining timeout (10 minutes).
3590
3716
  class BackendServiceFailoverPolicy
3591
3717
  include Google::Apis::Core::Hashable
3592
3718
 
@@ -3601,8 +3727,9 @@ module Google
3601
3727
  # distributed among all primary VMs when all primary and all backup backend VMs
3602
3728
  # are unhealthy. For load balancers that have configurable failover: [Internal
3603
3729
  # TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/
3604
- # failover-overview) and [external TCP/UDP Load Balancing](/network/networklb-
3605
- # failover-overview). The default is false.
3730
+ # failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.
3731
+ # com/load-balancing/docs/network/networklb-failover-overview). The default is
3732
+ # false.
3606
3733
  # Corresponds to the JSON property `dropTrafficIfUnhealthy`
3607
3734
  # @return [Boolean]
3608
3735
  attr_accessor :drop_traffic_if_unhealthy
@@ -3614,7 +3741,8 @@ module Google
3614
3741
  # the total number of healthy primary VMs is less than this ratio. For load
3615
3742
  # balancers that have configurable failover: [Internal TCP/UDP Load Balancing](
3616
3743
  # https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [
3617
- # external TCP/UDP Load Balancing](/network/networklb-failover-overview).
3744
+ # external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/
3745
+ # network/networklb-failover-overview).
3618
3746
  # Corresponds to the JSON property `failoverRatio`
3619
3747
  # @return [Float]
3620
3748
  attr_accessor :failover_ratio
@@ -3966,7 +4094,256 @@ module Google
3966
4094
  end
3967
4095
  end
3968
4096
 
3969
- # Associates `members` with a `role`.
4097
+ #
4098
+ class BfdPacket
4099
+ include Google::Apis::Core::Hashable
4100
+
4101
+ # The Authentication Present bit of the BFD packet. This is specified in section
4102
+ # 4.1 of RFC5880
4103
+ # Corresponds to the JSON property `authenticationPresent`
4104
+ # @return [Boolean]
4105
+ attr_accessor :authentication_present
4106
+ alias_method :authentication_present?, :authentication_present
4107
+
4108
+ # The Control Plane Independent bit of the BFD packet. This is specified in
4109
+ # section 4.1 of RFC5880
4110
+ # Corresponds to the JSON property `controlPlaneIndependent`
4111
+ # @return [Boolean]
4112
+ attr_accessor :control_plane_independent
4113
+ alias_method :control_plane_independent?, :control_plane_independent
4114
+
4115
+ # The demand bit of the BFD packet. This is specified in section 4.1 of RFC5880
4116
+ # Corresponds to the JSON property `demand`
4117
+ # @return [Boolean]
4118
+ attr_accessor :demand
4119
+ alias_method :demand?, :demand
4120
+
4121
+ # The diagnostic code specifies the local system's reason for the last change in
4122
+ # session state. This allows remote systems to determine the reason that the
4123
+ # previous session failed, for example. These diagnostic codes are specified in
4124
+ # section 4.1 of RFC5880
4125
+ # Corresponds to the JSON property `diagnostic`
4126
+ # @return [String]
4127
+ attr_accessor :diagnostic
4128
+
4129
+ # The Final bit of the BFD packet. This is specified in section 4.1 of RFC5880
4130
+ # Corresponds to the JSON property `final`
4131
+ # @return [Boolean]
4132
+ attr_accessor :final
4133
+ alias_method :final?, :final
4134
+
4135
+ # The length of the BFD Control packet in bytes. This is specified in section 4.
4136
+ # 1 of RFC5880
4137
+ # Corresponds to the JSON property `length`
4138
+ # @return [Fixnum]
4139
+ attr_accessor :length
4140
+
4141
+ # The Required Min Echo RX Interval value in the BFD packet. This is specified
4142
+ # in section 4.1 of RFC5880
4143
+ # Corresponds to the JSON property `minEchoRxIntervalMs`
4144
+ # @return [Fixnum]
4145
+ attr_accessor :min_echo_rx_interval_ms
4146
+
4147
+ # The Required Min RX Interval value in the BFD packet. This is specified in
4148
+ # section 4.1 of RFC5880
4149
+ # Corresponds to the JSON property `minRxIntervalMs`
4150
+ # @return [Fixnum]
4151
+ attr_accessor :min_rx_interval_ms
4152
+
4153
+ # The Desired Min TX Interval value in the BFD packet. This is specified in
4154
+ # section 4.1 of RFC5880
4155
+ # Corresponds to the JSON property `minTxIntervalMs`
4156
+ # @return [Fixnum]
4157
+ attr_accessor :min_tx_interval_ms
4158
+
4159
+ # The detection time multiplier of the BFD packet. This is specified in section
4160
+ # 4.1 of RFC5880
4161
+ # Corresponds to the JSON property `multiplier`
4162
+ # @return [Fixnum]
4163
+ attr_accessor :multiplier
4164
+
4165
+ # The multipoint bit of the BFD packet. This is specified in section 4.1 of
4166
+ # RFC5880
4167
+ # Corresponds to the JSON property `multipoint`
4168
+ # @return [Boolean]
4169
+ attr_accessor :multipoint
4170
+ alias_method :multipoint?, :multipoint
4171
+
4172
+ # The My Discriminator value in the BFD packet. This is specified in section 4.1
4173
+ # of RFC5880
4174
+ # Corresponds to the JSON property `myDiscriminator`
4175
+ # @return [Fixnum]
4176
+ attr_accessor :my_discriminator
4177
+
4178
+ # The Poll bit of the BFD packet. This is specified in section 4.1 of RFC5880
4179
+ # Corresponds to the JSON property `poll`
4180
+ # @return [Boolean]
4181
+ attr_accessor :poll
4182
+ alias_method :poll?, :poll
4183
+
4184
+ # The current BFD session state as seen by the transmitting system. These states
4185
+ # are specified in section 4.1 of RFC5880
4186
+ # Corresponds to the JSON property `state`
4187
+ # @return [String]
4188
+ attr_accessor :state
4189
+
4190
+ # The version number of the BFD protocol, as specified in section 4.1 of RFC5880.
4191
+ # Corresponds to the JSON property `version`
4192
+ # @return [Fixnum]
4193
+ attr_accessor :version
4194
+
4195
+ # The Your Discriminator value in the BFD packet. This is specified in section 4.
4196
+ # 1 of RFC5880
4197
+ # Corresponds to the JSON property `yourDiscriminator`
4198
+ # @return [Fixnum]
4199
+ attr_accessor :your_discriminator
4200
+
4201
+ def initialize(**args)
4202
+ update!(**args)
4203
+ end
4204
+
4205
+ # Update properties of this object
4206
+ def update!(**args)
4207
+ @authentication_present = args[:authentication_present] if args.key?(:authentication_present)
4208
+ @control_plane_independent = args[:control_plane_independent] if args.key?(:control_plane_independent)
4209
+ @demand = args[:demand] if args.key?(:demand)
4210
+ @diagnostic = args[:diagnostic] if args.key?(:diagnostic)
4211
+ @final = args[:final] if args.key?(:final)
4212
+ @length = args[:length] if args.key?(:length)
4213
+ @min_echo_rx_interval_ms = args[:min_echo_rx_interval_ms] if args.key?(:min_echo_rx_interval_ms)
4214
+ @min_rx_interval_ms = args[:min_rx_interval_ms] if args.key?(:min_rx_interval_ms)
4215
+ @min_tx_interval_ms = args[:min_tx_interval_ms] if args.key?(:min_tx_interval_ms)
4216
+ @multiplier = args[:multiplier] if args.key?(:multiplier)
4217
+ @multipoint = args[:multipoint] if args.key?(:multipoint)
4218
+ @my_discriminator = args[:my_discriminator] if args.key?(:my_discriminator)
4219
+ @poll = args[:poll] if args.key?(:poll)
4220
+ @state = args[:state] if args.key?(:state)
4221
+ @version = args[:version] if args.key?(:version)
4222
+ @your_discriminator = args[:your_discriminator] if args.key?(:your_discriminator)
4223
+ end
4224
+ end
4225
+
4226
+ # Next free: 15
4227
+ class BfdStatus
4228
+ include Google::Apis::Core::Hashable
4229
+
4230
+ # The BFD session initialization mode for this BGP peer. If set to ACTIVE, the
4231
+ # Cloud Router will initiate the BFD session for this BGP peer. If set to
4232
+ # PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD
4233
+ # session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP
4234
+ # peer.
4235
+ # Corresponds to the JSON property `bfdSessionInitializationMode`
4236
+ # @return [String]
4237
+ attr_accessor :bfd_session_initialization_mode
4238
+
4239
+ # Unix timestamp of the most recent config update.
4240
+ # Corresponds to the JSON property `configUpdateTimestampMicros`
4241
+ # @return [Fixnum]
4242
+ attr_accessor :config_update_timestamp_micros
4243
+
4244
+ # Control packet counts for the current BFD session.
4245
+ # Corresponds to the JSON property `controlPacketCounts`
4246
+ # @return [Google::Apis::ComputeV1::BfdStatusPacketCounts]
4247
+ attr_accessor :control_packet_counts
4248
+
4249
+ # Inter-packet time interval statistics for control packets.
4250
+ # Corresponds to the JSON property `controlPacketIntervals`
4251
+ # @return [Array<Google::Apis::ComputeV1::PacketIntervals>]
4252
+ attr_accessor :control_packet_intervals
4253
+
4254
+ # The diagnostic code specifies the local system's reason for the last change in
4255
+ # session state. This allows remote systems to determine the reason that the
4256
+ # previous session failed, for example. These diagnostic codes are specified in
4257
+ # section 4.1 of RFC5880
4258
+ # Corresponds to the JSON property `localDiagnostic`
4259
+ # @return [String]
4260
+ attr_accessor :local_diagnostic
4261
+
4262
+ # The current BFD session state as seen by the transmitting system. These states
4263
+ # are specified in section 4.1 of RFC5880
4264
+ # Corresponds to the JSON property `localState`
4265
+ # @return [String]
4266
+ attr_accessor :local_state
4267
+
4268
+ # Negotiated transmit interval for control packets.
4269
+ # Corresponds to the JSON property `negotiatedLocalControlTxIntervalMs`
4270
+ # @return [Fixnum]
4271
+ attr_accessor :negotiated_local_control_tx_interval_ms
4272
+
4273
+ # The most recent Rx control packet for this BFD session.
4274
+ # Corresponds to the JSON property `rxPacket`
4275
+ # @return [Google::Apis::ComputeV1::BfdPacket]
4276
+ attr_accessor :rx_packet
4277
+
4278
+ # The most recent Tx control packet for this BFD session.
4279
+ # Corresponds to the JSON property `txPacket`
4280
+ # @return [Google::Apis::ComputeV1::BfdPacket]
4281
+ attr_accessor :tx_packet
4282
+
4283
+ # Session uptime in milliseconds. Value will be 0 if session is not up.
4284
+ # Corresponds to the JSON property `uptimeMs`
4285
+ # @return [Fixnum]
4286
+ attr_accessor :uptime_ms
4287
+
4288
+ def initialize(**args)
4289
+ update!(**args)
4290
+ end
4291
+
4292
+ # Update properties of this object
4293
+ def update!(**args)
4294
+ @bfd_session_initialization_mode = args[:bfd_session_initialization_mode] if args.key?(:bfd_session_initialization_mode)
4295
+ @config_update_timestamp_micros = args[:config_update_timestamp_micros] if args.key?(:config_update_timestamp_micros)
4296
+ @control_packet_counts = args[:control_packet_counts] if args.key?(:control_packet_counts)
4297
+ @control_packet_intervals = args[:control_packet_intervals] if args.key?(:control_packet_intervals)
4298
+ @local_diagnostic = args[:local_diagnostic] if args.key?(:local_diagnostic)
4299
+ @local_state = args[:local_state] if args.key?(:local_state)
4300
+ @negotiated_local_control_tx_interval_ms = args[:negotiated_local_control_tx_interval_ms] if args.key?(:negotiated_local_control_tx_interval_ms)
4301
+ @rx_packet = args[:rx_packet] if args.key?(:rx_packet)
4302
+ @tx_packet = args[:tx_packet] if args.key?(:tx_packet)
4303
+ @uptime_ms = args[:uptime_ms] if args.key?(:uptime_ms)
4304
+ end
4305
+ end
4306
+
4307
+ #
4308
+ class BfdStatusPacketCounts
4309
+ include Google::Apis::Core::Hashable
4310
+
4311
+ # Number of packets received since the beginning of the current BFD session.
4312
+ # Corresponds to the JSON property `numRx`
4313
+ # @return [Fixnum]
4314
+ attr_accessor :num_rx
4315
+
4316
+ # Number of packets received that were rejected because of errors since the
4317
+ # beginning of the current BFD session.
4318
+ # Corresponds to the JSON property `numRxRejected`
4319
+ # @return [Fixnum]
4320
+ attr_accessor :num_rx_rejected
4321
+
4322
+ # Number of packets received that were successfully processed since the
4323
+ # beginning of the current BFD session.
4324
+ # Corresponds to the JSON property `numRxSuccessful`
4325
+ # @return [Fixnum]
4326
+ attr_accessor :num_rx_successful
4327
+
4328
+ # Number of packets transmitted since the beginning of the current BFD session.
4329
+ # Corresponds to the JSON property `numTx`
4330
+ # @return [Fixnum]
4331
+ attr_accessor :num_tx
4332
+
4333
+ def initialize(**args)
4334
+ update!(**args)
4335
+ end
4336
+
4337
+ # Update properties of this object
4338
+ def update!(**args)
4339
+ @num_rx = args[:num_rx] if args.key?(:num_rx)
4340
+ @num_rx_rejected = args[:num_rx_rejected] if args.key?(:num_rx_rejected)
4341
+ @num_rx_successful = args[:num_rx_successful] if args.key?(:num_rx_successful)
4342
+ @num_tx = args[:num_tx] if args.key?(:num_tx)
4343
+ end
4344
+ end
4345
+
4346
+ # Associates `members`, or principals, with a `role`.
3970
4347
  class Binding
3971
4348
  include Google::Apis::Core::Hashable
3972
4349
 
@@ -3994,7 +4371,7 @@ module Google
3994
4371
  # @return [Google::Apis::ComputeV1::Expr]
3995
4372
  attr_accessor :condition
3996
4373
 
3997
- # Specifies the identities requesting access for a Cloud Platform resource. `
4374
+ # Specifies the principals requesting access for a Cloud Platform resource. `
3998
4375
  # members` can have the following values: * `allUsers`: A special identifier
3999
4376
  # that represents anyone who is on the internet; with or without a Google
4000
4377
  # account. * `allAuthenticatedUsers`: A special identifier that represents
@@ -4024,8 +4401,8 @@ module Google
4024
4401
  # @return [Array<String>]
4025
4402
  attr_accessor :members
4026
4403
 
4027
- # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
4028
- # , or `roles/owner`.
4404
+ # Role that is assigned to the list of `members`, or principals. For example, `
4405
+ # roles/viewer`, `roles/editor`, or `roles/owner`.
4029
4406
  # Corresponds to the JSON property `role`
4030
4407
  # @return [String]
4031
4408
  attr_accessor :role
@@ -4179,6 +4556,17 @@ module Google
4179
4556
  attr_accessor :include_host
4180
4557
  alias_method :include_host?, :include_host
4181
4558
 
4559
+ # Allows HTTP request headers (by name) to be used in the cache key.
4560
+ # Corresponds to the JSON property `includeHttpHeaders`
4561
+ # @return [Array<String>]
4562
+ attr_accessor :include_http_headers
4563
+
4564
+ # Allows HTTP cookies (by name) to be used in the cache key. The name=value pair
4565
+ # will be used in the cache key Cloud CDN generates.
4566
+ # Corresponds to the JSON property `includeNamedCookies`
4567
+ # @return [Array<String>]
4568
+ attr_accessor :include_named_cookies
4569
+
4182
4570
  # If true, http and https requests will be cached separately.
4183
4571
  # Corresponds to the JSON property `includeProtocol`
4184
4572
  # @return [Boolean]
@@ -4217,6 +4605,8 @@ module Google
4217
4605
  # Update properties of this object
4218
4606
  def update!(**args)
4219
4607
  @include_host = args[:include_host] if args.key?(:include_host)
4608
+ @include_http_headers = args[:include_http_headers] if args.key?(:include_http_headers)
4609
+ @include_named_cookies = args[:include_named_cookies] if args.key?(:include_named_cookies)
4220
4610
  @include_protocol = args[:include_protocol] if args.key?(:include_protocol)
4221
4611
  @include_query_string = args[:include_query_string] if args.key?(:include_query_string)
4222
4612
  @query_string_blacklist = args[:query_string_blacklist] if args.key?(:query_string_blacklist)
@@ -4281,6 +4671,16 @@ module Google
4281
4671
  class Commitment
4282
4672
  include Google::Apis::Core::Hashable
4283
4673
 
4674
+ # Specifies whether to enable automatic renewal for the commitment. The default
4675
+ # value is false if not specified. The field can be updated until the day of the
4676
+ # commitment expiration at 12:00am PST. If the field is set to true, the
4677
+ # commitment will be automatically renewed for either one or three years
4678
+ # according to the terms of the existing commitment.
4679
+ # Corresponds to the JSON property `autoRenew`
4680
+ # @return [Boolean]
4681
+ attr_accessor :auto_renew
4682
+ alias_method :auto_renew?, :auto_renew
4683
+
4284
4684
  # The category of the commitment. Category MACHINE specifies commitments
4285
4685
  # composed of machine resources such as VCPU or MEMORY, listed in resources.
4286
4686
  # Category LICENSE specifies commitments composed of software licenses, listed
@@ -4391,6 +4791,7 @@ module Google
4391
4791
 
4392
4792
  # Update properties of this object
4393
4793
  def update!(**args)
4794
+ @auto_renew = args[:auto_renew] if args.key?(:auto_renew)
4394
4795
  @category = args[:category] if args.key?(:category)
4395
4796
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
4396
4797
  @description = args[:description] if args.key?(:description)
@@ -4899,14 +5300,15 @@ module Google
4899
5300
  end
4900
5301
  end
4901
5302
 
4902
- # The specification for allowing client side cross-origin requests. Please see
4903
- # W3C Recommendation for Cross Origin Resource Sharing
5303
+ # The specification for allowing client-side cross-origin requests. For more
5304
+ # information about the W3C recommendation for cross-origin resource sharing (
5305
+ # CORS), see Fetch API Living Standard.
4904
5306
  class CorsPolicy
4905
5307
  include Google::Apis::Core::Hashable
4906
5308
 
4907
5309
  # In response to a preflight request, setting this to true indicates that the
4908
- # actual request can include user credentials. This translates to the Access-
4909
- # Control-Allow-Credentials header. Default is false.
5310
+ # actual request can include user credentials. This field translates to the
5311
+ # Access-Control-Allow-Credentials header. Default is false.
4910
5312
  # Corresponds to the JSON property `allowCredentials`
4911
5313
  # @return [Boolean]
4912
5314
  attr_accessor :allow_credentials
@@ -4922,23 +5324,23 @@ module Google
4922
5324
  # @return [Array<String>]
4923
5325
  attr_accessor :allow_methods
4924
5326
 
4925
- # Specifies the regualar expression patterns that match allowed origins. For
4926
- # regular expression grammar please see github.com/google/re2/wiki/Syntax An
4927
- # origin is allowed if it matches either an item in allowOrigins or an item in
5327
+ # Specifies a regular expression that matches allowed origins. For more
5328
+ # information about the regular expression syntax, see Syntax. An origin is
5329
+ # allowed if it matches either an item in allowOrigins or an item in
4928
5330
  # allowOriginRegexes.
4929
5331
  # Corresponds to the JSON property `allowOriginRegexes`
4930
5332
  # @return [Array<String>]
4931
5333
  attr_accessor :allow_origin_regexes
4932
5334
 
4933
- # Specifies the list of origins that will be allowed to do CORS requests. An
4934
- # origin is allowed if it matches either an item in allowOrigins or an item in
5335
+ # Specifies the list of origins that is allowed to do CORS requests. An origin
5336
+ # is allowed if it matches either an item in allowOrigins or an item in
4935
5337
  # allowOriginRegexes.
4936
5338
  # Corresponds to the JSON property `allowOrigins`
4937
5339
  # @return [Array<String>]
4938
5340
  attr_accessor :allow_origins
4939
5341
 
4940
- # If true, specifies the CORS policy is disabled. The default value of false,
4941
- # which indicates that the CORS policy is in effect.
5342
+ # If true, the setting specifies the CORS policy is disabled. The default value
5343
+ # of false, which indicates that the CORS policy is in effect.
4942
5344
  # Corresponds to the JSON property `disabled`
4943
5345
  # @return [Boolean]
4944
5346
  attr_accessor :disabled
@@ -4950,7 +5352,7 @@ module Google
4950
5352
  attr_accessor :expose_headers
4951
5353
 
4952
5354
  # Specifies how long results of a preflight request can be cached in seconds.
4953
- # This translates to the Access-Control-Max-Age header.
5355
+ # This field translates to the Access-Control-Max-Age header.
4954
5356
  # Corresponds to the JSON property `maxAge`
4955
5357
  # @return [Fixnum]
4956
5358
  attr_accessor :max_age
@@ -7006,8 +7408,8 @@ module Google
7006
7408
 
7007
7409
  # Name of the resource; provided by the client when the resource is created. The
7008
7410
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
7009
- # name must be 1-63 characters long and match the regular expression [a-z]([-a-
7010
- # z0-9]*[a-z0-9])?. The first character must be a lowercase letter, and all
7411
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
7412
+ # z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all
7011
7413
  # following characters (except for the last character) must be a dash, lowercase
7012
7414
  # letter, or digit. The last character must be a lowercase letter or digit.
7013
7415
  # Corresponds to the JSON property `name`
@@ -8084,8 +8486,7 @@ module Google
8084
8486
  attr_accessor :self_link
8085
8487
 
8086
8488
  # Service Directory resources to register this forwarding rule with. Currently,
8087
- # only supports a single Service Directory resource. It is only supported for
8088
- # internal load balancing.
8489
+ # only supports a single Service Directory resource.
8089
8490
  # Corresponds to the JSON property `serviceDirectoryRegistrations`
8090
8491
  # @return [Array<Google::Apis::ComputeV1::ForwardingRuleServiceDirectoryRegistration>]
8091
8492
  attr_accessor :service_directory_registrations
@@ -8656,31 +9057,31 @@ module Google
8656
9057
 
8657
9058
  # An Identity and Access Management (IAM) policy, which specifies access
8658
9059
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
8659
- # A `binding` binds one or more `members` to a single `role`. Members can be
8660
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
8661
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
8662
- # role or a user-created custom role. For some types of Google Cloud resources,
8663
- # a `binding` can also specify a `condition`, which is a logical expression that
8664
- # allows access to a resource only if the expression evaluates to `true`. A
8665
- # condition can add constraints based on attributes of the request, the resource,
8666
- # or both. To learn which resources support conditions in their IAM policies,
8667
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
8668
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
8669
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
8670
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
8671
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
8672
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
8673
- # title": "expirable access", "description": "Does not grant access after Sep
8674
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
8675
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
8676
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
8677
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
8678
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
8679
- # roles/resourcemanager.organizationViewer condition: title: expirable access
8680
- # description: Does not grant access after Sep 2020 expression: request.time <
8681
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
8682
- # description of IAM and its features, see the [IAM documentation](https://cloud.
8683
- # google.com/iam/docs/).
9060
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
9061
+ # Principals can be user accounts, service accounts, Google groups, and domains (
9062
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
9063
+ # an IAM predefined role or a user-created custom role. For some types of Google
9064
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
9065
+ # logical expression that allows access to a resource only if the expression
9066
+ # evaluates to `true`. A condition can add constraints based on attributes of
9067
+ # the request, the resource, or both. To learn which resources support
9068
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
9069
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
9070
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
9071
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
9072
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
9073
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
9074
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
9075
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
9076
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
9077
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
9078
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
9079
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
9080
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
9081
+ # access description: Does not grant access after Sep 2020 expression: request.
9082
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
9083
+ # a description of IAM and its features, see the [IAM documentation](https://
9084
+ # cloud.google.com/iam/docs/).
8684
9085
  # Corresponds to the JSON property `policy`
8685
9086
  # @return [Google::Apis::ComputeV1::Policy]
8686
9087
  attr_accessor :policy
@@ -8753,31 +9154,31 @@ module Google
8753
9154
 
8754
9155
  # An Identity and Access Management (IAM) policy, which specifies access
8755
9156
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
8756
- # A `binding` binds one or more `members` to a single `role`. Members can be
8757
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
8758
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
8759
- # role or a user-created custom role. For some types of Google Cloud resources,
8760
- # a `binding` can also specify a `condition`, which is a logical expression that
8761
- # allows access to a resource only if the expression evaluates to `true`. A
8762
- # condition can add constraints based on attributes of the request, the resource,
8763
- # or both. To learn which resources support conditions in their IAM policies,
8764
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
8765
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
8766
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
8767
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
8768
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
8769
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
8770
- # title": "expirable access", "description": "Does not grant access after Sep
8771
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
8772
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
8773
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
8774
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
8775
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
8776
- # roles/resourcemanager.organizationViewer condition: title: expirable access
8777
- # description: Does not grant access after Sep 2020 expression: request.time <
8778
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
8779
- # description of IAM and its features, see the [IAM documentation](https://cloud.
8780
- # google.com/iam/docs/).
9157
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
9158
+ # Principals can be user accounts, service accounts, Google groups, and domains (
9159
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
9160
+ # an IAM predefined role or a user-created custom role. For some types of Google
9161
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
9162
+ # logical expression that allows access to a resource only if the expression
9163
+ # evaluates to `true`. A condition can add constraints based on attributes of
9164
+ # the request, the resource, or both. To learn which resources support
9165
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
9166
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
9167
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
9168
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
9169
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
9170
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
9171
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
9172
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
9173
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
9174
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
9175
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
9176
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
9177
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
9178
+ # access description: Does not grant access after Sep 2020 expression: request.
9179
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
9180
+ # a description of IAM and its features, see the [IAM documentation](https://
9181
+ # cloud.google.com/iam/docs/).
8781
9182
  # Corresponds to the JSON property `policy`
8782
9183
  # @return [Google::Apis::ComputeV1::Policy]
8783
9184
  attr_accessor :policy
@@ -8899,8 +9300,11 @@ module Google
8899
9300
  class GuestOsFeature
8900
9301
  include Google::Apis::Core::Hashable
8901
9302
 
8902
- # The ID of a supported feature. Read Enabling guest operating system features
8903
- # to see a list of available options.
9303
+ # The ID of a supported feature. To add multiple values, use commas to separate
9304
+ # values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE -
9305
+ # WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - SECURE_BOOT - GVNIC -
9306
+ # SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE For more information, see Enabling
9307
+ # guest operating system features.
8904
9308
  # Corresponds to the JSON property `type`
8905
9309
  # @return [String]
8906
9310
  attr_accessor :type
@@ -9234,8 +9638,8 @@ module Google
9234
9638
  attr_accessor :timeout_sec
9235
9639
 
9236
9640
  # Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS or HTTP2.
9237
- # If not specified, the default is TCP. Exactly one of the protocol-specific
9238
- # health check field must be specified, which must match type field.
9641
+ # Exactly one of the protocol-specific health check field must be specified,
9642
+ # which must match type field.
9239
9643
  # Corresponds to the JSON property `type`
9240
9644
  # @return [String]
9241
9645
  attr_accessor :type
@@ -10048,7 +10452,8 @@ module Google
10048
10452
  # port numbers in the format host:port. * matches any string of ([a-z0-9-.]*).
10049
10453
  # In that case, * must be the first character and must be followed in the
10050
10454
  # pattern by either - or .. * based matching is not supported when the URL map
10051
- # is bound to target gRPC proxy that has validateForProxyless field set to true.
10455
+ # is bound to a target gRPC proxy that has the validateForProxyless field set to
10456
+ # true.
10052
10457
  # Corresponds to the JSON property `hosts`
10053
10458
  # @return [Array<String>]
10054
10459
  attr_accessor :hosts
@@ -10075,8 +10480,8 @@ module Google
10075
10480
  class HttpFaultAbort
10076
10481
  include Google::Apis::Core::Hashable
10077
10482
 
10078
- # The HTTP status code used to abort the request. The value must be between 200
10079
- # and 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP
10483
+ # The HTTP status code used to abort the request. The value must be from 200 to
10484
+ # 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP
10080
10485
  # status code according to this mapping table. HTTP status 200 is mapped to gRPC
10081
10486
  # status UNKNOWN. Injecting an OK status is currently not supported by Traffic
10082
10487
  # Director.
@@ -10084,8 +10489,8 @@ module Google
10084
10489
  # @return [Fixnum]
10085
10490
  attr_accessor :http_status
10086
10491
 
10087
- # The percentage of traffic (connections/operations/requests) which will be
10088
- # aborted as part of fault injection. The value must be between 0.0 and 100.0
10492
+ # The percentage of traffic for connections, operations, or requests that is
10493
+ # aborted as part of fault injection. The value must be from 0.0 to 100.0
10089
10494
  # inclusive.
10090
10495
  # Corresponds to the JSON property `percentage`
10091
10496
  # @return [Float]
@@ -10102,8 +10507,8 @@ module Google
10102
10507
  end
10103
10508
  end
10104
10509
 
10105
- # Specifies the delay introduced by Loadbalancer before forwarding the request
10106
- # to the backend service as part of fault injection.
10510
+ # Specifies the delay introduced by the load balancer before forwarding the
10511
+ # request to the backend service as part of fault injection.
10107
10512
  class HttpFaultDelay
10108
10513
  include Google::Apis::Core::Hashable
10109
10514
 
@@ -10115,9 +10520,9 @@ module Google
10115
10520
  # @return [Google::Apis::ComputeV1::Duration]
10116
10521
  attr_accessor :fixed_delay
10117
10522
 
10118
- # The percentage of traffic (connections/operations/requests) on which delay
10119
- # will be introduced as part of fault injection. The value must be between 0.0
10120
- # and 100.0 inclusive.
10523
+ # The percentage of traffic for connections, operations, or requests for which a
10524
+ # delay is introduced as part of fault injection. The value must be from 0.0 to
10525
+ # 100.0 inclusive.
10121
10526
  # Corresponds to the JSON property `percentage`
10122
10527
  # @return [Float]
10123
10528
  attr_accessor :percentage
@@ -10136,9 +10541,9 @@ module Google
10136
10541
  # The specification for fault injection introduced into traffic to test the
10137
10542
  # resiliency of clients to backend service failure. As part of fault injection,
10138
10543
  # when clients send requests to a backend service, delays can be introduced by
10139
- # Loadbalancer on a percentage of requests before sending those request to the
10140
- # backend service. Similarly requests from clients can be aborted by the
10141
- # Loadbalancer for a percentage of requests.
10544
+ # the load balancer on a percentage of requests before sending those request to
10545
+ # the backend service. Similarly requests from clients can be aborted by the
10546
+ # load balancer for a percentage of requests.
10142
10547
  class HttpFaultInjection
10143
10548
  include Google::Apis::Core::Hashable
10144
10549
 
@@ -10147,8 +10552,8 @@ module Google
10147
10552
  # @return [Google::Apis::ComputeV1::HttpFaultAbort]
10148
10553
  attr_accessor :abort
10149
10554
 
10150
- # Specifies the delay introduced by Loadbalancer before forwarding the request
10151
- # to the backend service as part of fault injection.
10555
+ # Specifies the delay introduced by the load balancer before forwarding the
10556
+ # request to the backend service as part of fault injection.
10152
10557
  # Corresponds to the JSON property `delay`
10153
10558
  # @return [Google::Apis::ComputeV1::HttpFaultDelay]
10154
10559
  attr_accessor :delay
@@ -10169,25 +10574,25 @@ module Google
10169
10574
  class HttpHeaderAction
10170
10575
  include Google::Apis::Core::Hashable
10171
10576
 
10172
- # Headers to add to a matching request prior to forwarding the request to the
10577
+ # Headers to add to a matching request before forwarding the request to the
10173
10578
  # backendService.
10174
10579
  # Corresponds to the JSON property `requestHeadersToAdd`
10175
10580
  # @return [Array<Google::Apis::ComputeV1::HttpHeaderOption>]
10176
10581
  attr_accessor :request_headers_to_add
10177
10582
 
10178
10583
  # A list of header names for headers that need to be removed from the request
10179
- # prior to forwarding the request to the backendService.
10584
+ # before forwarding the request to the backendService.
10180
10585
  # Corresponds to the JSON property `requestHeadersToRemove`
10181
10586
  # @return [Array<String>]
10182
10587
  attr_accessor :request_headers_to_remove
10183
10588
 
10184
- # Headers to add the response prior to sending the response back to the client.
10589
+ # Headers to add the response before sending the response back to the client.
10185
10590
  # Corresponds to the JSON property `responseHeadersToAdd`
10186
10591
  # @return [Array<Google::Apis::ComputeV1::HttpHeaderOption>]
10187
10592
  attr_accessor :response_headers_to_add
10188
10593
 
10189
10594
  # A list of header names for headers that need to be removed from the response
10190
- # prior to sending the response back to the client.
10595
+ # before sending the response back to the client.
10191
10596
  # Corresponds to the JSON property `responseHeadersToRemove`
10192
10597
  # @return [Array<String>]
10193
10598
  attr_accessor :response_headers_to_remove
@@ -10217,21 +10622,21 @@ module Google
10217
10622
 
10218
10623
  # The name of the HTTP header to match. For matching against the HTTP request's
10219
10624
  # authority, use a headerMatch with the header name ":authority". For matching a
10220
- # request's method, use the headerName ":method". When the URL map is bound to
10221
- # target gRPC proxy that has validateForProxyless field set to true, only non-
10222
- # binary user-specified custom metadata and the `content-type` header are
10625
+ # request's method, use the headerName ":method". When the URL map is bound to a
10626
+ # target gRPC proxy that has the validateForProxyless field set to true, only
10627
+ # non-binary user-specified custom metadata and the `content-type` header are
10223
10628
  # supported. The following transport-level headers cannot be used in header
10224
10629
  # matching rules: `:authority`, `:method`, `:path`, `:scheme`, `user-agent`, `
10225
10630
  # accept-encoding`, `content-encoding`, `grpc-accept-encoding`, `grpc-encoding`,
10226
10631
  # `grpc-previous-rpc-attempts`, `grpc-tags-bin`, `grpc-timeout` and `grpc-trace-
10227
- # bin.
10632
+ # bin`.
10228
10633
  # Corresponds to the JSON property `headerName`
10229
10634
  # @return [String]
10230
10635
  attr_accessor :header_name
10231
10636
 
10232
- # If set to false, the headerMatch is considered a match if the match criteria
10233
- # above are met. If set to true, the headerMatch is considered a match if the
10234
- # match criteria above are NOT met. The default setting is false.
10637
+ # If set to false, the headerMatch is considered a match if the preceding match
10638
+ # criteria are met. If set to true, the headerMatch is considered a match if the
10639
+ # preceding match criteria are NOT met. The default setting is false.
10235
10640
  # Corresponds to the JSON property `invertMatch`
10236
10641
  # @return [Boolean]
10237
10642
  attr_accessor :invert_match
@@ -10259,13 +10664,13 @@ module Google
10259
10664
  attr_accessor :range_match
10260
10665
 
10261
10666
  # The value of the header must match the regular expression specified in
10262
- # regexMatch. For regular expression grammar, please see: github.com/google/re2/
10263
- # wiki/Syntax For matching against a port specified in the HTTP request, use a
10264
- # headerMatch with headerName set to PORT and a regular expression that
10265
- # satisfies the RFC2616 Host header's port specifier. Only one of exactMatch,
10266
- # prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.
10267
- # Note that regexMatch only applies to Loadbalancers that have their
10268
- # loadBalancingScheme set to INTERNAL_SELF_MANAGED.
10667
+ # regexMatch. For more information about regular expression syntax, see Syntax.
10668
+ # For matching against a port specified in the HTTP request, use a headerMatch
10669
+ # with headerName set to PORT and a regular expression that satisfies the
10670
+ # RFC2616 Host header's port specifier. Only one of exactMatch, prefixMatch,
10671
+ # suffixMatch, regexMatch, presentMatch or rangeMatch must be set. regexMatch
10672
+ # only applies to load balancers that have loadBalancingScheme set to
10673
+ # INTERNAL_SELF_MANAGED.
10269
10674
  # Corresponds to the JSON property `regexMatch`
10270
10675
  # @return [String]
10271
10676
  attr_accessor :regex_match
@@ -10560,8 +10965,8 @@ module Google
10560
10965
  include Google::Apis::Core::Hashable
10561
10966
 
10562
10967
  # The queryParameterMatch matches if the value of the parameter exactly matches
10563
- # the contents of exactMatch. Only one of presentMatch, exactMatch or regexMatch
10564
- # must be set.
10968
+ # the contents of exactMatch. Only one of presentMatch, exactMatch, or
10969
+ # regexMatch must be set.
10565
10970
  # Corresponds to the JSON property `exactMatch`
10566
10971
  # @return [String]
10567
10972
  attr_accessor :exact_match
@@ -10574,17 +10979,17 @@ module Google
10574
10979
 
10575
10980
  # Specifies that the queryParameterMatch matches if the request contains the
10576
10981
  # query parameter, irrespective of whether the parameter has a value or not.
10577
- # Only one of presentMatch, exactMatch or regexMatch must be set.
10982
+ # Only one of presentMatch, exactMatch, or regexMatch must be set.
10578
10983
  # Corresponds to the JSON property `presentMatch`
10579
10984
  # @return [Boolean]
10580
10985
  attr_accessor :present_match
10581
10986
  alias_method :present_match?, :present_match
10582
10987
 
10583
10988
  # The queryParameterMatch matches if the value of the parameter matches the
10584
- # regular expression specified by regexMatch. For the regular expression grammar,
10585
- # please see github.com/google/re2/wiki/Syntax Only one of presentMatch,
10586
- # exactMatch or regexMatch must be set. Note that regexMatch only applies when
10587
- # the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.
10989
+ # regular expression specified by regexMatch. For more information about regular
10990
+ # expression syntax, see Syntax. Only one of presentMatch, exactMatch, or
10991
+ # regexMatch must be set. regexMatch only applies when the loadBalancingScheme
10992
+ # is set to INTERNAL_SELF_MANAGED.
10588
10993
  # Corresponds to the JSON property `regexMatch`
10589
10994
  # @return [String]
10590
10995
  attr_accessor :regex_match
@@ -10606,15 +11011,15 @@ module Google
10606
11011
  class HttpRedirectAction
10607
11012
  include Google::Apis::Core::Hashable
10608
11013
 
10609
- # The host that will be used in the redirect response instead of the one that
10610
- # was supplied in the request. The value must be between 1 and 255 characters.
11014
+ # The host that is used in the redirect response instead of the one that was
11015
+ # supplied in the request. The value must be from 1 to 255 characters.
10611
11016
  # Corresponds to the JSON property `hostRedirect`
10612
11017
  # @return [String]
10613
11018
  attr_accessor :host_redirect
10614
11019
 
10615
- # If set to true, the URL scheme in the redirected request is set to https. If
10616
- # set to false, the URL scheme of the redirected request will remain the same as
10617
- # that of the request. This must only be set for UrlMaps used in
11020
+ # If set to true, the URL scheme in the redirected request is set to HTTPS. If
11021
+ # set to false, the URL scheme of the redirected request remains the same as
11022
+ # that of the request. This must only be set for URL maps used in
10618
11023
  # TargetHttpProxys. Setting this true for TargetHttpsProxy is not permitted. The
10619
11024
  # default is set to false.
10620
11025
  # Corresponds to the JSON property `httpsRedirect`
@@ -10622,11 +11027,11 @@ module Google
10622
11027
  attr_accessor :https_redirect
10623
11028
  alias_method :https_redirect?, :https_redirect
10624
11029
 
10625
- # The path that will be used in the redirect response instead of the one that
10626
- # was supplied in the request. pathRedirect cannot be supplied together with
11030
+ # The path that is used in the redirect response instead of the one that was
11031
+ # supplied in the request. pathRedirect cannot be supplied together with
10627
11032
  # prefixRedirect. Supply one alone or neither. If neither is supplied, the path
10628
- # of the original request will be used for the redirect. The value must be
10629
- # between 1 and 1024 characters.
11033
+ # of the original request is used for the redirect. The value must be from 1 to
11034
+ # 1024 characters.
10630
11035
  # Corresponds to the JSON property `pathRedirect`
10631
11036
  # @return [String]
10632
11037
  attr_accessor :path_redirect
@@ -10634,8 +11039,8 @@ module Google
10634
11039
  # The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,
10635
11040
  # retaining the remaining portion of the URL before redirecting the request.
10636
11041
  # prefixRedirect cannot be supplied together with pathRedirect. Supply one alone
10637
- # or neither. If neither is supplied, the path of the original request will be
10638
- # used for the redirect. The value must be between 1 and 1024 characters.
11042
+ # or neither. If neither is supplied, the path of the original request is used
11043
+ # for the redirect. The value must be from 1 to 1024 characters.
10639
11044
  # Corresponds to the JSON property `prefixRedirect`
10640
11045
  # @return [String]
10641
11046
  attr_accessor :prefix_redirect
@@ -10644,14 +11049,14 @@ module Google
10644
11049
  # MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. -
10645
11050
  # FOUND, which corresponds to 302. - SEE_OTHER which corresponds to 303. -
10646
11051
  # TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method
10647
- # will be retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case,
10648
- # the request method will be retained.
11052
+ # is retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case, the
11053
+ # request method is retained.
10649
11054
  # Corresponds to the JSON property `redirectResponseCode`
10650
11055
  # @return [String]
10651
11056
  attr_accessor :redirect_response_code
10652
11057
 
10653
11058
  # If set to true, any accompanying query portion of the original URL is removed
10654
- # prior to redirecting the request. If set to false, the query portion of the
11059
+ # before redirecting the request. If set to false, the query portion of the
10655
11060
  # original URL is retained. The default is set to false.
10656
11061
  # Corresponds to the JSON property `stripQuery`
10657
11062
  # @return [Boolean]
@@ -10692,25 +11097,27 @@ module Google
10692
11097
  attr_accessor :per_try_timeout
10693
11098
 
10694
11099
  # Specifies one or more conditions when this retry policy applies. Valid values
10695
- # are: - 5xx: Retry will be attempted if the instance or endpoint responds with
10696
- # any 5xx response code, or if the instance or endpoint does not respond at all,
10697
- # example: disconnects, reset, read timeout, connection failure, and refused
11100
+ # are: - 5xx: retry is attempted if the instance or endpoint responds with any
11101
+ # 5xx response code, or if the instance or endpoint does not respond at all. For
11102
+ # example, disconnects, reset, read timeout, connection failure, and refused
10698
11103
  # streams. - gateway-error: Similar to 5xx, but only applies to response codes
10699
- # 502, 503 or 504. - - connect-failure: A retry will be attempted on failures
10700
- # connecting to the instance or endpoint, for example due to connection timeouts.
10701
- # - retriable-4xx: A retry will be attempted if the instance or endpoint
10702
- # responds with a retriable 4xx response code. Currently the only retriable
10703
- # error supported is 409. - refused-stream: A retry will be attempted if the
10704
- # instance or endpoint resets the stream with a REFUSED_STREAM error code. This
10705
- # reset type indicates that it is safe to retry. - cancelled: A retry will be
10706
- # attempted if the gRPC status code in the response header is set to cancelled. -
10707
- # deadline-exceeded: A retry will be attempted if the gRPC status code in the
10708
- # response header is set to deadline-exceeded. - internal: A retry will be
10709
- # attempted if the gRPC status code in the response header is set to internal. -
10710
- # resource-exhausted: A retry will be attempted if the gRPC status code in the
10711
- # response header is set to resource-exhausted. - unavailable: A retry will be
10712
- # attempted if the gRPC status code in the response header is set to unavailable.
10713
- #
11104
+ # 502, 503 or 504. - connect-failure: a retry is attempted on failures
11105
+ # connecting to the instance or endpoint. For example, connection timeouts. -
11106
+ # retriable-4xx: a retry is attempted if the instance or endpoint responds with
11107
+ # a 4xx response code. The only error that you can retry is error code 409. -
11108
+ # refused-stream: a retry is attempted if the instance or endpoint resets the
11109
+ # stream with a REFUSED_STREAM error code. This reset type indicates that it is
11110
+ # safe to retry. - cancelled: a retry is attempted if the gRPC status code in
11111
+ # the response header is set to cancelled. - deadline-exceeded: a retry is
11112
+ # attempted if the gRPC status code in the response header is set to deadline-
11113
+ # exceeded. - internal: a retry is attempted if the gRPC status code in the
11114
+ # response header is set to internal. - resource-exhausted: a retry is attempted
11115
+ # if the gRPC status code in the response header is set to resource-exhausted. -
11116
+ # unavailable: a retry is attempted if the gRPC status code in the response
11117
+ # header is set to unavailable. Only the following codes are supported when the
11118
+ # URL map is bound to target gRPC proxy that has validateForProxyless field set
11119
+ # to true. - cancelled - deadline-exceeded - internal - resource-exhausted -
11120
+ # unavailable
10714
11121
  # Corresponds to the JSON property `retryConditions`
10715
11122
  # @return [Array<String>]
10716
11123
  attr_accessor :retry_conditions
@@ -10731,8 +11138,9 @@ module Google
10731
11138
  class HttpRouteAction
10732
11139
  include Google::Apis::Core::Hashable
10733
11140
 
10734
- # The specification for allowing client side cross-origin requests. Please see
10735
- # W3C Recommendation for Cross Origin Resource Sharing
11141
+ # The specification for allowing client-side cross-origin requests. For more
11142
+ # information about the W3C recommendation for cross-origin resource sharing (
11143
+ # CORS), see Fetch API Living Standard.
10736
11144
  # Corresponds to the JSON property `corsPolicy`
10737
11145
  # @return [Google::Apis::ComputeV1::CorsPolicy]
10738
11146
  attr_accessor :cors_policy
@@ -10740,9 +11148,9 @@ module Google
10740
11148
  # The specification for fault injection introduced into traffic to test the
10741
11149
  # resiliency of clients to backend service failure. As part of fault injection,
10742
11150
  # when clients send requests to a backend service, delays can be introduced by
10743
- # Loadbalancer on a percentage of requests before sending those request to the
10744
- # backend service. Similarly requests from clients can be aborted by the
10745
- # Loadbalancer for a percentage of requests.
11151
+ # the load balancer on a percentage of requests before sending those request to
11152
+ # the backend service. Similarly requests from clients can be aborted by the
11153
+ # load balancer for a percentage of requests.
10746
11154
  # Corresponds to the JSON property `faultInjectionPolicy`
10747
11155
  # @return [Google::Apis::ComputeV1::HttpFaultInjection]
10748
11156
  attr_accessor :fault_injection_policy
@@ -10756,9 +11164,9 @@ module Google
10756
11164
  attr_accessor :max_stream_duration
10757
11165
 
10758
11166
  # A policy that specifies how requests intended for the route's backends are
10759
- # shadowed to a separate mirrored backend service. Loadbalancer does not wait
10760
- # for responses from the shadow service. Prior to sending traffic to the shadow
10761
- # service, the host / authority header is suffixed with -shadow.
11167
+ # shadowed to a separate mirrored backend service. The load balancer doesn't
11168
+ # wait for responses from the shadow service. Before sending traffic to the
11169
+ # shadow service, the host or authority header is suffixed with -shadow.
10762
11170
  # Corresponds to the JSON property `requestMirrorPolicy`
10763
11171
  # @return [Google::Apis::ComputeV1::RequestMirrorPolicy]
10764
11172
  attr_accessor :request_mirror_policy
@@ -10786,7 +11194,7 @@ module Google
10786
11194
  # occurs. The weights determine the fraction of traffic that flows to their
10787
11195
  # corresponding backend service. If all traffic needs to go to a single backend
10788
11196
  # service, there must be one weightedBackendService with weight set to a non-
10789
- # zero number. Once a backendService is identified and before forwarding the
11197
+ # zero number. After a backend service is identified and before forwarding the
10790
11198
  # request to the backend service, advanced routing actions such as URL rewrites
10791
11199
  # and header transformations are applied depending on additional settings
10792
11200
  # specified in this HttpRouteAction.
@@ -10811,8 +11219,8 @@ module Google
10811
11219
  end
10812
11220
  end
10813
11221
 
10814
- # An HttpRouteRule specifies how to match an HTTP request and the corresponding
10815
- # routing action that load balancing proxies will perform.
11222
+ # The HttpRouteRule setting specifies how to match an HTTP request and the
11223
+ # corresponding routing action that load balancing proxies perform.
10816
11224
  class HttpRouteRule
10817
11225
  include Google::Apis::Core::Hashable
10818
11226
 
@@ -10838,11 +11246,11 @@ module Google
10838
11246
  attr_accessor :match_rules
10839
11247
 
10840
11248
  # For routeRules within a given pathMatcher, priority determines the order in
10841
- # which load balancer will interpret routeRules. RouteRules are evaluated in
10842
- # order of priority, from the lowest to highest number. The priority of a rule
11249
+ # which a load balancer interprets routeRules. RouteRules are evaluated in order
11250
+ # of priority, from the lowest to highest number. The priority of a rule
10843
11251
  # decreases as its number increases (1, 2, 3, N+1). The first rule that matches
10844
11252
  # the request is applied. You cannot configure two or more routeRules with the
10845
- # same priority. Priority for each rule must be set to a number between 0 and
11253
+ # same priority. Priority for each rule must be set to a number from 0 to
10846
11254
  # 2147483647 inclusive. Priority numbers can have gaps, which enable you to add
10847
11255
  # or remove rules in the future without affecting the rest of the rules. For
10848
11256
  # example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to
@@ -10853,24 +11261,24 @@ module Google
10853
11261
  attr_accessor :priority
10854
11262
 
10855
11263
  # In response to a matching matchRule, the load balancer performs advanced
10856
- # routing actions like URL rewrites, header transformations, etc. prior to
11264
+ # routing actions, such as URL rewrites and header transformations, before
10857
11265
  # forwarding the request to the selected backend. If routeAction specifies any
10858
11266
  # weightedBackendServices, service must not be set. Conversely if service is set,
10859
11267
  # routeAction cannot contain any weightedBackendServices. Only one of
10860
11268
  # urlRedirect, service or routeAction.weightedBackendService must be set.
10861
11269
  # UrlMaps for external HTTP(S) load balancers support only the urlRewrite action
10862
- # within a routeRule's routeAction.
11270
+ # within a route rule's routeAction.
10863
11271
  # Corresponds to the JSON property `routeAction`
10864
11272
  # @return [Google::Apis::ComputeV1::HttpRouteAction]
10865
11273
  attr_accessor :route_action
10866
11274
 
10867
11275
  # The full or partial URL of the backend service resource to which traffic is
10868
- # directed if this rule is matched. If routeAction is additionally specified,
10869
- # advanced routing actions like URL Rewrites, etc. take effect prior to sending
10870
- # the request to the backend. However, if service is specified, routeAction
10871
- # cannot contain any weightedBackendService s. Conversely, if routeAction
10872
- # specifies any weightedBackendServices, service must not be specified. Only one
10873
- # of urlRedirect, service or routeAction.weightedBackendService must be set.
11276
+ # directed if this rule is matched. If routeAction is also specified, advanced
11277
+ # routing actions, such as URL rewrites, take effect before sending the request
11278
+ # to the backend. However, if service is specified, routeAction cannot contain
11279
+ # any weightedBackendServices. Conversely, if routeAction specifies any
11280
+ # weightedBackendServices, service must not be specified. Only one of
11281
+ # urlRedirect, service or routeAction.weightedBackendService must be set.
10874
11282
  # Corresponds to the JSON property `service`
10875
11283
  # @return [String]
10876
11284
  attr_accessor :service
@@ -10903,9 +11311,9 @@ module Google
10903
11311
 
10904
11312
  # For satisfying the matchRule condition, the path of the request must exactly
10905
11313
  # match the value specified in fullPathMatch after removing any query parameters
10906
- # and anchor that may be part of the original URL. fullPathMatch must be between
10907
- # 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch
10908
- # must be specified.
11314
+ # and anchor that may be part of the original URL. fullPathMatch must be from 1
11315
+ # to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must
11316
+ # be specified.
10909
11317
  # Corresponds to the JSON property `fullPathMatch`
10910
11318
  # @return [String]
10911
11319
  attr_accessor :full_path_match
@@ -10918,53 +11326,52 @@ module Google
10918
11326
 
10919
11327
  # Specifies that prefixMatch and fullPathMatch matches are case sensitive. The
10920
11328
  # default value is false. ignoreCase must not be used with regexMatch. Not
10921
- # supported when the URL map is bound to target gRPC proxy.
11329
+ # supported when the URL map is bound to a target gRPC proxy.
10922
11330
  # Corresponds to the JSON property `ignoreCase`
10923
11331
  # @return [Boolean]
10924
11332
  attr_accessor :ignore_case
10925
11333
  alias_method :ignore_case?, :ignore_case
10926
11334
 
10927
- # Opaque filter criteria used by Loadbalancer to restrict routing configuration
10928
- # to a limited set of xDS compliant clients. In their xDS requests to
10929
- # Loadbalancer, xDS clients present node metadata. When there is a match, the
10930
- # relevant routing configuration is made available to those proxies. For each
10931
- # metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY,
10932
- # at least one of the filterLabels must match the corresponding label provided
10933
- # in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of
10934
- # its filterLabels must match with corresponding labels provided in the metadata.
10935
- # If multiple metadataFilters are specified, all of them need to be satisfied
10936
- # in order to be considered a match. metadataFilters specified here will be
11335
+ # Opaque filter criteria used by the load balancer to restrict routing
11336
+ # configuration to a limited set of xDS compliant clients. In their xDS requests
11337
+ # to the load balancer, xDS clients present node metadata. When there is a match,
11338
+ # the relevant routing configuration is made available to those proxies. For
11339
+ # each metadataFilter in this list, if its filterMatchCriteria is set to
11340
+ # MATCH_ANY, at least one of the filterLabels must match the corresponding label
11341
+ # provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then
11342
+ # all of its filterLabels must match with corresponding labels provided in the
11343
+ # metadata. If multiple metadata filters are specified, all of them need to be
11344
+ # satisfied in order to be considered a match. metadataFilters specified here is
10937
11345
  # applied after those specified in ForwardingRule that refers to the UrlMap this
10938
- # HttpRouteRuleMatch belongs to. metadataFilters only applies to Loadbalancers
10939
- # that have their loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not
10940
- # supported when the URL map is bound to target gRPC proxy that has
10941
- # validateForProxyless field set to true.
11346
+ # HttpRouteRuleMatch belongs to. metadataFilters only applies to load balancers
11347
+ # that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not supported when
11348
+ # the URL map is bound to a target gRPC proxy that has validateForProxyless
11349
+ # field set to true.
10942
11350
  # Corresponds to the JSON property `metadataFilters`
10943
11351
  # @return [Array<Google::Apis::ComputeV1::MetadataFilter>]
10944
11352
  attr_accessor :metadata_filters
10945
11353
 
10946
11354
  # For satisfying the matchRule condition, the request's path must begin with the
10947
- # specified prefixMatch. prefixMatch must begin with a /. The value must be
10948
- # between 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or
10949
- # regexMatch must be specified.
11355
+ # specified prefixMatch. prefixMatch must begin with a /. The value must be from
11356
+ # 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch
11357
+ # must be specified.
10950
11358
  # Corresponds to the JSON property `prefixMatch`
10951
11359
  # @return [String]
10952
11360
  attr_accessor :prefix_match
10953
11361
 
10954
11362
  # Specifies a list of query parameter match criteria, all of which must match
10955
11363
  # corresponding query parameters in the request. Not supported when the URL map
10956
- # is bound to target gRPC proxy.
11364
+ # is bound to a target gRPC proxy.
10957
11365
  # Corresponds to the JSON property `queryParameterMatches`
10958
11366
  # @return [Array<Google::Apis::ComputeV1::HttpQueryParameterMatch>]
10959
11367
  attr_accessor :query_parameter_matches
10960
11368
 
10961
11369
  # For satisfying the matchRule condition, the path of the request must satisfy
10962
11370
  # the regular expression specified in regexMatch after removing any query
10963
- # parameters and anchor supplied with the original URL. For regular expression
10964
- # grammar please see github.com/google/re2/wiki/Syntax Only one of prefixMatch,
10965
- # fullPathMatch or regexMatch must be specified. Note that regexMatch only
10966
- # applies to Loadbalancers that have their loadBalancingScheme set to
10967
- # INTERNAL_SELF_MANAGED.
11371
+ # parameters and anchor supplied with the original URL. For more information
11372
+ # about regular expression syntax, see Syntax. Only one of prefixMatch,
11373
+ # fullPathMatch or regexMatch must be specified. regexMatch only applies to load
11374
+ # balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED.
10968
11375
  # Corresponds to the JSON property `regexMatch`
10969
11376
  # @return [String]
10970
11377
  attr_accessor :regex_match
@@ -11252,8 +11659,8 @@ module Google
11252
11659
  attr_accessor :family
11253
11660
 
11254
11661
  # A list of features to enable on the guest operating system. Applicable only
11255
- # for bootable images. Read Enabling guest operating system features to see a
11256
- # list of available options.
11662
+ # for bootable images. To see a list of available options, see the
11663
+ # guestOSfeatures[].type parameter.
11257
11664
  # Corresponds to the JSON property `guestOsFeatures`
11258
11665
  # @return [Array<Google::Apis::ComputeV1::GuestOsFeature>]
11259
11666
  attr_accessor :guest_os_features
@@ -11856,6 +12263,11 @@ module Google
11856
12263
  # @return [Array<Google::Apis::ComputeV1::NetworkInterface>]
11857
12264
  attr_accessor :network_interfaces
11858
12265
 
12266
+ #
12267
+ # Corresponds to the JSON property `networkPerformanceConfig`
12268
+ # @return [Google::Apis::ComputeV1::NetworkPerformanceConfig]
12269
+ attr_accessor :network_performance_config
12270
+
11859
12271
  # The private IPv6 google access type for the VM. If not specified, use
11860
12272
  # INHERIT_FROM_SUBNETWORK as default.
11861
12273
  # Corresponds to the JSON property `privateIpv6GoogleAccess`
@@ -11908,6 +12320,17 @@ module Google
11908
12320
  # @return [Google::Apis::ComputeV1::ShieldedInstanceIntegrityPolicy]
11909
12321
  attr_accessor :shielded_instance_integrity_policy
11910
12322
 
12323
+ # Source machine image
12324
+ # Corresponds to the JSON property `sourceMachineImage`
12325
+ # @return [String]
12326
+ attr_accessor :source_machine_image
12327
+
12328
+ # Source machine image encryption key when creating an instance from a machine
12329
+ # image.
12330
+ # Corresponds to the JSON property `sourceMachineImageEncryptionKey`
12331
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
12332
+ attr_accessor :source_machine_image_encryption_key
12333
+
11911
12334
  # [Output Only] Whether a VM has been restricted for start because Compute
11912
12335
  # Engine has detected suspicious activity.
11913
12336
  # Corresponds to the JSON property `startRestricted`
@@ -11970,6 +12393,7 @@ module Google
11970
12393
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
11971
12394
  @name = args[:name] if args.key?(:name)
11972
12395
  @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
12396
+ @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
11973
12397
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
11974
12398
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
11975
12399
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
@@ -11979,6 +12403,8 @@ module Google
11979
12403
  @service_accounts = args[:service_accounts] if args.key?(:service_accounts)
11980
12404
  @shielded_instance_config = args[:shielded_instance_config] if args.key?(:shielded_instance_config)
11981
12405
  @shielded_instance_integrity_policy = args[:shielded_instance_integrity_policy] if args.key?(:shielded_instance_integrity_policy)
12406
+ @source_machine_image = args[:source_machine_image] if args.key?(:source_machine_image)
12407
+ @source_machine_image_encryption_key = args[:source_machine_image_encryption_key] if args.key?(:source_machine_image_encryption_key)
11982
12408
  @start_restricted = args[:start_restricted] if args.key?(:start_restricted)
11983
12409
  @status = args[:status] if args.key?(:status)
11984
12410
  @status_message = args[:status_message] if args.key?(:status_message)
@@ -13163,6 +13589,17 @@ module Google
13163
13589
  # @return [String]
13164
13590
  attr_accessor :minimal_action
13165
13591
 
13592
+ # Most disruptive action that is allowed to be taken on an instance. You can
13593
+ # specify either NONE to forbid any actions, REFRESH to allow actions that do
13594
+ # not need instance restart, RESTART to allow actions that can be applied
13595
+ # without instance replacing or REPLACE to allow all possible actions. If the
13596
+ # Updater determines that the minimal update action needed is more disruptive
13597
+ # than most disruptive allowed action you specify it will not perform the update
13598
+ # at all.
13599
+ # Corresponds to the JSON property `mostDisruptiveAllowedAction`
13600
+ # @return [String]
13601
+ attr_accessor :most_disruptive_allowed_action
13602
+
13166
13603
  # What action should be used to replace instances. See minimal_action.REPLACE
13167
13604
  # Corresponds to the JSON property `replacementMethod`
13168
13605
  # @return [String]
@@ -13187,6 +13624,7 @@ module Google
13187
13624
  @max_surge = args[:max_surge] if args.key?(:max_surge)
13188
13625
  @max_unavailable = args[:max_unavailable] if args.key?(:max_unavailable)
13189
13626
  @minimal_action = args[:minimal_action] if args.key?(:minimal_action)
13627
+ @most_disruptive_allowed_action = args[:most_disruptive_allowed_action] if args.key?(:most_disruptive_allowed_action)
13190
13628
  @replacement_method = args[:replacement_method] if args.key?(:replacement_method)
13191
13629
  @type = args[:type] if args.key?(:type)
13192
13630
  end
@@ -14477,8 +14915,14 @@ module Google
14477
14915
  # @return [Array<Google::Apis::ComputeV1::NetworkInterface>]
14478
14916
  attr_accessor :network_interfaces
14479
14917
 
14918
+ # Note that for MachineImage, this is not supported yet.
14919
+ # Corresponds to the JSON property `networkPerformanceConfig`
14920
+ # @return [Google::Apis::ComputeV1::NetworkPerformanceConfig]
14921
+ attr_accessor :network_performance_config
14922
+
14480
14923
  # The private IPv6 google access type for VMs. If not specified, use
14481
- # INHERIT_FROM_SUBNETWORK as default.
14924
+ # INHERIT_FROM_SUBNETWORK as default. Note that for MachineImage, this is not
14925
+ # supported yet.
14482
14926
  # Corresponds to the JSON property `privateIpv6GoogleAccess`
14483
14927
  # @return [String]
14484
14928
  attr_accessor :private_ipv6_google_access
@@ -14488,8 +14932,8 @@ module Google
14488
14932
  # @return [Google::Apis::ComputeV1::ReservationAffinity]
14489
14933
  attr_accessor :reservation_affinity
14490
14934
 
14491
- # Resource policies (names, not ULRs) applied to instances created from these
14492
- # properties.
14935
+ # Resource policies (names, not URLs) applied to instances created from these
14936
+ # properties. Note that for MachineImage, this is not supported yet.
14493
14937
  # Corresponds to the JSON property `resourcePolicies`
14494
14938
  # @return [Array<String>]
14495
14939
  attr_accessor :resource_policies
@@ -14534,6 +14978,7 @@ module Google
14534
14978
  @metadata = args[:metadata] if args.key?(:metadata)
14535
14979
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
14536
14980
  @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
14981
+ @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
14537
14982
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
14538
14983
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
14539
14984
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
@@ -15379,6 +15824,17 @@ module Google
15379
15824
  # @return [String]
15380
15825
  attr_accessor :bandwidth
15381
15826
 
15827
+ # Up to 16 candidate prefixes that control the allocation of
15828
+ # cloudRouterIpv6Address and customerRouterIpv6Address for this attachment. Each
15829
+ # prefix must be in the Global Unique Address (GUA) space. It is highly
15830
+ # recommended that it be in a range owned by the requestor. A GUA in a range
15831
+ # owned by Google will cause the request to fail. Google will select an
15832
+ # available prefix from the supplied candidates or fail the request. If not
15833
+ # supplied, a /125 from a Google-owned GUA block will be selected.
15834
+ # Corresponds to the JSON property `candidateIpv6Subnets`
15835
+ # @return [Array<String>]
15836
+ attr_accessor :candidate_ipv6_subnets
15837
+
15382
15838
  # Up to 16 candidate prefixes that can be used to restrict the allocation of
15383
15839
  # cloudRouterIpAddress and customerRouterIpAddress for this attachment. All
15384
15840
  # prefixes must be within link-local address space (169.254.0.0/16) and must be /
@@ -15396,6 +15852,20 @@ module Google
15396
15852
  # @return [String]
15397
15853
  attr_accessor :cloud_router_ip_address
15398
15854
 
15855
+ # [Output Only] IPv6 address + prefix length to be configured on Cloud Router
15856
+ # Interface for this interconnect attachment.
15857
+ # Corresponds to the JSON property `cloudRouterIpv6Address`
15858
+ # @return [String]
15859
+ attr_accessor :cloud_router_ipv6_address
15860
+
15861
+ # If supplied, the interface id (index within the subnet) to be used for the
15862
+ # cloud router address. The id must be in the range of 1 to 6. If a subnet mask
15863
+ # is supplied, it must be /125, and the subnet should either be 0 or match the
15864
+ # selected subnet.
15865
+ # Corresponds to the JSON property `cloudRouterIpv6InterfaceId`
15866
+ # @return [String]
15867
+ attr_accessor :cloud_router_ipv6_interface_id
15868
+
15399
15869
  # [Output Only] Creation timestamp in RFC3339 text format.
15400
15870
  # Corresponds to the JSON property `creationTimestamp`
15401
15871
  # @return [String]
@@ -15407,7 +15877,24 @@ module Google
15407
15877
  # @return [String]
15408
15878
  attr_accessor :customer_router_ip_address
15409
15879
 
15410
- # [Output Only] Dataplane version for this InterconnectAttachment.
15880
+ # [Output Only] IPv6 address + prefix length to be configured on the customer
15881
+ # router subinterface for this interconnect attachment.
15882
+ # Corresponds to the JSON property `customerRouterIpv6Address`
15883
+ # @return [String]
15884
+ attr_accessor :customer_router_ipv6_address
15885
+
15886
+ # If supplied, the interface id (index within the subnet) to be used for the
15887
+ # customer router address. The id must be in the range of 1 to 6. If a subnet
15888
+ # mask is supplied, it must be /125, and the subnet should either be 0 or match
15889
+ # the selected subnet.
15890
+ # Corresponds to the JSON property `customerRouterIpv6InterfaceId`
15891
+ # @return [String]
15892
+ attr_accessor :customer_router_ipv6_interface_id
15893
+
15894
+ # [Output only for types PARTNER and DEDICATED. Not present for PARTNER_PROVIDER.
15895
+ # ] Dataplane version for this InterconnectAttachment. This field is only
15896
+ # present for Dataplane version 2 and higher. Absence of this field in the API
15897
+ # output indicates that the Dataplane is version 1.
15411
15898
  # Corresponds to the JSON property `dataplaneVersion`
15412
15899
  # @return [Fixnum]
15413
15900
  attr_accessor :dataplane_version
@@ -15566,6 +16053,14 @@ module Google
15566
16053
  # @return [String]
15567
16054
  attr_accessor :self_link
15568
16055
 
16056
+ # The stack type for this interconnect attachment to identify whether the IPv6
16057
+ # feature is enabled or not. If not specified, IPV4_ONLY will be used. This
16058
+ # field can be both set at interconnect attachments creation and update
16059
+ # interconnect attachment operations.
16060
+ # Corresponds to the JSON property `stackType`
16061
+ # @return [String]
16062
+ attr_accessor :stack_type
16063
+
15569
16064
  # [Output Only] The current state of this attachment's functionality. Enum
15570
16065
  # values ACTIVE and UNPROVISIONED are shared by DEDICATED/PRIVATE, PARTNER, and
15571
16066
  # PARTNER_PROVIDER interconnect attachments, while enum values PENDING_PARTNER,
@@ -15608,10 +16103,15 @@ module Google
15608
16103
  def update!(**args)
15609
16104
  @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
15610
16105
  @bandwidth = args[:bandwidth] if args.key?(:bandwidth)
16106
+ @candidate_ipv6_subnets = args[:candidate_ipv6_subnets] if args.key?(:candidate_ipv6_subnets)
15611
16107
  @candidate_subnets = args[:candidate_subnets] if args.key?(:candidate_subnets)
15612
16108
  @cloud_router_ip_address = args[:cloud_router_ip_address] if args.key?(:cloud_router_ip_address)
16109
+ @cloud_router_ipv6_address = args[:cloud_router_ipv6_address] if args.key?(:cloud_router_ipv6_address)
16110
+ @cloud_router_ipv6_interface_id = args[:cloud_router_ipv6_interface_id] if args.key?(:cloud_router_ipv6_interface_id)
15613
16111
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
15614
16112
  @customer_router_ip_address = args[:customer_router_ip_address] if args.key?(:customer_router_ip_address)
16113
+ @customer_router_ipv6_address = args[:customer_router_ipv6_address] if args.key?(:customer_router_ipv6_address)
16114
+ @customer_router_ipv6_interface_id = args[:customer_router_ipv6_interface_id] if args.key?(:customer_router_ipv6_interface_id)
15615
16115
  @dataplane_version = args[:dataplane_version] if args.key?(:dataplane_version)
15616
16116
  @description = args[:description] if args.key?(:description)
15617
16117
  @edge_availability_domain = args[:edge_availability_domain] if args.key?(:edge_availability_domain)
@@ -15632,6 +16132,7 @@ module Google
15632
16132
  @router = args[:router] if args.key?(:router)
15633
16133
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
15634
16134
  @self_link = args[:self_link] if args.key?(:self_link)
16135
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
15635
16136
  @state = args[:state] if args.key?(:state)
15636
16137
  @type = args[:type] if args.key?(:type)
15637
16138
  @vlan_tag8021q = args[:vlan_tag8021q] if args.key?(:vlan_tag8021q)
@@ -17293,6 +17794,272 @@ module Google
17293
17794
  end
17294
17795
  end
17295
17796
 
17797
+ # Represents a machine image resource. A machine image is a Compute Engine
17798
+ # resource that stores all the configuration, metadata, permissions, and data
17799
+ # from one or more disks required to create a Virtual machine (VM) instance. For
17800
+ # more information, see Machine images.
17801
+ class MachineImage
17802
+ include Google::Apis::Core::Hashable
17803
+
17804
+ # [Output Only] The creation timestamp for this machine image in RFC3339 text
17805
+ # format.
17806
+ # Corresponds to the JSON property `creationTimestamp`
17807
+ # @return [String]
17808
+ attr_accessor :creation_timestamp
17809
+
17810
+ # An optional description of this resource. Provide this property when you
17811
+ # create the resource.
17812
+ # Corresponds to the JSON property `description`
17813
+ # @return [String]
17814
+ attr_accessor :description
17815
+
17816
+ # [Input Only] Whether to attempt an application consistent machine image by
17817
+ # informing the OS to prepare for the snapshot process. Currently only supported
17818
+ # on Windows instances using the Volume Shadow Copy Service (VSS).
17819
+ # Corresponds to the JSON property `guestFlush`
17820
+ # @return [Boolean]
17821
+ attr_accessor :guest_flush
17822
+ alias_method :guest_flush?, :guest_flush
17823
+
17824
+ # [Output Only] A unique identifier for this machine image. The server defines
17825
+ # this identifier.
17826
+ # Corresponds to the JSON property `id`
17827
+ # @return [Fixnum]
17828
+ attr_accessor :id
17829
+
17830
+ # [Output Only] Properties of source instance
17831
+ # Corresponds to the JSON property `instanceProperties`
17832
+ # @return [Google::Apis::ComputeV1::InstanceProperties]
17833
+ attr_accessor :instance_properties
17834
+
17835
+ # [Output Only] The resource type, which is always compute#machineImage for
17836
+ # machine image.
17837
+ # Corresponds to the JSON property `kind`
17838
+ # @return [String]
17839
+ attr_accessor :kind
17840
+
17841
+ # Encrypts the machine image using a customer-supplied encryption key. After you
17842
+ # encrypt a machine image using a customer-supplied key, you must provide the
17843
+ # same key if you use the machine image later. For example, you must provide the
17844
+ # encryption key when you create an instance from the encrypted machine image in
17845
+ # a future request. Customer-supplied encryption keys do not protect access to
17846
+ # metadata of the machine image. If you do not provide an encryption key when
17847
+ # creating the machine image, then the machine image will be encrypted using an
17848
+ # automatically generated key and you do not need to provide a key to use the
17849
+ # machine image later.
17850
+ # Corresponds to the JSON property `machineImageEncryptionKey`
17851
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
17852
+ attr_accessor :machine_image_encryption_key
17853
+
17854
+ # Name of the resource; provided by the client when the resource is created. The
17855
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
17856
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
17857
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
17858
+ # and all following characters must be a dash, lowercase letter, or digit,
17859
+ # except the last character, which cannot be a dash.
17860
+ # Corresponds to the JSON property `name`
17861
+ # @return [String]
17862
+ attr_accessor :name
17863
+
17864
+ # [Output Only] Reserved for future use.
17865
+ # Corresponds to the JSON property `satisfiesPzs`
17866
+ # @return [Boolean]
17867
+ attr_accessor :satisfies_pzs
17868
+ alias_method :satisfies_pzs?, :satisfies_pzs
17869
+
17870
+ # An array of Machine Image specific properties for disks attached to the source
17871
+ # instance
17872
+ # Corresponds to the JSON property `savedDisks`
17873
+ # @return [Array<Google::Apis::ComputeV1::SavedDisk>]
17874
+ attr_accessor :saved_disks
17875
+
17876
+ # [Output Only] The URL for this machine image. The server defines this URL.
17877
+ # Corresponds to the JSON property `selfLink`
17878
+ # @return [String]
17879
+ attr_accessor :self_link
17880
+
17881
+ # [Input Only] The customer-supplied encryption key of the disks attached to the
17882
+ # source instance. Required if the source disk is protected by a customer-
17883
+ # supplied encryption key.
17884
+ # Corresponds to the JSON property `sourceDiskEncryptionKeys`
17885
+ # @return [Array<Google::Apis::ComputeV1::SourceDiskEncryptionKey>]
17886
+ attr_accessor :source_disk_encryption_keys
17887
+
17888
+ # The source instance used to create the machine image. You can provide this as
17889
+ # a partial or full URL to the resource. For example, the following are valid
17890
+ # values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /
17891
+ # instances/instance - projects/project/zones/zone/instances/instance
17892
+ # Corresponds to the JSON property `sourceInstance`
17893
+ # @return [String]
17894
+ attr_accessor :source_instance
17895
+
17896
+ # DEPRECATED: Please use compute#instanceProperties instead. New properties will
17897
+ # not be added to this field.
17898
+ # Corresponds to the JSON property `sourceInstanceProperties`
17899
+ # @return [Google::Apis::ComputeV1::SourceInstanceProperties]
17900
+ attr_accessor :source_instance_properties
17901
+
17902
+ # [Output Only] The status of the machine image. One of the following values:
17903
+ # INVALID, CREATING, READY, DELETING, and UPLOADING.
17904
+ # Corresponds to the JSON property `status`
17905
+ # @return [String]
17906
+ attr_accessor :status
17907
+
17908
+ # The regional or multi-regional Cloud Storage bucket location where the machine
17909
+ # image is stored.
17910
+ # Corresponds to the JSON property `storageLocations`
17911
+ # @return [Array<String>]
17912
+ attr_accessor :storage_locations
17913
+
17914
+ # [Output Only] Total size of the storage used by the machine image.
17915
+ # Corresponds to the JSON property `totalStorageBytes`
17916
+ # @return [Fixnum]
17917
+ attr_accessor :total_storage_bytes
17918
+
17919
+ def initialize(**args)
17920
+ update!(**args)
17921
+ end
17922
+
17923
+ # Update properties of this object
17924
+ def update!(**args)
17925
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
17926
+ @description = args[:description] if args.key?(:description)
17927
+ @guest_flush = args[:guest_flush] if args.key?(:guest_flush)
17928
+ @id = args[:id] if args.key?(:id)
17929
+ @instance_properties = args[:instance_properties] if args.key?(:instance_properties)
17930
+ @kind = args[:kind] if args.key?(:kind)
17931
+ @machine_image_encryption_key = args[:machine_image_encryption_key] if args.key?(:machine_image_encryption_key)
17932
+ @name = args[:name] if args.key?(:name)
17933
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
17934
+ @saved_disks = args[:saved_disks] if args.key?(:saved_disks)
17935
+ @self_link = args[:self_link] if args.key?(:self_link)
17936
+ @source_disk_encryption_keys = args[:source_disk_encryption_keys] if args.key?(:source_disk_encryption_keys)
17937
+ @source_instance = args[:source_instance] if args.key?(:source_instance)
17938
+ @source_instance_properties = args[:source_instance_properties] if args.key?(:source_instance_properties)
17939
+ @status = args[:status] if args.key?(:status)
17940
+ @storage_locations = args[:storage_locations] if args.key?(:storage_locations)
17941
+ @total_storage_bytes = args[:total_storage_bytes] if args.key?(:total_storage_bytes)
17942
+ end
17943
+ end
17944
+
17945
+ # A list of machine images.
17946
+ class MachineImageList
17947
+ include Google::Apis::Core::Hashable
17948
+
17949
+ # [Output Only] Unique identifier for the resource; defined by the server.
17950
+ # Corresponds to the JSON property `id`
17951
+ # @return [String]
17952
+ attr_accessor :id
17953
+
17954
+ # A list of MachineImage resources.
17955
+ # Corresponds to the JSON property `items`
17956
+ # @return [Array<Google::Apis::ComputeV1::MachineImage>]
17957
+ attr_accessor :items
17958
+
17959
+ # [Output Only] The resource type, which is always compute#
17960
+ # machineImagesListResponse for machine image lists.
17961
+ # Corresponds to the JSON property `kind`
17962
+ # @return [String]
17963
+ attr_accessor :kind
17964
+
17965
+ # [Output Only] This token allows you to get the next page of results for list
17966
+ # requests. If the number of results is larger than maxResults, use the
17967
+ # nextPageToken as a value for the query parameter pageToken in the next list
17968
+ # request. Subsequent list requests will have their own nextPageToken to
17969
+ # continue paging through the results.
17970
+ # Corresponds to the JSON property `nextPageToken`
17971
+ # @return [String]
17972
+ attr_accessor :next_page_token
17973
+
17974
+ # [Output Only] Server-defined URL for this resource.
17975
+ # Corresponds to the JSON property `selfLink`
17976
+ # @return [String]
17977
+ attr_accessor :self_link
17978
+
17979
+ # [Output Only] Informational warning message.
17980
+ # Corresponds to the JSON property `warning`
17981
+ # @return [Google::Apis::ComputeV1::MachineImageList::Warning]
17982
+ attr_accessor :warning
17983
+
17984
+ def initialize(**args)
17985
+ update!(**args)
17986
+ end
17987
+
17988
+ # Update properties of this object
17989
+ def update!(**args)
17990
+ @id = args[:id] if args.key?(:id)
17991
+ @items = args[:items] if args.key?(:items)
17992
+ @kind = args[:kind] if args.key?(:kind)
17993
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
17994
+ @self_link = args[:self_link] if args.key?(:self_link)
17995
+ @warning = args[:warning] if args.key?(:warning)
17996
+ end
17997
+
17998
+ # [Output Only] Informational warning message.
17999
+ class Warning
18000
+ include Google::Apis::Core::Hashable
18001
+
18002
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
18003
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
18004
+ # Corresponds to the JSON property `code`
18005
+ # @return [String]
18006
+ attr_accessor :code
18007
+
18008
+ # [Output Only] Metadata about this warning in key: value format. For example: "
18009
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
18010
+ # Corresponds to the JSON property `data`
18011
+ # @return [Array<Google::Apis::ComputeV1::MachineImageList::Warning::Datum>]
18012
+ attr_accessor :data
18013
+
18014
+ # [Output Only] A human-readable description of the warning code.
18015
+ # Corresponds to the JSON property `message`
18016
+ # @return [String]
18017
+ attr_accessor :message
18018
+
18019
+ def initialize(**args)
18020
+ update!(**args)
18021
+ end
18022
+
18023
+ # Update properties of this object
18024
+ def update!(**args)
18025
+ @code = args[:code] if args.key?(:code)
18026
+ @data = args[:data] if args.key?(:data)
18027
+ @message = args[:message] if args.key?(:message)
18028
+ end
18029
+
18030
+ #
18031
+ class Datum
18032
+ include Google::Apis::Core::Hashable
18033
+
18034
+ # [Output Only] A key that provides more detail on the warning being returned.
18035
+ # For example, for warnings where there are no results in a list request for a
18036
+ # particular zone, this key might be scope and the key value might be the zone
18037
+ # name. Other examples might be a key indicating a deprecated resource and a
18038
+ # suggested replacement, or a warning about invalid network settings (for
18039
+ # example, if an instance attempts to perform IP forwarding but is not enabled
18040
+ # for IP forwarding).
18041
+ # Corresponds to the JSON property `key`
18042
+ # @return [String]
18043
+ attr_accessor :key
18044
+
18045
+ # [Output Only] A warning data value corresponding to the key.
18046
+ # Corresponds to the JSON property `value`
18047
+ # @return [String]
18048
+ attr_accessor :value
18049
+
18050
+ def initialize(**args)
18051
+ update!(**args)
18052
+ end
18053
+
18054
+ # Update properties of this object
18055
+ def update!(**args)
18056
+ @key = args[:key] if args.key?(:key)
18057
+ @value = args[:value] if args.key?(:value)
18058
+ end
18059
+ end
18060
+ end
18061
+ end
18062
+
17296
18063
  # Represents a Machine Type resource. You can use specific machine types for
17297
18064
  # your VM instances based on performance and pricing requirements. For more
17298
18065
  # information, read Machine Types.
@@ -18071,18 +18838,18 @@ module Google
18071
18838
  end
18072
18839
  end
18073
18840
 
18074
- # Opaque filter criteria used by loadbalancers to restrict routing configuration
18075
- # to a limited set of loadbalancing proxies. Proxies and sidecars involved in
18076
- # loadbalancing would typically present metadata to the loadbalancers which need
18077
- # to match criteria specified here. If a match takes place, the relevant
18078
- # configuration is made available to those proxies. For each metadataFilter in
18079
- # this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the
18080
- # filterLabels must match the corresponding label provided in the metadata. If
18081
- # its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must
18082
- # match with corresponding labels provided in the metadata. An example for using
18083
- # metadataFilters would be: if loadbalancing involves Envoys, they will only
18084
- # receive routing configuration when values in metadataFilters match values
18085
- # supplied in of their XDS requests to loadbalancers.
18841
+ # Opaque filter criteria used by load balancers to restrict routing
18842
+ # configuration to a limited set of load balancing proxies. Proxies and sidecars
18843
+ # involved in load balancing would typically present metadata to the load
18844
+ # balancers that need to match criteria specified here. If a match takes place,
18845
+ # the relevant configuration is made available to those proxies. For each
18846
+ # metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY,
18847
+ # at least one of the filterLabels must match the corresponding label provided
18848
+ # in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of
18849
+ # its filterLabels must match with corresponding labels provided in the metadata.
18850
+ # An example for using metadataFilters would be: if load balancing involves
18851
+ # Envoys, they receive routing configuration when values in metadataFilters
18852
+ # match values supplied in of their XDS requests to loadbalancers.
18086
18853
  class MetadataFilter
18087
18854
  include Google::Apis::Core::Hashable
18088
18855
 
@@ -18093,11 +18860,11 @@ module Google
18093
18860
  # @return [Array<Google::Apis::ComputeV1::MetadataFilterLabelMatch>]
18094
18861
  attr_accessor :filter_labels
18095
18862
 
18096
- # Specifies how individual filterLabel matches within the list of filterLabels
18097
- # contribute towards the overall metadataFilter match. Supported values are: -
18098
- # MATCH_ANY: At least one of the filterLabels must have a matching label in the
18099
- # provided metadata. - MATCH_ALL: All filterLabels must have matching labels in
18100
- # the provided metadata.
18863
+ # Specifies how individual filter label matches within the list of filterLabels
18864
+ # and contributes toward the overall metadataFilter match. Supported values are:
18865
+ # - MATCH_ANY: at least one of the filterLabels must have a matching label in
18866
+ # the provided metadata. - MATCH_ALL: all filterLabels must have matching labels
18867
+ # in the provided metadata.
18101
18868
  # Corresponds to the JSON property `filterMatchCriteria`
18102
18869
  # @return [String]
18103
18870
  attr_accessor :filter_match_criteria
@@ -18114,7 +18881,7 @@ module Google
18114
18881
  end
18115
18882
 
18116
18883
  # MetadataFilter label name value pairs that are expected to match corresponding
18117
- # labels presented as metadata to the loadbalancer.
18884
+ # labels presented as metadata to the load balancer.
18118
18885
  class MetadataFilterLabelMatch
18119
18886
  include Google::Apis::Core::Hashable
18120
18887
 
@@ -18421,6 +19188,12 @@ module Google
18421
19188
  # @return [String]
18422
19189
  attr_accessor :network_endpoint_type
18423
19190
 
19191
+ # The target service url used to set up private service connection to a Google
19192
+ # API. An example value is: "asia-northeast3-cloudkms.googleapis.com"
19193
+ # Corresponds to the JSON property `pscTargetService`
19194
+ # @return [String]
19195
+ attr_accessor :psc_target_service
19196
+
18424
19197
  # [Output Only] The URL of the region where the network endpoint group is
18425
19198
  # located.
18426
19199
  # Corresponds to the JSON property `region`
@@ -18466,6 +19239,7 @@ module Google
18466
19239
  @name = args[:name] if args.key?(:name)
18467
19240
  @network = args[:network] if args.key?(:network)
18468
19241
  @network_endpoint_type = args[:network_endpoint_type] if args.key?(:network_endpoint_type)
19242
+ @psc_target_service = args[:psc_target_service] if args.key?(:psc_target_service)
18469
19243
  @region = args[:region] if args.key?(:region)
18470
19244
  @self_link = args[:self_link] if args.key?(:self_link)
18471
19245
  @size = args[:size] if args.key?(:size)
@@ -19166,7 +19940,7 @@ module Google
19166
19940
  # @return [String]
19167
19941
  attr_accessor :ipv6_access_type
19168
19942
 
19169
- # [Output Only] An IPv6 internal network address for this network interface.
19943
+ # An IPv6 internal network address for this network interface.
19170
19944
  # Corresponds to the JSON property `ipv6Address`
19171
19945
  # @return [String]
19172
19946
  attr_accessor :ipv6_address
@@ -19183,14 +19957,15 @@ module Google
19183
19957
  # @return [String]
19184
19958
  attr_accessor :name
19185
19959
 
19186
- # URL of the network resource for this instance. When creating an instance, if
19187
- # neither the network nor the subnetwork is specified, the default network
19188
- # global/networks/default is used; if the network is not specified but the
19189
- # subnetwork is specified, the network is inferred. If you specify this property,
19190
- # you can specify the network as a full or partial URL. For example, the
19191
- # following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/
19192
- # project/global/networks/ network - projects/project/global/networks/network -
19193
- # global/networks/default
19960
+ # URL of the VPC network resource for this instance. When creating an instance,
19961
+ # if neither the network nor the subnetwork is specified, the default network
19962
+ # global/networks/default is used. If the selected project doesn't have the
19963
+ # default network, you must specify a network or subnet. If the network is not
19964
+ # specified but the subnetwork is specified, the network is inferred. If you
19965
+ # specify this property, you can specify the network as a full or partial URL.
19966
+ # For example, the following are all valid URLs: - https://www.googleapis.com/
19967
+ # compute/v1/projects/project/global/networks/ network - projects/project/global/
19968
+ # networks/network - global/networks/default
19194
19969
  # Corresponds to the JSON property `network`
19195
19970
  # @return [String]
19196
19971
  attr_accessor :network
@@ -19399,7 +20174,8 @@ module Google
19399
20174
  attr_accessor :exchange_subnet_routes
19400
20175
  alias_method :exchange_subnet_routes?, :exchange_subnet_routes
19401
20176
 
19402
- # Whether to export the custom routes to peer network.
20177
+ # Whether to export the custom routes to peer network. The default value is
20178
+ # false.
19403
20179
  # Corresponds to the JSON property `exportCustomRoutes`
19404
20180
  # @return [Boolean]
19405
20181
  attr_accessor :export_custom_routes
@@ -19413,7 +20189,8 @@ module Google
19413
20189
  attr_accessor :export_subnet_routes_with_public_ip
19414
20190
  alias_method :export_subnet_routes_with_public_ip?, :export_subnet_routes_with_public_ip
19415
20191
 
19416
- # Whether to import the custom routes from peer network.
20192
+ # Whether to import the custom routes from peer network. The default value is
20193
+ # false.
19417
20194
  # Corresponds to the JSON property `importCustomRoutes`
19418
20195
  # @return [Boolean]
19419
20196
  attr_accessor :import_custom_routes
@@ -19481,6 +20258,25 @@ module Google
19481
20258
  end
19482
20259
  end
19483
20260
 
20261
+ #
20262
+ class NetworkPerformanceConfig
20263
+ include Google::Apis::Core::Hashable
20264
+
20265
+ #
20266
+ # Corresponds to the JSON property `totalEgressBandwidthTier`
20267
+ # @return [String]
20268
+ attr_accessor :total_egress_bandwidth_tier
20269
+
20270
+ def initialize(**args)
20271
+ update!(**args)
20272
+ end
20273
+
20274
+ # Update properties of this object
20275
+ def update!(**args)
20276
+ @total_egress_bandwidth_tier = args[:total_egress_bandwidth_tier] if args.key?(:total_egress_bandwidth_tier)
20277
+ end
20278
+ end
20279
+
19484
20280
  # A routing configuration attached to a network resource. The message includes
19485
20281
  # the list of routers associated with the network, and a flag indicating the
19486
20282
  # type of routing behavior to enforce network-wide.
@@ -22347,6 +23143,55 @@ module Google
22347
23143
  end
22348
23144
  end
22349
23145
 
23146
+ # Next free: 7
23147
+ class PacketIntervals
23148
+ include Google::Apis::Core::Hashable
23149
+
23150
+ # Average observed inter-packet interval in milliseconds.
23151
+ # Corresponds to the JSON property `avgMs`
23152
+ # @return [Fixnum]
23153
+ attr_accessor :avg_ms
23154
+
23155
+ # From how long ago in the past these intervals were observed.
23156
+ # Corresponds to the JSON property `duration`
23157
+ # @return [String]
23158
+ attr_accessor :duration
23159
+
23160
+ # Maximum observed inter-packet interval in milliseconds.
23161
+ # Corresponds to the JSON property `maxMs`
23162
+ # @return [Fixnum]
23163
+ attr_accessor :max_ms
23164
+
23165
+ # Minimum observed inter-packet interval in milliseconds.
23166
+ # Corresponds to the JSON property `minMs`
23167
+ # @return [Fixnum]
23168
+ attr_accessor :min_ms
23169
+
23170
+ # Number of inter-packet intervals from which these statistics were derived.
23171
+ # Corresponds to the JSON property `numIntervals`
23172
+ # @return [Fixnum]
23173
+ attr_accessor :num_intervals
23174
+
23175
+ # The type of packets for which inter-packet intervals were computed.
23176
+ # Corresponds to the JSON property `type`
23177
+ # @return [String]
23178
+ attr_accessor :type
23179
+
23180
+ def initialize(**args)
23181
+ update!(**args)
23182
+ end
23183
+
23184
+ # Update properties of this object
23185
+ def update!(**args)
23186
+ @avg_ms = args[:avg_ms] if args.key?(:avg_ms)
23187
+ @duration = args[:duration] if args.key?(:duration)
23188
+ @max_ms = args[:max_ms] if args.key?(:max_ms)
23189
+ @min_ms = args[:min_ms] if args.key?(:min_ms)
23190
+ @num_intervals = args[:num_intervals] if args.key?(:num_intervals)
23191
+ @type = args[:type] if args.key?(:type)
23192
+ end
23193
+ end
23194
+
22350
23195
  # Represents a Packet Mirroring resource. Packet Mirroring clones the traffic of
22351
23196
  # specified instances in your Virtual Private Cloud (VPC) network and forwards
22352
23197
  # it to a collector destination, such as an instance group of an internal TCP/
@@ -22972,37 +23817,37 @@ module Google
22972
23817
 
22973
23818
  # A matcher for the path portion of the URL. The BackendService from the longest-
22974
23819
  # matched rule will serve the URL. If no rule was matched, the default service
22975
- # will be used.
23820
+ # is used.
22976
23821
  class PathMatcher
22977
23822
  include Google::Apis::Core::Hashable
22978
23823
 
22979
23824
  # defaultRouteAction takes effect when none of the pathRules or routeRules match.
22980
- # The load balancer performs advanced routing actions like URL rewrites, header
22981
- # transformations, etc. prior to forwarding the request to the selected backend.
23825
+ # The load balancer performs advanced routing actions, such as URL rewrites and
23826
+ # header transformations, before forwarding the request to the selected backend.
22982
23827
  # If defaultRouteAction specifies any weightedBackendServices, defaultService
22983
23828
  # must not be set. Conversely if defaultService is set, defaultRouteAction
22984
23829
  # cannot contain any weightedBackendServices. Only one of defaultRouteAction or
22985
23830
  # defaultUrlRedirect must be set. UrlMaps for external HTTP(S) load balancers
22986
- # support only the urlRewrite action within a pathMatcher's defaultRouteAction.
23831
+ # support only the urlRewrite action within a path matcher's defaultRouteAction.
22987
23832
  # Corresponds to the JSON property `defaultRouteAction`
22988
23833
  # @return [Google::Apis::ComputeV1::HttpRouteAction]
22989
23834
  attr_accessor :default_route_action
22990
23835
 
22991
- # The full or partial URL to the BackendService resource. This will be used if
23836
+ # The full or partial URL to the BackendService resource. This URL is used if
22992
23837
  # none of the pathRules or routeRules defined by this PathMatcher are matched.
22993
23838
  # For example, the following are all valid URLs to a BackendService resource: -
22994
23839
  # https://www.googleapis.com/compute/v1/projects/project /global/backendServices/
22995
23840
  # backendService - compute/v1/projects/project/global/backendServices/
22996
23841
  # backendService - global/backendServices/backendService If defaultRouteAction
22997
- # is additionally specified, advanced routing actions like URL Rewrites, etc.
22998
- # take effect prior to sending the request to the backend. However, if
22999
- # defaultService is specified, defaultRouteAction cannot contain any
23000
- # weightedBackendServices. Conversely, if defaultRouteAction specifies any
23001
- # weightedBackendServices, defaultService must not be specified. Only one of
23002
- # defaultService, defaultUrlRedirect or defaultRouteAction.
23003
- # weightedBackendService must be set. Authorization requires one or more of the
23004
- # following Google IAM permissions on the specified resource default_service: -
23005
- # compute.backendBuckets.use - compute.backendServices.use
23842
+ # is also specified, advanced routing actions, such as URL rewrites, take effect
23843
+ # before sending the request to the backend. However, if defaultService is
23844
+ # specified, defaultRouteAction cannot contain any weightedBackendServices.
23845
+ # Conversely, if defaultRouteAction specifies any weightedBackendServices,
23846
+ # defaultService must not be specified. Only one of defaultService,
23847
+ # defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set.
23848
+ # Authorization requires one or more of the following Google IAM permissions on
23849
+ # the specified resource default_service: - compute.backendBuckets.use - compute.
23850
+ # backendServices.use
23006
23851
  # Corresponds to the JSON property `defaultService`
23007
23852
  # @return [String]
23008
23853
  attr_accessor :default_service
@@ -23078,23 +23923,23 @@ module Google
23078
23923
  attr_accessor :paths
23079
23924
 
23080
23925
  # In response to a matching path, the load balancer performs advanced routing
23081
- # actions like URL rewrites, header transformations, etc. prior to forwarding
23926
+ # actions, such as URL rewrites and header transformations, before forwarding
23082
23927
  # the request to the selected backend. If routeAction specifies any
23083
23928
  # weightedBackendServices, service must not be set. Conversely if service is set,
23084
23929
  # routeAction cannot contain any weightedBackendServices. Only one of
23085
- # routeAction or urlRedirect must be set. UrlMaps for external HTTP(S) load
23086
- # balancers support only the urlRewrite action within a pathRule's routeAction.
23930
+ # routeAction or urlRedirect must be set. URL maps for external HTTP(S) load
23931
+ # balancers support only the urlRewrite action within a path rule's routeAction.
23087
23932
  # Corresponds to the JSON property `routeAction`
23088
23933
  # @return [Google::Apis::ComputeV1::HttpRouteAction]
23089
23934
  attr_accessor :route_action
23090
23935
 
23091
23936
  # The full or partial URL of the backend service resource to which traffic is
23092
- # directed if this rule is matched. If routeAction is additionally specified,
23093
- # advanced routing actions like URL Rewrites, etc. take effect prior to sending
23094
- # the request to the backend. However, if service is specified, routeAction
23095
- # cannot contain any weightedBackendService s. Conversely, if routeAction
23096
- # specifies any weightedBackendServices, service must not be specified. Only one
23097
- # of urlRedirect, service or routeAction.weightedBackendService must be set.
23937
+ # directed if this rule is matched. If routeAction is also specified, advanced
23938
+ # routing actions, such as URL rewrites, take effect before sending the request
23939
+ # to the backend. However, if service is specified, routeAction cannot contain
23940
+ # any weightedBackendServices. Conversely, if routeAction specifies any
23941
+ # weightedBackendServices, service must not be specified. Only one of
23942
+ # urlRedirect, service or routeAction.weightedBackendService must be set.
23098
23943
  # Corresponds to the JSON property `service`
23099
23944
  # @return [String]
23100
23945
  attr_accessor :service
@@ -23166,31 +24011,31 @@ module Google
23166
24011
 
23167
24012
  # An Identity and Access Management (IAM) policy, which specifies access
23168
24013
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
23169
- # A `binding` binds one or more `members` to a single `role`. Members can be
23170
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
23171
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
23172
- # role or a user-created custom role. For some types of Google Cloud resources,
23173
- # a `binding` can also specify a `condition`, which is a logical expression that
23174
- # allows access to a resource only if the expression evaluates to `true`. A
23175
- # condition can add constraints based on attributes of the request, the resource,
23176
- # or both. To learn which resources support conditions in their IAM policies,
23177
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
23178
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
23179
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
23180
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
23181
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
23182
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
23183
- # title": "expirable access", "description": "Does not grant access after Sep
23184
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
23185
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
23186
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
23187
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
23188
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
23189
- # roles/resourcemanager.organizationViewer condition: title: expirable access
23190
- # description: Does not grant access after Sep 2020 expression: request.time <
23191
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
23192
- # description of IAM and its features, see the [IAM documentation](https://cloud.
23193
- # google.com/iam/docs/).
24014
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
24015
+ # Principals can be user accounts, service accounts, Google groups, and domains (
24016
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
24017
+ # an IAM predefined role or a user-created custom role. For some types of Google
24018
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
24019
+ # logical expression that allows access to a resource only if the expression
24020
+ # evaluates to `true`. A condition can add constraints based on attributes of
24021
+ # the request, the resource, or both. To learn which resources support
24022
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
24023
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
24024
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
24025
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
24026
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
24027
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
24028
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
24029
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
24030
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
24031
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
24032
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
24033
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
24034
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
24035
+ # access description: Does not grant access after Sep 2020 expression: request.
24036
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
24037
+ # a description of IAM and its features, see the [IAM documentation](https://
24038
+ # cloud.google.com/iam/docs/).
23194
24039
  class Policy
23195
24040
  include Google::Apis::Core::Hashable
23196
24041
 
@@ -23199,9 +24044,14 @@ module Google
23199
24044
  # @return [Array<Google::Apis::ComputeV1::AuditConfig>]
23200
24045
  attr_accessor :audit_configs
23201
24046
 
23202
- # Associates a list of `members` to a `role`. Optionally, may specify a `
23203
- # condition` that determines how and when the `bindings` are applied. Each of
23204
- # the `bindings` must contain at least one member.
24047
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
24048
+ # specify a `condition` that determines how and when the `bindings` are applied.
24049
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
24050
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
24051
+ # can be Google groups. Each occurrence of a principal counts towards these
24052
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
24053
+ # example.com`, and not to any other principal, then you can add another 1,450
24054
+ # principals to the `bindings` in the `Policy`.
23205
24055
  # Corresponds to the JSON property `bindings`
23206
24056
  # @return [Array<Google::Apis::ComputeV1::Binding>]
23207
24057
  attr_accessor :bindings
@@ -23222,12 +24072,6 @@ module Google
23222
24072
  # @return [String]
23223
24073
  attr_accessor :etag
23224
24074
 
23225
- # This is deprecated and has no effect. Do not use.
23226
- # Corresponds to the JSON property `iamOwned`
23227
- # @return [Boolean]
23228
- attr_accessor :iam_owned
23229
- alias_method :iam_owned?, :iam_owned
23230
-
23231
24075
  # This is deprecated and has no effect. Do not use.
23232
24076
  # Corresponds to the JSON property `rules`
23233
24077
  # @return [Array<Google::Apis::ComputeV1::Rule>]
@@ -23261,7 +24105,6 @@ module Google
23261
24105
  @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
23262
24106
  @bindings = args[:bindings] if args.key?(:bindings)
23263
24107
  @etag = args[:etag] if args.key?(:etag)
23264
- @iam_owned = args[:iam_owned] if args.key?(:iam_owned)
23265
24108
  @rules = args[:rules] if args.key?(:rules)
23266
24109
  @version = args[:version] if args.key?(:version)
23267
24110
  end
@@ -23642,7 +24485,13 @@ module Google
23642
24485
  # @return [String]
23643
24486
  attr_accessor :shared_secret
23644
24487
 
23645
- # The status of the public advertised prefix.
24488
+ # The status of the public advertised prefix. Possible values include: - `
24489
+ # INITIAL`: RPKI validation is complete. - `PTR_CONFIGURED`: User has configured
24490
+ # the PTR. - `VALIDATED`: Reverse DNS lookup is successful. - `
24491
+ # REVERSE_DNS_LOOKUP_FAILED`: Reverse DNS lookup failed. - `
24492
+ # PREFIX_CONFIGURATION_IN_PROGRESS`: The prefix is being configured. - `
24493
+ # PREFIX_CONFIGURATION_COMPLETE`: The prefix is fully configured. - `
24494
+ # PREFIX_REMOVAL_IN_PROGRESS`: The prefix is being removed.
23646
24495
  # Corresponds to the JSON property `status`
23647
24496
  # @return [String]
23648
24497
  attr_accessor :status
@@ -23921,7 +24770,12 @@ module Google
23921
24770
  # @return [String]
23922
24771
  attr_accessor :self_link
23923
24772
 
23924
- # [Output Only] The status of the public delegated prefix.
24773
+ # [Output Only] The status of the public delegated prefix, which can be one of
24774
+ # following values: - `INITIALIZING` The public delegated prefix is being
24775
+ # initialized and addresses cannot be created yet. - `READY_TO_ANNOUNCE` The
24776
+ # public delegated prefix is a live migration prefix and is active. - `ANNOUNCED`
24777
+ # The public delegated prefix is active. - `DELETING` The public delegated
24778
+ # prefix is being deprovsioned.
23925
24779
  # Corresponds to the JSON property `status`
23926
24780
  # @return [String]
23927
24781
  attr_accessor :status
@@ -25781,31 +26635,31 @@ module Google
25781
26635
 
25782
26636
  # An Identity and Access Management (IAM) policy, which specifies access
25783
26637
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
25784
- # A `binding` binds one or more `members` to a single `role`. Members can be
25785
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
25786
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
25787
- # role or a user-created custom role. For some types of Google Cloud resources,
25788
- # a `binding` can also specify a `condition`, which is a logical expression that
25789
- # allows access to a resource only if the expression evaluates to `true`. A
25790
- # condition can add constraints based on attributes of the request, the resource,
25791
- # or both. To learn which resources support conditions in their IAM policies,
25792
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
25793
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
25794
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
25795
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
25796
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
25797
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
25798
- # title": "expirable access", "description": "Does not grant access after Sep
25799
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
25800
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
25801
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
25802
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
25803
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
25804
- # roles/resourcemanager.organizationViewer condition: title: expirable access
25805
- # description: Does not grant access after Sep 2020 expression: request.time <
25806
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
25807
- # description of IAM and its features, see the [IAM documentation](https://cloud.
25808
- # google.com/iam/docs/).
26638
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
26639
+ # Principals can be user accounts, service accounts, Google groups, and domains (
26640
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
26641
+ # an IAM predefined role or a user-created custom role. For some types of Google
26642
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
26643
+ # logical expression that allows access to a resource only if the expression
26644
+ # evaluates to `true`. A condition can add constraints based on attributes of
26645
+ # the request, the resource, or both. To learn which resources support
26646
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
26647
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
26648
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
26649
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
26650
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
26651
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
26652
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
26653
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
26654
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
26655
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
26656
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
26657
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
26658
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
26659
+ # access description: Does not grant access after Sep 2020 expression: request.
26660
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
26661
+ # a description of IAM and its features, see the [IAM documentation](https://
26662
+ # cloud.google.com/iam/docs/).
25809
26663
  # Corresponds to the JSON property `policy`
25810
26664
  # @return [Google::Apis::ComputeV1::Policy]
25811
26665
  attr_accessor :policy
@@ -25846,17 +26700,17 @@ module Google
25846
26700
  class RegionUrlMapsValidateRequest
25847
26701
  include Google::Apis::Core::Hashable
25848
26702
 
25849
- # Represents a URL Map resource. Google Compute Engine has two URL Map resources:
25850
- # * [Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/
25851
- # docs/reference/rest/v1/regionUrlMaps) A URL map resource is a component of
25852
- # certain types of GCP load balancers and Traffic Director. * urlMaps are used
25853
- # by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are
25854
- # used by internal HTTP(S) load balancers. For a list of supported URL map
25855
- # features by load balancer type, see the Load balancing features: Routing and
26703
+ # Represents a URL Map resource. Compute Engine has two URL Map resources: * [
26704
+ # Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/docs/
26705
+ # reference/rest/v1/regionUrlMaps) A URL map resource is a component of certain
26706
+ # types of cloud load balancers and Traffic Director: * urlMaps are used by
26707
+ # external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are used
26708
+ # by internal HTTP(S) load balancers. For a list of supported URL map features
26709
+ # by the load balancer type, see the Load balancing features: Routing and
25856
26710
  # traffic management table. For a list of supported URL map features for Traffic
25857
26711
  # Director, see the Traffic Director features: Routing and traffic management
25858
- # table. This resource defines mappings from host names and URL paths to either
25859
- # a backend service or a backend bucket. To use the global urlMaps resource, the
26712
+ # table. This resource defines mappings from hostnames and URL paths to either a
26713
+ # backend service or a backend bucket. To use the global urlMaps resource, the
25860
26714
  # backend service must have a loadBalancingScheme of either EXTERNAL or
25861
26715
  # INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service
25862
26716
  # must have a loadBalancingScheme of INTERNAL_MANAGED. For more information,
@@ -25876,9 +26730,9 @@ module Google
25876
26730
  end
25877
26731
 
25878
26732
  # A policy that specifies how requests intended for the route's backends are
25879
- # shadowed to a separate mirrored backend service. Loadbalancer does not wait
25880
- # for responses from the shadow service. Prior to sending traffic to the shadow
25881
- # service, the host / authority header is suffixed with -shadow.
26733
+ # shadowed to a separate mirrored backend service. The load balancer doesn't
26734
+ # wait for responses from the shadow service. Before sending traffic to the
26735
+ # shadow service, the host or authority header is suffixed with -shadow.
25882
26736
  class RequestMirrorPolicy
25883
26737
  include Google::Apis::Core::Hashable
25884
26738
 
@@ -25954,6 +26808,11 @@ module Google
25954
26808
  # @return [String]
25955
26809
  attr_accessor :self_link
25956
26810
 
26811
+ # The share setting for reservations and sole tenancy node groups.
26812
+ # Corresponds to the JSON property `shareSettings`
26813
+ # @return [Google::Apis::ComputeV1::ShareSettings]
26814
+ attr_accessor :share_settings
26815
+
25957
26816
  # This reservation type allows to pre allocate specific instance configuration.
25958
26817
  # Next ID: 5
25959
26818
  # Corresponds to the JSON property `specificReservation`
@@ -25993,6 +26852,7 @@ module Google
25993
26852
  @name = args[:name] if args.key?(:name)
25994
26853
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
25995
26854
  @self_link = args[:self_link] if args.key?(:self_link)
26855
+ @share_settings = args[:share_settings] if args.key?(:share_settings)
25996
26856
  @specific_reservation = args[:specific_reservation] if args.key?(:specific_reservation)
25997
26857
  @specific_reservation_required = args[:specific_reservation_required] if args.key?(:specific_reservation_required)
25998
26858
  @status = args[:status] if args.key?(:status)
@@ -28032,6 +28892,12 @@ module Google
28032
28892
  # @return [String]
28033
28893
  attr_accessor :enable
28034
28894
 
28895
+ # Enable IPv6 traffic over BGP Peer. If not specified, it is disabled by default.
28896
+ # Corresponds to the JSON property `enableIpv6`
28897
+ # @return [Boolean]
28898
+ attr_accessor :enable_ipv6
28899
+ alias_method :enable_ipv6?, :enable_ipv6
28900
+
28035
28901
  # Name of the interface the BGP peer is associated with.
28036
28902
  # Corresponds to the JSON property `interfaceName`
28037
28903
  # @return [String]
@@ -28043,6 +28909,11 @@ module Google
28043
28909
  # @return [String]
28044
28910
  attr_accessor :ip_address
28045
28911
 
28912
+ # IPv6 address of the interface inside Google Cloud Platform.
28913
+ # Corresponds to the JSON property `ipv6NexthopAddress`
28914
+ # @return [String]
28915
+ attr_accessor :ipv6_nexthop_address
28916
+
28046
28917
  # [Output Only] The resource that configures and manages this BGP peer. -
28047
28918
  # MANAGED_BY_USER is the default value and can be managed by you or other users -
28048
28919
  # MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed by Cloud
@@ -28075,6 +28946,11 @@ module Google
28075
28946
  # @return [String]
28076
28947
  attr_accessor :peer_ip_address
28077
28948
 
28949
+ # IPv6 address of the BGP interface outside Google Cloud Platform.
28950
+ # Corresponds to the JSON property `peerIpv6NexthopAddress`
28951
+ # @return [String]
28952
+ attr_accessor :peer_ipv6_nexthop_address
28953
+
28078
28954
  # URI of the VM instance that is used as third-party router appliances such as
28079
28955
  # Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance
28080
28956
  # must be located in zones contained in the same region as this Cloud Router.
@@ -28095,12 +28971,15 @@ module Google
28095
28971
  @advertised_route_priority = args[:advertised_route_priority] if args.key?(:advertised_route_priority)
28096
28972
  @bfd = args[:bfd] if args.key?(:bfd)
28097
28973
  @enable = args[:enable] if args.key?(:enable)
28974
+ @enable_ipv6 = args[:enable_ipv6] if args.key?(:enable_ipv6)
28098
28975
  @interface_name = args[:interface_name] if args.key?(:interface_name)
28099
28976
  @ip_address = args[:ip_address] if args.key?(:ip_address)
28977
+ @ipv6_nexthop_address = args[:ipv6_nexthop_address] if args.key?(:ipv6_nexthop_address)
28100
28978
  @management_type = args[:management_type] if args.key?(:management_type)
28101
28979
  @name = args[:name] if args.key?(:name)
28102
28980
  @peer_asn = args[:peer_asn] if args.key?(:peer_asn)
28103
28981
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
28982
+ @peer_ipv6_nexthop_address = args[:peer_ipv6_nexthop_address] if args.key?(:peer_ipv6_nexthop_address)
28104
28983
  @router_appliance_instance = args[:router_appliance_instance] if args.key?(:router_appliance_instance)
28105
28984
  end
28106
28985
  end
@@ -28380,6 +29259,17 @@ module Google
28380
29259
  # @return [Array<String>]
28381
29260
  attr_accessor :drain_nat_ips
28382
29261
 
29262
+ # Enable Dynamic Port Allocation. If not specified, it is disabled by default.
29263
+ # If set to true, - Dynamic Port Allocation will be enabled on this NAT config. -
29264
+ # enableEndpointIndependentMapping cannot be set to true. - If minPorts is set,
29265
+ # minPortsPerVm must be set to a power of two greater than or equal to 32. If
29266
+ # minPortsPerVm is not set, a minimum of 32 ports will be allocated to a VM from
29267
+ # this NAT config.
29268
+ # Corresponds to the JSON property `enableDynamicPortAllocation`
29269
+ # @return [Boolean]
29270
+ attr_accessor :enable_dynamic_port_allocation
29271
+ alias_method :enable_dynamic_port_allocation?, :enable_dynamic_port_allocation
29272
+
28383
29273
  #
28384
29274
  # Corresponds to the JSON property `enableEndpointIndependentMapping`
28385
29275
  # @return [Boolean]
@@ -28396,6 +29286,17 @@ module Google
28396
29286
  # @return [Google::Apis::ComputeV1::RouterNatLogConfig]
28397
29287
  attr_accessor :log_config
28398
29288
 
29289
+ # Maximum number of ports allocated to a VM from this NAT config when Dynamic
29290
+ # Port Allocation is enabled. If Dynamic Port Allocation is not enabled, this
29291
+ # field has no effect. If Dynamic Port Allocation is enabled, and this field is
29292
+ # set, it must be set to a power of two greater than minPortsPerVm, or 64 if
29293
+ # minPortsPerVm is not set. If Dynamic Port Allocation is enabled and this field
29294
+ # is not set, a maximum of 65536 ports will be allocated to a VM from this NAT
29295
+ # config.
29296
+ # Corresponds to the JSON property `maxPortsPerVm`
29297
+ # @return [Fixnum]
29298
+ attr_accessor :max_ports_per_vm
29299
+
28399
29300
  # Minimum number of ports allocated to a VM from this NAT config. If not set, a
28400
29301
  # default number of ports is allocated to a VM. This is rounded up to the
28401
29302
  # nearest power of 2. For example, if the value of this field is 50, at least 64
@@ -28480,9 +29381,11 @@ module Google
28480
29381
  # Update properties of this object
28481
29382
  def update!(**args)
28482
29383
  @drain_nat_ips = args[:drain_nat_ips] if args.key?(:drain_nat_ips)
29384
+ @enable_dynamic_port_allocation = args[:enable_dynamic_port_allocation] if args.key?(:enable_dynamic_port_allocation)
28483
29385
  @enable_endpoint_independent_mapping = args[:enable_endpoint_independent_mapping] if args.key?(:enable_endpoint_independent_mapping)
28484
29386
  @icmp_idle_timeout_sec = args[:icmp_idle_timeout_sec] if args.key?(:icmp_idle_timeout_sec)
28485
29387
  @log_config = args[:log_config] if args.key?(:log_config)
29388
+ @max_ports_per_vm = args[:max_ports_per_vm] if args.key?(:max_ports_per_vm)
28486
29389
  @min_ports_per_vm = args[:min_ports_per_vm] if args.key?(:min_ports_per_vm)
28487
29390
  @name = args[:name] if args.key?(:name)
28488
29391
  @nat_ip_allocate_option = args[:nat_ip_allocate_option] if args.key?(:nat_ip_allocate_option)
@@ -28547,7 +29450,8 @@ module Google
28547
29450
  # "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.
28548
29451
  # 0/16')" "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" The
28549
29452
  # following example is a valid match expression for private NAT: "nexthop.hub ==
28550
- # '/projects/my-project/global/hub/hub-1'"
29453
+ # 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/
29454
+ # global/hub/hub-1'"
28551
29455
  # Corresponds to the JSON property `match`
28552
29456
  # @return [String]
28553
29457
  attr_accessor :match
@@ -28689,6 +29593,11 @@ module Google
28689
29593
  # @return [Array<Google::Apis::ComputeV1::Route>]
28690
29594
  attr_accessor :advertised_routes
28691
29595
 
29596
+ # Next free: 15
29597
+ # Corresponds to the JSON property `bfdStatus`
29598
+ # @return [Google::Apis::ComputeV1::BfdStatus]
29599
+ attr_accessor :bfd_status
29600
+
28692
29601
  # IP address of the local BGP interface.
28693
29602
  # Corresponds to the JSON property `ipAddress`
28694
29603
  # @return [String]
@@ -28749,6 +29658,7 @@ module Google
28749
29658
  # Update properties of this object
28750
29659
  def update!(**args)
28751
29660
  @advertised_routes = args[:advertised_routes] if args.key?(:advertised_routes)
29661
+ @bfd_status = args[:bfd_status] if args.key?(:bfd_status)
28752
29662
  @ip_address = args[:ip_address] if args.key?(:ip_address)
28753
29663
  @linked_vpn_tunnel = args[:linked_vpn_tunnel] if args.key?(:linked_vpn_tunnel)
28754
29664
  @name = args[:name] if args.key?(:name)
@@ -29134,6 +30044,171 @@ module Google
29134
30044
  end
29135
30045
  end
29136
30046
 
30047
+ # DEPRECATED: Please use compute#savedDisk instead. An instance-attached disk
30048
+ # resource.
30049
+ class SavedAttachedDisk
30050
+ include Google::Apis::Core::Hashable
30051
+
30052
+ # Specifies whether the disk will be auto-deleted when the instance is deleted (
30053
+ # but not when the disk is detached from the instance).
30054
+ # Corresponds to the JSON property `autoDelete`
30055
+ # @return [Boolean]
30056
+ attr_accessor :auto_delete
30057
+ alias_method :auto_delete?, :auto_delete
30058
+
30059
+ # Indicates that this is a boot disk. The virtual machine will use the first
30060
+ # partition of the disk for its root filesystem.
30061
+ # Corresponds to the JSON property `boot`
30062
+ # @return [Boolean]
30063
+ attr_accessor :boot
30064
+ alias_method :boot?, :boot
30065
+
30066
+ # Specifies the name of the disk attached to the source instance.
30067
+ # Corresponds to the JSON property `deviceName`
30068
+ # @return [String]
30069
+ attr_accessor :device_name
30070
+
30071
+ # The encryption key for the disk.
30072
+ # Corresponds to the JSON property `diskEncryptionKey`
30073
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
30074
+ attr_accessor :disk_encryption_key
30075
+
30076
+ # The size of the disk in base-2 GB.
30077
+ # Corresponds to the JSON property `diskSizeGb`
30078
+ # @return [Fixnum]
30079
+ attr_accessor :disk_size_gb
30080
+
30081
+ # [Output Only] URL of the disk type resource. For example: projects/project /
30082
+ # zones/zone/diskTypes/pd-standard or pd-ssd
30083
+ # Corresponds to the JSON property `diskType`
30084
+ # @return [String]
30085
+ attr_accessor :disk_type
30086
+
30087
+ # A list of features to enable on the guest operating system. Applicable only
30088
+ # for bootable images. Read Enabling guest operating system features to see a
30089
+ # list of available options.
30090
+ # Corresponds to the JSON property `guestOsFeatures`
30091
+ # @return [Array<Google::Apis::ComputeV1::GuestOsFeature>]
30092
+ attr_accessor :guest_os_features
30093
+
30094
+ # Specifies zero-based index of the disk that is attached to the source instance.
30095
+ # Corresponds to the JSON property `index`
30096
+ # @return [Fixnum]
30097
+ attr_accessor :index
30098
+
30099
+ # Specifies the disk interface to use for attaching this disk, which is either
30100
+ # SCSI or NVME.
30101
+ # Corresponds to the JSON property `interface`
30102
+ # @return [String]
30103
+ attr_accessor :interface
30104
+
30105
+ # [Output Only] Type of the resource. Always compute#attachedDisk for attached
30106
+ # disks.
30107
+ # Corresponds to the JSON property `kind`
30108
+ # @return [String]
30109
+ attr_accessor :kind
30110
+
30111
+ # [Output Only] Any valid publicly visible licenses.
30112
+ # Corresponds to the JSON property `licenses`
30113
+ # @return [Array<String>]
30114
+ attr_accessor :licenses
30115
+
30116
+ # The mode in which this disk is attached to the source instance, either
30117
+ # READ_WRITE or READ_ONLY.
30118
+ # Corresponds to the JSON property `mode`
30119
+ # @return [String]
30120
+ attr_accessor :mode
30121
+
30122
+ # Specifies a URL of the disk attached to the source instance.
30123
+ # Corresponds to the JSON property `source`
30124
+ # @return [String]
30125
+ attr_accessor :source
30126
+
30127
+ # [Output Only] A size of the storage used by the disk's snapshot by this
30128
+ # machine image.
30129
+ # Corresponds to the JSON property `storageBytes`
30130
+ # @return [Fixnum]
30131
+ attr_accessor :storage_bytes
30132
+
30133
+ # [Output Only] An indicator whether storageBytes is in a stable state or it is
30134
+ # being adjusted as a result of shared storage reallocation. This status can
30135
+ # either be UPDATING, meaning the size of the snapshot is being updated, or
30136
+ # UP_TO_DATE, meaning the size of the snapshot is up-to-date.
30137
+ # Corresponds to the JSON property `storageBytesStatus`
30138
+ # @return [String]
30139
+ attr_accessor :storage_bytes_status
30140
+
30141
+ # Specifies the type of the attached disk, either SCRATCH or PERSISTENT.
30142
+ # Corresponds to the JSON property `type`
30143
+ # @return [String]
30144
+ attr_accessor :type
30145
+
30146
+ def initialize(**args)
30147
+ update!(**args)
30148
+ end
30149
+
30150
+ # Update properties of this object
30151
+ def update!(**args)
30152
+ @auto_delete = args[:auto_delete] if args.key?(:auto_delete)
30153
+ @boot = args[:boot] if args.key?(:boot)
30154
+ @device_name = args[:device_name] if args.key?(:device_name)
30155
+ @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
30156
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
30157
+ @disk_type = args[:disk_type] if args.key?(:disk_type)
30158
+ @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features)
30159
+ @index = args[:index] if args.key?(:index)
30160
+ @interface = args[:interface] if args.key?(:interface)
30161
+ @kind = args[:kind] if args.key?(:kind)
30162
+ @licenses = args[:licenses] if args.key?(:licenses)
30163
+ @mode = args[:mode] if args.key?(:mode)
30164
+ @source = args[:source] if args.key?(:source)
30165
+ @storage_bytes = args[:storage_bytes] if args.key?(:storage_bytes)
30166
+ @storage_bytes_status = args[:storage_bytes_status] if args.key?(:storage_bytes_status)
30167
+ @type = args[:type] if args.key?(:type)
30168
+ end
30169
+ end
30170
+
30171
+ # An instance-attached disk resource.
30172
+ class SavedDisk
30173
+ include Google::Apis::Core::Hashable
30174
+
30175
+ # [Output Only] Type of the resource. Always compute#savedDisk for attached
30176
+ # disks.
30177
+ # Corresponds to the JSON property `kind`
30178
+ # @return [String]
30179
+ attr_accessor :kind
30180
+
30181
+ # Specifies a URL of the disk attached to the source instance.
30182
+ # Corresponds to the JSON property `sourceDisk`
30183
+ # @return [String]
30184
+ attr_accessor :source_disk
30185
+
30186
+ # [Output Only] Size of the individual disk snapshot used by this machine image.
30187
+ # Corresponds to the JSON property `storageBytes`
30188
+ # @return [Fixnum]
30189
+ attr_accessor :storage_bytes
30190
+
30191
+ # [Output Only] An indicator whether storageBytes is in a stable state or it is
30192
+ # being adjusted as a result of shared storage reallocation. This status can
30193
+ # either be UPDATING, meaning the size of the snapshot is being updated, or
30194
+ # UP_TO_DATE, meaning the size of the snapshot is up-to-date.
30195
+ # Corresponds to the JSON property `storageBytesStatus`
30196
+ # @return [String]
30197
+ attr_accessor :storage_bytes_status
30198
+
30199
+ def initialize(**args)
30200
+ update!(**args)
30201
+ end
30202
+
30203
+ # Update properties of this object
30204
+ def update!(**args)
30205
+ @kind = args[:kind] if args.key?(:kind)
30206
+ @source_disk = args[:source_disk] if args.key?(:source_disk)
30207
+ @storage_bytes = args[:storage_bytes] if args.key?(:storage_bytes)
30208
+ @storage_bytes_status = args[:storage_bytes_status] if args.key?(:storage_bytes_status)
30209
+ end
30210
+ end
30211
+
29137
30212
  #
29138
30213
  class ScalingScheduleStatus
29139
30214
  include Google::Apis::Core::Hashable
@@ -29183,6 +30258,11 @@ module Google
29183
30258
  attr_accessor :automatic_restart
29184
30259
  alias_method :automatic_restart?, :automatic_restart
29185
30260
 
30261
+ # Specifies the termination action for the instance.
30262
+ # Corresponds to the JSON property `instanceTerminationAction`
30263
+ # @return [String]
30264
+ attr_accessor :instance_termination_action
30265
+
29186
30266
  # An opaque location hint used to place the instance close to other resources.
29187
30267
  # This field is for use by internal tools that use the public API.
29188
30268
  # Corresponds to the JSON property `locationHint`
@@ -29218,6 +30298,11 @@ module Google
29218
30298
  attr_accessor :preemptible
29219
30299
  alias_method :preemptible?, :preemptible
29220
30300
 
30301
+ # Specifies the provisioning model of the instance.
30302
+ # Corresponds to the JSON property `provisioningModel`
30303
+ # @return [String]
30304
+ attr_accessor :provisioning_model
30305
+
29221
30306
  def initialize(**args)
29222
30307
  update!(**args)
29223
30308
  end
@@ -29225,11 +30310,13 @@ module Google
29225
30310
  # Update properties of this object
29226
30311
  def update!(**args)
29227
30312
  @automatic_restart = args[:automatic_restart] if args.key?(:automatic_restart)
30313
+ @instance_termination_action = args[:instance_termination_action] if args.key?(:instance_termination_action)
29228
30314
  @location_hint = args[:location_hint] if args.key?(:location_hint)
29229
30315
  @min_node_cpus = args[:min_node_cpus] if args.key?(:min_node_cpus)
29230
30316
  @node_affinities = args[:node_affinities] if args.key?(:node_affinities)
29231
30317
  @on_host_maintenance = args[:on_host_maintenance] if args.key?(:on_host_maintenance)
29232
30318
  @preemptible = args[:preemptible] if args.key?(:preemptible)
30319
+ @provisioning_model = args[:provisioning_model] if args.key?(:provisioning_model)
29233
30320
  end
29234
30321
  end
29235
30322
 
@@ -29391,6 +30478,11 @@ module Google
29391
30478
  # @return [String]
29392
30479
  attr_accessor :name
29393
30480
 
30481
+ #
30482
+ # Corresponds to the JSON property `recaptchaOptionsConfig`
30483
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRecaptchaOptionsConfig]
30484
+ attr_accessor :recaptcha_options_config
30485
+
29394
30486
  # A list of rules that belong to this policy. There must always be a default
29395
30487
  # rule (rule with priority 2147483647 and match "*"). If no rules are provided
29396
30488
  # when creating a security policy, a default rule with action "allow" will be
@@ -29404,6 +30496,17 @@ module Google
29404
30496
  # @return [String]
29405
30497
  attr_accessor :self_link
29406
30498
 
30499
+ # The type indicates the intended use of the security policy. CLOUD_ARMOR -
30500
+ # Cloud Armor backend security policies can be configured to filter incoming
30501
+ # HTTP requests targeting backend services. They filter requests before they hit
30502
+ # the origin servers. CLOUD_ARMOR_EDGE - Cloud Armor edge security policies can
30503
+ # be configured to filter incoming HTTP requests targeting backend services (
30504
+ # including Cloud CDN-enabled) as well as backend buckets (Cloud Storage). They
30505
+ # filter requests before the request is served from Google's cache.
30506
+ # Corresponds to the JSON property `type`
30507
+ # @return [String]
30508
+ attr_accessor :type
30509
+
29407
30510
  def initialize(**args)
29408
30511
  update!(**args)
29409
30512
  end
@@ -29418,8 +30521,10 @@ module Google
29418
30521
  @id = args[:id] if args.key?(:id)
29419
30522
  @kind = args[:kind] if args.key?(:kind)
29420
30523
  @name = args[:name] if args.key?(:name)
30524
+ @recaptcha_options_config = args[:recaptcha_options_config] if args.key?(:recaptcha_options_config)
29421
30525
  @rules = args[:rules] if args.key?(:rules)
29422
30526
  @self_link = args[:self_link] if args.key?(:self_link)
30527
+ @type = args[:type] if args.key?(:type)
29423
30528
  end
29424
30529
  end
29425
30530
 
@@ -29606,6 +30711,29 @@ module Google
29606
30711
  end
29607
30712
  end
29608
30713
 
30714
+ #
30715
+ class SecurityPolicyRecaptchaOptionsConfig
30716
+ include Google::Apis::Core::Hashable
30717
+
30718
+ # An optional field to supply a reCAPTCHA site key to be used for all the rules
30719
+ # using the redirect action with the type of GOOGLE_RECAPTCHA under the security
30720
+ # policy. The specified site key needs to be created from the reCAPTCHA API. The
30721
+ # user is responsible for the validity of the specified site key. If not
30722
+ # specified, a Google-managed site key is used.
30723
+ # Corresponds to the JSON property `redirectSiteKey`
30724
+ # @return [String]
30725
+ attr_accessor :redirect_site_key
30726
+
30727
+ def initialize(**args)
30728
+ update!(**args)
30729
+ end
30730
+
30731
+ # Update properties of this object
30732
+ def update!(**args)
30733
+ @redirect_site_key = args[:redirect_site_key] if args.key?(:redirect_site_key)
30734
+ end
30735
+ end
30736
+
29609
30737
  #
29610
30738
  class SecurityPolicyReference
29611
30739
  include Google::Apis::Core::Hashable
@@ -29630,9 +30758,17 @@ module Google
29630
30758
  class SecurityPolicyRule
29631
30759
  include Google::Apis::Core::Hashable
29632
30760
 
29633
- # The Action to perform when the client connection triggers the rule. Can
29634
- # currently be either "allow" or "deny()" where valid values for status are 403,
29635
- # 404, and 502.
30761
+ # The Action to perform when the rule is matched. The following are the valid
30762
+ # actions: - allow: allow access to target. - deny(): deny access to target,
30763
+ # returns the HTTP response code specified (valid values are 403, 404, and 502).
30764
+ # - rate_based_ban: limit client traffic to the configured threshold and ban the
30765
+ # client if the traffic exceeds the threshold. Configure parameters for this
30766
+ # action in RateLimitOptions. Requires rate_limit_options to be set. - redirect:
30767
+ # redirect to a different target. This can either be an internal reCAPTCHA
30768
+ # redirect, or an external URL-based redirect via a 302 response. Parameters for
30769
+ # this action can be configured via redirectOptions. - throttle: limit client
30770
+ # traffic to the configured threshold. Configure parameters for this action in
30771
+ # rateLimitOptions. Requires rate_limit_options to be set for this.
29636
30772
  # Corresponds to the JSON property `action`
29637
30773
  # @return [String]
29638
30774
  attr_accessor :action
@@ -29643,6 +30779,11 @@ module Google
29643
30779
  # @return [String]
29644
30780
  attr_accessor :description
29645
30781
 
30782
+ # Optional, additional actions that are performed on headers.
30783
+ # Corresponds to the JSON property `headerAction`
30784
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleHttpHeaderAction]
30785
+ attr_accessor :header_action
30786
+
29646
30787
  # [Output only] Type of the resource. Always compute#securityPolicyRule for
29647
30788
  # security policy rules
29648
30789
  # Corresponds to the JSON property `kind`
@@ -29669,6 +30810,18 @@ module Google
29669
30810
  # @return [Fixnum]
29670
30811
  attr_accessor :priority
29671
30812
 
30813
+ # Must be specified if the action is "rate_based_ban" or "throttle". Cannot be
30814
+ # specified for any other actions.
30815
+ # Corresponds to the JSON property `rateLimitOptions`
30816
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleRateLimitOptions]
30817
+ attr_accessor :rate_limit_options
30818
+
30819
+ # Parameters defining the redirect action. Cannot be specified for any other
30820
+ # actions.
30821
+ # Corresponds to the JSON property `redirectOptions`
30822
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleRedirectOptions]
30823
+ attr_accessor :redirect_options
30824
+
29672
30825
  def initialize(**args)
29673
30826
  update!(**args)
29674
30827
  end
@@ -29677,10 +30830,57 @@ module Google
29677
30830
  def update!(**args)
29678
30831
  @action = args[:action] if args.key?(:action)
29679
30832
  @description = args[:description] if args.key?(:description)
30833
+ @header_action = args[:header_action] if args.key?(:header_action)
29680
30834
  @kind = args[:kind] if args.key?(:kind)
29681
30835
  @match = args[:match] if args.key?(:match)
29682
30836
  @preview = args[:preview] if args.key?(:preview)
29683
30837
  @priority = args[:priority] if args.key?(:priority)
30838
+ @rate_limit_options = args[:rate_limit_options] if args.key?(:rate_limit_options)
30839
+ @redirect_options = args[:redirect_options] if args.key?(:redirect_options)
30840
+ end
30841
+ end
30842
+
30843
+ #
30844
+ class SecurityPolicyRuleHttpHeaderAction
30845
+ include Google::Apis::Core::Hashable
30846
+
30847
+ # The list of request headers to add or overwrite if they're already present.
30848
+ # Corresponds to the JSON property `requestHeadersToAdds`
30849
+ # @return [Array<Google::Apis::ComputeV1::SecurityPolicyRuleHttpHeaderActionHttpHeaderOption>]
30850
+ attr_accessor :request_headers_to_adds
30851
+
30852
+ def initialize(**args)
30853
+ update!(**args)
30854
+ end
30855
+
30856
+ # Update properties of this object
30857
+ def update!(**args)
30858
+ @request_headers_to_adds = args[:request_headers_to_adds] if args.key?(:request_headers_to_adds)
30859
+ end
30860
+ end
30861
+
30862
+ #
30863
+ class SecurityPolicyRuleHttpHeaderActionHttpHeaderOption
30864
+ include Google::Apis::Core::Hashable
30865
+
30866
+ # The name of the header to set.
30867
+ # Corresponds to the JSON property `headerName`
30868
+ # @return [String]
30869
+ attr_accessor :header_name
30870
+
30871
+ # The value to set the named header to.
30872
+ # Corresponds to the JSON property `headerValue`
30873
+ # @return [String]
30874
+ attr_accessor :header_value
30875
+
30876
+ def initialize(**args)
30877
+ update!(**args)
30878
+ end
30879
+
30880
+ # Update properties of this object
30881
+ def update!(**args)
30882
+ @header_name = args[:header_name] if args.key?(:header_name)
30883
+ @header_value = args[:header_value] if args.key?(:header_value)
29684
30884
  end
29685
30885
  end
29686
30886
 
@@ -29754,6 +30954,144 @@ module Google
29754
30954
  end
29755
30955
  end
29756
30956
 
30957
+ #
30958
+ class SecurityPolicyRuleRateLimitOptions
30959
+ include Google::Apis::Core::Hashable
30960
+
30961
+ # Can only be specified if the action for the rule is "rate_based_ban". If
30962
+ # specified, determines the time (in seconds) the traffic will continue to be
30963
+ # banned by the rate limit after the rate falls below the threshold.
30964
+ # Corresponds to the JSON property `banDurationSec`
30965
+ # @return [Fixnum]
30966
+ attr_accessor :ban_duration_sec
30967
+
30968
+ # Can only be specified if the action for the rule is "rate_based_ban". If
30969
+ # specified, the key will be banned for the configured 'ban_duration_sec' when
30970
+ # the number of requests that exceed the 'rate_limit_threshold' also exceed this
30971
+ # 'ban_threshold'.
30972
+ # Corresponds to the JSON property `banThreshold`
30973
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleRateLimitOptionsThreshold]
30974
+ attr_accessor :ban_threshold
30975
+
30976
+ # Action to take for requests that are under the configured rate limit threshold.
30977
+ # Valid option is "allow" only.
30978
+ # Corresponds to the JSON property `conformAction`
30979
+ # @return [String]
30980
+ attr_accessor :conform_action
30981
+
30982
+ # Determines the key to enforce the rate_limit_threshold on. Possible values are:
30983
+ # - ALL: A single rate limit threshold is applied to all the requests matching
30984
+ # this rule. This is the default value if this field 'enforce_on_key' is not
30985
+ # configured. - IP: The source IP address of the request is the key. Each IP has
30986
+ # this limit enforced separately. - HTTP_HEADER: The value of the HTTP header
30987
+ # whose name is configured under "enforce_on_key_name". The key value is
30988
+ # truncated to the first 128 bytes of the header value. If no such header is
30989
+ # present in the request, the key type defaults to ALL. - XFF_IP: The first IP
30990
+ # address (i.e. the originating client IP address) specified in the list of IPs
30991
+ # under X-Forwarded-For HTTP header. If no such header is present or the value
30992
+ # is not a valid IP, the key type defaults to ALL. - HTTP_COOKIE: The value of
30993
+ # the HTTP cookie whose name is configured under "enforce_on_key_name". The key
30994
+ # value is truncated to the first 128 bytes of the cookie value. If no such
30995
+ # cookie is present in the request, the key type defaults to ALL.
30996
+ # Corresponds to the JSON property `enforceOnKey`
30997
+ # @return [String]
30998
+ attr_accessor :enforce_on_key
30999
+
31000
+ # Rate limit key name applicable only for the following key types: HTTP_HEADER --
31001
+ # Name of the HTTP header whose value is taken as the key value. HTTP_COOKIE --
31002
+ # Name of the HTTP cookie whose value is taken as the key value.
31003
+ # Corresponds to the JSON property `enforceOnKeyName`
31004
+ # @return [String]
31005
+ attr_accessor :enforce_on_key_name
31006
+
31007
+ # Action to take for requests that are above the configured rate limit threshold,
31008
+ # to either deny with a specified HTTP response code, or redirect to a
31009
+ # different endpoint. Valid options are "deny()" where valid values for status
31010
+ # are 403, 404, 429, and 502, and "redirect" where the redirect parameters come
31011
+ # from exceed_redirect_options below.
31012
+ # Corresponds to the JSON property `exceedAction`
31013
+ # @return [String]
31014
+ attr_accessor :exceed_action
31015
+
31016
+ # Parameters defining the redirect action that is used as the exceed action.
31017
+ # Cannot be specified if the exceed action is not redirect.
31018
+ # Corresponds to the JSON property `exceedRedirectOptions`
31019
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleRedirectOptions]
31020
+ attr_accessor :exceed_redirect_options
31021
+
31022
+ # Threshold at which to begin ratelimiting.
31023
+ # Corresponds to the JSON property `rateLimitThreshold`
31024
+ # @return [Google::Apis::ComputeV1::SecurityPolicyRuleRateLimitOptionsThreshold]
31025
+ attr_accessor :rate_limit_threshold
31026
+
31027
+ def initialize(**args)
31028
+ update!(**args)
31029
+ end
31030
+
31031
+ # Update properties of this object
31032
+ def update!(**args)
31033
+ @ban_duration_sec = args[:ban_duration_sec] if args.key?(:ban_duration_sec)
31034
+ @ban_threshold = args[:ban_threshold] if args.key?(:ban_threshold)
31035
+ @conform_action = args[:conform_action] if args.key?(:conform_action)
31036
+ @enforce_on_key = args[:enforce_on_key] if args.key?(:enforce_on_key)
31037
+ @enforce_on_key_name = args[:enforce_on_key_name] if args.key?(:enforce_on_key_name)
31038
+ @exceed_action = args[:exceed_action] if args.key?(:exceed_action)
31039
+ @exceed_redirect_options = args[:exceed_redirect_options] if args.key?(:exceed_redirect_options)
31040
+ @rate_limit_threshold = args[:rate_limit_threshold] if args.key?(:rate_limit_threshold)
31041
+ end
31042
+ end
31043
+
31044
+ #
31045
+ class SecurityPolicyRuleRateLimitOptionsThreshold
31046
+ include Google::Apis::Core::Hashable
31047
+
31048
+ # Number of HTTP(S) requests for calculating the threshold.
31049
+ # Corresponds to the JSON property `count`
31050
+ # @return [Fixnum]
31051
+ attr_accessor :count
31052
+
31053
+ # Interval over which the threshold is computed.
31054
+ # Corresponds to the JSON property `intervalSec`
31055
+ # @return [Fixnum]
31056
+ attr_accessor :interval_sec
31057
+
31058
+ def initialize(**args)
31059
+ update!(**args)
31060
+ end
31061
+
31062
+ # Update properties of this object
31063
+ def update!(**args)
31064
+ @count = args[:count] if args.key?(:count)
31065
+ @interval_sec = args[:interval_sec] if args.key?(:interval_sec)
31066
+ end
31067
+ end
31068
+
31069
+ #
31070
+ class SecurityPolicyRuleRedirectOptions
31071
+ include Google::Apis::Core::Hashable
31072
+
31073
+ # Target for the redirect action. This is required if the type is EXTERNAL_302
31074
+ # and cannot be specified for GOOGLE_RECAPTCHA.
31075
+ # Corresponds to the JSON property `target`
31076
+ # @return [String]
31077
+ attr_accessor :target
31078
+
31079
+ # Type of the redirect action.
31080
+ # Corresponds to the JSON property `type`
31081
+ # @return [String]
31082
+ attr_accessor :type
31083
+
31084
+ def initialize(**args)
31085
+ update!(**args)
31086
+ end
31087
+
31088
+ # Update properties of this object
31089
+ def update!(**args)
31090
+ @target = args[:target] if args.key?(:target)
31091
+ @type = args[:type] if args.key?(:type)
31092
+ end
31093
+ end
31094
+
29757
31095
  # The authentication and authorization settings for a BackendService.
29758
31096
  class SecuritySettings
29759
31097
  include Google::Apis::Core::Hashable
@@ -29931,6 +31269,13 @@ module Google
29931
31269
  # @return [String]
29932
31270
  attr_accessor :description
29933
31271
 
31272
+ # If specified, the domain name will be used during the integration between the
31273
+ # PSC connected endpoints and the Cloud DNS. For example, this is a valid domain
31274
+ # name: "p.mycompany.com.". Current max number of domain names supported is 1.
31275
+ # Corresponds to the JSON property `domainNames`
31276
+ # @return [Array<String>]
31277
+ attr_accessor :domain_names
31278
+
29934
31279
  # If true, enable the proxy protocol which is for supplying client TCP/IP
29935
31280
  # address data in TCP connections that traverse proxies on their way to
29936
31281
  # destination servers.
@@ -30019,6 +31364,7 @@ module Google
30019
31364
  @consumer_reject_lists = args[:consumer_reject_lists] if args.key?(:consumer_reject_lists)
30020
31365
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
30021
31366
  @description = args[:description] if args.key?(:description)
31367
+ @domain_names = args[:domain_names] if args.key?(:domain_names)
30022
31368
  @enable_proxy_protocol = args[:enable_proxy_protocol] if args.key?(:enable_proxy_protocol)
30023
31369
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
30024
31370
  @id = args[:id] if args.key?(:id)
@@ -30421,6 +31767,52 @@ module Google
30421
31767
  end
30422
31768
  end
30423
31769
 
31770
+ # The share setting for reservations and sole tenancy node groups.
31771
+ class ShareSettings
31772
+ include Google::Apis::Core::Hashable
31773
+
31774
+ # A map of project id and project config. This is only valid when share_type's
31775
+ # value is SPECIFIC_PROJECTS.
31776
+ # Corresponds to the JSON property `projectMap`
31777
+ # @return [Hash<String,Google::Apis::ComputeV1::ShareSettingsProjectConfig>]
31778
+ attr_accessor :project_map
31779
+
31780
+ # Type of sharing for this shared-reservation
31781
+ # Corresponds to the JSON property `shareType`
31782
+ # @return [String]
31783
+ attr_accessor :share_type
31784
+
31785
+ def initialize(**args)
31786
+ update!(**args)
31787
+ end
31788
+
31789
+ # Update properties of this object
31790
+ def update!(**args)
31791
+ @project_map = args[:project_map] if args.key?(:project_map)
31792
+ @share_type = args[:share_type] if args.key?(:share_type)
31793
+ end
31794
+ end
31795
+
31796
+ # Config for each project in the share settings.
31797
+ class ShareSettingsProjectConfig
31798
+ include Google::Apis::Core::Hashable
31799
+
31800
+ # The project ID, should be same as the key of this project config in the parent
31801
+ # map.
31802
+ # Corresponds to the JSON property `projectId`
31803
+ # @return [String]
31804
+ attr_accessor :project_id
31805
+
31806
+ def initialize(**args)
31807
+ update!(**args)
31808
+ end
31809
+
31810
+ # Update properties of this object
31811
+ def update!(**args)
31812
+ @project_id = args[:project_id] if args.key?(:project_id)
31813
+ end
31814
+ end
31815
+
30424
31816
  # A set of Shielded Instance options.
30425
31817
  class ShieldedInstanceConfig
30426
31818
  include Google::Apis::Core::Hashable
@@ -30886,6 +32278,35 @@ module Google
30886
32278
  end
30887
32279
  end
30888
32280
 
32281
+ #
32282
+ class SourceDiskEncryptionKey
32283
+ include Google::Apis::Core::Hashable
32284
+
32285
+ # The customer-supplied encryption key of the source disk. Required if the
32286
+ # source disk is protected by a customer-supplied encryption key.
32287
+ # Corresponds to the JSON property `diskEncryptionKey`
32288
+ # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
32289
+ attr_accessor :disk_encryption_key
32290
+
32291
+ # URL of the disk attached to the source instance. This can be a full or valid
32292
+ # partial URL. For example, the following are valid values: - https://www.
32293
+ # googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - projects/
32294
+ # project/zones/zone/disks/disk - zones/zone/disks/disk
32295
+ # Corresponds to the JSON property `sourceDisk`
32296
+ # @return [String]
32297
+ attr_accessor :source_disk
32298
+
32299
+ def initialize(**args)
32300
+ update!(**args)
32301
+ end
32302
+
32303
+ # Update properties of this object
32304
+ def update!(**args)
32305
+ @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
32306
+ @source_disk = args[:source_disk] if args.key?(:source_disk)
32307
+ end
32308
+ end
32309
+
30889
32310
  # A specification of the parameters to use when creating the instance template
30890
32311
  # from a source instance.
30891
32312
  class SourceInstanceParams
@@ -30909,6 +32330,116 @@ module Google
30909
32330
  end
30910
32331
  end
30911
32332
 
32333
+ # DEPRECATED: Please use compute#instanceProperties instead. New properties will
32334
+ # not be added to this field.
32335
+ class SourceInstanceProperties
32336
+ include Google::Apis::Core::Hashable
32337
+
32338
+ # Enables instances created based on this machine image to send packets with
32339
+ # source IP addresses other than their own and receive packets with destination
32340
+ # IP addresses other than their own. If these instances will be used as an IP
32341
+ # gateway or it will be set as the next-hop in a Route resource, specify true.
32342
+ # If unsure, leave this set to false. See the Enable IP forwarding documentation
32343
+ # for more information.
32344
+ # Corresponds to the JSON property `canIpForward`
32345
+ # @return [Boolean]
32346
+ attr_accessor :can_ip_forward
32347
+ alias_method :can_ip_forward?, :can_ip_forward
32348
+
32349
+ # Whether the instance created from this machine image should be protected
32350
+ # against deletion.
32351
+ # Corresponds to the JSON property `deletionProtection`
32352
+ # @return [Boolean]
32353
+ attr_accessor :deletion_protection
32354
+ alias_method :deletion_protection?, :deletion_protection
32355
+
32356
+ # An optional text description for the instances that are created from this
32357
+ # machine image.
32358
+ # Corresponds to the JSON property `description`
32359
+ # @return [String]
32360
+ attr_accessor :description
32361
+
32362
+ # An array of disks that are associated with the instances that are created from
32363
+ # this machine image.
32364
+ # Corresponds to the JSON property `disks`
32365
+ # @return [Array<Google::Apis::ComputeV1::SavedAttachedDisk>]
32366
+ attr_accessor :disks
32367
+
32368
+ # A list of guest accelerator cards' type and count to use for instances created
32369
+ # from this machine image.
32370
+ # Corresponds to the JSON property `guestAccelerators`
32371
+ # @return [Array<Google::Apis::ComputeV1::AcceleratorConfig>]
32372
+ attr_accessor :guest_accelerators
32373
+
32374
+ # Labels to apply to instances that are created from this machine image.
32375
+ # Corresponds to the JSON property `labels`
32376
+ # @return [Hash<String,String>]
32377
+ attr_accessor :labels
32378
+
32379
+ # The machine type to use for instances that are created from this machine image.
32380
+ # Corresponds to the JSON property `machineType`
32381
+ # @return [String]
32382
+ attr_accessor :machine_type
32383
+
32384
+ # A metadata key/value entry.
32385
+ # Corresponds to the JSON property `metadata`
32386
+ # @return [Google::Apis::ComputeV1::Metadata]
32387
+ attr_accessor :metadata
32388
+
32389
+ # Minimum cpu/platform to be used by instances created from this machine image.
32390
+ # The instance may be scheduled on the specified or newer cpu/platform.
32391
+ # Applicable values are the friendly names of CPU platforms, such as
32392
+ # minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge". For
32393
+ # more information, read Specifying a Minimum CPU Platform.
32394
+ # Corresponds to the JSON property `minCpuPlatform`
32395
+ # @return [String]
32396
+ attr_accessor :min_cpu_platform
32397
+
32398
+ # An array of network access configurations for this interface.
32399
+ # Corresponds to the JSON property `networkInterfaces`
32400
+ # @return [Array<Google::Apis::ComputeV1::NetworkInterface>]
32401
+ attr_accessor :network_interfaces
32402
+
32403
+ # Sets the scheduling options for an Instance. NextID: 21
32404
+ # Corresponds to the JSON property `scheduling`
32405
+ # @return [Google::Apis::ComputeV1::Scheduling]
32406
+ attr_accessor :scheduling
32407
+
32408
+ # A list of service accounts with specified scopes. Access tokens for these
32409
+ # service accounts are available to the instances that are created from this
32410
+ # machine image. Use metadata queries to obtain the access tokens for these
32411
+ # instances.
32412
+ # Corresponds to the JSON property `serviceAccounts`
32413
+ # @return [Array<Google::Apis::ComputeV1::ServiceAccount>]
32414
+ attr_accessor :service_accounts
32415
+
32416
+ # A set of instance tags.
32417
+ # Corresponds to the JSON property `tags`
32418
+ # @return [Google::Apis::ComputeV1::Tags]
32419
+ attr_accessor :tags
32420
+
32421
+ def initialize(**args)
32422
+ update!(**args)
32423
+ end
32424
+
32425
+ # Update properties of this object
32426
+ def update!(**args)
32427
+ @can_ip_forward = args[:can_ip_forward] if args.key?(:can_ip_forward)
32428
+ @deletion_protection = args[:deletion_protection] if args.key?(:deletion_protection)
32429
+ @description = args[:description] if args.key?(:description)
32430
+ @disks = args[:disks] if args.key?(:disks)
32431
+ @guest_accelerators = args[:guest_accelerators] if args.key?(:guest_accelerators)
32432
+ @labels = args[:labels] if args.key?(:labels)
32433
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
32434
+ @metadata = args[:metadata] if args.key?(:metadata)
32435
+ @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
32436
+ @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
32437
+ @scheduling = args[:scheduling] if args.key?(:scheduling)
32438
+ @service_accounts = args[:service_accounts] if args.key?(:service_accounts)
32439
+ @tags = args[:tags] if args.key?(:tags)
32440
+ end
32441
+ end
32442
+
30912
32443
  # Represents an SSL Certificate resource. Google Compute Engine has two SSL
30913
32444
  # Certificate resources: * [Global](/compute/docs/reference/rest/v1/
30914
32445
  # sslCertificates) * [Regional](/compute/docs/reference/rest/v1/
@@ -31837,8 +33368,9 @@ module Google
31837
33368
 
31838
33369
  # Whether to enable flow logging for this subnetwork. If this field is not
31839
33370
  # explicitly set, it will not appear in get listings. If not set the default
31840
- # behavior is to disable flow logging. This field isn't supported with the
31841
- # purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.
33371
+ # behavior is determined by the org policy, if there is no org policy specified,
33372
+ # then it will default to disabled. This field isn't supported with the purpose
33373
+ # field set to INTERNAL_HTTPS_LOAD_BALANCER.
31842
33374
  # Corresponds to the JSON property `enableFlowLogs`
31843
33375
  # @return [Boolean]
31844
33376
  attr_accessor :enable_flow_logs
@@ -31892,7 +33424,7 @@ module Google
31892
33424
  attr_accessor :ipv6_access_type
31893
33425
 
31894
33426
  # [Output Only] The range of internal IPv6 addresses that are owned by this
31895
- # subnetwork.
33427
+ # subnetwork. Note this will be for private google access only eventually.
31896
33428
  # Corresponds to the JSON property `ipv6CidrRange`
31897
33429
  # @return [String]
31898
33430
  attr_accessor :ipv6_cidr_range
@@ -32285,7 +33817,8 @@ module Google
32285
33817
 
32286
33818
  # Whether to enable flow logging for this subnetwork. If this field is not
32287
33819
  # explicitly set, it will not appear in get listings. If not set the default
32288
- # behavior is to disable flow logging.
33820
+ # behavior is determined by the org policy, if there is no org policy specified,
33821
+ # then it will default to disabled.
32289
33822
  # Corresponds to the JSON property `enable`
32290
33823
  # @return [Boolean]
32291
33824
  attr_accessor :enable
@@ -32300,8 +33833,8 @@ module Google
32300
33833
  # Can only be specified if VPC flow logging for this subnetwork is enabled. The
32301
33834
  # value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs
32302
33835
  # within the subnetwork where 1.0 means all collected logs are reported and 0.0
32303
- # means no logs are reported. Default is 0.5, which means half of all collected
32304
- # logs are reported.
33836
+ # means no logs are reported. Default is 0.5 unless otherwise specified by the
33837
+ # org policy, which means half of all collected logs are reported.
32305
33838
  # Corresponds to the JSON property `flowSampling`
32306
33839
  # @return [Float]
32307
33840
  attr_accessor :flow_sampling
@@ -35683,7 +37216,7 @@ module Google
35683
37216
  class TestFailure
35684
37217
  include Google::Apis::Core::Hashable
35685
37218
 
35686
- # The actual output URL evaluated by load balancer containing the scheme, host,
37219
+ # The actual output URL evaluated by a load balancer containing the scheme, host,
35687
37220
  # path and query parameters.
35688
37221
  # Corresponds to the JSON property `actualOutputUrl`
35689
37222
  # @return [String]
@@ -35700,8 +37233,8 @@ module Google
35700
37233
  # @return [String]
35701
37234
  attr_accessor :actual_service
35702
37235
 
35703
- # The expected output URL evaluated by load balancer containing the scheme, host,
35704
- # path and query parameters.
37236
+ # The expected output URL evaluated by a load balancer containing the scheme,
37237
+ # host, path and query parameters.
35705
37238
  # Corresponds to the JSON property `expectedOutputUrl`
35706
37239
  # @return [String]
35707
37240
  attr_accessor :expected_output_url
@@ -35815,17 +37348,17 @@ module Google
35815
37348
  end
35816
37349
  end
35817
37350
 
35818
- # Represents a URL Map resource. Google Compute Engine has two URL Map resources:
35819
- # * [Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/
35820
- # docs/reference/rest/v1/regionUrlMaps) A URL map resource is a component of
35821
- # certain types of GCP load balancers and Traffic Director. * urlMaps are used
35822
- # by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are
35823
- # used by internal HTTP(S) load balancers. For a list of supported URL map
35824
- # features by load balancer type, see the Load balancing features: Routing and
37351
+ # Represents a URL Map resource. Compute Engine has two URL Map resources: * [
37352
+ # Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/docs/
37353
+ # reference/rest/v1/regionUrlMaps) A URL map resource is a component of certain
37354
+ # types of cloud load balancers and Traffic Director: * urlMaps are used by
37355
+ # external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are used
37356
+ # by internal HTTP(S) load balancers. For a list of supported URL map features
37357
+ # by the load balancer type, see the Load balancing features: Routing and
35825
37358
  # traffic management table. For a list of supported URL map features for Traffic
35826
37359
  # Director, see the Traffic Director features: Routing and traffic management
35827
- # table. This resource defines mappings from host names and URL paths to either
35828
- # a backend service or a backend bucket. To use the global urlMaps resource, the
37360
+ # table. This resource defines mappings from hostnames and URL paths to either a
37361
+ # backend service or a backend bucket. To use the global urlMaps resource, the
35829
37362
  # backend service must have a loadBalancingScheme of either EXTERNAL or
35830
37363
  # INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service
35831
37364
  # must have a loadBalancingScheme of INTERNAL_MANAGED. For more information,
@@ -35839,28 +37372,28 @@ module Google
35839
37372
  attr_accessor :creation_timestamp
35840
37373
 
35841
37374
  # defaultRouteAction takes effect when none of the hostRules match. The load
35842
- # balancer performs advanced routing actions like URL rewrites, header
35843
- # transformations, etc. prior to forwarding the request to the selected backend.
35844
- # If defaultRouteAction specifies any weightedBackendServices, defaultService
35845
- # must not be set. Conversely if defaultService is set, defaultRouteAction
35846
- # cannot contain any weightedBackendServices. Only one of defaultRouteAction or
37375
+ # balancer performs advanced routing actions, such as URL rewrites and header
37376
+ # transformations, before forwarding the request to the selected backend. If
37377
+ # defaultRouteAction specifies any weightedBackendServices, defaultService must
37378
+ # not be set. Conversely if defaultService is set, defaultRouteAction cannot
37379
+ # contain any weightedBackendServices. Only one of defaultRouteAction or
35847
37380
  # defaultUrlRedirect must be set. UrlMaps for external HTTP(S) load balancers
35848
37381
  # support only the urlRewrite action within defaultRouteAction.
35849
- # defaultRouteAction has no effect when the URL map is bound to target gRPC
35850
- # proxy that has validateForProxyless field set to true.
37382
+ # defaultRouteAction has no effect when the URL map is bound to a target gRPC
37383
+ # proxy that has the validateForProxyless field set to true.
35851
37384
  # Corresponds to the JSON property `defaultRouteAction`
35852
37385
  # @return [Google::Apis::ComputeV1::HttpRouteAction]
35853
37386
  attr_accessor :default_route_action
35854
37387
 
35855
37388
  # The full or partial URL of the defaultService resource to which traffic is
35856
- # directed if none of the hostRules match. If defaultRouteAction is additionally
35857
- # specified, advanced routing actions like URL Rewrites, etc. take effect prior
35858
- # to sending the request to the backend. However, if defaultService is specified,
37389
+ # directed if none of the hostRules match. If defaultRouteAction is also
37390
+ # specified, advanced routing actions, such as URL rewrites, take effect before
37391
+ # sending the request to the backend. However, if defaultService is specified,
35859
37392
  # defaultRouteAction cannot contain any weightedBackendServices. Conversely, if
35860
37393
  # routeAction specifies any weightedBackendServices, service must not be
35861
- # specified. Only one of defaultService, defaultUrlRedirect or
37394
+ # specified. Only one of defaultService, defaultUrlRedirect , or
35862
37395
  # defaultRouteAction.weightedBackendService must be set. defaultService has no
35863
- # effect when the URL map is bound to target gRPC proxy that has
37396
+ # effect when the URL map is bound to a target gRPC proxy that has the
35864
37397
  # validateForProxyless field set to true.
35865
37398
  # Corresponds to the JSON property `defaultService`
35866
37399
  # @return [String]
@@ -35878,11 +37411,10 @@ module Google
35878
37411
  attr_accessor :description
35879
37412
 
35880
37413
  # Fingerprint of this resource. A hash of the contents stored in this object.
35881
- # This field is used in optimistic locking. This field will be ignored when
35882
- # inserting a UrlMap. An up-to-date fingerprint must be provided in order to
35883
- # update the UrlMap, otherwise the request will fail with error 412
35884
- # conditionNotMet. To see the latest fingerprint, make a get() request to
35885
- # retrieve a UrlMap.
37414
+ # This field is used in optimistic locking. This field is ignored when inserting
37415
+ # a UrlMap. An up-to-date fingerprint must be provided in order to update the
37416
+ # UrlMap, otherwise the request will fail with error 412 conditionNotMet. To see
37417
+ # the latest fingerprint, make a get() request to retrieve a UrlMap.
35886
37418
  # Corresponds to the JSON property `fingerprint`
35887
37419
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
35888
37420
  # @return [String]
@@ -35894,7 +37426,7 @@ module Google
35894
37426
  # @return [Google::Apis::ComputeV1::HttpHeaderAction]
35895
37427
  attr_accessor :header_action
35896
37428
 
35897
- # The list of HostRules to use against the URL.
37429
+ # The list of host rules to use against the URL.
35898
37430
  # Corresponds to the JSON property `hostRules`
35899
37431
  # @return [Array<Google::Apis::ComputeV1::HostRule>]
35900
37432
  attr_accessor :host_rules
@@ -35937,10 +37469,10 @@ module Google
35937
37469
  # @return [String]
35938
37470
  attr_accessor :self_link
35939
37471
 
35940
- # The list of expected URL mapping tests. Request to update this UrlMap will
35941
- # succeed only if all of the test cases pass. You can specify a maximum of 100
35942
- # tests per UrlMap. Not supported when the URL map is bound to target gRPC proxy
35943
- # that has validateForProxyless field set to true.
37472
+ # The list of expected URL mapping tests. Request to update the UrlMap succeeds
37473
+ # only if all test cases pass. You can specify a maximum of 100 tests per UrlMap.
37474
+ # Not supported when the URL map is bound to a target gRPC proxy that has
37475
+ # validateForProxyless field set to true.
35944
37476
  # Corresponds to the JSON property `tests`
35945
37477
  # @return [Array<Google::Apis::ComputeV1::UrlMapTest>]
35946
37478
  attr_accessor :tests
@@ -36114,18 +37646,18 @@ module Google
36114
37646
  # @return [String]
36115
37647
  attr_accessor :description
36116
37648
 
36117
- # The expected output URL evaluated by load balancer containing the scheme, host,
36118
- # path and query parameters. For rules that forward requests to backends, the
36119
- # test passes only when expectedOutputUrl matches the request forwarded by load
36120
- # balancer to backends. For rules with urlRewrite, the test verifies that the
36121
- # forwarded request matches hostRewrite and pathPrefixRewrite in the urlRewrite
36122
- # action. When service is specified, expectedOutputUrl`s scheme is ignored. For
36123
- # rules with urlRedirect, the test passes only if expectedOutputUrl matches the
36124
- # URL in the load balancer's redirect response. If urlRedirect specifies
36125
- # https_redirect, the test passes only if the scheme in expectedOutputUrl is
36126
- # also set to https. If urlRedirect specifies strip_query, the test passes only
36127
- # if expectedOutputUrl does not contain any query parameters. expectedOutputUrl
36128
- # is optional when service is specified.
37649
+ # The expected output URL evaluated by the load balancer containing the scheme,
37650
+ # host, path and query parameters. For rules that forward requests to backends,
37651
+ # the test passes only when expectedOutputUrl matches the request forwarded by
37652
+ # the load balancer to backends. For rules with urlRewrite, the test verifies
37653
+ # that the forwarded request matches hostRewrite and pathPrefixRewrite in the
37654
+ # urlRewrite action. When service is specified, expectedOutputUrl`s scheme is
37655
+ # ignored. For rules with urlRedirect, the test passes only if expectedOutputUrl
37656
+ # matches the URL in the load balancer's redirect response. If urlRedirect
37657
+ # specifies https_redirect, the test passes only if the scheme in
37658
+ # expectedOutputUrl is also set to HTTPS. If urlRedirect specifies strip_query,
37659
+ # the test passes only if expectedOutputUrl does not contain any query
37660
+ # parameters. expectedOutputUrl is optional when service is specified.
36129
37661
  # Corresponds to the JSON property `expectedOutputUrl`
36130
37662
  # @return [String]
36131
37663
  attr_accessor :expected_output_url
@@ -36156,7 +37688,8 @@ module Google
36156
37688
  attr_accessor :path
36157
37689
 
36158
37690
  # Expected BackendService or BackendBucket resource the given URL should be
36159
- # mapped to. service cannot be set if expectedRedirectResponseCode is set.
37691
+ # mapped to. The service field cannot be set if expectedRedirectResponseCode is
37692
+ # set.
36160
37693
  # Corresponds to the JSON property `service`
36161
37694
  # @return [String]
36162
37695
  attr_accessor :service
@@ -36461,17 +37994,17 @@ module Google
36461
37994
  class ValidateUrlMapsRequest
36462
37995
  include Google::Apis::Core::Hashable
36463
37996
 
36464
- # Represents a URL Map resource. Google Compute Engine has two URL Map resources:
36465
- # * [Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/
36466
- # docs/reference/rest/v1/regionUrlMaps) A URL map resource is a component of
36467
- # certain types of GCP load balancers and Traffic Director. * urlMaps are used
36468
- # by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are
36469
- # used by internal HTTP(S) load balancers. For a list of supported URL map
36470
- # features by load balancer type, see the Load balancing features: Routing and
37997
+ # Represents a URL Map resource. Compute Engine has two URL Map resources: * [
37998
+ # Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/docs/
37999
+ # reference/rest/v1/regionUrlMaps) A URL map resource is a component of certain
38000
+ # types of cloud load balancers and Traffic Director: * urlMaps are used by
38001
+ # external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are used
38002
+ # by internal HTTP(S) load balancers. For a list of supported URL map features
38003
+ # by the load balancer type, see the Load balancing features: Routing and
36471
38004
  # traffic management table. For a list of supported URL map features for Traffic
36472
38005
  # Director, see the Traffic Director features: Routing and traffic management
36473
- # table. This resource defines mappings from host names and URL paths to either
36474
- # a backend service or a backend bucket. To use the global urlMaps resource, the
38006
+ # table. This resource defines mappings from hostnames and URL paths to either a
38007
+ # backend service or a backend bucket. To use the global urlMaps resource, the
36475
38008
  # backend service must have a loadBalancingScheme of either EXTERNAL or
36476
38009
  # INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service
36477
38010
  # must have a loadBalancingScheme of INTERNAL_MANAGED. For more information,
@@ -36514,16 +38047,16 @@ module Google
36514
38047
  class UrlRewrite
36515
38048
  include Google::Apis::Core::Hashable
36516
38049
 
36517
- # Prior to forwarding the request to the selected service, the request's host
36518
- # header is replaced with contents of hostRewrite. The value must be between 1
36519
- # and 255 characters.
38050
+ # Before forwarding the request to the selected service, the request's host
38051
+ # header is replaced with contents of hostRewrite. The value must be from 1 to
38052
+ # 255 characters.
36520
38053
  # Corresponds to the JSON property `hostRewrite`
36521
38054
  # @return [String]
36522
38055
  attr_accessor :host_rewrite
36523
38056
 
36524
- # Prior to forwarding the request to the selected backend service, the matching
38057
+ # Before forwarding the request to the selected backend service, the matching
36525
38058
  # portion of the request's path is replaced by pathPrefixRewrite. The value must
36526
- # be between 1 and 1024 characters.
38059
+ # be from 1 to 1024 characters.
36527
38060
  # Corresponds to the JSON property `pathPrefixRewrite`
36528
38061
  # @return [String]
36529
38062
  attr_accessor :path_prefix_rewrite
@@ -37033,6 +38566,12 @@ module Google
37033
38566
  # @return [String]
37034
38567
  attr_accessor :self_link
37035
38568
 
38569
+ # The stack type for this VPN gateway to identify the IP protocols that are
38570
+ # enabled. If not specified, IPV4_ONLY will be used.
38571
+ # Corresponds to the JSON property `stackType`
38572
+ # @return [String]
38573
+ attr_accessor :stack_type
38574
+
37036
38575
  # The list of VPN interfaces associated with this VPN gateway.
37037
38576
  # Corresponds to the JSON property `vpnInterfaces`
37038
38577
  # @return [Array<Google::Apis::ComputeV1::VpnGatewayVpnGatewayInterface>]
@@ -37054,6 +38593,7 @@ module Google
37054
38593
  @network = args[:network] if args.key?(:network)
37055
38594
  @region = args[:region] if args.key?(:region)
37056
38595
  @self_link = args[:self_link] if args.key?(:self_link)
38596
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
37057
38597
  @vpn_interfaces = args[:vpn_interfaces] if args.key?(:vpn_interfaces)
37058
38598
  end
37059
38599
  end
@@ -38156,14 +39696,13 @@ module Google
38156
39696
 
38157
39697
  # In contrast to a single BackendService in HttpRouteAction to which all
38158
39698
  # matching traffic is directed to, WeightedBackendService allows traffic to be
38159
- # split across multiple BackendServices. The volume of traffic for each
38160
- # BackendService is proportional to the weight specified in each
38161
- # WeightedBackendService
39699
+ # split across multiple backend services. The volume of traffic for each backend
39700
+ # service is proportional to the weight specified in each WeightedBackendService
38162
39701
  class WeightedBackendService
38163
39702
  include Google::Apis::Core::Hashable
38164
39703
 
38165
39704
  # The full or partial URL to the default BackendService resource. Before
38166
- # forwarding the request to backendService, the loadbalancer applies any
39705
+ # forwarding the request to backendService, the load balancer applies any
38167
39706
  # relevant headerActions specified as part of this backendServiceWeight.
38168
39707
  # Corresponds to the JSON property `backendService`
38169
39708
  # @return [String]
@@ -38175,12 +39714,12 @@ module Google
38175
39714
  # @return [Google::Apis::ComputeV1::HttpHeaderAction]
38176
39715
  attr_accessor :header_action
38177
39716
 
38178
- # Specifies the fraction of traffic sent to backendService, computed as weight /
38179
- # (sum of all weightedBackendService weights in routeAction) . The selection of
38180
- # a backend service is determined only for new traffic. Once a user's request
38181
- # has been directed to a backendService, subsequent requests will be sent to the
38182
- # same backendService as determined by the BackendService's session affinity
38183
- # policy. The value must be between 0 and 1000
39717
+ # Specifies the fraction of traffic sent to a backend service, computed as
39718
+ # weight / (sum of all weightedBackendService weights in routeAction) . The
39719
+ # selection of a backend service is determined only for new traffic. Once a user'
39720
+ # s request has been directed to a backend service, subsequent requests are sent
39721
+ # to the same backend service as determined by the backend service's session
39722
+ # affinity policy. The value must be from 0 to 1000.
38184
39723
  # Corresponds to the JSON property `weight`
38185
39724
  # @return [Fixnum]
38186
39725
  attr_accessor :weight
@@ -38590,31 +40129,31 @@ module Google
38590
40129
 
38591
40130
  # An Identity and Access Management (IAM) policy, which specifies access
38592
40131
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
38593
- # A `binding` binds one or more `members` to a single `role`. Members can be
38594
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
38595
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
38596
- # role or a user-created custom role. For some types of Google Cloud resources,
38597
- # a `binding` can also specify a `condition`, which is a logical expression that
38598
- # allows access to a resource only if the expression evaluates to `true`. A
38599
- # condition can add constraints based on attributes of the request, the resource,
38600
- # or both. To learn which resources support conditions in their IAM policies,
38601
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
38602
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
38603
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
38604
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
38605
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
38606
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
38607
- # title": "expirable access", "description": "Does not grant access after Sep
38608
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
38609
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
38610
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
38611
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
38612
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
38613
- # roles/resourcemanager.organizationViewer condition: title: expirable access
38614
- # description: Does not grant access after Sep 2020 expression: request.time <
38615
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
38616
- # description of IAM and its features, see the [IAM documentation](https://cloud.
38617
- # google.com/iam/docs/).
40132
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
40133
+ # Principals can be user accounts, service accounts, Google groups, and domains (
40134
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
40135
+ # an IAM predefined role or a user-created custom role. For some types of Google
40136
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
40137
+ # logical expression that allows access to a resource only if the expression
40138
+ # evaluates to `true`. A condition can add constraints based on attributes of
40139
+ # the request, the resource, or both. To learn which resources support
40140
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
40141
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
40142
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
40143
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
40144
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
40145
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
40146
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
40147
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
40148
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
40149
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
40150
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
40151
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
40152
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
40153
+ # access description: Does not grant access after Sep 2020 expression: request.
40154
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
40155
+ # a description of IAM and its features, see the [IAM documentation](https://
40156
+ # cloud.google.com/iam/docs/).
38618
40157
  # Corresponds to the JSON property `policy`
38619
40158
  # @return [Google::Apis::ComputeV1::Policy]
38620
40159
  attr_accessor :policy