google-apis-compute_v1 0.16.0 → 0.20.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -510,13 +510,17 @@ module Google
510
510
  attr_accessor :network_tier
511
511
 
512
512
  # The DNS domain name for the public PTR record. You can set this field only if
513
- # the `setPublicPtr` field is enabled.
513
+ # the `setPublicPtr` field is enabled in accessConfig. If this field is
514
+ # unspecified in ipv6AccessConfig, a default PTR record will be createc for
515
+ # first IP in associated external IPv6 range.
514
516
  # Corresponds to the JSON property `publicPtrDomainName`
515
517
  # @return [String]
516
518
  attr_accessor :public_ptr_domain_name
517
519
 
518
520
  # Specifies whether a public DNS 'PTR' record should be created to map the
519
- # external IP address of the instance to a DNS domain name.
521
+ # external IP address of the instance to a DNS domain name. This field is not
522
+ # used in ipv6AccessConfig. A default PTR record will be created if the VM has
523
+ # external IPv6 range associated.
520
524
  # Corresponds to the JSON property `setPublicPtr`
521
525
  # @return [Boolean]
522
526
  attr_accessor :set_public_ptr
@@ -2561,6 +2565,12 @@ module Google
2561
2565
  # @return [String]
2562
2566
  attr_accessor :description
2563
2567
 
2568
+ # [Output Only] The resource URL for the edge security policy associated with
2569
+ # this backend bucket.
2570
+ # Corresponds to the JSON property `edgeSecurityPolicy`
2571
+ # @return [String]
2572
+ attr_accessor :edge_security_policy
2573
+
2564
2574
  # If true, enable Cloud CDN for this BackendBucket.
2565
2575
  # Corresponds to the JSON property `enableCdn`
2566
2576
  # @return [Boolean]
@@ -2603,6 +2613,7 @@ module Google
2603
2613
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
2604
2614
  @custom_response_headers = args[:custom_response_headers] if args.key?(:custom_response_headers)
2605
2615
  @description = args[:description] if args.key?(:description)
2616
+ @edge_security_policy = args[:edge_security_policy] if args.key?(:edge_security_policy)
2606
2617
  @enable_cdn = args[:enable_cdn] if args.key?(:enable_cdn)
2607
2618
  @id = args[:id] if args.key?(:id)
2608
2619
  @kind = args[:kind] if args.key?(:kind)
@@ -2646,7 +2657,7 @@ module Google
2646
2657
  # specified), or else sets the response max-age directive to the lesser of the
2647
2658
  # client_ttl and default_ttl, and also ensures a "public" cache-control
2648
2659
  # 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).
2660
+ # hour) will be used. The maximum allowed value is 31,622,400s (1 year).
2650
2661
  # Corresponds to the JSON property `clientTtl`
2651
2662
  # @return [Fixnum]
2652
2663
  attr_accessor :client_ttl
@@ -2973,6 +2984,11 @@ module Google
2973
2984
  # @return [Google::Apis::ComputeV1::ConnectionDraining]
2974
2985
  attr_accessor :connection_draining
2975
2986
 
2987
+ # Connection Tracking configuration for this BackendService.
2988
+ # Corresponds to the JSON property `connectionTrackingPolicy`
2989
+ # @return [Google::Apis::ComputeV1::BackendServiceConnectionTrackingPolicy]
2990
+ attr_accessor :connection_tracking_policy
2991
+
2976
2992
  # This message defines settings for a consistent hash style load balancer.
2977
2993
  # Corresponds to the JSON property `consistentHash`
2978
2994
  # @return [Google::Apis::ComputeV1::ConsistentHashLoadBalancerSettings]
@@ -3001,6 +3017,12 @@ module Google
3001
3017
  # @return [String]
3002
3018
  attr_accessor :description
3003
3019
 
3020
+ # [Output Only] The resource URL for the edge security policy associated with
3021
+ # this backend service.
3022
+ # Corresponds to the JSON property `edgeSecurityPolicy`
3023
+ # @return [String]
3024
+ attr_accessor :edge_security_policy
3025
+
3004
3026
  # If true, enables Cloud CDN for the backend service of an external HTTP(S) load
3005
3027
  # balancer.
3006
3028
  # Corresponds to the JSON property `enableCDN`
@@ -3088,8 +3110,8 @@ module Google
3088
3110
  # INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme
3089
3111
  # set to INTERNAL_SELF_MANAGED. If sessionAffinity is not NONE, and this field
3090
3112
  # 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
3113
+ # effect. Only ROUND_ROBIN and RING_HASH are supported when the backend service
3114
+ # is referenced by a URL map that is bound to target gRPC proxy that has
3093
3115
  # validateForProxyless field set to true.
3094
3116
  # Corresponds to the JSON property `localityLbPolicy`
3095
3117
  # @return [String]
@@ -3182,15 +3204,22 @@ module Google
3182
3204
  # @return [String]
3183
3205
  attr_accessor :self_link
3184
3206
 
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.
3207
+ # Type of session affinity to use. The default is NONE. Only NONE and
3208
+ # HEADER_FIELD are supported when the backend service is referenced by a URL map
3209
+ # that is bound to target gRPC proxy that has validateForProxyless field set to
3210
+ # true. For more details, see: [Session Affinity](https://cloud.google.com/load-
3211
+ # balancing/docs/backend-service#session_affinity).
3190
3212
  # Corresponds to the JSON property `sessionAffinity`
3191
3213
  # @return [String]
3192
3214
  attr_accessor :session_affinity
3193
3215
 
3216
+ # Subsetting configuration for this BackendService. Currently this is applicable
3217
+ # only for Internal TCP/UDP load balancing, Internal HTTP(S) load balancing and
3218
+ # Traffic Director.
3219
+ # Corresponds to the JSON property `subsetting`
3220
+ # @return [Google::Apis::ComputeV1::Subsetting]
3221
+ attr_accessor :subsetting
3222
+
3194
3223
  # Not supported when the backend service is referenced by a URL map that is
3195
3224
  # bound to target gRPC proxy that has validateForProxyless field set to true.
3196
3225
  # Instead, use maxStreamDuration.
@@ -3209,11 +3238,13 @@ module Google
3209
3238
  @cdn_policy = args[:cdn_policy] if args.key?(:cdn_policy)
3210
3239
  @circuit_breakers = args[:circuit_breakers] if args.key?(:circuit_breakers)
3211
3240
  @connection_draining = args[:connection_draining] if args.key?(:connection_draining)
3241
+ @connection_tracking_policy = args[:connection_tracking_policy] if args.key?(:connection_tracking_policy)
3212
3242
  @consistent_hash = args[:consistent_hash] if args.key?(:consistent_hash)
3213
3243
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
3214
3244
  @custom_request_headers = args[:custom_request_headers] if args.key?(:custom_request_headers)
3215
3245
  @custom_response_headers = args[:custom_response_headers] if args.key?(:custom_response_headers)
3216
3246
  @description = args[:description] if args.key?(:description)
3247
+ @edge_security_policy = args[:edge_security_policy] if args.key?(:edge_security_policy)
3217
3248
  @enable_cdn = args[:enable_cdn] if args.key?(:enable_cdn)
3218
3249
  @failover_policy = args[:failover_policy] if args.key?(:failover_policy)
3219
3250
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
@@ -3236,6 +3267,7 @@ module Google
3236
3267
  @security_settings = args[:security_settings] if args.key?(:security_settings)
3237
3268
  @self_link = args[:self_link] if args.key?(:self_link)
3238
3269
  @session_affinity = args[:session_affinity] if args.key?(:session_affinity)
3270
+ @subsetting = args[:subsetting] if args.key?(:subsetting)
3239
3271
  @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec)
3240
3272
  end
3241
3273
  end
@@ -3404,7 +3436,7 @@ module Google
3404
3436
  # specified), or else sets the response max-age directive to the lesser of the
3405
3437
  # client_ttl and default_ttl, and also ensures a "public" cache-control
3406
3438
  # directive is present. If a client TTL is not specified, a default value (1
3407
- # hour) will be used. The maximum allowed value is 86400s (1 day).
3439
+ # hour) will be used. The maximum allowed value is 31,622,400s (1 year).
3408
3440
  # Corresponds to the JSON property `clientTtl`
3409
3441
  # @return [Fixnum]
3410
3442
  attr_accessor :client_ttl
@@ -3569,6 +3601,66 @@ module Google
3569
3601
  end
3570
3602
  end
3571
3603
 
3604
+ # Connection Tracking configuration for this BackendService.
3605
+ class BackendServiceConnectionTrackingPolicy
3606
+ include Google::Apis::Core::Hashable
3607
+
3608
+ # Specifies connection persistence when backends are unhealthy. The default
3609
+ # value is DEFAULT_FOR_PROTOCOL. If set to DEFAULT_FOR_PROTOCOL, the existing
3610
+ # connections persist on unhealthy backends only for connection-oriented
3611
+ # protocols (TCP and SCTP) and only if the Tracking Mode is PER_CONNECTION (
3612
+ # default tracking mode) or the Session Affinity is configured for 5-tuple. They
3613
+ # do not persist for UDP. If set to NEVER_PERSIST, after a backend becomes
3614
+ # unhealthy, the existing connections on the unhealthy backend are never
3615
+ # persisted on the unhealthy backend. They are always diverted to newly selected
3616
+ # healthy backends (unless all backends are unhealthy). If set to ALWAYS_PERSIST,
3617
+ # existing connections always persist on unhealthy backends regardless of
3618
+ # protocol and session affinity. It is generally not recommended to use this
3619
+ # mode overriding the default. For more details, see [Connection Persistence for
3620
+ # Network Load Balancing](https://cloud.google.com/load-balancing/docs/network/
3621
+ # networklb-backend-service#connection-persistence) and [Connection Persistence
3622
+ # for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/
3623
+ # docs/internal#connection-persistence).
3624
+ # Corresponds to the JSON property `connectionPersistenceOnUnhealthyBackends`
3625
+ # @return [String]
3626
+ attr_accessor :connection_persistence_on_unhealthy_backends
3627
+
3628
+ # Specifies how long to keep a Connection Tracking entry while there is no
3629
+ # matching traffic (in seconds). For Internal TCP/UDP Load Balancing: - The
3630
+ # minimum (default) is 10 minutes and the maximum is 16 hours. - It can be set
3631
+ # only if Connection Tracking is less than 5-tuple (i.e. Session Affinity is
3632
+ # CLIENT_IP_NO_DESTINATION, CLIENT_IP or CLIENT_IP_PROTO, and Tracking Mode is
3633
+ # PER_SESSION). For Network Load Balancer the default is 60 seconds. This option
3634
+ # is not available publicly.
3635
+ # Corresponds to the JSON property `idleTimeoutSec`
3636
+ # @return [Fixnum]
3637
+ attr_accessor :idle_timeout_sec
3638
+
3639
+ # Specifies the key used for connection tracking. There are two options: -
3640
+ # PER_CONNECTION: This is the default mode. The Connection Tracking is performed
3641
+ # as per the Connection Key (default Hash Method) for the specific protocol. -
3642
+ # PER_SESSION: The Connection Tracking is performed as per the configured
3643
+ # Session Affinity. It matches the configured Session Affinity. For more details,
3644
+ # see [Tracking Mode for Network Load Balancing](https://cloud.google.com/load-
3645
+ # balancing/docs/network/networklb-backend-service#tracking-mode) and [Tracking
3646
+ # Mode for Internal TCP/UDP Load Balancing](https://cloud.google.com/load-
3647
+ # balancing/docs/internal#tracking-mode).
3648
+ # Corresponds to the JSON property `trackingMode`
3649
+ # @return [String]
3650
+ attr_accessor :tracking_mode
3651
+
3652
+ def initialize(**args)
3653
+ update!(**args)
3654
+ end
3655
+
3656
+ # Update properties of this object
3657
+ def update!(**args)
3658
+ @connection_persistence_on_unhealthy_backends = args[:connection_persistence_on_unhealthy_backends] if args.key?(:connection_persistence_on_unhealthy_backends)
3659
+ @idle_timeout_sec = args[:idle_timeout_sec] if args.key?(:idle_timeout_sec)
3660
+ @tracking_mode = args[:tracking_mode] if args.key?(:tracking_mode)
3661
+ end
3662
+ end
3663
+
3572
3664
  # For load balancers that have configurable failover: [Internal TCP/UDP Load
3573
3665
  # Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-
3574
3666
  # overview) and [external TCP/UDP Load Balancing](/network/networklb-failover-
@@ -3958,7 +4050,256 @@ module Google
3958
4050
  end
3959
4051
  end
3960
4052
 
3961
- # Associates `members` with a `role`.
4053
+ #
4054
+ class BfdPacket
4055
+ include Google::Apis::Core::Hashable
4056
+
4057
+ # The Authentication Present bit of the BFD packet. This is specified in section
4058
+ # 4.1 of RFC5880
4059
+ # Corresponds to the JSON property `authenticationPresent`
4060
+ # @return [Boolean]
4061
+ attr_accessor :authentication_present
4062
+ alias_method :authentication_present?, :authentication_present
4063
+
4064
+ # The Control Plane Independent bit of the BFD packet. This is specified in
4065
+ # section 4.1 of RFC5880
4066
+ # Corresponds to the JSON property `controlPlaneIndependent`
4067
+ # @return [Boolean]
4068
+ attr_accessor :control_plane_independent
4069
+ alias_method :control_plane_independent?, :control_plane_independent
4070
+
4071
+ # The demand bit of the BFD packet. This is specified in section 4.1 of RFC5880
4072
+ # Corresponds to the JSON property `demand`
4073
+ # @return [Boolean]
4074
+ attr_accessor :demand
4075
+ alias_method :demand?, :demand
4076
+
4077
+ # The diagnostic code specifies the local system's reason for the last change in
4078
+ # session state. This allows remote systems to determine the reason that the
4079
+ # previous session failed, for example. These diagnostic codes are specified in
4080
+ # section 4.1 of RFC5880
4081
+ # Corresponds to the JSON property `diagnostic`
4082
+ # @return [String]
4083
+ attr_accessor :diagnostic
4084
+
4085
+ # The Final bit of the BFD packet. This is specified in section 4.1 of RFC5880
4086
+ # Corresponds to the JSON property `final`
4087
+ # @return [Boolean]
4088
+ attr_accessor :final
4089
+ alias_method :final?, :final
4090
+
4091
+ # The length of the BFD Control packet in bytes. This is specified in section 4.
4092
+ # 1 of RFC5880
4093
+ # Corresponds to the JSON property `length`
4094
+ # @return [Fixnum]
4095
+ attr_accessor :length
4096
+
4097
+ # The Required Min Echo RX Interval value in the BFD packet. This is specified
4098
+ # in section 4.1 of RFC5880
4099
+ # Corresponds to the JSON property `minEchoRxIntervalMs`
4100
+ # @return [Fixnum]
4101
+ attr_accessor :min_echo_rx_interval_ms
4102
+
4103
+ # The Required Min RX Interval value in the BFD packet. This is specified in
4104
+ # section 4.1 of RFC5880
4105
+ # Corresponds to the JSON property `minRxIntervalMs`
4106
+ # @return [Fixnum]
4107
+ attr_accessor :min_rx_interval_ms
4108
+
4109
+ # The Desired Min TX Interval value in the BFD packet. This is specified in
4110
+ # section 4.1 of RFC5880
4111
+ # Corresponds to the JSON property `minTxIntervalMs`
4112
+ # @return [Fixnum]
4113
+ attr_accessor :min_tx_interval_ms
4114
+
4115
+ # The detection time multiplier of the BFD packet. This is specified in section
4116
+ # 4.1 of RFC5880
4117
+ # Corresponds to the JSON property `multiplier`
4118
+ # @return [Fixnum]
4119
+ attr_accessor :multiplier
4120
+
4121
+ # The multipoint bit of the BFD packet. This is specified in section 4.1 of
4122
+ # RFC5880
4123
+ # Corresponds to the JSON property `multipoint`
4124
+ # @return [Boolean]
4125
+ attr_accessor :multipoint
4126
+ alias_method :multipoint?, :multipoint
4127
+
4128
+ # The My Discriminator value in the BFD packet. This is specified in section 4.1
4129
+ # of RFC5880
4130
+ # Corresponds to the JSON property `myDiscriminator`
4131
+ # @return [Fixnum]
4132
+ attr_accessor :my_discriminator
4133
+
4134
+ # The Poll bit of the BFD packet. This is specified in section 4.1 of RFC5880
4135
+ # Corresponds to the JSON property `poll`
4136
+ # @return [Boolean]
4137
+ attr_accessor :poll
4138
+ alias_method :poll?, :poll
4139
+
4140
+ # The current BFD session state as seen by the transmitting system. These states
4141
+ # are specified in section 4.1 of RFC5880
4142
+ # Corresponds to the JSON property `state`
4143
+ # @return [String]
4144
+ attr_accessor :state
4145
+
4146
+ # The version number of the BFD protocol, as specified in section 4.1 of RFC5880.
4147
+ # Corresponds to the JSON property `version`
4148
+ # @return [Fixnum]
4149
+ attr_accessor :version
4150
+
4151
+ # The Your Discriminator value in the BFD packet. This is specified in section 4.
4152
+ # 1 of RFC5880
4153
+ # Corresponds to the JSON property `yourDiscriminator`
4154
+ # @return [Fixnum]
4155
+ attr_accessor :your_discriminator
4156
+
4157
+ def initialize(**args)
4158
+ update!(**args)
4159
+ end
4160
+
4161
+ # Update properties of this object
4162
+ def update!(**args)
4163
+ @authentication_present = args[:authentication_present] if args.key?(:authentication_present)
4164
+ @control_plane_independent = args[:control_plane_independent] if args.key?(:control_plane_independent)
4165
+ @demand = args[:demand] if args.key?(:demand)
4166
+ @diagnostic = args[:diagnostic] if args.key?(:diagnostic)
4167
+ @final = args[:final] if args.key?(:final)
4168
+ @length = args[:length] if args.key?(:length)
4169
+ @min_echo_rx_interval_ms = args[:min_echo_rx_interval_ms] if args.key?(:min_echo_rx_interval_ms)
4170
+ @min_rx_interval_ms = args[:min_rx_interval_ms] if args.key?(:min_rx_interval_ms)
4171
+ @min_tx_interval_ms = args[:min_tx_interval_ms] if args.key?(:min_tx_interval_ms)
4172
+ @multiplier = args[:multiplier] if args.key?(:multiplier)
4173
+ @multipoint = args[:multipoint] if args.key?(:multipoint)
4174
+ @my_discriminator = args[:my_discriminator] if args.key?(:my_discriminator)
4175
+ @poll = args[:poll] if args.key?(:poll)
4176
+ @state = args[:state] if args.key?(:state)
4177
+ @version = args[:version] if args.key?(:version)
4178
+ @your_discriminator = args[:your_discriminator] if args.key?(:your_discriminator)
4179
+ end
4180
+ end
4181
+
4182
+ # Next free: 15
4183
+ class BfdStatus
4184
+ include Google::Apis::Core::Hashable
4185
+
4186
+ # The BFD session initialization mode for this BGP peer. If set to ACTIVE, the
4187
+ # Cloud Router will initiate the BFD session for this BGP peer. If set to
4188
+ # PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD
4189
+ # session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP
4190
+ # peer.
4191
+ # Corresponds to the JSON property `bfdSessionInitializationMode`
4192
+ # @return [String]
4193
+ attr_accessor :bfd_session_initialization_mode
4194
+
4195
+ # Unix timestamp of the most recent config update.
4196
+ # Corresponds to the JSON property `configUpdateTimestampMicros`
4197
+ # @return [Fixnum]
4198
+ attr_accessor :config_update_timestamp_micros
4199
+
4200
+ # Control packet counts for the current BFD session.
4201
+ # Corresponds to the JSON property `controlPacketCounts`
4202
+ # @return [Google::Apis::ComputeV1::BfdStatusPacketCounts]
4203
+ attr_accessor :control_packet_counts
4204
+
4205
+ # Inter-packet time interval statistics for control packets.
4206
+ # Corresponds to the JSON property `controlPacketIntervals`
4207
+ # @return [Array<Google::Apis::ComputeV1::PacketIntervals>]
4208
+ attr_accessor :control_packet_intervals
4209
+
4210
+ # The diagnostic code specifies the local system's reason for the last change in
4211
+ # session state. This allows remote systems to determine the reason that the
4212
+ # previous session failed, for example. These diagnostic codes are specified in
4213
+ # section 4.1 of RFC5880
4214
+ # Corresponds to the JSON property `localDiagnostic`
4215
+ # @return [String]
4216
+ attr_accessor :local_diagnostic
4217
+
4218
+ # The current BFD session state as seen by the transmitting system. These states
4219
+ # are specified in section 4.1 of RFC5880
4220
+ # Corresponds to the JSON property `localState`
4221
+ # @return [String]
4222
+ attr_accessor :local_state
4223
+
4224
+ # Negotiated transmit interval for control packets.
4225
+ # Corresponds to the JSON property `negotiatedLocalControlTxIntervalMs`
4226
+ # @return [Fixnum]
4227
+ attr_accessor :negotiated_local_control_tx_interval_ms
4228
+
4229
+ # The most recent Rx control packet for this BFD session.
4230
+ # Corresponds to the JSON property `rxPacket`
4231
+ # @return [Google::Apis::ComputeV1::BfdPacket]
4232
+ attr_accessor :rx_packet
4233
+
4234
+ # The most recent Tx control packet for this BFD session.
4235
+ # Corresponds to the JSON property `txPacket`
4236
+ # @return [Google::Apis::ComputeV1::BfdPacket]
4237
+ attr_accessor :tx_packet
4238
+
4239
+ # Session uptime in milliseconds. Value will be 0 if session is not up.
4240
+ # Corresponds to the JSON property `uptimeMs`
4241
+ # @return [Fixnum]
4242
+ attr_accessor :uptime_ms
4243
+
4244
+ def initialize(**args)
4245
+ update!(**args)
4246
+ end
4247
+
4248
+ # Update properties of this object
4249
+ def update!(**args)
4250
+ @bfd_session_initialization_mode = args[:bfd_session_initialization_mode] if args.key?(:bfd_session_initialization_mode)
4251
+ @config_update_timestamp_micros = args[:config_update_timestamp_micros] if args.key?(:config_update_timestamp_micros)
4252
+ @control_packet_counts = args[:control_packet_counts] if args.key?(:control_packet_counts)
4253
+ @control_packet_intervals = args[:control_packet_intervals] if args.key?(:control_packet_intervals)
4254
+ @local_diagnostic = args[:local_diagnostic] if args.key?(:local_diagnostic)
4255
+ @local_state = args[:local_state] if args.key?(:local_state)
4256
+ @negotiated_local_control_tx_interval_ms = args[:negotiated_local_control_tx_interval_ms] if args.key?(:negotiated_local_control_tx_interval_ms)
4257
+ @rx_packet = args[:rx_packet] if args.key?(:rx_packet)
4258
+ @tx_packet = args[:tx_packet] if args.key?(:tx_packet)
4259
+ @uptime_ms = args[:uptime_ms] if args.key?(:uptime_ms)
4260
+ end
4261
+ end
4262
+
4263
+ #
4264
+ class BfdStatusPacketCounts
4265
+ include Google::Apis::Core::Hashable
4266
+
4267
+ # Number of packets received since the beginning of the current BFD session.
4268
+ # Corresponds to the JSON property `numRx`
4269
+ # @return [Fixnum]
4270
+ attr_accessor :num_rx
4271
+
4272
+ # Number of packets received that were rejected because of errors since the
4273
+ # beginning of the current BFD session.
4274
+ # Corresponds to the JSON property `numRxRejected`
4275
+ # @return [Fixnum]
4276
+ attr_accessor :num_rx_rejected
4277
+
4278
+ # Number of packets received that were successfully processed since the
4279
+ # beginning of the current BFD session.
4280
+ # Corresponds to the JSON property `numRxSuccessful`
4281
+ # @return [Fixnum]
4282
+ attr_accessor :num_rx_successful
4283
+
4284
+ # Number of packets transmitted since the beginning of the current BFD session.
4285
+ # Corresponds to the JSON property `numTx`
4286
+ # @return [Fixnum]
4287
+ attr_accessor :num_tx
4288
+
4289
+ def initialize(**args)
4290
+ update!(**args)
4291
+ end
4292
+
4293
+ # Update properties of this object
4294
+ def update!(**args)
4295
+ @num_rx = args[:num_rx] if args.key?(:num_rx)
4296
+ @num_rx_rejected = args[:num_rx_rejected] if args.key?(:num_rx_rejected)
4297
+ @num_rx_successful = args[:num_rx_successful] if args.key?(:num_rx_successful)
4298
+ @num_tx = args[:num_tx] if args.key?(:num_tx)
4299
+ end
4300
+ end
4301
+
4302
+ # Associates `members`, or principals, with a `role`.
3962
4303
  class Binding
