google-apis-compute_v1 0.16.0 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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