3963
4304
  include Google::Apis::Core::Hashable
3964
4305
 
@@ -3986,7 +4327,7 @@ module Google
3986
4327
  # @return [Google::Apis::ComputeV1::Expr]
3987
4328
  attr_accessor :condition
3988
4329
 
3989
- # Specifies the identities requesting access for a Cloud Platform resource. `
4330
+ # Specifies the principals requesting access for a Cloud Platform resource. `
3990
4331
  # members` can have the following values: * `allUsers`: A special identifier
3991
4332
  # that represents anyone who is on the internet; with or without a Google
3992
4333
  # account. * `allAuthenticatedUsers`: A special identifier that represents
@@ -4016,8 +4357,8 @@ module Google
4016
4357
  # @return [Array<String>]
4017
4358
  attr_accessor :members
4018
4359
 
4019
- # Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`
4020
- # , or `roles/owner`.
4360
+ # Role that is assigned to the list of `members`, or principals. For example, `
4361
+ # roles/viewer`, `roles/editor`, or `roles/owner`.
4021
4362
  # Corresponds to the JSON property `role`
4022
4363
  # @return [String]
4023
4364
  attr_accessor :role
@@ -4891,14 +5232,15 @@ module Google
4891
5232
  end
4892
5233
  end
4893
5234
 
4894
- # The specification for allowing client side cross-origin requests. Please see
4895
- # W3C Recommendation for Cross Origin Resource Sharing
5235
+ # The specification for allowing client-side cross-origin requests. For more
5236
+ # information about the W3C recommendation for cross-origin resource sharing (
5237
+ # CORS), see Fetch API Living Standard.
4896
5238
  class CorsPolicy
4897
5239
  include Google::Apis::Core::Hashable
4898
5240
 
4899
5241
  # In response to a preflight request, setting this to true indicates that the
4900
- # actual request can include user credentials. This translates to the Access-
4901
- # Control-Allow-Credentials header. Default is false.
5242
+ # actual request can include user credentials. This field translates to the
5243
+ # Access-Control-Allow-Credentials header. Default is false.
4902
5244
  # Corresponds to the JSON property `allowCredentials`
4903
5245
  # @return [Boolean]
4904
5246
  attr_accessor :allow_credentials
@@ -4914,23 +5256,23 @@ module Google
4914
5256
  # @return [Array<String>]
4915
5257
  attr_accessor :allow_methods
4916
5258
 
4917
- # Specifies the regualar expression patterns that match allowed origins. For
4918
- # regular expression grammar please see github.com/google/re2/wiki/Syntax An
4919
- # origin is allowed if it matches either an item in allowOrigins or an item in
5259
+ # Specifies a regular expression that matches allowed origins. For more
5260
+ # information about the regular expression syntax, see Syntax. An origin is
5261
+ # allowed if it matches either an item in allowOrigins or an item in
4920
5262
  # allowOriginRegexes.
4921
5263
  # Corresponds to the JSON property `allowOriginRegexes`
4922
5264
  # @return [Array<String>]
4923
5265
  attr_accessor :allow_origin_regexes
4924
5266
 
4925
- # Specifies the list of origins that will be allowed to do CORS requests. An
4926
- # origin is allowed if it matches either an item in allowOrigins or an item in
5267
+ # Specifies the list of origins that is allowed to do CORS requests. An origin
5268
+ # is allowed if it matches either an item in allowOrigins or an item in
4927
5269
  # allowOriginRegexes.
4928
5270
  # Corresponds to the JSON property `allowOrigins`
4929
5271
  # @return [Array<String>]
4930
5272
  attr_accessor :allow_origins
4931
5273
 
4932
- # If true, specifies the CORS policy is disabled. The default value of false,
4933
- # which indicates that the CORS policy is in effect.
5274
+ # If true, the setting specifies the CORS policy is disabled. The default value
5275
+ # of false, which indicates that the CORS policy is in effect.
4934
5276
  # Corresponds to the JSON property `disabled`
4935
5277
  # @return [Boolean]
4936
5278
  attr_accessor :disabled
@@ -4942,7 +5284,7 @@ module Google
4942
5284
  attr_accessor :expose_headers
4943
5285
 
4944
5286
  # Specifies how long results of a preflight request can be cached in seconds.
4945
- # This translates to the Access-Control-Max-Age header.
5287
+ # This field translates to the Access-Control-Max-Age header.
4946
5288
  # Corresponds to the JSON property `maxAge`
4947
5289
  # @return [Fixnum]
4948
5290
  attr_accessor :max_age
@@ -4968,30 +5310,39 @@ module Google
4968
5310
  class CustomerEncryptionKey
4969
5311
  include Google::Apis::Core::Hashable
4970
5312
 
4971
- # The name of the encryption key that is stored in Google Cloud KMS.
5313
+ # The name of the encryption key that is stored in Google Cloud KMS. For example:
5314
+ # "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ key_region/
5315
+ # cryptoKeys/key
4972
5316
  # Corresponds to the JSON property `kmsKeyName`
4973
5317
  # @return [String]
4974
5318
  attr_accessor :kms_key_name
4975
5319
 
4976
5320
  # The service account being used for the encryption request for the given KMS
4977
- # key. If absent, the Compute Engine default service account is used.
5321
+ # key. If absent, the Compute Engine default service account is used. For
5322
+ # example: "kmsKeyServiceAccount": "name@project_id.iam.gserviceaccount.com/
4978
5323
  # Corresponds to the JSON property `kmsKeyServiceAccount`
4979
5324
  # @return [String]
4980
5325
  attr_accessor :kms_key_service_account
4981
5326
 
4982
5327
  # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648
4983
- # base64 to either encrypt or decrypt this resource.
5328
+ # base64 to either encrypt or decrypt this resource. You can provide either the
5329
+ # rawKey or the rsaEncryptedKey. For example: "rawKey": "
5330
+ # SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0="
4984
5331
  # Corresponds to the JSON property `rawKey`
4985
5332
  # @return [String]
4986
5333
  attr_accessor :raw_key
4987
5334
 
4988
5335
  # Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied
4989
- # encryption key to either encrypt or decrypt this resource. The key must meet
4990
- # the following requirements before you can provide it to Compute Engine: 1. The
4991
- # key is wrapped using a RSA public key certificate provided by Google. 2. After
4992
- # being wrapped, the key must be encoded in RFC 4648 base64 encoding. Gets the
4993
- # RSA public key certificate provided by Google at: https://cloud-certs.storage.
4994
- # googleapis.com/google-cloud-csek-ingress.pem
5336
+ # encryption key to either encrypt or decrypt this resource. You can provide
5337
+ # either the rawKey or the rsaEncryptedKey. For example: "rsaEncryptedKey": "
5338
+ # ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH
5339
+ # z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD
5340
+ # D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==" The
5341
+ # key must meet the following requirements before you can provide it to Compute
5342
+ # Engine: 1. The key is wrapped using a RSA public key certificate provided by
5343
+ # Google. 2. After being wrapped, the key must be encoded in RFC 4648 base64
5344
+ # encoding. Gets the RSA public key certificate provided by Google at: https://
5345
+ # cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
4995
5346
  # Corresponds to the JSON property `rsaEncryptedKey`
4996
5347
  # @return [String]
4997
5348
  attr_accessor :rsa_encrypted_key
@@ -5026,7 +5377,8 @@ module Google
5026
5377
  attr_accessor :disk_encryption_key
5027
5378
 
5028
5379
  # Specifies a valid partial or full URL to an existing Persistent Disk resource.
5029
- # This field is only applicable for persistent disks.
5380
+ # This field is only applicable for persistent disks. For example: "source": "/
5381
+ # compute/v1/projects/project_id/zones/zone/disks/ disk_name
5030
5382
  # Corresponds to the JSON property `source`
5031
5383
  # @return [String]
5032
5384
  attr_accessor :source
@@ -6989,7 +7341,7 @@ module Google
6989
7341
  # Name of the resource; provided by the client when the resource is created. The
6990
7342
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
6991
7343
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
6992
- # z0-9]*[a-z0-9])?. The first character must be a lowercase letter, and all
7344
+ # z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all
6993
7345
  # following characters (except for the last character) must be a dash, lowercase
6994
7346
  # letter, or digit. The last character must be a lowercase letter or digit.
6995
7347
  # Corresponds to the JSON property `name`
@@ -7363,7 +7715,7 @@ module Google
7363
7715
  attr_accessor :description
7364
7716
 
7365
7717
  # Deprecated, please use short name instead. User-provided name of the
7366
- # Organization firewall plicy. The name should be unique in the organization in
7718
+ # Organization firewall policy. The name should be unique in the organization in
7367
7719
  # which the firewall policy is created. This name must be set on creation and
7368
7720
  # cannot be changed. The name must be 1-63 characters long, and comply with
7369
7721
  # RFC1035. Specifically, the name must be 1-63 characters long and match the
@@ -8638,31 +8990,31 @@ module Google
8638
8990
 
8639
8991
  # An Identity and Access Management (IAM) policy, which specifies access
8640
8992
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
8641
- # A `binding` binds one or more `members` to a single `role`. Members can be
8642
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
8643
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
8644
- # role or a user-created custom role. For some types of Google Cloud resources,
8645
- # a `binding` can also specify a `condition`, which is a logical expression that
8646
- # allows access to a resource only if the expression evaluates to `true`. A
8647
- # condition can add constraints based on attributes of the request, the resource,
8648
- # or both. To learn which resources support conditions in their IAM policies,
8649
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
8650
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
8651
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
8652
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
8653
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
8654
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
8655
- # title": "expirable access", "description": "Does not grant access after Sep
8656
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
8657
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
8658
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
8659
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
8660
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
8661
- # roles/resourcemanager.organizationViewer condition: title: expirable access
8662
- # description: Does not grant access after Sep 2020 expression: request.time <
8663
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
8664
- # description of IAM and its features, see the [IAM documentation](https://cloud.
8665
- # google.com/iam/docs/).
8993
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
8994
+ # Principals can be user accounts, service accounts, Google groups, and domains (
8995
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
8996
+ # an IAM predefined role or a user-created custom role. For some types of Google
8997
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
8998
+ # logical expression that allows access to a resource only if the expression
8999
+ # evaluates to `true`. A condition can add constraints based on attributes of
9000
+ # the request, the resource, or both. To learn which resources support
9001
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
9002
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
9003
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
9004
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
9005
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
9006
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
9007
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
9008
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
9009
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
9010
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
9011
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
9012
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
9013
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
9014
+ # access description: Does not grant access after Sep 2020 expression: request.
9015
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
9016
+ # a description of IAM and its features, see the [IAM documentation](https://
9017
+ # cloud.google.com/iam/docs/).
8666
9018
  # Corresponds to the JSON property `policy`
8667
9019
  # @return [Google::Apis::ComputeV1::Policy]
8668
9020
  attr_accessor :policy
@@ -8735,31 +9087,31 @@ module Google
8735
9087
 
8736
9088
  # An Identity and Access Management (IAM) policy, which specifies access
8737
9089
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
8738
- # A `binding` binds one or more `members` to a single `role`. Members can be
8739
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
8740
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
8741
- # role or a user-created custom role. For some types of Google Cloud resources,
8742
- # a `binding` can also specify a `condition`, which is a logical expression that
8743
- # allows access to a resource only if the expression evaluates to `true`. A
8744
- # condition can add constraints based on attributes of the request, the resource,
8745
- # or both. To learn which resources support conditions in their IAM policies,
8746
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
8747
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
8748
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
8749
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
8750
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
8751
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
8752
- # title": "expirable access", "description": "Does not grant access after Sep
8753
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
8754
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
8755
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
8756
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
8757
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
8758
- # roles/resourcemanager.organizationViewer condition: title: expirable access
8759
- # description: Does not grant access after Sep 2020 expression: request.time <
8760
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
8761
- # description of IAM and its features, see the [IAM documentation](https://cloud.
8762
- # google.com/iam/docs/).
9090
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
9091
+ # Principals can be user accounts, service accounts, Google groups, and domains (
9092
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
9093
+ # an IAM predefined role or a user-created custom role. For some types of Google
9094
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
9095
+ # logical expression that allows access to a resource only if the expression
9096
+ # evaluates to `true`. A condition can add constraints based on attributes of
9097
+ # the request, the resource, or both. To learn which resources support
9098
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
9099
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
9100
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
9101
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
9102
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
9103
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
9104
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
9105
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
9106
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
9107
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
9108
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
9109
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
9110
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
9111
+ # access description: Does not grant access after Sep 2020 expression: request.
9112
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
9113
+ # a description of IAM and its features, see the [IAM documentation](https://
9114
+ # cloud.google.com/iam/docs/).
8763
9115
  # Corresponds to the JSON property `policy`
8764
9116
  # @return [Google::Apis::ComputeV1::Policy]
8765
9117
  attr_accessor :policy
@@ -8881,8 +9233,11 @@ module Google
8881
9233
  class GuestOsFeature
8882
9234
  include Google::Apis::Core::Hashable
8883
9235
 
8884
- # The ID of a supported feature. Read Enabling guest operating system features
8885
- # to see a list of available options.
9236
+ # The ID of a supported feature. To add multiple values, use commas to separate
9237
+ # values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE -
9238
+ # WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - SECURE_BOOT - GVNIC -
9239
+ # SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE For more information, see Enabling
9240
+ # guest operating system features.
8886
9241
  # Corresponds to the JSON property `type`
8887
9242
  # @return [String]
8888
9243
  attr_accessor :type
@@ -10030,7 +10385,8 @@ module Google
10030
10385
  # port numbers in the format host:port. * matches any string of ([a-z0-9-.]*).
10031
10386
  # In that case, * must be the first character and must be followed in the
10032
10387
  # pattern by either - or .. * based matching is not supported when the URL map
10033
- # is bound to target gRPC proxy that has validateForProxyless field set to true.
10388
+ # is bound to a target gRPC proxy that has the validateForProxyless field set to
10389
+ # true.
10034
10390
  # Corresponds to the JSON property `hosts`
10035
10391
  # @return [Array<String>]
10036
10392
  attr_accessor :hosts
@@ -10057,8 +10413,8 @@ module Google
10057
10413
  class HttpFaultAbort
10058
10414
  include Google::Apis::Core::Hashable
10059
10415
 
10060
- # The HTTP status code used to abort the request. The value must be between 200
10061
- # and 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP
10416
+ # The HTTP status code used to abort the request. The value must be from 200 to
10417
+ # 599 inclusive. For gRPC protocol, the gRPC status code is mapped to HTTP
10062
10418
  # status code according to this mapping table. HTTP status 200 is mapped to gRPC
10063
10419
  # status UNKNOWN. Injecting an OK status is currently not supported by Traffic
10064
10420
  # Director.
@@ -10066,8 +10422,8 @@ module Google
10066
10422
  # @return [Fixnum]
10067
10423
  attr_accessor :http_status
10068
10424
 
10069
- # The percentage of traffic (connections/operations/requests) which will be
10070
- # aborted as part of fault injection. The value must be between 0.0 and 100.0
10425
+ # The percentage of traffic for connections, operations, or requests that is
10426
+ # aborted as part of fault injection. The value must be from 0.0 to 100.0
10071
10427
  # inclusive.
10072
10428
  # Corresponds to the JSON property `percentage`
10073
10429
  # @return [Float]
@@ -10084,8 +10440,8 @@ module Google
10084
10440
  end
10085
10441
  end
10086
10442
 
10087
- # Specifies the delay introduced by Loadbalancer before forwarding the request
10088
- # to the backend service as part of fault injection.
10443
+ # Specifies the delay introduced by the load balancer before forwarding the
10444
+ # request to the backend service as part of fault injection.
10089
10445
  class HttpFaultDelay
10090
10446
  include Google::Apis::Core::Hashable
10091
10447
 
@@ -10097,9 +10453,9 @@ module Google
10097
10453
  # @return [Google::Apis::ComputeV1::Duration]
10098
10454
  attr_accessor :fixed_delay
10099
10455
 
10100
- # The percentage of traffic (connections/operations/requests) on which delay
10101
- # will be introduced as part of fault injection. The value must be between 0.0
10102
- # and 100.0 inclusive.
10456
+ # The percentage of traffic for connections, operations, or requests for which a
10457
+ # delay is introduced as part of fault injection. The value must be from 0.0 to
10458
+ # 100.0 inclusive.
10103
10459
  # Corresponds to the JSON property `percentage`
10104
10460
  # @return [Float]
10105
10461
  attr_accessor :percentage
@@ -10118,9 +10474,9 @@ module Google
10118
10474
  # The specification for fault injection introduced into traffic to test the
10119
10475
  # resiliency of clients to backend service failure. As part of fault injection,
10120
10476
  # when clients send requests to a backend service, delays can be introduced by
10121
- # Loadbalancer on a percentage of requests before sending those request to the
10122
- # backend service. Similarly requests from clients can be aborted by the
10123
- # Loadbalancer for a percentage of requests.
10477
+ # the load balancer on a percentage of requests before sending those request to
10478
+ # the backend service. Similarly requests from clients can be aborted by the
10479
+ # load balancer for a percentage of requests.
10124
10480
  class HttpFaultInjection
10125
10481
  include Google::Apis::Core::Hashable
10126
10482
 
@@ -10129,8 +10485,8 @@ module Google
10129
10485
  # @return [Google::Apis::ComputeV1::HttpFaultAbort]
10130
10486
  attr_accessor :abort
10131
10487
 
10132
- # Specifies the delay introduced by Loadbalancer before forwarding the request
10133
- # to the backend service as part of fault injection.
10488
+ # Specifies the delay introduced by the load balancer before forwarding the
10489
+ # request to the backend service as part of fault injection.
10134
10490
  # Corresponds to the JSON property `delay`
10135
10491
  # @return [Google::Apis::ComputeV1::HttpFaultDelay]
10136
10492
  attr_accessor :delay
@@ -10151,25 +10507,25 @@ module Google
10151
10507
  class HttpHeaderAction
10152
10508
  include Google::Apis::Core::Hashable
10153
10509
 
10154
- # Headers to add to a matching request prior to forwarding the request to the
10510
+ # Headers to add to a matching request before forwarding the request to the
10155
10511
  # backendService.
10156
10512
  # Corresponds to the JSON property `requestHeadersToAdd`
10157
10513
  # @return [Array<Google::Apis::ComputeV1::HttpHeaderOption>]
10158
10514
  attr_accessor :request_headers_to_add
10159
10515
 
10160
10516
  # A list of header names for headers that need to be removed from the request
10161
- # prior to forwarding the request to the backendService.
10517
+ # before forwarding the request to the backendService.
10162
10518
  # Corresponds to the JSON property `requestHeadersToRemove`
10163
10519
  # @return [Array<String>]
10164
10520
  attr_accessor :request_headers_to_remove
10165
10521
 
10166
- # Headers to add the response prior to sending the response back to the client.
10522
+ # Headers to add the response before sending the response back to the client.
10167
10523
  # Corresponds to the JSON property `responseHeadersToAdd`
10168
10524
  # @return [Array<Google::Apis::ComputeV1::HttpHeaderOption>]
10169
10525
  attr_accessor :response_headers_to_add
10170
10526
 
10171
10527
  # A list of header names for headers that need to be removed from the response
10172
- # prior to sending the response back to the client.
10528
+ # before sending the response back to the client.
10173
10529
  # Corresponds to the JSON property `responseHeadersToRemove`
10174
10530
  # @return [Array<String>]
10175
10531
  attr_accessor :response_headers_to_remove
@@ -10199,21 +10555,21 @@ module Google
10199
10555
 
10200
10556
  # The name of the HTTP header to match. For matching against the HTTP request's
10201
10557
  # authority, use a headerMatch with the header name ":authority". For matching a
10202
- # request's method, use the headerName ":method". When the URL map is bound to
10203
- # target gRPC proxy that has validateForProxyless field set to true, only non-
10204
- # binary user-specified custom metadata and the `content-type` header are
10558
+ # request's method, use the headerName ":method". When the URL map is bound to a
10559
+ # target gRPC proxy that has the validateForProxyless field set to true, only
10560
+ # non-binary user-specified custom metadata and the `content-type` header are
10205
10561
  # supported. The following transport-level headers cannot be used in header
10206
10562
  # matching rules: `:authority`, `:method`, `:path`, `:scheme`, `user-agent`, `
10207
10563
  # accept-encoding`, `content-encoding`, `grpc-accept-encoding`, `grpc-encoding`,
10208
10564
  # `grpc-previous-rpc-attempts`, `grpc-tags-bin`, `grpc-timeout` and `grpc-trace-
10209
- # bin.
10565
+ # bin`.
10210
10566
  # Corresponds to the JSON property `headerName`
10211
10567
  # @return [String]
10212
10568
  attr_accessor :header_name
10213
10569
 
10214
- # If set to false, the headerMatch is considered a match if the match criteria
10215
- # above are met. If set to true, the headerMatch is considered a match if the
10216
- # match criteria above are NOT met. The default setting is false.
10570
+ # If set to false, the headerMatch is considered a match if the preceding match
10571
+ # criteria are met. If set to true, the headerMatch is considered a match if the
10572
+ # preceding match criteria are NOT met. The default setting is false.
10217
10573
  # Corresponds to the JSON property `invertMatch`
10218
10574
  # @return [Boolean]
10219
10575
  attr_accessor :invert_match
@@ -10241,13 +10597,13 @@ module Google
10241
10597
  attr_accessor :range_match
10242
10598
 
10243
10599
  # The value of the header must match the regular expression specified in
10244
- # regexMatch. For regular expression grammar, please see: github.com/google/re2/
10245
- # wiki/Syntax For matching against a port specified in the HTTP request, use a
10246
- # headerMatch with headerName set to PORT and a regular expression that
10247
- # satisfies the RFC2616 Host header's port specifier. Only one of exactMatch,
10248
- # prefixMatch, suffixMatch, regexMatch, presentMatch or rangeMatch must be set.
10249
- # Note that regexMatch only applies to Loadbalancers that have their
10250
- # loadBalancingScheme set to INTERNAL_SELF_MANAGED.
10600
+ # regexMatch. For more information about regular expression syntax, see Syntax.
10601
+ # For matching against a port specified in the HTTP request, use a headerMatch
10602
+ # with headerName set to PORT and a regular expression that satisfies the
10603
+ # RFC2616 Host header's port specifier. Only one of exactMatch, prefixMatch,
10604
+ # suffixMatch, regexMatch, presentMatch or rangeMatch must be set. regexMatch
10605
+ # only applies to load balancers that have loadBalancingScheme set to
10606
+ # INTERNAL_SELF_MANAGED.
10251
10607
  # Corresponds to the JSON property `regexMatch`
10252
10608
  # @return [String]
10253
10609
  attr_accessor :regex_match
@@ -10542,8 +10898,8 @@ module Google
10542
10898
  include Google::Apis::Core::Hashable
10543
10899
 
10544
10900
  # The queryParameterMatch matches if the value of the parameter exactly matches
10545
- # the contents of exactMatch. Only one of presentMatch, exactMatch or regexMatch
10546
- # must be set.
10901
+ # the contents of exactMatch. Only one of presentMatch, exactMatch, or
10902
+ # regexMatch must be set.
10547
10903
  # Corresponds to the JSON property `exactMatch`
10548
10904
  # @return [String]
10549
10905
  attr_accessor :exact_match
@@ -10556,17 +10912,17 @@ module Google
10556
10912
 
10557
10913
  # Specifies that the queryParameterMatch matches if the request contains the
10558
10914
  # query parameter, irrespective of whether the parameter has a value or not.
10559
- # Only one of presentMatch, exactMatch or regexMatch must be set.
10915
+ # Only one of presentMatch, exactMatch, or regexMatch must be set.
10560
10916
  # Corresponds to the JSON property `presentMatch`
10561
10917
  # @return [Boolean]
10562
10918
  attr_accessor :present_match
10563
10919
  alias_method :present_match?, :present_match
10564
10920
 
10565
10921
  # The queryParameterMatch matches if the value of the parameter matches the
10566
- # regular expression specified by regexMatch. For the regular expression grammar,
10567
- # please see github.com/google/re2/wiki/Syntax Only one of presentMatch,
10568
- # exactMatch or regexMatch must be set. Note that regexMatch only applies when
10569
- # the loadBalancingScheme is set to INTERNAL_SELF_MANAGED.
10922
+ # regular expression specified by regexMatch. For more information about regular
10923
+ # expression syntax, see Syntax. Only one of presentMatch, exactMatch, or
10924
+ # regexMatch must be set. regexMatch only applies when the loadBalancingScheme
10925
+ # is set to INTERNAL_SELF_MANAGED.
10570
10926
  # Corresponds to the JSON property `regexMatch`
10571
10927
  # @return [String]
10572
10928
  attr_accessor :regex_match
@@ -10588,15 +10944,15 @@ module Google
10588
10944
  class HttpRedirectAction
10589
10945
  include Google::Apis::Core::Hashable
10590
10946
 
10591
- # The host that will be used in the redirect response instead of the one that
10592
- # was supplied in the request. The value must be between 1 and 255 characters.
10947
+ # The host that is used in the redirect response instead of the one that was
10948
+ # supplied in the request. The value must be from 1 to 255 characters.
10593
10949
  # Corresponds to the JSON property `hostRedirect`
10594
10950
  # @return [String]
10595
10951
  attr_accessor :host_redirect
10596
10952
 
10597
- # If set to true, the URL scheme in the redirected request is set to https. If
10598
- # set to false, the URL scheme of the redirected request will remain the same as
10599
- # that of the request. This must only be set for UrlMaps used in
10953
+ # If set to true, the URL scheme in the redirected request is set to HTTPS. If
10954
+ # set to false, the URL scheme of the redirected request remains the same as
10955
+ # that of the request. This must only be set for URL maps used in
10600
10956
  # TargetHttpProxys. Setting this true for TargetHttpsProxy is not permitted. The
10601
10957
  # default is set to false.
10602
10958
  # Corresponds to the JSON property `httpsRedirect`
@@ -10604,11 +10960,11 @@ module Google
10604
10960
  attr_accessor :https_redirect
10605
10961
  alias_method :https_redirect?, :https_redirect
10606
10962
 
10607
- # The path that will be used in the redirect response instead of the one that
10608
- # was supplied in the request. pathRedirect cannot be supplied together with
10963
+ # The path that is used in the redirect response instead of the one that was
10964
+ # supplied in the request. pathRedirect cannot be supplied together with
10609
10965
  # prefixRedirect. Supply one alone or neither. If neither is supplied, the path
10610
- # of the original request will be used for the redirect. The value must be
10611
- # between 1 and 1024 characters.
10966
+ # of the original request is used for the redirect. The value must be from 1 to
10967
+ # 1024 characters.
10612
10968
  # Corresponds to the JSON property `pathRedirect`
10613
10969
  # @return [String]
10614
10970
  attr_accessor :path_redirect
@@ -10616,8 +10972,8 @@ module Google
10616
10972
  # The prefix that replaces the prefixMatch specified in the HttpRouteRuleMatch,
10617
10973
  # retaining the remaining portion of the URL before redirecting the request.
10618
10974
  # prefixRedirect cannot be supplied together with pathRedirect. Supply one alone
10619
- # or neither. If neither is supplied, the path of the original request will be
10620
- # used for the redirect. The value must be between 1 and 1024 characters.
10975
+ # or neither. If neither is supplied, the path of the original request is used
10976
+ # for the redirect. The value must be from 1 to 1024 characters.
10621
10977
  # Corresponds to the JSON property `prefixRedirect`
10622
10978
  # @return [String]
10623
10979
  attr_accessor :prefix_redirect
@@ -10626,14 +10982,14 @@ module Google
10626
10982
  # MOVED_PERMANENTLY_DEFAULT, which is the default value and corresponds to 301. -
10627
10983
  # FOUND, which corresponds to 302. - SEE_OTHER which corresponds to 303. -
10628
10984
  # TEMPORARY_REDIRECT, which corresponds to 307. In this case, the request method
10629
- # will be retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case,
10630
- # the request method will be retained.
10985
+ # is retained. - PERMANENT_REDIRECT, which corresponds to 308. In this case, the
10986
+ # request method is retained.
10631
10987
  # Corresponds to the JSON property `redirectResponseCode`
10632
10988
  # @return [String]
10633
10989
  attr_accessor :redirect_response_code
10634
10990
 
10635
10991
  # If set to true, any accompanying query portion of the original URL is removed
10636
- # prior to redirecting the request. If set to false, the query portion of the
10992
+ # before redirecting the request. If set to false, the query portion of the
10637
10993
  # original URL is retained. The default is set to false.
10638
10994
  # Corresponds to the JSON property `stripQuery`
10639
10995
  # @return [Boolean]
@@ -10674,25 +11030,27 @@ module Google
10674
11030
  attr_accessor :per_try_timeout
10675
11031
 
10676
11032
  # Specifies one or more conditions when this retry policy applies. Valid values
10677
- # are: - 5xx: Retry will be attempted if the instance or endpoint responds with
10678
- # any 5xx response code, or if the instance or endpoint does not respond at all,
10679
- # example: disconnects, reset, read timeout, connection failure, and refused
11033
+ # are: - 5xx: retry is attempted if the instance or endpoint responds with any
11034
+ # 5xx response code, or if the instance or endpoint does not respond at all. For
11035
+ # example, disconnects, reset, read timeout, connection failure, and refused
10680
11036
  # streams. - gateway-error: Similar to 5xx, but only applies to response codes
10681
- # 502, 503 or 504. - - connect-failure: A retry will be attempted on failures
10682
- # connecting to the instance or endpoint, for example due to connection timeouts.
10683
- # - retriable-4xx: A retry will be attempted if the instance or endpoint
10684
- # responds with a retriable 4xx response code. Currently the only retriable
10685
- # error supported is 409. - refused-stream: A retry will be attempted if the
10686
- # instance or endpoint resets the stream with a REFUSED_STREAM error code. This
10687
- # reset type indicates that it is safe to retry. - cancelled: A retry will be
10688
- # attempted if the gRPC status code in the response header is set to cancelled. -
10689
- # deadline-exceeded: A retry will be attempted if the gRPC status code in the
10690
- # response header is set to deadline-exceeded. - internal: A retry will be
10691
- # attempted if the gRPC status code in the response header is set to internal. -
10692
- # resource-exhausted: A retry will be attempted if the gRPC status code in the
10693
- # response header is set to resource-exhausted. - unavailable: A retry will be
10694
- # attempted if the gRPC status code in the response header is set to unavailable.
10695
- #
11037
+ # 502, 503 or 504. - connect-failure: a retry is attempted on failures
11038
+ # connecting to the instance or endpoint. For example, connection timeouts. -
11039
+ # retriable-4xx: a retry is attempted if the instance or endpoint responds with
11040
+ # a 4xx response code. The only error that you can retry is error code 409. -
11041
+ # refused-stream: a retry is attempted if the instance or endpoint resets the
11042
+ # stream with a REFUSED_STREAM error code. This reset type indicates that it is
11043
+ # safe to retry. - cancelled: a retry is attempted if the gRPC status code in
11044
+ # the response header is set to cancelled. - deadline-exceeded: a retry is
11045
+ # attempted if the gRPC status code in the response header is set to deadline-
11046
+ # exceeded. - internal: a retry is attempted if the gRPC status code in the
11047
+ # response header is set to internal. - resource-exhausted: a retry is attempted
11048
+ # if the gRPC status code in the response header is set to resource-exhausted. -
11049
+ # unavailable: a retry is attempted if the gRPC status code in the response
11050
+ # header is set to unavailable. Only the following codes are supported when the
11051
+ # URL map is bound to target gRPC proxy that has validateForProxyless field set
11052
+ # to true. - cancelled - deadline-exceeded - internal - resource-exhausted -
11053
+ # unavailable
10696
11054
  # Corresponds to the JSON property `retryConditions`
10697
11055
  # @return [Array<String>]
10698
11056
  attr_accessor :retry_conditions
@@ -10713,8 +11071,9 @@ module Google
10713
11071
  class HttpRouteAction
10714
11072
  include Google::Apis::Core::Hashable
10715
11073
 
10716
- # The specification for allowing client side cross-origin requests. Please see
10717
- # W3C Recommendation for Cross Origin Resource Sharing
11074
+ # The specification for allowing client-side cross-origin requests. For more
11075
+ # information about the W3C recommendation for cross-origin resource sharing (
11076
+ # CORS), see Fetch API Living Standard.
10718
11077
  # Corresponds to the JSON property `corsPolicy`
10719
11078
  # @return [Google::Apis::ComputeV1::CorsPolicy]
10720
11079
  attr_accessor :cors_policy
@@ -10722,9 +11081,9 @@ module Google
10722
11081
  # The specification for fault injection introduced into traffic to test the
10723
11082
  # resiliency of clients to backend service failure. As part of fault injection,
10724
11083
  # when clients send requests to a backend service, delays can be introduced by
10725
- # Loadbalancer on a percentage of requests before sending those request to the
10726
- # backend service. Similarly requests from clients can be aborted by the
10727
- # Loadbalancer for a percentage of requests.
11084
+ # the load balancer on a percentage of requests before sending those request to
11085
+ # the backend service. Similarly requests from clients can be aborted by the
11086
+ # load balancer for a percentage of requests.
10728
11087
  # Corresponds to the JSON property `faultInjectionPolicy`
10729
11088
  # @return [Google::Apis::ComputeV1::HttpFaultInjection]
10730
11089
  attr_accessor :fault_injection_policy
@@ -10738,9 +11097,9 @@ module Google
10738
11097
  attr_accessor :max_stream_duration
10739
11098
 
10740
11099
  # A policy that specifies how requests intended for the route's backends are
10741
- # shadowed to a separate mirrored backend service. Loadbalancer does not wait
10742
- # for responses from the shadow service. Prior to sending traffic to the shadow
10743
- # service, the host / authority header is suffixed with -shadow.
11100
+ # shadowed to a separate mirrored backend service. The load balancer doesn't
11101
+ # wait for responses from the shadow service. Before sending traffic to the
11102
+ # shadow service, the host or authority header is suffixed with -shadow.
10744
11103
  # Corresponds to the JSON property `requestMirrorPolicy`
10745
11104
  # @return [Google::Apis::ComputeV1::RequestMirrorPolicy]
10746
11105
  attr_accessor :request_mirror_policy
@@ -10768,7 +11127,7 @@ module Google
10768
11127
  # occurs. The weights determine the fraction of traffic that flows to their
10769
11128
  # corresponding backend service. If all traffic needs to go to a single backend
10770
11129
  # service, there must be one weightedBackendService with weight set to a non-
10771
- # zero number. Once a backendService is identified and before forwarding the
11130
+ # zero number. After a backend service is identified and before forwarding the
10772
11131
  # request to the backend service, advanced routing actions such as URL rewrites
10773
11132
  # and header transformations are applied depending on additional settings
10774
11133
  # specified in this HttpRouteAction.
@@ -10793,8 +11152,8 @@ module Google
10793
11152
  end
10794
11153
  end
10795
11154
 
10796
- # An HttpRouteRule specifies how to match an HTTP request and the corresponding
10797
- # routing action that load balancing proxies will perform.
11155
+ # The HttpRouteRule setting specifies how to match an HTTP request and the
11156
+ # corresponding routing action that load balancing proxies perform.
10798
11157
  class HttpRouteRule
10799
11158
  include Google::Apis::Core::Hashable
10800
11159
 
@@ -10820,11 +11179,11 @@ module Google
10820
11179
  attr_accessor :match_rules
10821
11180
 
10822
11181
  # For routeRules within a given pathMatcher, priority determines the order in
10823
- # which load balancer will interpret routeRules. RouteRules are evaluated in
10824
- # order of priority, from the lowest to highest number. The priority of a rule
11182
+ # which a load balancer interprets routeRules. RouteRules are evaluated in order
11183
+ # of priority, from the lowest to highest number. The priority of a rule
10825
11184
  # decreases as its number increases (1, 2, 3, N+1). The first rule that matches
10826
11185
  # the request is applied. You cannot configure two or more routeRules with the
10827
- # same priority. Priority for each rule must be set to a number between 0 and
11186
+ # same priority. Priority for each rule must be set to a number from 0 to
10828
11187
  # 2147483647 inclusive. Priority numbers can have gaps, which enable you to add
10829
11188
  # or remove rules in the future without affecting the rest of the rules. For
10830
11189
  # example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority numbers to
@@ -10835,24 +11194,24 @@ module Google
10835
11194
  attr_accessor :priority
10836
11195
 
10837
11196
  # In response to a matching matchRule, the load balancer performs advanced
10838
- # routing actions like URL rewrites, header transformations, etc. prior to
11197
+ # routing actions, such as URL rewrites and header transformations, before
10839
11198
  # forwarding the request to the selected backend. If routeAction specifies any
10840
11199
  # weightedBackendServices, service must not be set. Conversely if service is set,
10841
11200
  # routeAction cannot contain any weightedBackendServices. Only one of
10842
11201
  # urlRedirect, service or routeAction.weightedBackendService must be set.
10843
11202
  # UrlMaps for external HTTP(S) load balancers support only the urlRewrite action
10844
- # within a routeRule's routeAction.
11203
+ # within a route rule's routeAction.
10845
11204
  # Corresponds to the JSON property `routeAction`
10846
11205
  # @return [Google::Apis::ComputeV1::HttpRouteAction]
10847
11206
  attr_accessor :route_action
10848
11207
 
10849
11208
  # The full or partial URL of the backend service resource to which traffic is
10850
- # directed if this rule is matched. If routeAction is additionally specified,
10851
- # advanced routing actions like URL Rewrites, etc. take effect prior to sending
10852
- # the request to the backend. However, if service is specified, routeAction
10853
- # cannot contain any weightedBackendService s. Conversely, if routeAction
10854
- # specifies any weightedBackendServices, service must not be specified. Only one
10855
- # of urlRedirect, service or routeAction.weightedBackendService must be set.
11209
+ # directed if this rule is matched. If routeAction is also specified, advanced
11210
+ # routing actions, such as URL rewrites, take effect before sending the request
11211
+ # to the backend. However, if service is specified, routeAction cannot contain
11212
+ # any weightedBackendServices. Conversely, if routeAction specifies any
11213
+ # weightedBackendServices, service must not be specified. Only one of
11214
+ # urlRedirect, service or routeAction.weightedBackendService must be set.
10856
11215
  # Corresponds to the JSON property `service`
10857
11216
  # @return [String]
10858
11217
  attr_accessor :service
@@ -10885,9 +11244,9 @@ module Google
10885
11244
 
10886
11245
  # For satisfying the matchRule condition, the path of the request must exactly
10887
11246
  # match the value specified in fullPathMatch after removing any query parameters
10888
- # and anchor that may be part of the original URL. fullPathMatch must be between
10889
- # 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch
10890
- # must be specified.
11247
+ # and anchor that may be part of the original URL. fullPathMatch must be from 1
11248
+ # to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch must
11249
+ # be specified.
10891
11250
  # Corresponds to the JSON property `fullPathMatch`
10892
11251
  # @return [String]
10893
11252
  attr_accessor :full_path_match
@@ -10900,53 +11259,52 @@ module Google
10900
11259
 
10901
11260
  # Specifies that prefixMatch and fullPathMatch matches are case sensitive. The
10902
11261
  # default value is false. ignoreCase must not be used with regexMatch. Not
10903
- # supported when the URL map is bound to target gRPC proxy.
11262
+ # supported when the URL map is bound to a target gRPC proxy.
10904
11263
  # Corresponds to the JSON property `ignoreCase`
10905
11264
  # @return [Boolean]
10906
11265
  attr_accessor :ignore_case
10907
11266
  alias_method :ignore_case?, :ignore_case
10908
11267
 
10909
- # Opaque filter criteria used by Loadbalancer to restrict routing configuration
10910
- # to a limited set of xDS compliant clients. In their xDS requests to
10911
- # Loadbalancer, xDS clients present node metadata. When there is a match, the
10912
- # relevant routing configuration is made available to those proxies. For each
10913
- # metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY,
10914
- # at least one of the filterLabels must match the corresponding label provided
10915
- # in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of
10916
- # its filterLabels must match with corresponding labels provided in the metadata.
10917
- # If multiple metadataFilters are specified, all of them need to be satisfied
10918
- # in order to be considered a match. metadataFilters specified here will be
11268
+ # Opaque filter criteria used by the load balancer to restrict routing
11269
+ # configuration to a limited set of xDS compliant clients. In their xDS requests
11270
+ # to the load balancer, xDS clients present node metadata. When there is a match,
11271
+ # the relevant routing configuration is made available to those proxies. For
11272
+ # each metadataFilter in this list, if its filterMatchCriteria is set to
11273
+ # MATCH_ANY, at least one of the filterLabels must match the corresponding label
11274
+ # provided in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then
11275
+ # all of its filterLabels must match with corresponding labels provided in the
11276
+ # metadata. If multiple metadata filters are specified, all of them need to be
11277
+ # satisfied in order to be considered a match. metadataFilters specified here is
10919
11278
  # applied after those specified in ForwardingRule that refers to the UrlMap this
10920
- # HttpRouteRuleMatch belongs to. metadataFilters only applies to Loadbalancers
10921
- # that have their loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not
10922
- # supported when the URL map is bound to target gRPC proxy that has
10923
- # validateForProxyless field set to true.
11279
+ # HttpRouteRuleMatch belongs to. metadataFilters only applies to load balancers
11280
+ # that have loadBalancingScheme set to INTERNAL_SELF_MANAGED. Not supported when
11281
+ # the URL map is bound to a target gRPC proxy that has validateForProxyless
11282
+ # field set to true.
10924
11283
  # Corresponds to the JSON property `metadataFilters`
10925
11284
  # @return [Array<Google::Apis::ComputeV1::MetadataFilter>]
10926
11285
  attr_accessor :metadata_filters
10927
11286
 
10928
11287
  # For satisfying the matchRule condition, the request's path must begin with the
10929
- # specified prefixMatch. prefixMatch must begin with a /. The value must be
10930
- # between 1 and 1024 characters. Only one of prefixMatch, fullPathMatch or
10931
- # regexMatch must be specified.
11288
+ # specified prefixMatch. prefixMatch must begin with a /. The value must be from
11289
+ # 1 to 1024 characters. Only one of prefixMatch, fullPathMatch or regexMatch
11290
+ # must be specified.
10932
11291
  # Corresponds to the JSON property `prefixMatch`
10933
11292
  # @return [String]
10934
11293
  attr_accessor :prefix_match
10935
11294
 
10936
11295
  # Specifies a list of query parameter match criteria, all of which must match
10937
11296
  # corresponding query parameters in the request. Not supported when the URL map
10938
- # is bound to target gRPC proxy.
11297
+ # is bound to a target gRPC proxy.
10939
11298
  # Corresponds to the JSON property `queryParameterMatches`
10940
11299
  # @return [Array<Google::Apis::ComputeV1::HttpQueryParameterMatch>]
10941
11300
  attr_accessor :query_parameter_matches
10942
11301
 
10943
11302
  # For satisfying the matchRule condition, the path of the request must satisfy
10944
11303
  # the regular expression specified in regexMatch after removing any query
10945
- # parameters and anchor supplied with the original URL. For regular expression
10946
- # grammar please see github.com/google/re2/wiki/Syntax Only one of prefixMatch,
10947
- # fullPathMatch or regexMatch must be specified. Note that regexMatch only
10948
- # applies to Loadbalancers that have their loadBalancingScheme set to
10949
- # INTERNAL_SELF_MANAGED.
11304
+ # parameters and anchor supplied with the original URL. For more information
11305
+ # about regular expression syntax, see Syntax. Only one of prefixMatch,
11306
+ # fullPathMatch or regexMatch must be specified. regexMatch only applies to load
11307
+ # balancers that have loadBalancingScheme set to INTERNAL_SELF_MANAGED.
10950
11308
  # Corresponds to the JSON property `regexMatch`
10951
11309
  # @return [String]
10952
11310
  attr_accessor :regex_match
@@ -11234,8 +11592,8 @@ module Google
11234
11592
  attr_accessor :family
11235
11593
 
11236
11594
  # A list of features to enable on the guest operating system. Applicable only
11237
- # for bootable images. Read Enabling guest operating system features to see a
11238
- # list of available options.
11595
+ # for bootable images. To see a list of available options, see the
11596
+ # guestOSfeatures[].type parameter.
11239
11597
  # Corresponds to the JSON property `guestOsFeatures`
11240
11598
  # @return [Array<Google::Apis::ComputeV1::GuestOsFeature>]
11241
11599
  attr_accessor :guest_os_features
@@ -11838,6 +12196,11 @@ module Google
11838
12196
  # @return [Array<Google::Apis::ComputeV1::NetworkInterface>]
11839
12197
  attr_accessor :network_interfaces
11840
12198
 
12199
+ #
12200
+ # Corresponds to the JSON property `networkPerformanceConfig`
12201
+ # @return [Google::Apis::ComputeV1::NetworkPerformanceConfig]
12202
+ attr_accessor :network_performance_config
12203
+
11841
12204
  # The private IPv6 google access type for the VM. If not specified, use
11842
12205
  # INHERIT_FROM_SUBNETWORK as default.
11843
12206
  # Corresponds to the JSON property `privateIpv6GoogleAccess`
@@ -11952,6 +12315,7 @@ module Google
11952
12315
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
11953
12316
  @name = args[:name] if args.key?(:name)
11954
12317
  @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
12318
+ @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
11955
12319
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
11956
12320
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
11957
12321
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
@@ -13145,6 +13509,17 @@ module Google
13145
13509
  # @return [String]
13146
13510
  attr_accessor :minimal_action
13147
13511
 
13512
+ # Most disruptive action that is allowed to be taken on an instance. You can
13513
+ # specify either NONE to forbid any actions, REFRESH to allow actions that do
13514
+ # not need instance restart, RESTART to allow actions that can be applied
13515
+ # without instance replacing or REPLACE to allow all possible actions. If the
13516
+ # Updater determines that the minimal update action needed is more disruptive
13517
+ # than most disruptive allowed action you specify it will not perform the update
13518
+ # at all.
13519
+ # Corresponds to the JSON property `mostDisruptiveAllowedAction`
13520
+ # @return [String]
13521
+ attr_accessor :most_disruptive_allowed_action
13522
+
13148
13523
  # What action should be used to replace instances. See minimal_action.REPLACE
13149
13524
  # Corresponds to the JSON property `replacementMethod`
13150
13525
  # @return [String]
@@ -13169,6 +13544,7 @@ module Google
13169
13544
  @max_surge = args[:max_surge] if args.key?(:max_surge)
13170
13545
  @max_unavailable = args[:max_unavailable] if args.key?(:max_unavailable)
13171
13546
  @minimal_action = args[:minimal_action] if args.key?(:minimal_action)
13547
+ @most_disruptive_allowed_action = args[:most_disruptive_allowed_action] if args.key?(:most_disruptive_allowed_action)
13172
13548
  @replacement_method = args[:replacement_method] if args.key?(:replacement_method)
13173
13549
  @type = args[:type] if args.key?(:type)
13174
13550
  end
@@ -14459,8 +14835,14 @@ module Google
14459
14835
  # @return [Array<Google::Apis::ComputeV1::NetworkInterface>]
14460
14836
  attr_accessor :network_interfaces
14461
14837
 
14838
+ # Note that for MachineImage, this is not supported yet.
14839
+ # Corresponds to the JSON property `networkPerformanceConfig`
14840
+ # @return [Google::Apis::ComputeV1::NetworkPerformanceConfig]
14841
+ attr_accessor :network_performance_config
14842
+
14462
14843
  # The private IPv6 google access type for VMs. If not specified, use
14463
- # INHERIT_FROM_SUBNETWORK as default.
14844
+ # INHERIT_FROM_SUBNETWORK as default. Note that for MachineImage, this is not
14845
+ # supported yet.
14464
14846
  # Corresponds to the JSON property `privateIpv6GoogleAccess`
14465
14847
  # @return [String]
14466
14848
  attr_accessor :private_ipv6_google_access
@@ -14471,7 +14853,7 @@ module Google
14471
14853
  attr_accessor :reservation_affinity
14472
14854
 
14473
14855
  # Resource policies (names, not ULRs) applied to instances created from these
14474
- # properties.
14856
+ # properties. Note that for MachineImage, this is not supported yet.
14475
14857
  # Corresponds to the JSON property `resourcePolicies`
14476
14858
  # @return [Array<String>]
14477
14859
  attr_accessor :resource_policies
@@ -14516,6 +14898,7 @@ module Google
14516
14898
  @metadata = args[:metadata] if args.key?(:metadata)
14517
14899
  @min_cpu_platform = args[:min_cpu_platform] if args.key?(:min_cpu_platform)
14518
14900
  @network_interfaces = args[:network_interfaces] if args.key?(:network_interfaces)
14901
+ @network_performance_config = args[:network_performance_config] if args.key?(:network_performance_config)
14519
14902
  @private_ipv6_google_access = args[:private_ipv6_google_access] if args.key?(:private_ipv6_google_access)
14520
14903
  @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
14521
14904
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
@@ -15278,6 +15661,14 @@ module Google
15278
15661
  # @return [Fixnum]
15279
15662
  attr_accessor :requested_link_count
15280
15663
 
15664
+ # [Output Only] Set to true if the resource satisfies the zone separation
15665
+ # organization policy constraints and false otherwise. Defaults to false if the
15666
+ # field is not present.
15667
+ # Corresponds to the JSON property `satisfiesPzs`
15668
+ # @return [Boolean]
15669
+ attr_accessor :satisfies_pzs
15670
+ alias_method :satisfies_pzs?, :satisfies_pzs
15671
+
15281
15672
  # [Output Only] Server-defined URL for the resource.
15282
15673
  # Corresponds to the JSON property `selfLink`
15283
15674
  # @return [String]
@@ -15320,6 +15711,7 @@ module Google
15320
15711
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
15321
15712
  @provisioned_link_count = args[:provisioned_link_count] if args.key?(:provisioned_link_count)
15322
15713
  @requested_link_count = args[:requested_link_count] if args.key?(:requested_link_count)
15714
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
15323
15715
  @self_link = args[:self_link] if args.key?(:self_link)
15324
15716
  @state = args[:state] if args.key?(:state)
15325
15717
  end
@@ -15526,6 +15918,14 @@ module Google
15526
15918
  # @return [String]
15527
15919
  attr_accessor :router
15528
15920
 
15921
+ # [Output Only] Set to true if the resource satisfies the zone separation
15922
+ # organization policy constraints and false otherwise. Defaults to false if the
15923
+ # field is not present.
15924
+ # Corresponds to the JSON property `satisfiesPzs`
15925
+ # @return [Boolean]
15926
+ attr_accessor :satisfies_pzs
15927
+ alias_method :satisfies_pzs?, :satisfies_pzs
15928
+
15529
15929
  # [Output Only] Server-defined URL for the resource.
15530
15930
  # Corresponds to the JSON property `selfLink`
15531
15931
  # @return [String]
@@ -15595,6 +15995,7 @@ module Google
15595
15995
  @private_interconnect_info = args[:private_interconnect_info] if args.key?(:private_interconnect_info)
15596
15996
  @region = args[:region] if args.key?(:region)
15597
15997
  @router = args[:router] if args.key?(:router)
15998
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
15598
15999
  @self_link = args[:self_link] if args.key?(:self_link)
15599
16000
  @state = args[:state] if args.key?(:state)
15600
16001
  @type = args[:type] if args.key?(:type)
@@ -16422,6 +16823,13 @@ module Google
16422
16823
  # @return [String]
16423
16824
  attr_accessor :status
16424
16825
 
16826
+ # [Output Only] Set to true for locations that support physical zone separation.
16827
+ # Defaults to false if the field is not present.
16828
+ # Corresponds to the JSON property `supportsPzs`
16829
+ # @return [Boolean]
16830
+ attr_accessor :supports_pzs
16831
+ alias_method :supports_pzs?, :supports_pzs
16832
+
16425
16833
  def initialize(**args)
16426
16834
  update!(**args)
16427
16835
  end
@@ -16443,6 +16851,7 @@ module Google
16443
16851
  @region_infos = args[:region_infos] if args.key?(:region_infos)
16444
16852
  @self_link = args[:self_link] if args.key?(:self_link)
16445
16853
  @status = args[:status] if args.key?(:status)
16854
+ @supports_pzs = args[:supports_pzs] if args.key?(:supports_pzs)
16446
16855
  end
16447
16856
  end
16448
16857
 
@@ -18027,18 +18436,18 @@ module Google
18027
18436
  end
18028
18437
  end
18029
18438
 
18030
- # Opaque filter criteria used by loadbalancers to restrict routing configuration
18031
- # to a limited set of loadbalancing proxies. Proxies and sidecars involved in
18032
- # loadbalancing would typically present metadata to the loadbalancers which need
18033
- # to match criteria specified here. If a match takes place, the relevant
18034
- # configuration is made available to those proxies. For each metadataFilter in
18035
- # this list, if its filterMatchCriteria is set to MATCH_ANY, at least one of the
18036
- # filterLabels must match the corresponding label provided in the metadata. If
18037
- # its filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels must
18038
- # match with corresponding labels provided in the metadata. An example for using
18039
- # metadataFilters would be: if loadbalancing involves Envoys, they will only
18040
- # receive routing configuration when values in metadataFilters match values
18041
- # supplied in of their XDS requests to loadbalancers.
18439
+ # Opaque filter criteria used by load balancers to restrict routing
18440
+ # configuration to a limited set of load balancing proxies. Proxies and sidecars
18441
+ # involved in load balancing would typically present metadata to the load
18442
+ # balancers that need to match criteria specified here. If a match takes place,
18443
+ # the relevant configuration is made available to those proxies. For each
18444
+ # metadataFilter in this list, if its filterMatchCriteria is set to MATCH_ANY,
18445
+ # at least one of the filterLabels must match the corresponding label provided
18446
+ # in the metadata. If its filterMatchCriteria is set to MATCH_ALL, then all of
18447
+ # its filterLabels must match with corresponding labels provided in the metadata.
18448
+ # An example for using metadataFilters would be: if load balancing involves
18449
+ # Envoys, they receive routing configuration when values in metadataFilters
18450
+ # match values supplied in of their XDS requests to loadbalancers.
18042
18451
  class MetadataFilter
18043
18452
  include Google::Apis::Core::Hashable
18044
18453
 
@@ -18049,11 +18458,11 @@ module Google
18049
18458
  # @return [Array<Google::Apis::ComputeV1::MetadataFilterLabelMatch>]
18050
18459
  attr_accessor :filter_labels
18051
18460
 
18052
- # Specifies how individual filterLabel matches within the list of filterLabels
18053
- # contribute towards the overall metadataFilter match. Supported values are: -
18054
- # MATCH_ANY: At least one of the filterLabels must have a matching label in the
18055
- # provided metadata. - MATCH_ALL: All filterLabels must have matching labels in
18056
- # the provided metadata.
18461
+ # Specifies how individual filter label matches within the list of filterLabels
18462
+ # and contributes toward the overall metadataFilter match. Supported values are:
18463
+ # - MATCH_ANY: at least one of the filterLabels must have a matching label in
18464
+ # the provided metadata. - MATCH_ALL: all filterLabels must have matching labels
18465
+ # in the provided metadata.
18057
18466
  # Corresponds to the JSON property `filterMatchCriteria`
18058
18467
  # @return [String]
18059
18468
  attr_accessor :filter_match_criteria
@@ -18070,7 +18479,7 @@ module Google
18070
18479
  end
18071
18480
 
18072
18481
  # MetadataFilter label name value pairs that are expected to match corresponding
18073
- # labels presented as metadata to the loadbalancer.
18482
+ # labels presented as metadata to the load balancer.
18074
18483
  class MetadataFilterLabelMatch
18075
18484
  include Google::Apis::Core::Hashable
18076
18485
 
@@ -19139,14 +19548,15 @@ module Google
19139
19548
  # @return [String]
19140
19549
  attr_accessor :name
19141
19550
 
19142
- # URL of the network resource for this instance. When creating an instance, if
19143
- # neither the network nor the subnetwork is specified, the default network
19144
- # global/networks/default is used; if the network is not specified but the
19145
- # subnetwork is specified, the network is inferred. If you specify this property,
19146
- # you can specify the network as a full or partial URL. For example, the
19147
- # following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/
19148
- # project/global/networks/ network - projects/project/global/networks/network -
19149
- # global/networks/default
19551
+ # URL of the VPC network resource for this instance. When creating an instance,
19552
+ # if neither the network nor the subnetwork is specified, the default network
19553
+ # global/networks/default is used. If the selected project doesn't have the
19554
+ # default network, you must specify a network or subnet. If the network is not
19555
+ # specified but the subnetwork is specified, the network is inferred. If you
19556
+ # specify this property, you can specify the network as a full or partial URL.
19557
+ # For example, the following are all valid URLs: - https://www.googleapis.com/
19558
+ # compute/v1/projects/project/global/networks/ network - projects/project/global/
19559
+ # networks/network - global/networks/default
19150
19560
  # Corresponds to the JSON property `network`
19151
19561
  # @return [String]
19152
19562
  attr_accessor :network
@@ -19355,7 +19765,8 @@ module Google
19355
19765
  attr_accessor :exchange_subnet_routes
19356
19766
  alias_method :exchange_subnet_routes?, :exchange_subnet_routes
19357
19767
 
19358
- # Whether to export the custom routes to peer network.
19768
+ # Whether to export the custom routes to peer network. The default value is
19769
+ # false.
19359
19770
  # Corresponds to the JSON property `exportCustomRoutes`
19360
19771
  # @return [Boolean]
19361
19772
  attr_accessor :export_custom_routes
@@ -19369,7 +19780,8 @@ module Google
19369
19780
  attr_accessor :export_subnet_routes_with_public_ip
19370
19781
  alias_method :export_subnet_routes_with_public_ip?, :export_subnet_routes_with_public_ip
19371
19782
 
19372
- # Whether to import the custom routes from peer network.
19783
+ # Whether to import the custom routes from peer network. The default value is
19784
+ # false.
19373
19785
  # Corresponds to the JSON property `importCustomRoutes`
19374
19786
  # @return [Boolean]
19375
19787
  attr_accessor :import_custom_routes
@@ -19437,6 +19849,25 @@ module Google
19437
19849
  end
19438
19850
  end
19439
19851
 
19852
+ #
19853
+ class NetworkPerformanceConfig
19854
+ include Google::Apis::Core::Hashable
19855
+
19856
+ #
19857
+ # Corresponds to the JSON property `totalEgressBandwidthTier`
19858
+ # @return [String]
19859
+ attr_accessor :total_egress_bandwidth_tier
19860
+
19861
+ def initialize(**args)
19862
+ update!(**args)
19863
+ end
19864
+
19865
+ # Update properties of this object
19866
+ def update!(**args)
19867
+ @total_egress_bandwidth_tier = args[:total_egress_bandwidth_tier] if args.key?(:total_egress_bandwidth_tier)
19868
+ end
19869
+ end
19870
+
19440
19871
  # A routing configuration attached to a network resource. The message includes
19441
19872
  # the list of routers associated with the network, and a flag indicating the
19442
19873
  # type of routing behavior to enforce network-wide.
@@ -22303,6 +22734,55 @@ module Google
22303
22734
  end
22304
22735
  end
22305
22736
 
22737
+ # Next free: 7
22738
+ class PacketIntervals
22739
+ include Google::Apis::Core::Hashable
22740
+
22741
+ # Average observed inter-packet interval in milliseconds.
22742
+ # Corresponds to the JSON property `avgMs`
22743
+ # @return [Fixnum]
22744
+ attr_accessor :avg_ms
22745
+
22746
+ # From how long ago in the past these intervals were observed.
22747
+ # Corresponds to the JSON property `duration`
22748
+ # @return [String]
22749
+ attr_accessor :duration
22750
+
22751
+ # Maximum observed inter-packet interval in milliseconds.
22752
+ # Corresponds to the JSON property `maxMs`
22753
+ # @return [Fixnum]
22754
+ attr_accessor :max_ms
22755
+
22756
+ # Minimum observed inter-packet interval in milliseconds.
22757
+ # Corresponds to the JSON property `minMs`
22758
+ # @return [Fixnum]
22759
+ attr_accessor :min_ms
22760
+
22761
+ # Number of inter-packet intervals from which these statistics were derived.
22762
+ # Corresponds to the JSON property `numIntervals`
22763
+ # @return [Fixnum]
22764
+ attr_accessor :num_intervals
22765
+
22766
+ # The type of packets for which inter-packet intervals were computed.
22767
+ # Corresponds to the JSON property `type`
22768
+ # @return [String]
22769
+ attr_accessor :type
22770
+
22771
+ def initialize(**args)
22772
+ update!(**args)
22773
+ end
22774
+
22775
+ # Update properties of this object
22776
+ def update!(**args)
22777
+ @avg_ms = args[:avg_ms] if args.key?(:avg_ms)
22778
+ @duration = args[:duration] if args.key?(:duration)
22779
+ @max_ms = args[:max_ms] if args.key?(:max_ms)
22780
+ @min_ms = args[:min_ms] if args.key?(:min_ms)
22781
+ @num_intervals = args[:num_intervals] if args.key?(:num_intervals)
22782
+ @type = args[:type] if args.key?(:type)
22783
+ end
22784
+ end
22785
+
22306
22786
  # Represents a Packet Mirroring resource. Packet Mirroring clones the traffic of
22307
22787
  # specified instances in your Virtual Private Cloud (VPC) network and forwards
22308
22788
  # it to a collector destination, such as an instance group of an internal TCP/
@@ -22928,37 +23408,37 @@ module Google
22928
23408
 
22929
23409
  # A matcher for the path portion of the URL. The BackendService from the longest-
22930
23410
  # matched rule will serve the URL. If no rule was matched, the default service
22931
- # will be used.
23411
+ # is used.
22932
23412
  class PathMatcher
22933
23413
  include Google::Apis::Core::Hashable
22934
23414
 
22935
23415
  # defaultRouteAction takes effect when none of the pathRules or routeRules match.
22936
- # The load balancer performs advanced routing actions like URL rewrites, header
22937
- # transformations, etc. prior to forwarding the request to the selected backend.
23416
+ # The load balancer performs advanced routing actions, such as URL rewrites and
23417
+ # header transformations, before forwarding the request to the selected backend.
22938
23418
  # If defaultRouteAction specifies any weightedBackendServices, defaultService
22939
23419
  # must not be set. Conversely if defaultService is set, defaultRouteAction
22940
23420
  # cannot contain any weightedBackendServices. Only one of defaultRouteAction or
22941
23421
  # defaultUrlRedirect must be set. UrlMaps for external HTTP(S) load balancers
22942
- # support only the urlRewrite action within a pathMatcher's defaultRouteAction.
23422
+ # support only the urlRewrite action within a path matcher's defaultRouteAction.
22943
23423
  # Corresponds to the JSON property `defaultRouteAction`
22944
23424
  # @return [Google::Apis::ComputeV1::HttpRouteAction]
22945
23425
  attr_accessor :default_route_action
22946
23426
 
22947
- # The full or partial URL to the BackendService resource. This will be used if
23427
+ # The full or partial URL to the BackendService resource. This URL is used if
22948
23428
  # none of the pathRules or routeRules defined by this PathMatcher are matched.
22949
23429
  # For example, the following are all valid URLs to a BackendService resource: -
22950
23430
  # https://www.googleapis.com/compute/v1/projects/project /global/backendServices/
22951
23431
  # backendService - compute/v1/projects/project/global/backendServices/
22952
23432
  # backendService - global/backendServices/backendService If defaultRouteAction
22953
- # is additionally specified, advanced routing actions like URL Rewrites, etc.
22954
- # take effect prior to sending the request to the backend. However, if
22955
- # defaultService is specified, defaultRouteAction cannot contain any
22956
- # weightedBackendServices. Conversely, if defaultRouteAction specifies any
22957
- # weightedBackendServices, defaultService must not be specified. Only one of
22958
- # defaultService, defaultUrlRedirect or defaultRouteAction.
22959
- # weightedBackendService must be set. Authorization requires one or more of the
22960
- # following Google IAM permissions on the specified resource default_service: -
22961
- # compute.backendBuckets.use - compute.backendServices.use
23433
+ # is also specified, advanced routing actions, such as URL rewrites, take effect
23434
+ # before sending the request to the backend. However, if defaultService is
23435
+ # specified, defaultRouteAction cannot contain any weightedBackendServices.
23436
+ # Conversely, if defaultRouteAction specifies any weightedBackendServices,
23437
+ # defaultService must not be specified. Only one of defaultService,
23438
+ # defaultUrlRedirect , or defaultRouteAction.weightedBackendService must be set.
23439
+ # Authorization requires one or more of the following Google IAM permissions on
23440
+ # the specified resource default_service: - compute.backendBuckets.use - compute.
23441
+ # backendServices.use
22962
23442
  # Corresponds to the JSON property `defaultService`
22963
23443
  # @return [String]
22964
23444
  attr_accessor :default_service
@@ -23034,23 +23514,23 @@ module Google
23034
23514
  attr_accessor :paths
23035
23515
 
23036
23516
  # In response to a matching path, the load balancer performs advanced routing
23037
- # actions like URL rewrites, header transformations, etc. prior to forwarding
23517
+ # actions, such as URL rewrites and header transformations, before forwarding
23038
23518
  # the request to the selected backend. If routeAction specifies any
23039
23519
  # weightedBackendServices, service must not be set. Conversely if service is set,
23040
23520
  # routeAction cannot contain any weightedBackendServices. Only one of
23041
- # routeAction or urlRedirect must be set. UrlMaps for external HTTP(S) load
23042
- # balancers support only the urlRewrite action within a pathRule's routeAction.
23521
+ # routeAction or urlRedirect must be set. URL maps for external HTTP(S) load
23522
+ # balancers support only the urlRewrite action within a path rule's routeAction.
23043
23523
  # Corresponds to the JSON property `routeAction`
23044
23524
  # @return [Google::Apis::ComputeV1::HttpRouteAction]
23045
23525
  attr_accessor :route_action
23046
23526
 
23047
23527
  # The full or partial URL of the backend service resource to which traffic is
23048
- # directed if this rule is matched. If routeAction is additionally specified,
23049
- # advanced routing actions like URL Rewrites, etc. take effect prior to sending
23050
- # the request to the backend. However, if service is specified, routeAction
23051
- # cannot contain any weightedBackendService s. Conversely, if routeAction
23052
- # specifies any weightedBackendServices, service must not be specified. Only one
23053
- # of urlRedirect, service or routeAction.weightedBackendService must be set.
23528
+ # directed if this rule is matched. If routeAction is also specified, advanced
23529
+ # routing actions, such as URL rewrites, take effect before sending the request
23530
+ # to the backend. However, if service is specified, routeAction cannot contain
23531
+ # any weightedBackendServices. Conversely, if routeAction specifies any
23532
+ # weightedBackendServices, service must not be specified. Only one of
23533
+ # urlRedirect, service or routeAction.weightedBackendService must be set.
23054
23534
  # Corresponds to the JSON property `service`
23055
23535
  # @return [String]
23056
23536
  attr_accessor :service
@@ -23122,31 +23602,31 @@ module Google
23122
23602
 
23123
23603
  # An Identity and Access Management (IAM) policy, which specifies access
23124
23604
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
23125
- # A `binding` binds one or more `members` to a single `role`. Members can be
23126
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
23127
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
23128
- # role or a user-created custom role. For some types of Google Cloud resources,
23129
- # a `binding` can also specify a `condition`, which is a logical expression that
23130
- # allows access to a resource only if the expression evaluates to `true`. A
23131
- # condition can add constraints based on attributes of the request, the resource,
23132
- # or both. To learn which resources support conditions in their IAM policies,
23133
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
23134
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
23135
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
23136
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
23137
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
23138
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
23139
- # title": "expirable access", "description": "Does not grant access after Sep
23140
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
23141
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
23142
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
23143
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
23144
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
23145
- # roles/resourcemanager.organizationViewer condition: title: expirable access
23146
- # description: Does not grant access after Sep 2020 expression: request.time <
23147
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
23148
- # description of IAM and its features, see the [IAM documentation](https://cloud.
23149
- # google.com/iam/docs/).
23605
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
23606
+ # Principals can be user accounts, service accounts, Google groups, and domains (
23607
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
23608
+ # an IAM predefined role or a user-created custom role. For some types of Google
23609
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
23610
+ # logical expression that allows access to a resource only if the expression
23611
+ # evaluates to `true`. A condition can add constraints based on attributes of
23612
+ # the request, the resource, or both. To learn which resources support
23613
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
23614
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
23615
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
23616
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
23617
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
23618
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
23619
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
23620
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
23621
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
23622
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
23623
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
23624
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
23625
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
23626
+ # access description: Does not grant access after Sep 2020 expression: request.
23627
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
23628
+ # a description of IAM and its features, see the [IAM documentation](https://
23629
+ # cloud.google.com/iam/docs/).
23150
23630
  class Policy
23151
23631
  include Google::Apis::Core::Hashable
23152
23632
 
@@ -23155,9 +23635,14 @@ module Google
23155
23635
  # @return [Array<Google::Apis::ComputeV1::AuditConfig>]
23156
23636
  attr_accessor :audit_configs
23157
23637
 
23158
- # Associates a list of `members` to a `role`. Optionally, may specify a `
23159
- # condition` that determines how and when the `bindings` are applied. Each of
23160
- # the `bindings` must contain at least one member.
23638
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
23639
+ # specify a `condition` that determines how and when the `bindings` are applied.
23640
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
23641
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
23642
+ # can be Google groups. Each occurrence of a principal counts towards these
23643
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
23644
+ # example.com`, and not to any other principal, then you can add another 1,450
23645
+ # principals to the `bindings` in the `Policy`.
23161
23646
  # Corresponds to the JSON property `bindings`
23162
23647
  # @return [Array<Google::Apis::ComputeV1::Binding>]
23163
23648
  attr_accessor :bindings
@@ -23178,12 +23663,6 @@ module Google
23178
23663
  # @return [String]
23179
23664
  attr_accessor :etag
23180
23665
 
23181
- # This is deprecated and has no effect. Do not use.
23182
- # Corresponds to the JSON property `iamOwned`
23183
- # @return [Boolean]
23184
- attr_accessor :iam_owned
23185
- alias_method :iam_owned?, :iam_owned
23186
-
23187
23666
  # This is deprecated and has no effect. Do not use.
23188
23667
  # Corresponds to the JSON property `rules`
23189
23668
  # @return [Array<Google::Apis::ComputeV1::Rule>]
@@ -23217,7 +23696,6 @@ module Google
23217
23696
  @audit_configs = args[:audit_configs] if args.key?(:audit_configs)
23218
23697
  @bindings = args[:bindings] if args.key?(:bindings)
23219
23698
  @etag = args[:etag] if args.key?(:etag)
23220
- @iam_owned = args[:iam_owned] if args.key?(:iam_owned)
23221
23699
  @rules = args[:rules] if args.key?(:rules)
23222
23700
  @version = args[:version] if args.key?(:version)
23223
23701
  end
@@ -23598,7 +24076,13 @@ module Google
23598
24076
  # @return [String]
23599
24077
  attr_accessor :shared_secret
23600
24078
 
23601
- # The status of the public advertised prefix.
24079
+ # The status of the public advertised prefix. Possible values include: - `
24080
+ # INITIAL`: RPKI validation is complete. - `PTR_CONFIGURED`: User has configured
24081
+ # the PTR. - `VALIDATED`: Reverse DNS lookup is successful. - `
24082
+ # REVERSE_DNS_LOOKUP_FAILED`: Reverse DNS lookup failed. - `
24083
+ # PREFIX_CONFIGURATION_IN_PROGRESS`: The prefix is being configured. - `
24084
+ # PREFIX_CONFIGURATION_COMPLETE`: The prefix is fully configured. - `
24085
+ # PREFIX_REMOVAL_IN_PROGRESS`: The prefix is being removed.
23602
24086
  # Corresponds to the JSON property `status`
23603
24087
  # @return [String]
23604
24088
  attr_accessor :status
@@ -23877,7 +24361,12 @@ module Google
23877
24361
  # @return [String]
23878
24362
  attr_accessor :self_link
23879
24363
 
23880
- # [Output Only] The status of the public delegated prefix.
24364
+ # [Output Only] The status of the public delegated prefix, which can be one of
24365
+ # following values: - `INITIALIZING` The public delegated prefix is being
24366
+ # initialized and addresses cannot be created yet. - `READY_TO_ANNOUNCE` The
24367
+ # public delegated prefix is a live migration prefix and is active. - `ANNOUNCED`
24368
+ # The public delegated prefix is active. - `DELETING` The public delegated
24369
+ # prefix is being deprovsioned.
23881
24370
  # Corresponds to the JSON property `status`
23882
24371
  # @return [String]
23883
24372
  attr_accessor :status
@@ -25737,31 +26226,31 @@ module Google
25737
26226
 
25738
26227
  # An Identity and Access Management (IAM) policy, which specifies access
25739
26228
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
25740
- # A `binding` binds one or more `members` to a single `role`. Members can be
25741
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
25742
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
25743
- # role or a user-created custom role. For some types of Google Cloud resources,
25744
- # a `binding` can also specify a `condition`, which is a logical expression that
25745
- # allows access to a resource only if the expression evaluates to `true`. A
25746
- # condition can add constraints based on attributes of the request, the resource,
25747
- # or both. To learn which resources support conditions in their IAM policies,
25748
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
25749
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
25750
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
25751
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
25752
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
25753
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
25754
- # title": "expirable access", "description": "Does not grant access after Sep
25755
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
25756
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
25757
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
25758
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
25759
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
25760
- # roles/resourcemanager.organizationViewer condition: title: expirable access
25761
- # description: Does not grant access after Sep 2020 expression: request.time <
25762
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
25763
- # description of IAM and its features, see the [IAM documentation](https://cloud.
25764
- # google.com/iam/docs/).
26229
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
26230
+ # Principals can be user accounts, service accounts, Google groups, and domains (
26231
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
26232
+ # an IAM predefined role or a user-created custom role. For some types of Google
26233
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
26234
+ # logical expression that allows access to a resource only if the expression
26235
+ # evaluates to `true`. A condition can add constraints based on attributes of
26236
+ # the request, the resource, or both. To learn which resources support
26237
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
26238
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
26239
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
26240
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
26241
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
26242
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
26243
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
26244
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
26245
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
26246
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
26247
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
26248
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
26249
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
26250
+ # access description: Does not grant access after Sep 2020 expression: request.
26251
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
26252
+ # a description of IAM and its features, see the [IAM documentation](https://
26253
+ # cloud.google.com/iam/docs/).
25765
26254
  # Corresponds to the JSON property `policy`
25766
26255
  # @return [Google::Apis::ComputeV1::Policy]
25767
26256
  attr_accessor :policy
@@ -25802,17 +26291,17 @@ module Google
25802
26291
  class RegionUrlMapsValidateRequest
25803
26292
  include Google::Apis::Core::Hashable
25804
26293
 
25805
- # Represents a URL Map resource. Google Compute Engine has two URL Map resources:
25806
- # * [Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/
25807
- # docs/reference/rest/v1/regionUrlMaps) A URL map resource is a component of
25808
- # certain types of GCP load balancers and Traffic Director. * urlMaps are used
25809
- # by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are
25810
- # used by internal HTTP(S) load balancers. For a list of supported URL map
25811
- # features by load balancer type, see the Load balancing features: Routing and
26294
+ # Represents a URL Map resource. Compute Engine has two URL Map resources: * [
26295
+ # Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/docs/
26296
+ # reference/rest/v1/regionUrlMaps) A URL map resource is a component of certain
26297
+ # types of cloud load balancers and Traffic Director: * urlMaps are used by
26298
+ # external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are used
26299
+ # by internal HTTP(S) load balancers. For a list of supported URL map features
26300
+ # by the load balancer type, see the Load balancing features: Routing and
25812
26301
  # traffic management table. For a list of supported URL map features for Traffic
25813
26302
  # Director, see the Traffic Director features: Routing and traffic management
25814
- # table. This resource defines mappings from host names and URL paths to either
25815
- # a backend service or a backend bucket. To use the global urlMaps resource, the
26303
+ # table. This resource defines mappings from hostnames and URL paths to either a
26304
+ # backend service or a backend bucket. To use the global urlMaps resource, the
25816
26305
  # backend service must have a loadBalancingScheme of either EXTERNAL or
25817
26306
  # INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service
25818
26307
  # must have a loadBalancingScheme of INTERNAL_MANAGED. For more information,
@@ -25832,9 +26321,9 @@ module Google
25832
26321
  end
25833
26322
 
25834
26323
  # A policy that specifies how requests intended for the route's backends are
25835
- # shadowed to a separate mirrored backend service. Loadbalancer does not wait
25836
- # for responses from the shadow service. Prior to sending traffic to the shadow
25837
- # service, the host / authority header is suffixed with -shadow.
26324
+ # shadowed to a separate mirrored backend service. The load balancer doesn't
26325
+ # wait for responses from the shadow service. Before sending traffic to the
26326
+ # shadow service, the host or authority header is suffixed with -shadow.
25838
26327
  class RequestMirrorPolicy
25839
26328
  include Google::Apis::Core::Hashable
25840
26329
 
@@ -25910,6 +26399,11 @@ module Google
25910
26399
  # @return [String]
25911
26400
  attr_accessor :self_link
25912
26401
 
26402
+ # The share setting for reservations and sole tenancy node groups.
26403
+ # Corresponds to the JSON property `shareSettings`
26404
+ # @return [Google::Apis::ComputeV1::ShareSettings]
26405
+ attr_accessor :share_settings
26406
+
25913
26407
  # This reservation type allows to pre allocate specific instance configuration.
25914
26408
  # Next ID: 5
25915
26409
  # Corresponds to the JSON property `specificReservation`
@@ -25949,6 +26443,7 @@ module Google
25949
26443
  @name = args[:name] if args.key?(:name)
25950
26444
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
25951
26445
  @self_link = args[:self_link] if args.key?(:self_link)
26446
+ @share_settings = args[:share_settings] if args.key?(:share_settings)
25952
26447
  @specific_reservation = args[:specific_reservation] if args.key?(:specific_reservation)
25953
26448
  @specific_reservation_required = args[:specific_reservation_required] if args.key?(:specific_reservation_required)
25954
26449
  @status = args[:status] if args.key?(:status)
@@ -27258,6 +27753,11 @@ module Google
27258
27753
  class Route
27259
27754
  include Google::Apis::Core::Hashable
27260
27755
 
27756
+ # [Output Only] AS path.
27757
+ # Corresponds to the JSON property `asPaths`
27758
+ # @return [Array<Google::Apis::ComputeV1::RouteAsPath>]
27759
+ attr_accessor :as_paths
27760
+
27261
27761
  # [Output Only] Creation timestamp in RFC3339 text format.
27262
27762
  # Corresponds to the JSON property `creationTimestamp`
27263
27763
  # @return [String]
@@ -27355,6 +27855,15 @@ module Google
27355
27855
  # @return [Fixnum]
27356
27856
  attr_accessor :priority
27357
27857
 
27858
+ # [Output Only] The type of this route, which can be one of the following values:
27859
+ # - 'TRANSIT' for a transit route that this router learned from another Cloud
27860
+ # Router and will readvertise to one of its BGP peers - 'SUBNET' for a route
27861
+ # from a subnet of the VPC - 'BGP' for a route learned from a BGP peer of this
27862
+ # router - 'STATIC' for a static route
27863
+ # Corresponds to the JSON property `routeType`
27864
+ # @return [String]
27865
+ attr_accessor :route_type
27866
+
27358
27867
  # [Output Only] Server-defined fully-qualified URL for this resource.
27359
27868
  # Corresponds to the JSON property `selfLink`
27360
27869
  # @return [String]
@@ -27377,6 +27886,7 @@ module Google
27377
27886
 
27378
27887
  # Update properties of this object
27379
27888
  def update!(**args)
27889
+ @as_paths = args[:as_paths] if args.key?(:as_paths)
27380
27890
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
27381
27891
  @description = args[:description] if args.key?(:description)
27382
27892
  @dest_range = args[:dest_range] if args.key?(:dest_range)
@@ -27392,6 +27902,7 @@ module Google
27392
27902
  @next_hop_peering = args[:next_hop_peering] if args.key?(:next_hop_peering)
27393
27903
  @next_hop_vpn_tunnel = args[:next_hop_vpn_tunnel] if args.key?(:next_hop_vpn_tunnel)
27394
27904
  @priority = args[:priority] if args.key?(:priority)
27905
+ @route_type = args[:route_type] if args.key?(:route_type)
27395
27906
  @self_link = args[:self_link] if args.key?(:self_link)
27396
27907
  @tags = args[:tags] if args.key?(:tags)
27397
27908
  @warnings = args[:warnings] if args.key?(:warnings)
@@ -27462,6 +27973,37 @@ module Google
27462
27973
  end
27463
27974
  end
27464
27975
 
27976
+ #
27977
+ class RouteAsPath
27978
+ include Google::Apis::Core::Hashable
27979
+
27980
+ # [Output Only] The AS numbers of the AS Path.
27981
+ # Corresponds to the JSON property `asLists`
27982
+ # @return [Array<Fixnum>]
27983
+ attr_accessor :as_lists
27984
+
27985
+ # [Output Only] The type of the AS Path, which can be one of the following
27986
+ # values: - 'AS_SET': unordered set of autonomous systems that the route in has
27987
+ # traversed - 'AS_SEQUENCE': ordered set of autonomous systems that the route
27988
+ # has traversed - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems
27989
+ # in the local confederation that the route has traversed - 'AS_CONFED_SET':
27990
+ # unordered set of Member Autonomous Systems in the local confederation that the
27991
+ # route has traversed
27992
+ # Corresponds to the JSON property `pathSegmentType`
27993
+ # @return [String]
27994
+ attr_accessor :path_segment_type
27995
+
27996
+ def initialize(**args)
27997
+ update!(**args)
27998
+ end
27999
+
28000
+ # Update properties of this object
28001
+ def update!(**args)
28002
+ @as_lists = args[:as_lists] if args.key?(:as_lists)
28003
+ @path_segment_type = args[:path_segment_type] if args.key?(:path_segment_type)
28004
+ end
28005
+ end
28006
+
27465
28007
  # Contains a list of Route resources.
27466
28008
  class RouteList
27467
28009
  include Google::Apis::Core::Hashable
@@ -27928,6 +28470,11 @@ module Google
27928
28470
  # @return [Fixnum]
27929
28471
  attr_accessor :advertised_route_priority
27930
28472
 
28473
+ # BFD configuration for the BGP peering.
28474
+ # Corresponds to the JSON property `bfd`
28475
+ # @return [Google::Apis::ComputeV1::RouterBgpPeerBfd]
28476
+ attr_accessor :bfd
28477
+
27931
28478
  # The status of the BGP peer connection. If set to FALSE, any active session
27932
28479
  # with the peer is terminated and all associated routing information is removed.
27933
28480
  # If set to TRUE, the peer connection can be established with routing
@@ -27979,6 +28526,14 @@ module Google
27979
28526
  # @return [String]
27980
28527
  attr_accessor :peer_ip_address
27981
28528
 
28529
+ # URI of the VM instance that is used as third-party router appliances such as
28530
+ # Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance
28531
+ # must be located in zones contained in the same region as this Cloud Router.
28532
+ # The VM instance is the peer side of the BGP session.
28533
+ # Corresponds to the JSON property `routerApplianceInstance`
28534
+ # @return [String]
28535
+ attr_accessor :router_appliance_instance
28536
+
27982
28537
  def initialize(**args)
27983
28538
  update!(**args)
27984
28539
  end
@@ -27989,6 +28544,7 @@ module Google
27989
28544
  @advertised_groups = args[:advertised_groups] if args.key?(:advertised_groups)
27990
28545
  @advertised_ip_ranges = args[:advertised_ip_ranges] if args.key?(:advertised_ip_ranges)
27991
28546
  @advertised_route_priority = args[:advertised_route_priority] if args.key?(:advertised_route_priority)
28547
+ @bfd = args[:bfd] if args.key?(:bfd)
27992
28548
  @enable = args[:enable] if args.key?(:enable)
27993
28549
  @interface_name = args[:interface_name] if args.key?(:interface_name)
27994
28550
  @ip_address = args[:ip_address] if args.key?(:ip_address)
@@ -27996,6 +28552,58 @@ module Google
27996
28552
  @name = args[:name] if args.key?(:name)
27997
28553
  @peer_asn = args[:peer_asn] if args.key?(:peer_asn)
27998
28554
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
28555
+ @router_appliance_instance = args[:router_appliance_instance] if args.key?(:router_appliance_instance)
28556
+ end
28557
+ end
28558
+
28559
+ #
28560
+ class RouterBgpPeerBfd
28561
+ include Google::Apis::Core::Hashable
28562
+
28563
+ # The minimum interval, in milliseconds, between BFD control packets received
28564
+ # from the peer router. The actual value is negotiated between the two routers
28565
+ # and is equal to the greater of this value and the transmit interval of the
28566
+ # other router. If set, this value must be between 1000 and 30000. The default
28567
+ # is 1000.
28568
+ # Corresponds to the JSON property `minReceiveInterval`
28569
+ # @return [Fixnum]
28570
+ attr_accessor :min_receive_interval
28571
+
28572
+ # The minimum interval, in milliseconds, between BFD control packets transmitted
28573
+ # to the peer router. The actual value is negotiated between the two routers and
28574
+ # is equal to the greater of this value and the corresponding receive interval
28575
+ # of the other router. If set, this value must be between 1000 and 30000. The
28576
+ # default is 1000.
28577
+ # Corresponds to the JSON property `minTransmitInterval`
28578
+ # @return [Fixnum]
28579
+ attr_accessor :min_transmit_interval
28580
+
28581
+ # The number of consecutive BFD packets that must be missed before BFD declares
28582
+ # that a peer is unavailable. If set, the value must be a value between 5 and 16.
28583
+ # The default is 5.
28584
+ # Corresponds to the JSON property `multiplier`
28585
+ # @return [Fixnum]
28586
+ attr_accessor :multiplier
28587
+
28588
+ # The BFD session initialization mode for this BGP peer. If set to ACTIVE, the
28589
+ # Cloud Router will initiate the BFD session for this BGP peer. If set to
28590
+ # PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD
28591
+ # session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP
28592
+ # peer. The default is PASSIVE.
28593
+ # Corresponds to the JSON property `sessionInitializationMode`
28594
+ # @return [String]
28595
+ attr_accessor :session_initialization_mode
28596
+
28597
+ def initialize(**args)
28598
+ update!(**args)
28599
+ end
28600
+
28601
+ # Update properties of this object
28602
+ def update!(**args)
28603
+ @min_receive_interval = args[:min_receive_interval] if args.key?(:min_receive_interval)
28604
+ @min_transmit_interval = args[:min_transmit_interval] if args.key?(:min_transmit_interval)
28605
+ @multiplier = args[:multiplier] if args.key?(:multiplier)
28606
+ @session_initialization_mode = args[:session_initialization_mode] if args.key?(:session_initialization_mode)
27999
28607
  end
28000
28608
  end
28001
28609
 
@@ -28045,6 +28653,35 @@ module Google
28045
28653
  # @return [String]
28046
28654
  attr_accessor :name
28047
28655
 
28656
+ # The regional private internal IP address that is used to establish BGP
28657
+ # sessions to a VM instance acting as a third-party Router Appliance, such as a
28658
+ # Next Gen Firewall, a Virtual Router, or an SD-WAN VM.
28659
+ # Corresponds to the JSON property `privateIpAddress`
28660
+ # @return [String]
28661
+ attr_accessor :private_ip_address
28662
+
28663
+ # Name of the interface that will be redundant with the current interface you
28664
+ # are creating. The redundantInterface must belong to the same Cloud Router as
28665
+ # the interface here. To establish the BGP session to a Router Appliance VM, you
28666
+ # must create two BGP peers. The two BGP peers must be attached to two separate
28667
+ # interfaces that are redundant with each other. The redundant_interface must be
28668
+ # 1-63 characters long, and comply with RFC1035. Specifically, the
28669
+ # redundant_interface must be 1-63 characters long and match the regular
28670
+ # expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
28671
+ # be a lowercase letter, and all following characters must be a dash, lowercase
28672
+ # letter, or digit, except the last character, which cannot be a dash.
28673
+ # Corresponds to the JSON property `redundantInterface`
28674
+ # @return [String]
28675
+ attr_accessor :redundant_interface
28676
+
28677
+ # The URI of the subnetwork resource that this interface belongs to, which must
28678
+ # be in the same region as the Cloud Router. When you establish a BGP session to
28679
+ # a VM instance using this interface, the VM instance must belong to the same
28680
+ # subnetwork as the subnetwork specified here.
28681
+ # Corresponds to the JSON property `subnetwork`
28682
+ # @return [String]
28683
+ attr_accessor :subnetwork
28684
+
28048
28685
  def initialize(**args)
28049
28686
  update!(**args)
28050
28687
  end
@@ -28056,6 +28693,9 @@ module Google
28056
28693
  @linked_vpn_tunnel = args[:linked_vpn_tunnel] if args.key?(:linked_vpn_tunnel)
28057
28694
  @management_type = args[:management_type] if args.key?(:management_type)
28058
28695
  @name = args[:name] if args.key?(:name)
28696
+ @private_ip_address = args[:private_ip_address] if args.key?(:private_ip_address)
28697
+ @redundant_interface = args[:redundant_interface] if args.key?(:redundant_interface)
28698
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
28059
28699
  end
28060
28700
  end
28061
28701
 
@@ -28191,6 +28831,17 @@ module Google
28191
28831
  # @return [Array<String>]
28192
28832
  attr_accessor :drain_nat_ips
28193
28833
 
28834
+ # Enable Dynamic Port Allocation. If not specified, it is disabled by default.
28835
+ # If set to true, - Dynamic Port Allocation will be enabled on this NAT config. -
28836
+ # enableEndpointIndependentMapping cannot be set to true. - If minPorts is set,
28837
+ # minPortsPerVm must be set to a power of two greater than or equal to 32. If
28838
+ # minPortsPerVm is not set, a minimum of 32 ports will be allocated to a VM from
28839
+ # this NAT config.
28840
+ # Corresponds to the JSON property `enableDynamicPortAllocation`
28841
+ # @return [Boolean]
28842
+ attr_accessor :enable_dynamic_port_allocation
28843
+ alias_method :enable_dynamic_port_allocation?, :enable_dynamic_port_allocation
28844
+
28194
28845
  #
28195
28846
  # Corresponds to the JSON property `enableEndpointIndependentMapping`
28196
28847
  # @return [Boolean]
@@ -28207,6 +28858,17 @@ module Google
28207
28858
  # @return [Google::Apis::ComputeV1::RouterNatLogConfig]
28208
28859
  attr_accessor :log_config
28209
28860
 
28861
+ # Maximum number of ports allocated to a VM from this NAT config when Dynamic
28862
+ # Port Allocation is enabled. If Dynamic Port Allocation is not enabled, this
28863
+ # field has no effect. If Dynamic Port Allocation is enabled, and this field is
28864
+ # set, it must be set to a power of two greater than minPortsPerVm, or 64 if
28865
+ # minPortsPerVm is not set. If Dynamic Port Allocation is enabled and this field
28866
+ # is not set, a maximum of 65536 ports will be allocated to a VM from this NAT
28867
+ # config.
28868
+ # Corresponds to the JSON property `maxPortsPerVm`
28869
+ # @return [Fixnum]
28870
+ attr_accessor :max_ports_per_vm
28871
+
28210
28872
  # Minimum number of ports allocated to a VM from this NAT config. If not set, a
28211
28873
  # default number of ports is allocated to a VM. This is rounded up to the
28212
28874
  # nearest power of 2. For example, if the value of this field is 50, at least 64
@@ -28236,6 +28898,11 @@ module Google
28236
28898
  # @return [Array<String>]
28237
28899
  attr_accessor :nat_ips
28238
28900
 
28901
+ # A list of rules associated with this NAT.
28902
+ # Corresponds to the JSON property `rules`
28903
+ # @return [Array<Google::Apis::ComputeV1::RouterNatRule>]
28904
+ attr_accessor :rules
28905
+
28239
28906
  # Specify the Nat option, which can take one of the following values: -
28240
28907
  # ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every Subnetwork are
28241
28908
  # allowed to Nat. - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP
@@ -28262,6 +28929,12 @@ module Google
28262
28929
  # @return [Fixnum]
28263
28930
  attr_accessor :tcp_established_idle_timeout_sec
28264
28931
 
28932
+ # Timeout (in seconds) for TCP connections that are in TIME_WAIT state. Defaults
28933
+ # to 120s if not set.
28934
+ # Corresponds to the JSON property `tcpTimeWaitTimeoutSec`
28935
+ # @return [Fixnum]
28936
+ attr_accessor :tcp_time_wait_timeout_sec
28937
+
28265
28938
  # Timeout (in seconds) for TCP transitory connections. Defaults to 30s if not
28266
28939
  # set.
28267
28940
  # Corresponds to the JSON property `tcpTransitoryIdleTimeoutSec`
@@ -28280,16 +28953,20 @@ module Google
28280
28953
  # Update properties of this object
28281
28954
  def update!(**args)
28282
28955
  @drain_nat_ips = args[:drain_nat_ips] if args.key?(:drain_nat_ips)
28956
+ @enable_dynamic_port_allocation = args[:enable_dynamic_port_allocation] if args.key?(:enable_dynamic_port_allocation)
28283
28957
  @enable_endpoint_independent_mapping = args[:enable_endpoint_independent_mapping] if args.key?(:enable_endpoint_independent_mapping)
28284
28958
  @icmp_idle_timeout_sec = args[:icmp_idle_timeout_sec] if args.key?(:icmp_idle_timeout_sec)
28285
28959
  @log_config = args[:log_config] if args.key?(:log_config)
28960
+ @max_ports_per_vm = args[:max_ports_per_vm] if args.key?(:max_ports_per_vm)
28286
28961
  @min_ports_per_vm = args[:min_ports_per_vm] if args.key?(:min_ports_per_vm)
28287
28962
  @name = args[:name] if args.key?(:name)
28288
28963
  @nat_ip_allocate_option = args[:nat_ip_allocate_option] if args.key?(:nat_ip_allocate_option)
28289
28964
  @nat_ips = args[:nat_ips] if args.key?(:nat_ips)
28965
+ @rules = args[:rules] if args.key?(:rules)
28290
28966
  @source_subnetwork_ip_ranges_to_nat = args[:source_subnetwork_ip_ranges_to_nat] if args.key?(:source_subnetwork_ip_ranges_to_nat)
28291
28967
  @subnetworks = args[:subnetworks] if args.key?(:subnetworks)
28292
28968
  @tcp_established_idle_timeout_sec = args[:tcp_established_idle_timeout_sec] if args.key?(:tcp_established_idle_timeout_sec)
28969
+ @tcp_time_wait_timeout_sec = args[:tcp_time_wait_timeout_sec] if args.key?(:tcp_time_wait_timeout_sec)
28293
28970
  @tcp_transitory_idle_timeout_sec = args[:tcp_transitory_idle_timeout_sec] if args.key?(:tcp_transitory_idle_timeout_sec)
28294
28971
  @udp_idle_timeout_sec = args[:udp_idle_timeout_sec] if args.key?(:udp_idle_timeout_sec)
28295
28972
  end
@@ -28325,6 +29002,81 @@ module Google
28325
29002
  end
28326
29003
  end
28327
29004
 
29005
+ #
29006
+ class RouterNatRule
29007
+ include Google::Apis::Core::Hashable
29008
+
29009
+ # The action to be enforced for traffic that matches this rule.
29010
+ # Corresponds to the JSON property `action`
29011
+ # @return [Google::Apis::ComputeV1::RouterNatRuleAction]
29012
+ attr_accessor :action
29013
+
29014
+ # An optional description of this rule.
29015
+ # Corresponds to the JSON property `description`
29016
+ # @return [String]
29017
+ attr_accessor :description
29018
+
29019
+ # CEL expression that specifies the match condition that egress traffic from a
29020
+ # VM is evaluated against. If it evaluates to true, the corresponding `action`
29021
+ # is enforced. The following examples are valid match expressions for public NAT:
29022
+ # "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.
29023
+ # 0/16')" "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" The
29024
+ # following example is a valid match expression for private NAT: "nexthop.hub ==
29025
+ # 'https://networkconnectivity.googleapis.com/v1alpha1/projects/my-project/
29026
+ # global/hub/hub-1'"
29027
+ # Corresponds to the JSON property `match`
29028
+ # @return [String]
29029
+ attr_accessor :match
29030
+
29031
+ # An integer uniquely identifying a rule in the list. The rule number must be a
29032
+ # positive value between 0 and 65000, and must be unique among rules within a
29033
+ # NAT.
29034
+ # Corresponds to the JSON property `ruleNumber`
29035
+ # @return [Fixnum]
29036
+ attr_accessor :rule_number
29037
+
29038
+ def initialize(**args)
29039
+ update!(**args)
29040
+ end
29041
+
29042
+ # Update properties of this object
29043
+ def update!(**args)
29044
+ @action = args[:action] if args.key?(:action)
29045
+ @description = args[:description] if args.key?(:description)
29046
+ @match = args[:match] if args.key?(:match)
29047
+ @rule_number = args[:rule_number] if args.key?(:rule_number)
29048
+ end
29049
+ end
29050
+
29051
+ #
29052
+ class RouterNatRuleAction
29053
+ include Google::Apis::Core::Hashable
29054
+
29055
+ # A list of URLs of the IP resources used for this NAT rule. These IP addresses
29056
+ # must be valid static external IP addresses assigned to the project. This field
29057
+ # is used for public NAT.
29058
+ # Corresponds to the JSON property `sourceNatActiveIps`
29059
+ # @return [Array<String>]
29060
+ attr_accessor :source_nat_active_ips
29061
+
29062
+ # A list of URLs of the IP resources to be drained. These IPs must be valid
29063
+ # static external IPs that have been assigned to the NAT. These IPs should be
29064
+ # used for updating/patching a NAT rule only. This field is used for public NAT.
29065
+ # Corresponds to the JSON property `sourceNatDrainIps`
29066
+ # @return [Array<String>]
29067
+ attr_accessor :source_nat_drain_ips
29068
+
29069
+ def initialize(**args)
29070
+ update!(**args)
29071
+ end
29072
+
29073
+ # Update properties of this object
29074
+ def update!(**args)
29075
+ @source_nat_active_ips = args[:source_nat_active_ips] if args.key?(:source_nat_active_ips)
29076
+ @source_nat_drain_ips = args[:source_nat_drain_ips] if args.key?(:source_nat_drain_ips)
29077
+ end
29078
+ end
29079
+
28328
29080
  # Defines the IP ranges that want to use NAT for a subnetwork.
28329
29081
  class RouterNatSubnetworkToNat
28330
29082
  include Google::Apis::Core::Hashable
@@ -28413,6 +29165,11 @@ module Google
28413
29165
  # @return [Array<Google::Apis::ComputeV1::Route>]
28414
29166
  attr_accessor :advertised_routes
28415
29167
 
29168
+ # Next free: 15
29169
+ # Corresponds to the JSON property `bfdStatus`
29170
+ # @return [Google::Apis::ComputeV1::BfdStatus]
29171
+ attr_accessor :bfd_status
29172
+
28416
29173
  # IP address of the local BGP interface.
28417
29174
  # Corresponds to the JSON property `ipAddress`
28418
29175
  # @return [String]
@@ -28438,6 +29195,13 @@ module Google
28438
29195
  # @return [String]
28439
29196
  attr_accessor :peer_ip_address
28440
29197
 
29198
+ # [Output only] URI of the VM instance that is used as third-party router
29199
+ # appliances such as Next Gen Firewalls, Virtual Routers, or Router Appliances.
29200
+ # The VM instance is the peer side of the BGP session.
29201
+ # Corresponds to the JSON property `routerApplianceInstance`
29202
+ # @return [String]
29203
+ attr_accessor :router_appliance_instance
29204
+
28441
29205
  # BGP state as specified in RFC1771.
28442
29206
  # Corresponds to the JSON property `state`
28443
29207
  # @return [String]
@@ -28466,11 +29230,13 @@ module Google
28466
29230
  # Update properties of this object
28467
29231
  def update!(**args)
28468
29232
  @advertised_routes = args[:advertised_routes] if args.key?(:advertised_routes)
29233
+ @bfd_status = args[:bfd_status] if args.key?(:bfd_status)
28469
29234
  @ip_address = args[:ip_address] if args.key?(:ip_address)
28470
29235
  @linked_vpn_tunnel = args[:linked_vpn_tunnel] if args.key?(:linked_vpn_tunnel)
28471
29236
  @name = args[:name] if args.key?(:name)
28472
29237
  @num_learned_routes = args[:num_learned_routes] if args.key?(:num_learned_routes)
28473
29238
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
29239
+ @router_appliance_instance = args[:router_appliance_instance] if args.key?(:router_appliance_instance)
28474
29240
  @state = args[:state] if args.key?(:state)
28475
29241
  @status = args[:status] if args.key?(:status)
28476
29242
  @uptime = args[:uptime] if args.key?(:uptime)
@@ -28516,6 +29282,11 @@ module Google
28516
29282
  # @return [Fixnum]
28517
29283
  attr_accessor :num_vm_endpoints_with_nat_mappings
28518
29284
 
29285
+ # Status of rules in this NAT.
29286
+ # Corresponds to the JSON property `ruleStatus`
29287
+ # @return [Array<Google::Apis::ComputeV1::RouterStatusNatStatusNatRuleStatus>]
29288
+ attr_accessor :rule_status
29289
+
28519
29290
  # A list of fully qualified URLs of reserved IP address resources.
28520
29291
  # Corresponds to the JSON property `userAllocatedNatIpResources`
28521
29292
  # @return [Array<String>]
@@ -28539,11 +29310,58 @@ module Google
28539
29310
  @min_extra_nat_ips_needed = args[:min_extra_nat_ips_needed] if args.key?(:min_extra_nat_ips_needed)
28540
29311
  @name = args[:name] if args.key?(:name)
28541
29312
  @num_vm_endpoints_with_nat_mappings = args[:num_vm_endpoints_with_nat_mappings] if args.key?(:num_vm_endpoints_with_nat_mappings)
29313
+ @rule_status = args[:rule_status] if args.key?(:rule_status)
28542
29314
  @user_allocated_nat_ip_resources = args[:user_allocated_nat_ip_resources] if args.key?(:user_allocated_nat_ip_resources)
28543
29315
  @user_allocated_nat_ips = args[:user_allocated_nat_ips] if args.key?(:user_allocated_nat_ips)
28544
29316
  end
28545
29317
  end
28546
29318
 
29319
+ # Status of a NAT Rule contained in this NAT.
29320
+ class RouterStatusNatStatusNatRuleStatus
29321
+ include Google::Apis::Core::Hashable
29322
+
29323
+ # A list of active IPs for NAT. Example: ["1.1.1.1", "179.12.26.133"].
29324
+ # Corresponds to the JSON property `activeNatIps`
29325
+ # @return [Array<String>]
29326
+ attr_accessor :active_nat_ips
29327
+
29328
+ # A list of IPs for NAT that are in drain mode. Example: ["1.1.1.1", "179.12.26.
29329
+ # 133"].
29330
+ # Corresponds to the JSON property `drainNatIps`
29331
+ # @return [Array<String>]
29332
+ attr_accessor :drain_nat_ips
29333
+
29334
+ # The number of extra IPs to allocate. This will be greater than 0 only if the
29335
+ # existing IPs in this NAT Rule are NOT enough to allow all configured VMs to
29336
+ # use NAT.
29337
+ # Corresponds to the JSON property `minExtraIpsNeeded`
29338
+ # @return [Fixnum]
29339
+ attr_accessor :min_extra_ips_needed
29340
+
29341
+ # Number of VM endpoints (i.e., NICs) that have NAT Mappings from this NAT Rule.
29342
+ # Corresponds to the JSON property `numVmEndpointsWithNatMappings`
29343
+ # @return [Fixnum]
29344
+ attr_accessor :num_vm_endpoints_with_nat_mappings
29345
+
29346
+ # Rule number of the rule.
29347
+ # Corresponds to the JSON property `ruleNumber`
29348
+ # @return [Fixnum]
29349
+ attr_accessor :rule_number
29350
+
29351
+ def initialize(**args)
29352
+ update!(**args)
29353
+ end
29354
+
29355
+ # Update properties of this object
29356
+ def update!(**args)
29357
+ @active_nat_ips = args[:active_nat_ips] if args.key?(:active_nat_ips)
29358
+ @drain_nat_ips = args[:drain_nat_ips] if args.key?(:drain_nat_ips)
29359
+ @min_extra_ips_needed = args[:min_extra_ips_needed] if args.key?(:min_extra_ips_needed)
29360
+ @num_vm_endpoints_with_nat_mappings = args[:num_vm_endpoints_with_nat_mappings] if args.key?(:num_vm_endpoints_with_nat_mappings)
29361
+ @rule_number = args[:rule_number] if args.key?(:rule_number)
29362
+ end
29363
+ end
29364
+
28547
29365
  #
28548
29366
  class RouterStatusResponse
28549
29367
  include Google::Apis::Core::Hashable
@@ -29068,6 +29886,17 @@ module Google
29068
29886
  # @return [String]
29069
29887
  attr_accessor :self_link
29070
29888
 
29889
+ # The type indicates the intended use of the security policy. CLOUD_ARMOR -
29890
+ # Cloud Armor backend security policies can be configured to filter incoming
29891
+ # HTTP requests targeting backend services. They filter requests before they hit
29892
+ # the origin servers. CLOUD_ARMOR_EDGE - Cloud Armor edge security policies can
29893
+ # be configured to filter incoming HTTP requests targeting backend services (
29894
+ # including Cloud CDN-enabled) as well as backend buckets (Cloud Storage). They
29895
+ # filter requests before the request is served from Google's cache.
29896
+ # Corresponds to the JSON property `type`
29897
+ # @return [String]
29898
+ attr_accessor :type
29899
+
29071
29900
  def initialize(**args)
29072
29901
  update!(**args)
29073
29902
  end
@@ -29084,6 +29913,7 @@ module Google
29084
29913
  @name = args[:name] if args.key?(:name)
29085
29914
  @rules = args[:rules] if args.key?(:rules)
29086
29915
  @self_link = args[:self_link] if args.key?(:self_link)
29916
+ @type = args[:type] if args.key?(:type)
29087
29917
  end
29088
29918
  end
29089
29919
 
@@ -30085,6 +30915,52 @@ module Google
30085
30915
  end
30086
30916
  end
30087
30917
 
30918
+ # The share setting for reservations and sole tenancy node groups.
30919
+ class ShareSettings
30920
+ include Google::Apis::Core::Hashable
30921
+
30922
+ # A map of project id and project config. This is only valid when share_type's
30923
+ # value is SPECIFIC_PROJECTS.
30924
+ # Corresponds to the JSON property `projectMap`
30925
+ # @return [Hash<String,Google::Apis::ComputeV1::ShareSettingsProjectConfig>]
30926
+ attr_accessor :project_map
30927
+
30928
+ # Type of sharing for this shared-reservation
30929
+ # Corresponds to the JSON property `shareType`
30930
+ # @return [String]
30931
+ attr_accessor :share_type
30932
+
30933
+ def initialize(**args)
30934
+ update!(**args)
30935
+ end
30936
+
30937
+ # Update properties of this object
30938
+ def update!(**args)
30939
+ @project_map = args[:project_map] if args.key?(:project_map)
30940
+ @share_type = args[:share_type] if args.key?(:share_type)
30941
+ end
30942
+ end
30943
+
30944
+ # Config for each project in the share settings.
30945
+ class ShareSettingsProjectConfig
30946
+ include Google::Apis::Core::Hashable
30947
+
30948
+ # The project ID, should be same as the key of this project config in the parent
30949
+ # map.
30950
+ # Corresponds to the JSON property `projectId`
30951
+ # @return [String]
30952
+ attr_accessor :project_id
30953
+
30954
+ def initialize(**args)
30955
+ update!(**args)
30956
+ end
30957
+
30958
+ # Update properties of this object
30959
+ def update!(**args)
30960
+ @project_id = args[:project_id] if args.key?(:project_id)
30961
+ end
30962
+ end
30963
+
30088
30964
  # A set of Shielded Instance options.
30089
30965
  class ShieldedInstanceConfig
30090
30966
  include Google::Apis::Core::Hashable
@@ -31501,8 +32377,9 @@ module Google
31501
32377
 
31502
32378
  # Whether to enable flow logging for this subnetwork. If this field is not
31503
32379
  # explicitly set, it will not appear in get listings. If not set the default
31504
- # behavior is to disable flow logging. This field isn't supported with the
31505
- # purpose field set to INTERNAL_HTTPS_LOAD_BALANCER.
32380
+ # behavior is determined by the org policy, if there is no org policy specified,
32381
+ # then it will default to disabled. This field isn't supported with the purpose
32382
+ # field set to INTERNAL_HTTPS_LOAD_BALANCER.
31506
32383
  # Corresponds to the JSON property `enableFlowLogs`
31507
32384
  # @return [Boolean]
31508
32385
  attr_accessor :enable_flow_logs
@@ -31583,9 +32460,8 @@ module Google
31583
32460
  attr_accessor :name
31584
32461
 
31585
32462
  # The URL of the network to which this subnetwork belongs, provided by the
31586
- # client when initially creating the subnetwork. Only networks that are in the
31587
- # distributed mode can have subnetworks. This field can be set only at resource
31588
- # creation time.
32463
+ # client when initially creating the subnetwork. This field can be set only at
32464
+ # resource creation time.
31589
32465
  # Corresponds to the JSON property `network`
31590
32466
  # @return [String]
31591
32467
  attr_accessor :network
@@ -31950,7 +32826,8 @@ module Google
31950
32826
 
31951
32827
  # Whether to enable flow logging for this subnetwork. If this field is not
31952
32828
  # explicitly set, it will not appear in get listings. If not set the default
31953
- # behavior is to disable flow logging.
32829
+ # behavior is determined by the org policy, if there is no org policy specified,
32830
+ # then it will default to disabled.
31954
32831
  # Corresponds to the JSON property `enable`
31955
32832
  # @return [Boolean]
31956
32833
  attr_accessor :enable
@@ -31965,8 +32842,8 @@ module Google
31965
32842
  # Can only be specified if VPC flow logging for this subnetwork is enabled. The
31966
32843
  # value of the field must be in [0, 1]. Set the sampling rate of VPC flow logs
31967
32844
  # within the subnetwork where 1.0 means all collected logs are reported and 0.0
31968
- # means no logs are reported. Default is 0.5, which means half of all collected
31969
- # logs are reported.
32845
+ # means no logs are reported. Default is 0.5 unless otherwise specified by the
32846
+ # org policy, which means half of all collected logs are reported.
31970
32847
  # Corresponds to the JSON property `flowSampling`
31971
32848
  # @return [Float]
31972
32849
  attr_accessor :flow_sampling
@@ -32161,6 +33038,27 @@ module Google
32161
33038
  end
32162
33039
  end
32163
33040
 
33041
+ # Subsetting configuration for this BackendService. Currently this is applicable
33042
+ # only for Internal TCP/UDP load balancing, Internal HTTP(S) load balancing and
33043
+ # Traffic Director.
33044
+ class Subsetting
33045
+ include Google::Apis::Core::Hashable
33046
+
33047
+ #
33048
+ # Corresponds to the JSON property `policy`
33049
+ # @return [String]
33050
+ attr_accessor :policy
33051
+
33052
+ def initialize(**args)
33053
+ update!(**args)
33054
+ end
33055
+
33056
+ # Update properties of this object
33057
+ def update!(**args)
33058
+ @policy = args[:policy] if args.key?(:policy)
33059
+ end
33060
+ end
33061
+
32164
33062
  #
32165
33063
  class TcpHealthCheck
32166
33064
  include Google::Apis::Core::Hashable
@@ -33431,6 +34329,13 @@ module Google
33431
34329
  # @return [String]
33432
34330
  attr_accessor :nat_policy
33433
34331
 
34332
+ # The URL of the network this target instance uses to forward traffic. If not
34333
+ # specified, the traffic will be forwarded to the network that the default
34334
+ # network interface belongs to.
34335
+ # Corresponds to the JSON property `network`
34336
+ # @return [String]
34337
+ attr_accessor :network
34338
+
33434
34339
  # [Output Only] Server-defined URL for the resource.
33435
34340
  # Corresponds to the JSON property `selfLink`
33436
34341
  # @return [String]
@@ -33456,6 +34361,7 @@ module Google
33456
34361
  @kind = args[:kind] if args.key?(:kind)
33457
34362
  @name = args[:name] if args.key?(:name)
33458
34363
  @nat_policy = args[:nat_policy] if args.key?(:nat_policy)
34364
+ @network = args[:network] if args.key?(:network)
33459
34365
  @self_link = args[:self_link] if args.key?(:self_link)
33460
34366
  @zone = args[:zone] if args.key?(:zone)
33461
34367
  end
@@ -35319,7 +36225,7 @@ module Google
35319
36225
  class TestFailure
35320
36226
  include Google::Apis::Core::Hashable
35321
36227
 
35322
- # The actual output URL evaluated by load balancer containing the scheme, host,
36228
+ # The actual output URL evaluated by a load balancer containing the scheme, host,
35323
36229
  # path and query parameters.
35324
36230
  # Corresponds to the JSON property `actualOutputUrl`
35325
36231
  # @return [String]
@@ -35336,8 +36242,8 @@ module Google
35336
36242
  # @return [String]
35337
36243
  attr_accessor :actual_service
35338
36244
 
35339
- # The expected output URL evaluated by load balancer containing the scheme, host,
35340
- # path and query parameters.
36245
+ # The expected output URL evaluated by a load balancer containing the scheme,
36246
+ # host, path and query parameters.
35341
36247
  # Corresponds to the JSON property `expectedOutputUrl`
35342
36248
  # @return [String]
35343
36249
  attr_accessor :expected_output_url
@@ -35451,17 +36357,17 @@ module Google
35451
36357
  end
35452
36358
  end
35453
36359
 
35454
- # Represents a URL Map resource. Google Compute Engine has two URL Map resources:
35455
- # * [Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/
35456
- # docs/reference/rest/v1/regionUrlMaps) A URL map resource is a component of
35457
- # certain types of GCP load balancers and Traffic Director. * urlMaps are used
35458
- # by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are
35459
- # used by internal HTTP(S) load balancers. For a list of supported URL map
35460
- # features by load balancer type, see the Load balancing features: Routing and
36360
+ # Represents a URL Map resource. Compute Engine has two URL Map resources: * [
36361
+ # Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/docs/
36362
+ # reference/rest/v1/regionUrlMaps) A URL map resource is a component of certain
36363
+ # types of cloud load balancers and Traffic Director: * urlMaps are used by
36364
+ # external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are used
36365
+ # by internal HTTP(S) load balancers. For a list of supported URL map features
36366
+ # by the load balancer type, see the Load balancing features: Routing and
35461
36367
  # traffic management table. For a list of supported URL map features for Traffic
35462
36368
  # Director, see the Traffic Director features: Routing and traffic management
35463
- # table. This resource defines mappings from host names and URL paths to either
35464
- # a backend service or a backend bucket. To use the global urlMaps resource, the
36369
+ # table. This resource defines mappings from hostnames and URL paths to either a
36370
+ # backend service or a backend bucket. To use the global urlMaps resource, the
35465
36371
  # backend service must have a loadBalancingScheme of either EXTERNAL or
35466
36372
  # INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service
35467
36373
  # must have a loadBalancingScheme of INTERNAL_MANAGED. For more information,
@@ -35475,28 +36381,28 @@ module Google
35475
36381
  attr_accessor :creation_timestamp
35476
36382
 
35477
36383
  # defaultRouteAction takes effect when none of the hostRules match. The load
35478
- # balancer performs advanced routing actions like URL rewrites, header
35479
- # transformations, etc. prior to forwarding the request to the selected backend.
35480
- # If defaultRouteAction specifies any weightedBackendServices, defaultService
35481
- # must not be set. Conversely if defaultService is set, defaultRouteAction
35482
- # cannot contain any weightedBackendServices. Only one of defaultRouteAction or
36384
+ # balancer performs advanced routing actions, such as URL rewrites and header
36385
+ # transformations, before forwarding the request to the selected backend. If
36386
+ # defaultRouteAction specifies any weightedBackendServices, defaultService must
36387
+ # not be set. Conversely if defaultService is set, defaultRouteAction cannot
36388
+ # contain any weightedBackendServices. Only one of defaultRouteAction or
35483
36389
  # defaultUrlRedirect must be set. UrlMaps for external HTTP(S) load balancers
35484
36390
  # support only the urlRewrite action within defaultRouteAction.
35485
- # defaultRouteAction has no effect when the URL map is bound to target gRPC
35486
- # proxy that has validateForProxyless field set to true.
36391
+ # defaultRouteAction has no effect when the URL map is bound to a target gRPC
36392
+ # proxy that has the validateForProxyless field set to true.
35487
36393
  # Corresponds to the JSON property `defaultRouteAction`
35488
36394
  # @return [Google::Apis::ComputeV1::HttpRouteAction]
35489
36395
  attr_accessor :default_route_action
35490
36396
 
35491
36397
  # The full or partial URL of the defaultService resource to which traffic is
35492
- # directed if none of the hostRules match. If defaultRouteAction is additionally
35493
- # specified, advanced routing actions like URL Rewrites, etc. take effect prior
35494
- # to sending the request to the backend. However, if defaultService is specified,
36398
+ # directed if none of the hostRules match. If defaultRouteAction is also
36399
+ # specified, advanced routing actions, such as URL rewrites, take effect before
36400
+ # sending the request to the backend. However, if defaultService is specified,
35495
36401
  # defaultRouteAction cannot contain any weightedBackendServices. Conversely, if
35496
36402
  # routeAction specifies any weightedBackendServices, service must not be
35497
- # specified. Only one of defaultService, defaultUrlRedirect or
36403
+ # specified. Only one of defaultService, defaultUrlRedirect , or
35498
36404
  # defaultRouteAction.weightedBackendService must be set. defaultService has no
35499
- # effect when the URL map is bound to target gRPC proxy that has
36405
+ # effect when the URL map is bound to a target gRPC proxy that has the
35500
36406
  # validateForProxyless field set to true.
35501
36407
  # Corresponds to the JSON property `defaultService`
35502
36408
  # @return [String]
@@ -35514,11 +36420,10 @@ module Google
35514
36420
  attr_accessor :description
35515
36421
 
35516
36422
  # Fingerprint of this resource. A hash of the contents stored in this object.
35517
- # This field is used in optimistic locking. This field will be ignored when
35518
- # inserting a UrlMap. An up-to-date fingerprint must be provided in order to
35519
- # update the UrlMap, otherwise the request will fail with error 412
35520
- # conditionNotMet. To see the latest fingerprint, make a get() request to
35521
- # retrieve a UrlMap.
36423
+ # This field is used in optimistic locking. This field is ignored when inserting
36424
+ # a UrlMap. An up-to-date fingerprint must be provided in order to update the
36425
+ # UrlMap, otherwise the request will fail with error 412 conditionNotMet. To see
36426
+ # the latest fingerprint, make a get() request to retrieve a UrlMap.
35522
36427
  # Corresponds to the JSON property `fingerprint`
35523
36428
  # NOTE: Values are automatically base64 encoded/decoded in the client library.
35524
36429
  # @return [String]
@@ -35530,7 +36435,7 @@ module Google
35530
36435
  # @return [Google::Apis::ComputeV1::HttpHeaderAction]
35531
36436
  attr_accessor :header_action
35532
36437
 
35533
- # The list of HostRules to use against the URL.
36438
+ # The list of host rules to use against the URL.
35534
36439
  # Corresponds to the JSON property `hostRules`
35535
36440
  # @return [Array<Google::Apis::ComputeV1::HostRule>]
35536
36441
  attr_accessor :host_rules
@@ -35573,10 +36478,10 @@ module Google
35573
36478
  # @return [String]
35574
36479
  attr_accessor :self_link
35575
36480
 
35576
- # The list of expected URL mapping tests. Request to update this UrlMap will
35577
- # succeed only if all of the test cases pass. You can specify a maximum of 100
35578
- # tests per UrlMap. Not supported when the URL map is bound to target gRPC proxy
35579
- # that has validateForProxyless field set to true.
36481
+ # The list of expected URL mapping tests. Request to update the UrlMap succeeds
36482
+ # only if all test cases pass. You can specify a maximum of 100 tests per UrlMap.
36483
+ # Not supported when the URL map is bound to a target gRPC proxy that has
36484
+ # validateForProxyless field set to true.
35580
36485
  # Corresponds to the JSON property `tests`
35581
36486
  # @return [Array<Google::Apis::ComputeV1::UrlMapTest>]
35582
36487
  attr_accessor :tests
@@ -35750,18 +36655,18 @@ module Google
35750
36655
  # @return [String]
35751
36656
  attr_accessor :description
35752
36657
 
35753
- # The expected output URL evaluated by load balancer containing the scheme, host,
35754
- # path and query parameters. For rules that forward requests to backends, the
35755
- # test passes only when expectedOutputUrl matches the request forwarded by load
35756
- # balancer to backends. For rules with urlRewrite, the test verifies that the
35757
- # forwarded request matches hostRewrite and pathPrefixRewrite in the urlRewrite
35758
- # action. When service is specified, expectedOutputUrl`s scheme is ignored. For
35759
- # rules with urlRedirect, the test passes only if expectedOutputUrl matches the
35760
- # URL in the load balancer's redirect response. If urlRedirect specifies
35761
- # https_redirect, the test passes only if the scheme in expectedOutputUrl is
35762
- # also set to https. If urlRedirect specifies strip_query, the test passes only
35763
- # if expectedOutputUrl does not contain any query parameters. expectedOutputUrl
35764
- # is optional when service is specified.
36658
+ # The expected output URL evaluated by the load balancer containing the scheme,
36659
+ # host, path and query parameters. For rules that forward requests to backends,
36660
+ # the test passes only when expectedOutputUrl matches the request forwarded by
36661
+ # the load balancer to backends. For rules with urlRewrite, the test verifies
36662
+ # that the forwarded request matches hostRewrite and pathPrefixRewrite in the
36663
+ # urlRewrite action. When service is specified, expectedOutputUrl`s scheme is
36664
+ # ignored. For rules with urlRedirect, the test passes only if expectedOutputUrl
36665
+ # matches the URL in the load balancer's redirect response. If urlRedirect
36666
+ # specifies https_redirect, the test passes only if the scheme in
36667
+ # expectedOutputUrl is also set to HTTPS. If urlRedirect specifies strip_query,
36668
+ # the test passes only if expectedOutputUrl does not contain any query
36669
+ # parameters. expectedOutputUrl is optional when service is specified.
35765
36670
  # Corresponds to the JSON property `expectedOutputUrl`
35766
36671
  # @return [String]
35767
36672
  attr_accessor :expected_output_url
@@ -35792,7 +36697,8 @@ module Google
35792
36697
  attr_accessor :path
35793
36698
 
35794
36699
  # Expected BackendService or BackendBucket resource the given URL should be
35795
- # mapped to. service cannot be set if expectedRedirectResponseCode is set.
36700
+ # mapped to. The service field cannot be set if expectedRedirectResponseCode is
36701
+ # set.
35796
36702
  # Corresponds to the JSON property `service`
35797
36703
  # @return [String]
35798
36704
  attr_accessor :service
@@ -36097,17 +37003,17 @@ module Google
36097
37003
  class ValidateUrlMapsRequest
36098
37004
  include Google::Apis::Core::Hashable
36099
37005
 
36100
- # Represents a URL Map resource. Google Compute Engine has two URL Map resources:
36101
- # * [Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/
36102
- # docs/reference/rest/v1/regionUrlMaps) A URL map resource is a component of
36103
- # certain types of GCP load balancers and Traffic Director. * urlMaps are used
36104
- # by external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are
36105
- # used by internal HTTP(S) load balancers. For a list of supported URL map
36106
- # features by load balancer type, see the Load balancing features: Routing and
37006
+ # Represents a URL Map resource. Compute Engine has two URL Map resources: * [
37007
+ # Global](/compute/docs/reference/rest/v1/urlMaps) * [Regional](/compute/docs/
37008
+ # reference/rest/v1/regionUrlMaps) A URL map resource is a component of certain
37009
+ # types of cloud load balancers and Traffic Director: * urlMaps are used by
37010
+ # external HTTP(S) load balancers and Traffic Director. * regionUrlMaps are used
37011
+ # by internal HTTP(S) load balancers. For a list of supported URL map features
37012
+ # by the load balancer type, see the Load balancing features: Routing and
36107
37013
  # traffic management table. For a list of supported URL map features for Traffic
36108
37014
  # Director, see the Traffic Director features: Routing and traffic management
36109
- # table. This resource defines mappings from host names and URL paths to either
36110
- # a backend service or a backend bucket. To use the global urlMaps resource, the
37015
+ # table. This resource defines mappings from hostnames and URL paths to either a
37016
+ # backend service or a backend bucket. To use the global urlMaps resource, the
36111
37017
  # backend service must have a loadBalancingScheme of either EXTERNAL or
36112
37018
  # INTERNAL_SELF_MANAGED. To use the regionUrlMaps resource, the backend service
36113
37019
  # must have a loadBalancingScheme of INTERNAL_MANAGED. For more information,
@@ -36150,16 +37056,16 @@ module Google
36150
37056
  class UrlRewrite
36151
37057
  include Google::Apis::Core::Hashable
36152
37058
 
36153
- # Prior to forwarding the request to the selected service, the request's host
36154
- # header is replaced with contents of hostRewrite. The value must be between 1
36155
- # and 255 characters.
37059
+ # Before forwarding the request to the selected service, the request's host
37060
+ # header is replaced with contents of hostRewrite. The value must be from 1 to
37061
+ # 255 characters.
36156
37062
  # Corresponds to the JSON property `hostRewrite`
36157
37063
  # @return [String]
36158
37064
  attr_accessor :host_rewrite
36159
37065
 
36160
- # Prior to forwarding the request to the selected backend service, the matching
37066
+ # Before forwarding the request to the selected backend service, the matching
36161
37067
  # portion of the request's path is replaced by pathPrefixRewrite. The value must
36162
- # be between 1 and 1024 characters.
37068
+ # be from 1 to 1024 characters.
36163
37069
  # Corresponds to the JSON property `pathPrefixRewrite`
36164
37070
  # @return [String]
36165
37071
  attr_accessor :path_prefix_rewrite
@@ -37792,14 +38698,13 @@ module Google
37792
38698
 
37793
38699
  # In contrast to a single BackendService in HttpRouteAction to which all
37794
38700
  # matching traffic is directed to, WeightedBackendService allows traffic to be
37795
- # split across multiple BackendServices. The volume of traffic for each
37796
- # BackendService is proportional to the weight specified in each
37797
- # WeightedBackendService
38701
+ # split across multiple backend services. The volume of traffic for each backend
38702
+ # service is proportional to the weight specified in each WeightedBackendService
37798
38703
  class WeightedBackendService
37799
38704
  include Google::Apis::Core::Hashable
37800
38705
 
37801
38706
  # The full or partial URL to the default BackendService resource. Before
37802
- # forwarding the request to backendService, the loadbalancer applies any
38707
+ # forwarding the request to backendService, the load balancer applies any
37803
38708
  # relevant headerActions specified as part of this backendServiceWeight.
37804
38709
  # Corresponds to the JSON property `backendService`
37805
38710
  # @return [String]
@@ -37811,12 +38716,12 @@ module Google
37811
38716
  # @return [Google::Apis::ComputeV1::HttpHeaderAction]
37812
38717
  attr_accessor :header_action
37813
38718
 
37814
- # Specifies the fraction of traffic sent to backendService, computed as weight /
37815
- # (sum of all weightedBackendService weights in routeAction) . The selection of
37816
- # a backend service is determined only for new traffic. Once a user's request
37817
- # has been directed to a backendService, subsequent requests will be sent to the
37818
- # same backendService as determined by the BackendService's session affinity
37819
- # policy. The value must be between 0 and 1000
38719
+ # Specifies the fraction of traffic sent to a backend service, computed as
38720
+ # weight / (sum of all weightedBackendService weights in routeAction) . The
38721
+ # selection of a backend service is determined only for new traffic. Once a user'
38722
+ # s request has been directed to a backend service, subsequent requests are sent
38723
+ # to the same backend service as determined by the backend service's session
38724
+ # affinity policy. The value must be from 0 to 1000.
37820
38725
  # Corresponds to the JSON property `weight`
37821
38726
  # @return [Fixnum]
37822
38727
  attr_accessor :weight
@@ -38226,31 +39131,31 @@ module Google
38226
39131
 
38227
39132
  # An Identity and Access Management (IAM) policy, which specifies access
38228
39133
  # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
38229
- # A `binding` binds one or more `members` to a single `role`. Members can be
38230
- # user accounts, service accounts, Google groups, and domains (such as G Suite).
38231
- # A `role` is a named list of permissions; each `role` can be an IAM predefined
38232
- # role or a user-created custom role. For some types of Google Cloud resources,
38233
- # a `binding` can also specify a `condition`, which is a logical expression that
38234
- # allows access to a resource only if the expression evaluates to `true`. A
38235
- # condition can add constraints based on attributes of the request, the resource,
38236
- # or both. To learn which resources support conditions in their IAM policies,
38237
- # see the [IAM documentation](https://cloud.google.com/iam/help/conditions/
38238
- # resource-policies). **JSON example:** ` "bindings": [ ` "role": "roles/
38239
- # resourcemanager.organizationAdmin", "members": [ "user:mike@example.com", "
38240
- # group:admins@example.com", "domain:google.com", "serviceAccount:my-project-id@
38241
- # appspot.gserviceaccount.com" ] `, ` "role": "roles/resourcemanager.
38242
- # organizationViewer", "members": [ "user:eve@example.com" ], "condition": ` "
38243
- # title": "expirable access", "description": "Does not grant access after Sep
38244
- # 2020", "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')", `
38245
- # ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:** bindings: -
38246
- # members: - user:mike@example.com - group:admins@example.com - domain:google.
38247
- # com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/
38248
- # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
38249
- # roles/resourcemanager.organizationViewer condition: title: expirable access
38250
- # description: Does not grant access after Sep 2020 expression: request.time <
38251
- # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
38252
- # description of IAM and its features, see the [IAM documentation](https://cloud.
38253
- # google.com/iam/docs/).
39134
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
39135
+ # Principals can be user accounts, service accounts, Google groups, and domains (
39136
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
39137
+ # an IAM predefined role or a user-created custom role. For some types of Google
39138
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
39139
+ # logical expression that allows access to a resource only if the expression
39140
+ # evaluates to `true`. A condition can add constraints based on attributes of
39141
+ # the request, the resource, or both. To learn which resources support
39142
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
39143
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
39144
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
39145
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
39146
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
39147
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
39148
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
39149
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
39150
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
39151
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
39152
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
39153
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
39154
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
39155
+ # access description: Does not grant access after Sep 2020 expression: request.
39156
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
39157
+ # a description of IAM and its features, see the [IAM documentation](https://
39158
+ # cloud.google.com/iam/docs/).
38254
39159
  # Corresponds to the JSON property `policy`
38255
39160
  # @return [Google::Apis::ComputeV1::Policy]
38256
39161
  attr_accessor :policy