google-apis-compute_v1 0.15.0 → 0.19.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -510,13 +510,17 @@ module Google
510
510
  attr_accessor :network_tier
511
511
 
512
512
  # The DNS domain name for the public PTR record. You can set this field only if
513
- # the `setPublicPtr` field is enabled.
513
+ # the `setPublicPtr` field is enabled in accessConfig. If this field is
514
+ # unspecified in ipv6AccessConfig, a default PTR record will be createc for
515
+ # first IP in associated external IPv6 range.
514
516
  # Corresponds to the JSON property `publicPtrDomainName`
515
517
  # @return [String]
516
518
  attr_accessor :public_ptr_domain_name
517
519
 
518
520
  # Specifies whether a public DNS 'PTR' record should be created to map the
519
- # external IP address of the instance to a DNS domain name.
521
+ # external IP address of the instance to a DNS domain name. This field is not
522
+ # used in ipv6AccessConfig. A default PTR record will be created if the VM has
523
+ # external IPv6 range associated.
520
524
  # Corresponds to the JSON property `setPublicPtr`
521
525
  # @return [Boolean]
522
526
  attr_accessor :set_public_ptr
@@ -594,8 +598,8 @@ module Google
594
598
 
595
599
  # Name of the resource. Provided by the client when the resource is created. The
596
600
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
597
- # name must be 1-63 characters long and match the regular expression [a-z]([-a-
598
- # z0-9]*[a-z0-9])?. The first character must be a lowercase letter, and all
601
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
602
+ # z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all
599
603
  # following characters (except for the last character) must be a dash, lowercase
600
604
  # letter, or digit. The last character must be a lowercase letter or digit.
601
605
  # Corresponds to the JSON property `name`
@@ -1170,6 +1174,7 @@ module Google
1170
1174
  end
1171
1175
 
1172
1176
  # This reservation type allows to pre allocate specific instance configuration.
1177
+ # Next ID: 5
1173
1178
  class AllocationSpecificSkuReservation
1174
1179
  include Google::Apis::Core::Hashable
1175
1180
 
@@ -2413,7 +2418,13 @@ module Google
2413
2418
 
2414
2419
  # Specifies how to determine whether the backend of a load balancer can handle
2415
2420
  # additional traffic or is fully loaded. For usage guidelines, see Connection
2416
- # balancing mode.
2421
+ # balancing mode. Backends must use compatible balancing modes. For more
2422
+ # information, see Supported balancing modes and target capacity settings and
2423
+ # Restrictions and guidance for instance groups. Note: Currently, if you use the
2424
+ # API to configure incompatible balancing modes, the configuration might be
2425
+ # accepted even though it has no impact and is ignored. Specifically, Backend.
2426
+ # maxUtilization is ignored when Backend.balancingMode is RATE. In the future,
2427
+ # this incompatible combination will be rejected.
2417
2428
  # Corresponds to the JSON property `balancingMode`
2418
2429
  # @return [String]
2419
2430
  attr_accessor :balancing_mode
@@ -2494,7 +2505,9 @@ module Google
2494
2505
  # @return [Float]
2495
2506
  attr_accessor :max_rate_per_instance
2496
2507
 
2497
- #
2508
+ # Optional parameter to define a target capacity for the UTILIZATIONbalancing
2509
+ # mode. The valid range is [0.0, 1.0]. For usage guidelines, see Utilization
2510
+ # balancing mode.
2498
2511
  # Corresponds to the JSON property `maxUtilization`
2499
2512
  # @return [Float]
2500
2513
  attr_accessor :max_utilization
@@ -2637,7 +2650,7 @@ module Google
2637
2650
  # specified), or else sets the response max-age directive to the lesser of the
2638
2651
  # client_ttl and default_ttl, and also ensures a "public" cache-control
2639
2652
  # directive is present. If a client TTL is not specified, a default value (1
2640
- # hour) will be used. The maximum allowed value is 86400s (1 day).
2653
+ # hour) will be used. The maximum allowed value is 31,622,400s (1 year).
2641
2654
  # Corresponds to the JSON property `clientTtl`
2642
2655
  # @return [Fixnum]
2643
2656
  attr_accessor :client_ttl
@@ -3182,6 +3195,13 @@ module Google
3182
3195
  # @return [String]
3183
3196
  attr_accessor :session_affinity
3184
3197
 
3198
+ # Subsetting configuration for this BackendService. Currently this is applicable
3199
+ # only for Internal TCP/UDP load balancing, Internal HTTP(S) load balancing and
3200
+ # Traffic Director.
3201
+ # Corresponds to the JSON property `subsetting`
3202
+ # @return [Google::Apis::ComputeV1::Subsetting]
3203
+ attr_accessor :subsetting
3204
+
3185
3205
  # Not supported when the backend service is referenced by a URL map that is
3186
3206
  # bound to target gRPC proxy that has validateForProxyless field set to true.
3187
3207
  # Instead, use maxStreamDuration.
@@ -3227,6 +3247,7 @@ module Google
3227
3247
  @security_settings = args[:security_settings] if args.key?(:security_settings)
3228
3248
  @self_link = args[:self_link] if args.key?(:self_link)
3229
3249
  @session_affinity = args[:session_affinity] if args.key?(:session_affinity)
3250
+ @subsetting = args[:subsetting] if args.key?(:subsetting)
3230
3251
  @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec)
3231
3252
  end
3232
3253
  end
@@ -3395,7 +3416,7 @@ module Google
3395
3416
  # specified), or else sets the response max-age directive to the lesser of the
3396
3417
  # client_ttl and default_ttl, and also ensures a "public" cache-control
3397
3418
  # directive is present. If a client TTL is not specified, a default value (1
3398
- # hour) will be used. The maximum allowed value is 86400s (1 day).
3419
+ # hour) will be used. The maximum allowed value is 31,622,400s (1 year).
3399
3420
  # Corresponds to the JSON property `clientTtl`
3400
3421
  # @return [Fixnum]
3401
3422
  attr_accessor :client_ttl
@@ -3949,6 +3970,255 @@ module Google
3949
3970
  end
3950
3971
  end
3951
3972
 
3973
+ #
3974
+ class BfdPacket
3975
+ include Google::Apis::Core::Hashable
3976
+
3977
+ # The Authentication Present bit of the BFD packet. This is specified in section
3978
+ # 4.1 of RFC5880
3979
+ # Corresponds to the JSON property `authenticationPresent`
3980
+ # @return [Boolean]
3981
+ attr_accessor :authentication_present
3982
+ alias_method :authentication_present?, :authentication_present
3983
+
3984
+ # The Control Plane Independent bit of the BFD packet. This is specified in
3985
+ # section 4.1 of RFC5880
3986
+ # Corresponds to the JSON property `controlPlaneIndependent`
3987
+ # @return [Boolean]
3988
+ attr_accessor :control_plane_independent
3989
+ alias_method :control_plane_independent?, :control_plane_independent
3990
+
3991
+ # The demand bit of the BFD packet. This is specified in section 4.1 of RFC5880
3992
+ # Corresponds to the JSON property `demand`
3993
+ # @return [Boolean]
3994
+ attr_accessor :demand
3995
+ alias_method :demand?, :demand
3996
+
3997
+ # The diagnostic code specifies the local system's reason for the last change in
3998
+ # session state. This allows remote systems to determine the reason that the
3999
+ # previous session failed, for example. These diagnostic codes are specified in
4000
+ # section 4.1 of RFC5880
4001
+ # Corresponds to the JSON property `diagnostic`
4002
+ # @return [String]
4003
+ attr_accessor :diagnostic
4004
+
4005
+ # The Final bit of the BFD packet. This is specified in section 4.1 of RFC5880
4006
+ # Corresponds to the JSON property `final`
4007
+ # @return [Boolean]
4008
+ attr_accessor :final
4009
+ alias_method :final?, :final
4010
+
4011
+ # The length of the BFD Control packet in bytes. This is specified in section 4.
4012
+ # 1 of RFC5880
4013
+ # Corresponds to the JSON property `length`
4014
+ # @return [Fixnum]
4015
+ attr_accessor :length
4016
+
4017
+ # The Required Min Echo RX Interval value in the BFD packet. This is specified
4018
+ # in section 4.1 of RFC5880
4019
+ # Corresponds to the JSON property `minEchoRxIntervalMs`
4020
+ # @return [Fixnum]
4021
+ attr_accessor :min_echo_rx_interval_ms
4022
+
4023
+ # The Required Min RX Interval value in the BFD packet. This is specified in
4024
+ # section 4.1 of RFC5880
4025
+ # Corresponds to the JSON property `minRxIntervalMs`
4026
+ # @return [Fixnum]
4027
+ attr_accessor :min_rx_interval_ms
4028
+
4029
+ # The Desired Min TX Interval value in the BFD packet. This is specified in
4030
+ # section 4.1 of RFC5880
4031
+ # Corresponds to the JSON property `minTxIntervalMs`
4032
+ # @return [Fixnum]
4033
+ attr_accessor :min_tx_interval_ms
4034
+
4035
+ # The detection time multiplier of the BFD packet. This is specified in section
4036
+ # 4.1 of RFC5880
4037
+ # Corresponds to the JSON property `multiplier`
4038
+ # @return [Fixnum]
4039
+ attr_accessor :multiplier
4040
+
4041
+ # The multipoint bit of the BFD packet. This is specified in section 4.1 of
4042
+ # RFC5880
4043
+ # Corresponds to the JSON property `multipoint`
4044
+ # @return [Boolean]
4045
+ attr_accessor :multipoint
4046
+ alias_method :multipoint?, :multipoint
4047
+
4048
+ # The My Discriminator value in the BFD packet. This is specified in section 4.1
4049
+ # of RFC5880
4050
+ # Corresponds to the JSON property `myDiscriminator`
4051
+ # @return [Fixnum]
4052
+ attr_accessor :my_discriminator
4053
+
4054
+ # The Poll bit of the BFD packet. This is specified in section 4.1 of RFC5880
4055
+ # Corresponds to the JSON property `poll`
4056
+ # @return [Boolean]
4057
+ attr_accessor :poll
4058
+ alias_method :poll?, :poll
4059
+
4060
+ # The current BFD session state as seen by the transmitting system. These states
4061
+ # are specified in section 4.1 of RFC5880
4062
+ # Corresponds to the JSON property `state`
4063
+ # @return [String]
4064
+ attr_accessor :state
4065
+
4066
+ # The version number of the BFD protocol, as specified in section 4.1 of RFC5880.
4067
+ # Corresponds to the JSON property `version`
4068
+ # @return [Fixnum]
4069
+ attr_accessor :version
4070
+
4071
+ # The Your Discriminator value in the BFD packet. This is specified in section 4.
4072
+ # 1 of RFC5880
4073
+ # Corresponds to the JSON property `yourDiscriminator`
4074
+ # @return [Fixnum]
4075
+ attr_accessor :your_discriminator
4076
+
4077
+ def initialize(**args)
4078
+ update!(**args)
4079
+ end
4080
+
4081
+ # Update properties of this object
4082
+ def update!(**args)
4083
+ @authentication_present = args[:authentication_present] if args.key?(:authentication_present)
4084
+ @control_plane_independent = args[:control_plane_independent] if args.key?(:control_plane_independent)
4085
+ @demand = args[:demand] if args.key?(:demand)
4086
+ @diagnostic = args[:diagnostic] if args.key?(:diagnostic)
4087
+ @final = args[:final] if args.key?(:final)
4088
+ @length = args[:length] if args.key?(:length)
4089
+ @min_echo_rx_interval_ms = args[:min_echo_rx_interval_ms] if args.key?(:min_echo_rx_interval_ms)
4090
+ @min_rx_interval_ms = args[:min_rx_interval_ms] if args.key?(:min_rx_interval_ms)
4091
+ @min_tx_interval_ms = args[:min_tx_interval_ms] if args.key?(:min_tx_interval_ms)
4092
+ @multiplier = args[:multiplier] if args.key?(:multiplier)
4093
+ @multipoint = args[:multipoint] if args.key?(:multipoint)
4094
+ @my_discriminator = args[:my_discriminator] if args.key?(:my_discriminator)
4095
+ @poll = args[:poll] if args.key?(:poll)
4096
+ @state = args[:state] if args.key?(:state)
4097
+ @version = args[:version] if args.key?(:version)
4098
+ @your_discriminator = args[:your_discriminator] if args.key?(:your_discriminator)
4099
+ end
4100
+ end
4101
+
4102
+ # Next free: 15
4103
+ class BfdStatus
4104
+ include Google::Apis::Core::Hashable
4105
+
4106
+ # The BFD session initialization mode for this BGP peer. If set to ACTIVE, the
4107
+ # Cloud Router will initiate the BFD session for this BGP peer. If set to
4108
+ # PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD
4109
+ # session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP
4110
+ # peer.
4111
+ # Corresponds to the JSON property `bfdSessionInitializationMode`
4112
+ # @return [String]
4113
+ attr_accessor :bfd_session_initialization_mode
4114
+
4115
+ # Unix timestamp of the most recent config update.
4116
+ # Corresponds to the JSON property `configUpdateTimestampMicros`
4117
+ # @return [Fixnum]
4118
+ attr_accessor :config_update_timestamp_micros
4119
+
4120
+ # Control packet counts for the current BFD session.
4121
+ # Corresponds to the JSON property `controlPacketCounts`
4122
+ # @return [Google::Apis::ComputeV1::BfdStatusPacketCounts]
4123
+ attr_accessor :control_packet_counts
4124
+
4125
+ # Inter-packet time interval statistics for control packets.
4126
+ # Corresponds to the JSON property `controlPacketIntervals`
4127
+ # @return [Array<Google::Apis::ComputeV1::PacketIntervals>]
4128
+ attr_accessor :control_packet_intervals
4129
+
4130
+ # The diagnostic code specifies the local system's reason for the last change in
4131
+ # session state. This allows remote systems to determine the reason that the
4132
+ # previous session failed, for example. These diagnostic codes are specified in
4133
+ # section 4.1 of RFC5880
4134
+ # Corresponds to the JSON property `localDiagnostic`
4135
+ # @return [String]
4136
+ attr_accessor :local_diagnostic
4137
+
4138
+ # The current BFD session state as seen by the transmitting system. These states
4139
+ # are specified in section 4.1 of RFC5880
4140
+ # Corresponds to the JSON property `localState`
4141
+ # @return [String]
4142
+ attr_accessor :local_state
4143
+
4144
+ # Negotiated transmit interval for control packets.
4145
+ # Corresponds to the JSON property `negotiatedLocalControlTxIntervalMs`
4146
+ # @return [Fixnum]
4147
+ attr_accessor :negotiated_local_control_tx_interval_ms
4148
+
4149
+ # The most recent Rx control packet for this BFD session.
4150
+ # Corresponds to the JSON property `rxPacket`
4151
+ # @return [Google::Apis::ComputeV1::BfdPacket]
4152
+ attr_accessor :rx_packet
4153
+
4154
+ # The most recent Tx control packet for this BFD session.
4155
+ # Corresponds to the JSON property `txPacket`
4156
+ # @return [Google::Apis::ComputeV1::BfdPacket]
4157
+ attr_accessor :tx_packet
4158
+
4159
+ # Session uptime in milliseconds. Value will be 0 if session is not up.
4160
+ # Corresponds to the JSON property `uptimeMs`
4161
+ # @return [Fixnum]
4162
+ attr_accessor :uptime_ms
4163
+
4164
+ def initialize(**args)
4165
+ update!(**args)
4166
+ end
4167
+
4168
+ # Update properties of this object
4169
+ def update!(**args)
4170
+ @bfd_session_initialization_mode = args[:bfd_session_initialization_mode] if args.key?(:bfd_session_initialization_mode)
4171
+ @config_update_timestamp_micros = args[:config_update_timestamp_micros] if args.key?(:config_update_timestamp_micros)
4172
+ @control_packet_counts = args[:control_packet_counts] if args.key?(:control_packet_counts)
4173
+ @control_packet_intervals = args[:control_packet_intervals] if args.key?(:control_packet_intervals)
4174
+ @local_diagnostic = args[:local_diagnostic] if args.key?(:local_diagnostic)
4175
+ @local_state = args[:local_state] if args.key?(:local_state)
4176
+ @negotiated_local_control_tx_interval_ms = args[:negotiated_local_control_tx_interval_ms] if args.key?(:negotiated_local_control_tx_interval_ms)
4177
+ @rx_packet = args[:rx_packet] if args.key?(:rx_packet)
4178
+ @tx_packet = args[:tx_packet] if args.key?(:tx_packet)
4179
+ @uptime_ms = args[:uptime_ms] if args.key?(:uptime_ms)
4180
+ end
4181
+ end
4182
+
4183
+ #
4184
+ class BfdStatusPacketCounts
4185
+ include Google::Apis::Core::Hashable
4186
+
4187
+ # Number of packets received since the beginning of the current BFD session.
4188
+ # Corresponds to the JSON property `numRx`
4189
+ # @return [Fixnum]
4190
+ attr_accessor :num_rx
4191
+
4192
+ # Number of packets received that were rejected because of errors since the
4193
+ # beginning of the current BFD session.
4194
+ # Corresponds to the JSON property `numRxRejected`
4195
+ # @return [Fixnum]
4196
+ attr_accessor :num_rx_rejected
4197
+
4198
+ # Number of packets received that were successfully processed since the
4199
+ # beginning of the current BFD session.
4200
+ # Corresponds to the JSON property `numRxSuccessful`
4201
+ # @return [Fixnum]
4202
+ attr_accessor :num_rx_successful
4203
+
4204
+ # Number of packets transmitted since the beginning of the current BFD session.
4205
+ # Corresponds to the JSON property `numTx`
4206
+ # @return [Fixnum]
4207
+ attr_accessor :num_tx
4208
+
4209
+ def initialize(**args)
4210
+ update!(**args)
4211
+ end
4212
+
4213
+ # Update properties of this object
4214
+ def update!(**args)
4215
+ @num_rx = args[:num_rx] if args.key?(:num_rx)
4216
+ @num_rx_rejected = args[:num_rx_rejected] if args.key?(:num_rx_rejected)
4217
+ @num_rx_successful = args[:num_rx_successful] if args.key?(:num_rx_successful)
4218
+ @num_tx = args[:num_tx] if args.key?(:num_tx)
4219
+ end
4220
+ end
4221
+
3952
4222
  # Associates `members` with a `role`.
3953
4223
  class Binding
3954
4224
  include Google::Apis::Core::Hashable
@@ -4360,6 +4630,14 @@ module Google
4360
4630
  # @return [String]
4361
4631
  attr_accessor :status_message
4362
4632
 
4633
+ # The type of commitment, which affects the discount rate and the eligible
4634
+ # resources. Type MEMORY_OPTIMIZED specifies a commitment that will only apply
4635
+ # to memory optimized machines. Type ACCELERATOR_OPTIMIZED specifies a
4636
+ # commitment that will only apply to accelerator optimized machines.
4637
+ # Corresponds to the JSON property `type`
4638
+ # @return [String]
4639
+ attr_accessor :type
4640
+
4363
4641
  def initialize(**args)
4364
4642
  update!(**args)
4365
4643
  end
@@ -4382,6 +4660,7 @@ module Google
4382
4660
  @start_timestamp = args[:start_timestamp] if args.key?(:start_timestamp)
4383
4661
  @status = args[:status] if args.key?(:status)
4384
4662
  @status_message = args[:status_message] if args.key?(:status_message)
4663
+ @type = args[:type] if args.key?(:type)
4385
4664
  end
4386
4665
  end
4387
4666
 
@@ -4950,30 +5229,39 @@ module Google
4950
5229
  class CustomerEncryptionKey
4951
5230
  include Google::Apis::Core::Hashable
4952
5231
 
4953
- # The name of the encryption key that is stored in Google Cloud KMS.
5232
+ # The name of the encryption key that is stored in Google Cloud KMS. For example:
5233
+ # "kmsKeyName": "projects/kms_project_id/locations/region/keyRings/ key_region/
5234
+ # cryptoKeys/key
4954
5235
  # Corresponds to the JSON property `kmsKeyName`
4955
5236
  # @return [String]
4956
5237
  attr_accessor :kms_key_name
4957
5238
 
4958
5239
  # The service account being used for the encryption request for the given KMS
4959
- # key. If absent, the Compute Engine default service account is used.
5240
+ # key. If absent, the Compute Engine default service account is used. For
5241
+ # example: "kmsKeyServiceAccount": "name@project_id.iam.gserviceaccount.com/
4960
5242
  # Corresponds to the JSON property `kmsKeyServiceAccount`
4961
5243
  # @return [String]
4962
5244
  attr_accessor :kms_key_service_account
4963
5245
 
4964
5246
  # Specifies a 256-bit customer-supplied encryption key, encoded in RFC 4648
4965
- # base64 to either encrypt or decrypt this resource.
5247
+ # base64 to either encrypt or decrypt this resource. You can provide either the
5248
+ # rawKey or the rsaEncryptedKey. For example: "rawKey": "
5249
+ # SGVsbG8gZnJvbSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0="
4966
5250
  # Corresponds to the JSON property `rawKey`
4967
5251
  # @return [String]
4968
5252
  attr_accessor :raw_key
4969
5253
 
4970
5254
  # Specifies an RFC 4648 base64 encoded, RSA-wrapped 2048-bit customer-supplied
4971
- # encryption key to either encrypt or decrypt this resource. The key must meet
4972
- # the following requirements before you can provide it to Compute Engine: 1. The
4973
- # key is wrapped using a RSA public key certificate provided by Google. 2. After
4974
- # being wrapped, the key must be encoded in RFC 4648 base64 encoding. Gets the
4975
- # RSA public key certificate provided by Google at: https://cloud-certs.storage.
4976
- # googleapis.com/google-cloud-csek-ingress.pem
5255
+ # encryption key to either encrypt or decrypt this resource. You can provide
5256
+ # either the rawKey or the rsaEncryptedKey. For example: "rsaEncryptedKey": "
5257
+ # ieCx/NcW06PcT7Ep1X6LUTc/hLvUDYyzSZPPVCVPTVEohpeHASqC8uw5TzyO9U+Fka9JFH
5258
+ # z0mBibXUInrC/jEk014kCK/NPjYgEMOyssZ4ZINPKxlUh2zn1bV+MCaTICrdmuSBTWlUUiFoD
5259
+ # D6PYznLwh8ZNdaheCeZ8ewEXgFQ8V+sDroLaN3Xs3MDTXQEMMoNUXMCZEIpg9Vtp9x2oe==" The
5260
+ # key must meet the following requirements before you can provide it to Compute
5261
+ # Engine: 1. The key is wrapped using a RSA public key certificate provided by
5262
+ # Google. 2. After being wrapped, the key must be encoded in RFC 4648 base64
5263
+ # encoding. Gets the RSA public key certificate provided by Google at: https://
5264
+ # cloud-certs.storage.googleapis.com/google-cloud-csek-ingress.pem
4977
5265
  # Corresponds to the JSON property `rsaEncryptedKey`
4978
5266
  # @return [String]
4979
5267
  attr_accessor :rsa_encrypted_key
@@ -5008,7 +5296,8 @@ module Google
5008
5296
  attr_accessor :disk_encryption_key
5009
5297
 
5010
5298
  # Specifies a valid partial or full URL to an existing Persistent Disk resource.
5011
- # This field is only applicable for persistent disks.
5299
+ # This field is only applicable for persistent disks. For example: "source": "/
5300
+ # compute/v1/projects/project_id/zones/zone/disks/ disk_name
5012
5301
  # Corresponds to the JSON property `source`
5013
5302
  # @return [String]
5014
5303
  attr_accessor :source
@@ -5103,14 +5392,20 @@ module Google
5103
5392
  # @return [String]
5104
5393
  attr_accessor :description
5105
5394
 
5106
- # Encrypts the disk using a customer-supplied encryption key. After you encrypt
5107
- # a disk with a customer-supplied key, you must provide the same key if you use
5108
- # the disk later (e.g. to create a disk snapshot, to create a disk image, to
5109
- # create a machine image, or to attach the disk to a virtual machine). Customer-
5110
- # supplied encryption keys do not protect access to metadata of the disk. If you
5111
- # do not provide an encryption key when creating the disk, then the disk will be
5112
- # encrypted using an automatically generated key and you do not need to provide
5113
- # a key to use the disk later.
5395
+ # Encrypts the disk using a customer-supplied encryption key or a customer-
5396
+ # managed encryption key. Encryption keys do not protect access to metadata of
5397
+ # the disk. After you encrypt a disk with a customer-supplied key, you must
5398
+ # provide the same key if you use the disk later. For example, to create a disk
5399
+ # snapshot, to create a disk image, to create a machine image, or to attach the
5400
+ # disk to a virtual machine. After you encrypt a disk with a customer-managed
5401
+ # key, the diskEncryptionKey.kmsKeyName is set to a key *version* name once the
5402
+ # disk is created. The disk is encrypted with this version of the key. In the
5403
+ # response, diskEncryptionKey.kmsKeyName appears in the following format: "
5404
+ # diskEncryptionKey.kmsKeyName": "projects/kms_project_id/locations/region/
5405
+ # keyRings/ key_region/cryptoKeys/key /cryptoKeysVersions/version If you do not
5406
+ # provide an encryption key when creating the disk, then the disk is encrypted
5407
+ # using an automatically generated key and you don't need to provide a key to
5408
+ # use the disk later.
5114
5409
  # Corresponds to the JSON property `diskEncryptionKey`
5115
5410
  # @return [Google::Apis::ComputeV1::CustomerEncryptionKey]
5116
5411
  attr_accessor :disk_encryption_key
@@ -6925,7 +7220,7 @@ module Google
6925
7220
 
6926
7221
  # If destination ranges are specified, the firewall rule applies only to traffic
6927
7222
  # that has destination IP address in these ranges. These ranges must be
6928
- # expressed in CIDR format. Only IPv4 is supported.
7223
+ # expressed in CIDR format. Both IPv4 and IPv6 are supported.
6929
7224
  # Corresponds to the JSON property `destinationRanges`
6930
7225
  # @return [Array<String>]
6931
7226
  attr_accessor :destination_ranges
@@ -6965,7 +7260,7 @@ module Google
6965
7260
  # Name of the resource; provided by the client when the resource is created. The
6966
7261
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
6967
7262
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
6968
- # z0-9]*[a-z0-9])?. The first character must be a lowercase letter, and all
7263
+ # z0-9]*[a-z0-9])?`. The first character must be a lowercase letter, and all
6969
7264
  # following characters (except for the last character) must be a dash, lowercase
6970
7265
  # letter, or digit. The last character must be a lowercase letter or digit.
6971
7266
  # Corresponds to the JSON property `name`
@@ -7005,7 +7300,7 @@ module Google
7005
7300
  # fields are set, the rule applies to traffic that has a source IP address
7006
7301
  # within sourceRanges OR a source IP from a resource with a matching tag listed
7007
7302
  # in the sourceTags field. The connection does not need to match both fields for
7008
- # the rule to apply. Only IPv4 is supported.
7303
+ # the rule to apply. Both IPv4 and IPv6 are supported.
7009
7304
  # Corresponds to the JSON property `sourceRanges`
7010
7305
  # @return [Array<String>]
7011
7306
  attr_accessor :source_ranges
@@ -7339,7 +7634,7 @@ module Google
7339
7634
  attr_accessor :description
7340
7635
 
7341
7636
  # Deprecated, please use short name instead. User-provided name of the
7342
- # Organization firewall plicy. The name should be unique in the organization in
7637
+ # Organization firewall policy. The name should be unique in the organization in
7343
7638
  # which the firewall policy is created. This name must be set on creation and
7344
7639
  # cannot be changed. The name must be 1-63 characters long, and comply with
7345
7640
  # RFC1035. Specifically, the name must be 1-63 characters long and match the
@@ -8636,7 +8931,7 @@ module Google
8636
8931
  # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
8637
8932
  # roles/resourcemanager.organizationViewer condition: title: expirable access
8638
8933
  # description: Does not grant access after Sep 2020 expression: request.time <
8639
- # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
8934
+ # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
8640
8935
  # description of IAM and its features, see the [IAM documentation](https://cloud.
8641
8936
  # google.com/iam/docs/).
8642
8937
  # Corresponds to the JSON property `policy`
@@ -8733,7 +9028,7 @@ module Google
8733
9028
  # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
8734
9029
  # roles/resourcemanager.organizationViewer condition: title: expirable access
8735
9030
  # description: Does not grant access after Sep 2020 expression: request.time <
8736
- # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
9031
+ # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
8737
9032
  # description of IAM and its features, see the [IAM documentation](https://cloud.
8738
9033
  # google.com/iam/docs/).
8739
9034
  # Corresponds to the JSON property `policy`
@@ -11321,10 +11616,12 @@ module Google
11321
11616
  # @return [String]
11322
11617
  attr_accessor :source_disk_id
11323
11618
 
11324
- # URL of the source image used to create this image. In order to create an image,
11325
- # you must provide the full or partial URL of one of the following: - The
11326
- # rawDisk.source URL - The sourceDisk URL - The sourceImage URL - The
11327
- # sourceSnapshot URL
11619
+ # URL of the source image used to create this image. The following are valid
11620
+ # formats for the URL: - https://www.googleapis.com/compute/v1/projects/
11621
+ # project_id/global/ images/image_name - projects/project_id/global/images/
11622
+ # image_name In order to create an image, you must provide the full or partial
11623
+ # URL of one of the following: - The rawDisk.source URL - The sourceDisk URL -
11624
+ # The sourceImage URL - The sourceSnapshot URL
11328
11625
  # Corresponds to the JSON property `sourceImage`
11329
11626
  # @return [String]
11330
11627
  attr_accessor :source_image
@@ -11342,10 +11639,12 @@ module Google
11342
11639
  # @return [String]
11343
11640
  attr_accessor :source_image_id
11344
11641
 
11345
- # URL of the source snapshot used to create this image. In order to create an
11346
- # image, you must provide the full or partial URL of one of the following: - The
11347
- # rawDisk.source URL - The sourceDisk URL - The sourceImage URL - The
11348
- # sourceSnapshot URL
11642
+ # URL of the source snapshot used to create this image. The following are valid
11643
+ # formats for the URL: - https://www.googleapis.com/compute/v1/projects/
11644
+ # project_id/global/ snapshots/snapshot_name - projects/project_id/global/
11645
+ # snapshots/snapshot_name In order to create an image, you must provide the full
11646
+ # or partial URL of one of the following: - The rawDisk.source URL - The
11647
+ # sourceDisk URL - The sourceImage URL - The sourceSnapshot URL
11349
11648
  # Corresponds to the JSON property `sourceSnapshot`
11350
11649
  # @return [String]
11351
11650
  attr_accessor :source_snapshot
@@ -11439,10 +11738,12 @@ module Google
11439
11738
  # @return [String]
11440
11739
  attr_accessor :sha1_checksum
11441
11740
 
11442
- # The full Google Cloud Storage URL where the disk image is stored. In order to
11443
- # create an image, you must provide the full or partial URL of one of the
11444
- # following: - The rawDisk.source URL - The sourceDisk URL - The sourceImage URL
11445
- # - The sourceSnapshot URL
11741
+ # The full Google Cloud Storage URL where the raw disk image archive is stored.
11742
+ # The following are valid formats for the URL: - https://storage.googleapis.com/
11743
+ # bucket_name/image_archive_name - https://storage.googleapis.com/bucket_name/
11744
+ # folder_name/ image_archive_name In order to create an image, you must provide
11745
+ # the full or partial URL of one of the following: - The rawDisk.source URL -
11746
+ # The sourceDisk URL - The sourceImage URL - The sourceSnapshot URL
11446
11747
  # Corresponds to the JSON property `source`
11447
11748
  # @return [String]
11448
11749
  attr_accessor :source
@@ -11460,6 +11761,26 @@ module Google
11460
11761
  end
11461
11762
  end
11462
11763
 
11764
+ #
11765
+ class ImageFamilyView
11766
+ include Google::Apis::Core::Hashable
11767
+
11768
+ # Represents an Image resource. You can use images to create boot disks for your
11769
+ # VM instances. For more information, read Images.
11770
+ # Corresponds to the JSON property `image`
11771
+ # @return [Google::Apis::ComputeV1::Image]
11772
+ attr_accessor :image
11773
+
11774
+ def initialize(**args)
11775
+ update!(**args)
11776
+ end
11777
+
11778
+ # Update properties of this object
11779
+ def update!(**args)
11780
+ @image = args[:image] if args.key?(:image)
11781
+ end
11782
+ end
11783
+
11463
11784
  # Contains a list of images.
11464
11785
  class ImageList
11465
11786
  include Google::Apis::Core::Hashable
@@ -13262,6 +13583,18 @@ module Google
13262
13583
  # @return [Array<String>]
13263
13584
  attr_accessor :instances
13264
13585
 
13586
+ # Specifies whether the request should proceed despite the inclusion of
13587
+ # instances that are not members of the group or that are already in the process
13588
+ # of being deleted or abandoned. If this field is set to `false` and such an
13589
+ # instance is specified in the request, the operation fails. The operation
13590
+ # always fails if the request contains a malformed instance URL or a reference
13591
+ # to an instance that exists in a zone or region other than the group's zone or
13592
+ # region.
13593
+ # Corresponds to the JSON property `skipInstancesOnValidationError`
13594
+ # @return [Boolean]
13595
+ attr_accessor :skip_instances_on_validation_error
13596
+ alias_method :skip_instances_on_validation_error?, :skip_instances_on_validation_error
13597
+
13265
13598
  def initialize(**args)
13266
13599
  update!(**args)
13267
13600
  end
@@ -13269,6 +13602,7 @@ module Google
13269
13602
  # Update properties of this object
13270
13603
  def update!(**args)
13271
13604
  @instances = args[:instances] if args.key?(:instances)
13605
+ @skip_instances_on_validation_error = args[:skip_instances_on_validation_error] if args.key?(:skip_instances_on_validation_error)
13272
13606
  end
13273
13607
  end
13274
13608
 
@@ -14397,7 +14731,8 @@ module Google
14397
14731
  attr_accessor :network_interfaces
14398
14732
 
14399
14733
  # The private IPv6 google access type for VMs. If not specified, use
14400
- # INHERIT_FROM_SUBNETWORK as default.
14734
+ # INHERIT_FROM_SUBNETWORK as default. Note that for MachineImage, this is not
14735
+ # supported yet.
14401
14736
  # Corresponds to the JSON property `privateIpv6GoogleAccess`
14402
14737
  # @return [String]
14403
14738
  attr_accessor :private_ipv6_google_access
@@ -14408,7 +14743,7 @@ module Google
14408
14743
  attr_accessor :reservation_affinity
14409
14744
 
14410
14745
  # Resource policies (names, not ULRs) applied to instances created from these
14411
- # properties.
14746
+ # properties. Note that for MachineImage, this is not supported yet.
14412
14747
  # Corresponds to the JSON property `resourcePolicies`
14413
14748
  # @return [Array<String>]
14414
14749
  attr_accessor :resource_policies
@@ -15215,6 +15550,14 @@ module Google
15215
15550
  # @return [Fixnum]
15216
15551
  attr_accessor :requested_link_count
15217
15552
 
15553
+ # [Output Only] Set to true if the resource satisfies the zone separation
15554
+ # organization policy constraints and false otherwise. Defaults to false if the
15555
+ # field is not present.
15556
+ # Corresponds to the JSON property `satisfiesPzs`
15557
+ # @return [Boolean]
15558
+ attr_accessor :satisfies_pzs
15559
+ alias_method :satisfies_pzs?, :satisfies_pzs
15560
+
15218
15561
  # [Output Only] Server-defined URL for the resource.
15219
15562
  # Corresponds to the JSON property `selfLink`
15220
15563
  # @return [String]
@@ -15257,6 +15600,7 @@ module Google
15257
15600
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
15258
15601
  @provisioned_link_count = args[:provisioned_link_count] if args.key?(:provisioned_link_count)
15259
15602
  @requested_link_count = args[:requested_link_count] if args.key?(:requested_link_count)
15603
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
15260
15604
  @self_link = args[:self_link] if args.key?(:self_link)
15261
15605
  @state = args[:state] if args.key?(:state)
15262
15606
  end
@@ -15463,6 +15807,14 @@ module Google
15463
15807
  # @return [String]
15464
15808
  attr_accessor :router
15465
15809
 
15810
+ # [Output Only] Set to true if the resource satisfies the zone separation
15811
+ # organization policy constraints and false otherwise. Defaults to false if the
15812
+ # field is not present.
15813
+ # Corresponds to the JSON property `satisfiesPzs`
15814
+ # @return [Boolean]
15815
+ attr_accessor :satisfies_pzs
15816
+ alias_method :satisfies_pzs?, :satisfies_pzs
15817
+
15466
15818
  # [Output Only] Server-defined URL for the resource.
15467
15819
  # Corresponds to the JSON property `selfLink`
15468
15820
  # @return [String]
@@ -15532,6 +15884,7 @@ module Google
15532
15884
  @private_interconnect_info = args[:private_interconnect_info] if args.key?(:private_interconnect_info)
15533
15885
  @region = args[:region] if args.key?(:region)
15534
15886
  @router = args[:router] if args.key?(:router)
15887
+ @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
15535
15888
  @self_link = args[:self_link] if args.key?(:self_link)
15536
15889
  @state = args[:state] if args.key?(:state)
15537
15890
  @type = args[:type] if args.key?(:type)
@@ -16359,6 +16712,13 @@ module Google
16359
16712
  # @return [String]
16360
16713
  attr_accessor :status
16361
16714
 
16715
+ # [Output Only] Set to true for locations that support physical zone separation.
16716
+ # Defaults to false if the field is not present.
16717
+ # Corresponds to the JSON property `supportsPzs`
16718
+ # @return [Boolean]
16719
+ attr_accessor :supports_pzs
16720
+ alias_method :supports_pzs?, :supports_pzs
16721
+
16362
16722
  def initialize(**args)
16363
16723
  update!(**args)
16364
16724
  end
@@ -16380,6 +16740,7 @@ module Google
16380
16740
  @region_infos = args[:region_infos] if args.key?(:region_infos)
16381
16741
  @self_link = args[:self_link] if args.key?(:self_link)
16382
16742
  @status = args[:status] if args.key?(:status)
16743
+ @supports_pzs = args[:supports_pzs] if args.key?(:supports_pzs)
16383
16744
  end
16384
16745
  end
16385
16746
 
@@ -18113,7 +18474,7 @@ module Google
18113
18474
  attr_accessor :kind
18114
18475
 
18115
18476
  # Maximum Transmission Unit in bytes. The minimum value for this field is 1460
18116
- # and the maximum value is 1500 bytes.
18477
+ # and the maximum value is 1500 bytes. If unspecified, defaults to 1460.
18117
18478
  # Corresponds to the JSON property `mtu`
18118
18479
  # @return [Fixnum]
18119
18480
  attr_accessor :mtu
@@ -19299,9 +19660,8 @@ module Google
19299
19660
  alias_method :export_custom_routes?, :export_custom_routes
19300
19661
 
19301
19662
  # Whether subnet routes with public IP range are exported. The default value is
19302
- # true, all subnet routes are exported. The IPv4 special-use ranges (https://en.
19303
- # wikipedia.org/wiki/IPv4#Special_addresses) are always exported to peers and
19304
- # are not controlled by this field.
19663
+ # true, all subnet routes are exported. IPv4 special-use ranges are always
19664
+ # exported to peers and are not controlled by this field.
19305
19665
  # Corresponds to the JSON property `exportSubnetRoutesWithPublicIp`
19306
19666
  # @return [Boolean]
19307
19667
  attr_accessor :export_subnet_routes_with_public_ip
@@ -19314,9 +19674,8 @@ module Google
19314
19674
  alias_method :import_custom_routes?, :import_custom_routes
19315
19675
 
19316
19676
  # Whether subnet routes with public IP range are imported. The default value is
19317
- # false. The IPv4 special-use ranges (https://en.wikipedia.org/wiki/IPv4#
19318
- # Special_addresses) are always imported from peers and are not controlled by
19319
- # this field.
19677
+ # false. IPv4 special-use ranges are always imported from peers and are not
19678
+ # controlled by this field.
19320
19679
  # Corresponds to the JSON property `importSubnetRoutesWithPublicIp`
19321
19680
  # @return [Boolean]
19322
19681
  attr_accessor :import_subnet_routes_with_public_ip
@@ -19556,7 +19915,7 @@ module Google
19556
19915
  end
19557
19916
  end
19558
19917
 
19559
- # Represent a sole-tenant Node Group resource. A sole-tenant node is a physical
19918
+ # Represents a sole-tenant Node Group resource. A sole-tenant node is a physical
19560
19919
  # server that is dedicated to hosting VM instances only for your specific
19561
19920
  # project. Use sole-tenant nodes to keep your instances physically separated
19562
19921
  # from instances in other projects, or to group your instances together on the
@@ -22242,6 +22601,55 @@ module Google
22242
22601
  end
22243
22602
  end
22244
22603
 
22604
+ # Next free: 7
22605
+ class PacketIntervals
22606
+ include Google::Apis::Core::Hashable
22607
+
22608
+ # Average observed inter-packet interval in milliseconds.
22609
+ # Corresponds to the JSON property `avgMs`
22610
+ # @return [Fixnum]
22611
+ attr_accessor :avg_ms
22612
+
22613
+ # From how long ago in the past these intervals were observed.
22614
+ # Corresponds to the JSON property `duration`
22615
+ # @return [String]
22616
+ attr_accessor :duration
22617
+
22618
+ # Maximum observed inter-packet interval in milliseconds.
22619
+ # Corresponds to the JSON property `maxMs`
22620
+ # @return [Fixnum]
22621
+ attr_accessor :max_ms
22622
+
22623
+ # Minimum observed inter-packet interval in milliseconds.
22624
+ # Corresponds to the JSON property `minMs`
22625
+ # @return [Fixnum]
22626
+ attr_accessor :min_ms
22627
+
22628
+ # Number of inter-packet intervals from which these statistics were derived.
22629
+ # Corresponds to the JSON property `numIntervals`
22630
+ # @return [Fixnum]
22631
+ attr_accessor :num_intervals
22632
+
22633
+ # The type of packets for which inter-packet intervals were computed.
22634
+ # Corresponds to the JSON property `type`
22635
+ # @return [String]
22636
+ attr_accessor :type
22637
+
22638
+ def initialize(**args)
22639
+ update!(**args)
22640
+ end
22641
+
22642
+ # Update properties of this object
22643
+ def update!(**args)
22644
+ @avg_ms = args[:avg_ms] if args.key?(:avg_ms)
22645
+ @duration = args[:duration] if args.key?(:duration)
22646
+ @max_ms = args[:max_ms] if args.key?(:max_ms)
22647
+ @min_ms = args[:min_ms] if args.key?(:min_ms)
22648
+ @num_intervals = args[:num_intervals] if args.key?(:num_intervals)
22649
+ @type = args[:type] if args.key?(:type)
22650
+ end
22651
+ end
22652
+
22245
22653
  # Represents a Packet Mirroring resource. Packet Mirroring clones the traffic of
22246
22654
  # specified instances in your Virtual Private Cloud (VPC) network and forwards
22247
22655
  # it to a collector destination, such as an instance group of an internal TCP/
@@ -23083,7 +23491,7 @@ module Google
23083
23491
  # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
23084
23492
  # roles/resourcemanager.organizationViewer condition: title: expirable access
23085
23493
  # description: Does not grant access after Sep 2020 expression: request.time <
23086
- # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
23494
+ # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
23087
23495
  # description of IAM and its features, see the [IAM documentation](https://cloud.
23088
23496
  # google.com/iam/docs/).
23089
23497
  class Policy
@@ -25084,6 +25492,18 @@ module Google
25084
25492
  # @return [Array<String>]
25085
25493
  attr_accessor :instances
25086
25494
 
25495
+ # Specifies whether the request should proceed despite the inclusion of
25496
+ # instances that are not members of the group or that are already in the process
25497
+ # of being deleted or abandoned. If this field is set to `false` and such an
25498
+ # instance is specified in the request, the operation fails. The operation
25499
+ # always fails if the request contains a malformed instance URL or a reference
25500
+ # to an instance that exists in a zone or region other than the group's zone or
25501
+ # region.
25502
+ # Corresponds to the JSON property `skipInstancesOnValidationError`
25503
+ # @return [Boolean]
25504
+ attr_accessor :skip_instances_on_validation_error
25505
+ alias_method :skip_instances_on_validation_error?, :skip_instances_on_validation_error
25506
+
25087
25507
  def initialize(**args)
25088
25508
  update!(**args)
25089
25509
  end
@@ -25091,6 +25511,7 @@ module Google
25091
25511
  # Update properties of this object
25092
25512
  def update!(**args)
25093
25513
  @instances = args[:instances] if args.key?(:instances)
25514
+ @skip_instances_on_validation_error = args[:skip_instances_on_validation_error] if args.key?(:skip_instances_on_validation_error)
25094
25515
  end
25095
25516
  end
25096
25517
 
@@ -25685,7 +26106,7 @@ module Google
25685
26106
  # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
25686
26107
  # roles/resourcemanager.organizationViewer condition: title: expirable access
25687
26108
  # description: Does not grant access after Sep 2020 expression: request.time <
25688
- # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
26109
+ # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
25689
26110
  # description of IAM and its features, see the [IAM documentation](https://cloud.
25690
26111
  # google.com/iam/docs/).
25691
26112
  # Corresponds to the JSON property `policy`
@@ -25836,7 +26257,13 @@ module Google
25836
26257
  # @return [String]
25837
26258
  attr_accessor :self_link
25838
26259
 
26260
+ # The share setting for reservations and sole tenancy node groups.
26261
+ # Corresponds to the JSON property `shareSettings`
26262
+ # @return [Google::Apis::ComputeV1::ShareSettings]
26263
+ attr_accessor :share_settings
26264
+
25839
26265
  # This reservation type allows to pre allocate specific instance configuration.
26266
+ # Next ID: 5
25840
26267
  # Corresponds to the JSON property `specificReservation`
25841
26268
  # @return [Google::Apis::ComputeV1::AllocationSpecificSkuReservation]
25842
26269
  attr_accessor :specific_reservation
@@ -25874,6 +26301,7 @@ module Google
25874
26301
  @name = args[:name] if args.key?(:name)
25875
26302
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
25876
26303
  @self_link = args[:self_link] if args.key?(:self_link)
26304
+ @share_settings = args[:share_settings] if args.key?(:share_settings)
25877
26305
  @specific_reservation = args[:specific_reservation] if args.key?(:specific_reservation)
25878
26306
  @specific_reservation_required = args[:specific_reservation_required] if args.key?(:specific_reservation_required)
25879
26307
  @status = args[:status] if args.key?(:status)
@@ -27183,6 +27611,11 @@ module Google
27183
27611
  class Route
27184
27612
  include Google::Apis::Core::Hashable
27185
27613
 
27614
+ # [Output Only] AS path.
27615
+ # Corresponds to the JSON property `asPaths`
27616
+ # @return [Array<Google::Apis::ComputeV1::RouteAsPath>]
27617
+ attr_accessor :as_paths
27618
+
27186
27619
  # [Output Only] Creation timestamp in RFC3339 text format.
27187
27620
  # Corresponds to the JSON property `creationTimestamp`
27188
27621
  # @return [String]
@@ -27280,6 +27713,15 @@ module Google
27280
27713
  # @return [Fixnum]
27281
27714
  attr_accessor :priority
27282
27715
 
27716
+ # [Output Only] The type of this route, which can be one of the following values:
27717
+ # - 'TRANSIT' for a transit route that this router learned from another Cloud
27718
+ # Router and will readvertise to one of its BGP peers - 'SUBNET' for a route
27719
+ # from a subnet of the VPC - 'BGP' for a route learned from a BGP peer of this
27720
+ # router - 'STATIC' for a static route
27721
+ # Corresponds to the JSON property `routeType`
27722
+ # @return [String]
27723
+ attr_accessor :route_type
27724
+
27283
27725
  # [Output Only] Server-defined fully-qualified URL for this resource.
27284
27726
  # Corresponds to the JSON property `selfLink`
27285
27727
  # @return [String]
@@ -27302,6 +27744,7 @@ module Google
27302
27744
 
27303
27745
  # Update properties of this object
27304
27746
  def update!(**args)
27747
+ @as_paths = args[:as_paths] if args.key?(:as_paths)
27305
27748
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
27306
27749
  @description = args[:description] if args.key?(:description)
27307
27750
  @dest_range = args[:dest_range] if args.key?(:dest_range)
@@ -27317,6 +27760,7 @@ module Google
27317
27760
  @next_hop_peering = args[:next_hop_peering] if args.key?(:next_hop_peering)
27318
27761
  @next_hop_vpn_tunnel = args[:next_hop_vpn_tunnel] if args.key?(:next_hop_vpn_tunnel)
27319
27762
  @priority = args[:priority] if args.key?(:priority)
27763
+ @route_type = args[:route_type] if args.key?(:route_type)
27320
27764
  @self_link = args[:self_link] if args.key?(:self_link)
27321
27765
  @tags = args[:tags] if args.key?(:tags)
27322
27766
  @warnings = args[:warnings] if args.key?(:warnings)
@@ -27387,6 +27831,37 @@ module Google
27387
27831
  end
27388
27832
  end
27389
27833
 
27834
+ #
27835
+ class RouteAsPath
27836
+ include Google::Apis::Core::Hashable
27837
+
27838
+ # [Output Only] The AS numbers of the AS Path.
27839
+ # Corresponds to the JSON property `asLists`
27840
+ # @return [Array<Fixnum>]
27841
+ attr_accessor :as_lists
27842
+
27843
+ # [Output Only] The type of the AS Path, which can be one of the following
27844
+ # values: - 'AS_SET': unordered set of autonomous systems that the route in has
27845
+ # traversed - 'AS_SEQUENCE': ordered set of autonomous systems that the route
27846
+ # has traversed - 'AS_CONFED_SEQUENCE': ordered set of Member Autonomous Systems
27847
+ # in the local confederation that the route has traversed - 'AS_CONFED_SET':
27848
+ # unordered set of Member Autonomous Systems in the local confederation that the
27849
+ # route has traversed
27850
+ # Corresponds to the JSON property `pathSegmentType`
27851
+ # @return [String]
27852
+ attr_accessor :path_segment_type
27853
+
27854
+ def initialize(**args)
27855
+ update!(**args)
27856
+ end
27857
+
27858
+ # Update properties of this object
27859
+ def update!(**args)
27860
+ @as_lists = args[:as_lists] if args.key?(:as_lists)
27861
+ @path_segment_type = args[:path_segment_type] if args.key?(:path_segment_type)
27862
+ end
27863
+ end
27864
+
27390
27865
  # Contains a list of Route resources.
27391
27866
  class RouteList
27392
27867
  include Google::Apis::Core::Hashable
@@ -27853,6 +28328,11 @@ module Google
27853
28328
  # @return [Fixnum]
27854
28329
  attr_accessor :advertised_route_priority
27855
28330
 
28331
+ # BFD configuration for the BGP peering.
28332
+ # Corresponds to the JSON property `bfd`
28333
+ # @return [Google::Apis::ComputeV1::RouterBgpPeerBfd]
28334
+ attr_accessor :bfd
28335
+
27856
28336
  # The status of the BGP peer connection. If set to FALSE, any active session
27857
28337
  # with the peer is terminated and all associated routing information is removed.
27858
28338
  # If set to TRUE, the peer connection can be established with routing
@@ -27904,6 +28384,14 @@ module Google
27904
28384
  # @return [String]
27905
28385
  attr_accessor :peer_ip_address
27906
28386
 
28387
+ # URI of the VM instance that is used as third-party router appliances such as
28388
+ # Next Gen Firewalls, Virtual Routers, or Router Appliances. The VM instance
28389
+ # must be located in zones contained in the same region as this Cloud Router.
28390
+ # The VM instance is the peer side of the BGP session.
28391
+ # Corresponds to the JSON property `routerApplianceInstance`
28392
+ # @return [String]
28393
+ attr_accessor :router_appliance_instance
28394
+
27907
28395
  def initialize(**args)
27908
28396
  update!(**args)
27909
28397
  end
@@ -27914,6 +28402,7 @@ module Google
27914
28402
  @advertised_groups = args[:advertised_groups] if args.key?(:advertised_groups)
27915
28403
  @advertised_ip_ranges = args[:advertised_ip_ranges] if args.key?(:advertised_ip_ranges)
27916
28404
  @advertised_route_priority = args[:advertised_route_priority] if args.key?(:advertised_route_priority)
28405
+ @bfd = args[:bfd] if args.key?(:bfd)
27917
28406
  @enable = args[:enable] if args.key?(:enable)
27918
28407
  @interface_name = args[:interface_name] if args.key?(:interface_name)
27919
28408
  @ip_address = args[:ip_address] if args.key?(:ip_address)
@@ -27921,6 +28410,58 @@ module Google
27921
28410
  @name = args[:name] if args.key?(:name)
27922
28411
  @peer_asn = args[:peer_asn] if args.key?(:peer_asn)
27923
28412
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
28413
+ @router_appliance_instance = args[:router_appliance_instance] if args.key?(:router_appliance_instance)
28414
+ end
28415
+ end
28416
+
28417
+ #
28418
+ class RouterBgpPeerBfd
28419
+ include Google::Apis::Core::Hashable
28420
+
28421
+ # The minimum interval, in milliseconds, between BFD control packets received
28422
+ # from the peer router. The actual value is negotiated between the two routers
28423
+ # and is equal to the greater of this value and the transmit interval of the
28424
+ # other router. If set, this value must be between 1000 and 30000. The default
28425
+ # is 1000.
28426
+ # Corresponds to the JSON property `minReceiveInterval`
28427
+ # @return [Fixnum]
28428
+ attr_accessor :min_receive_interval
28429
+
28430
+ # The minimum interval, in milliseconds, between BFD control packets transmitted
28431
+ # to the peer router. The actual value is negotiated between the two routers and
28432
+ # is equal to the greater of this value and the corresponding receive interval
28433
+ # of the other router. If set, this value must be between 1000 and 30000. The
28434
+ # default is 1000.
28435
+ # Corresponds to the JSON property `minTransmitInterval`
28436
+ # @return [Fixnum]
28437
+ attr_accessor :min_transmit_interval
28438
+
28439
+ # The number of consecutive BFD packets that must be missed before BFD declares
28440
+ # that a peer is unavailable. If set, the value must be a value between 5 and 16.
28441
+ # The default is 5.
28442
+ # Corresponds to the JSON property `multiplier`
28443
+ # @return [Fixnum]
28444
+ attr_accessor :multiplier
28445
+
28446
+ # The BFD session initialization mode for this BGP peer. If set to ACTIVE, the
28447
+ # Cloud Router will initiate the BFD session for this BGP peer. If set to
28448
+ # PASSIVE, the Cloud Router will wait for the peer router to initiate the BFD
28449
+ # session for this BGP peer. If set to DISABLED, BFD is disabled for this BGP
28450
+ # peer. The default is PASSIVE.
28451
+ # Corresponds to the JSON property `sessionInitializationMode`
28452
+ # @return [String]
28453
+ attr_accessor :session_initialization_mode
28454
+
28455
+ def initialize(**args)
28456
+ update!(**args)
28457
+ end
28458
+
28459
+ # Update properties of this object
28460
+ def update!(**args)
28461
+ @min_receive_interval = args[:min_receive_interval] if args.key?(:min_receive_interval)
28462
+ @min_transmit_interval = args[:min_transmit_interval] if args.key?(:min_transmit_interval)
28463
+ @multiplier = args[:multiplier] if args.key?(:multiplier)
28464
+ @session_initialization_mode = args[:session_initialization_mode] if args.key?(:session_initialization_mode)
27924
28465
  end
27925
28466
  end
27926
28467
 
@@ -27970,6 +28511,35 @@ module Google
27970
28511
  # @return [String]
27971
28512
  attr_accessor :name
27972
28513
 
28514
+ # The regional private internal IP address that is used to establish BGP
28515
+ # sessions to a VM instance acting as a third-party Router Appliance, such as a
28516
+ # Next Gen Firewall, a Virtual Router, or an SD-WAN VM.
28517
+ # Corresponds to the JSON property `privateIpAddress`
28518
+ # @return [String]
28519
+ attr_accessor :private_ip_address
28520
+
28521
+ # Name of the interface that will be redundant with the current interface you
28522
+ # are creating. The redundantInterface must belong to the same Cloud Router as
28523
+ # the interface here. To establish the BGP session to a Router Appliance VM, you
28524
+ # must create two BGP peers. The two BGP peers must be attached to two separate
28525
+ # interfaces that are redundant with each other. The redundant_interface must be
28526
+ # 1-63 characters long, and comply with RFC1035. Specifically, the
28527
+ # redundant_interface must be 1-63 characters long and match the regular
28528
+ # expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
28529
+ # be a lowercase letter, and all following characters must be a dash, lowercase
28530
+ # letter, or digit, except the last character, which cannot be a dash.
28531
+ # Corresponds to the JSON property `redundantInterface`
28532
+ # @return [String]
28533
+ attr_accessor :redundant_interface
28534
+
28535
+ # The URI of the subnetwork resource that this interface belongs to, which must
28536
+ # be in the same region as the Cloud Router. When you establish a BGP session to
28537
+ # a VM instance using this interface, the VM instance must belong to the same
28538
+ # subnetwork as the subnetwork specified here.
28539
+ # Corresponds to the JSON property `subnetwork`
28540
+ # @return [String]
28541
+ attr_accessor :subnetwork
28542
+
27973
28543
  def initialize(**args)
27974
28544
  update!(**args)
27975
28545
  end
@@ -27981,6 +28551,9 @@ module Google
27981
28551
  @linked_vpn_tunnel = args[:linked_vpn_tunnel] if args.key?(:linked_vpn_tunnel)
27982
28552
  @management_type = args[:management_type] if args.key?(:management_type)
27983
28553
  @name = args[:name] if args.key?(:name)
28554
+ @private_ip_address = args[:private_ip_address] if args.key?(:private_ip_address)
28555
+ @redundant_interface = args[:redundant_interface] if args.key?(:redundant_interface)
28556
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
27984
28557
  end
27985
28558
  end
27986
28559
 
@@ -28161,6 +28734,11 @@ module Google
28161
28734
  # @return [Array<String>]
28162
28735
  attr_accessor :nat_ips
28163
28736
 
28737
+ # A list of rules associated with this NAT.
28738
+ # Corresponds to the JSON property `rules`
28739
+ # @return [Array<Google::Apis::ComputeV1::RouterNatRule>]
28740
+ attr_accessor :rules
28741
+
28164
28742
  # Specify the Nat option, which can take one of the following values: -
28165
28743
  # ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every Subnetwork are
28166
28744
  # allowed to Nat. - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP
@@ -28187,6 +28765,12 @@ module Google
28187
28765
  # @return [Fixnum]
28188
28766
  attr_accessor :tcp_established_idle_timeout_sec
28189
28767
 
28768
+ # Timeout (in seconds) for TCP connections that are in TIME_WAIT state. Defaults
28769
+ # to 120s if not set.
28770
+ # Corresponds to the JSON property `tcpTimeWaitTimeoutSec`
28771
+ # @return [Fixnum]
28772
+ attr_accessor :tcp_time_wait_timeout_sec
28773
+
28190
28774
  # Timeout (in seconds) for TCP transitory connections. Defaults to 30s if not
28191
28775
  # set.
28192
28776
  # Corresponds to the JSON property `tcpTransitoryIdleTimeoutSec`
@@ -28212,9 +28796,11 @@ module Google
28212
28796
  @name = args[:name] if args.key?(:name)
28213
28797
  @nat_ip_allocate_option = args[:nat_ip_allocate_option] if args.key?(:nat_ip_allocate_option)
28214
28798
  @nat_ips = args[:nat_ips] if args.key?(:nat_ips)
28799
+ @rules = args[:rules] if args.key?(:rules)
28215
28800
  @source_subnetwork_ip_ranges_to_nat = args[:source_subnetwork_ip_ranges_to_nat] if args.key?(:source_subnetwork_ip_ranges_to_nat)
28216
28801
  @subnetworks = args[:subnetworks] if args.key?(:subnetworks)
28217
28802
  @tcp_established_idle_timeout_sec = args[:tcp_established_idle_timeout_sec] if args.key?(:tcp_established_idle_timeout_sec)
28803
+ @tcp_time_wait_timeout_sec = args[:tcp_time_wait_timeout_sec] if args.key?(:tcp_time_wait_timeout_sec)
28218
28804
  @tcp_transitory_idle_timeout_sec = args[:tcp_transitory_idle_timeout_sec] if args.key?(:tcp_transitory_idle_timeout_sec)
28219
28805
  @udp_idle_timeout_sec = args[:udp_idle_timeout_sec] if args.key?(:udp_idle_timeout_sec)
28220
28806
  end
@@ -28250,6 +28836,80 @@ module Google
28250
28836
  end
28251
28837
  end
28252
28838
 
28839
+ #
28840
+ class RouterNatRule
28841
+ include Google::Apis::Core::Hashable
28842
+
28843
+ # The action to be enforced for traffic that matches this rule.
28844
+ # Corresponds to the JSON property `action`
28845
+ # @return [Google::Apis::ComputeV1::RouterNatRuleAction]
28846
+ attr_accessor :action
28847
+
28848
+ # An optional description of this rule.
28849
+ # Corresponds to the JSON property `description`
28850
+ # @return [String]
28851
+ attr_accessor :description
28852
+
28853
+ # CEL expression that specifies the match condition that egress traffic from a
28854
+ # VM is evaluated against. If it evaluates to true, the corresponding `action`
28855
+ # is enforced. The following examples are valid match expressions for public NAT:
28856
+ # "inIpRange(destination.ip, '1.1.0.0/16') || inIpRange(destination.ip, '2.2.0.
28857
+ # 0/16')" "destination.ip == '1.1.0.1' || destination.ip == '8.8.8.8'" The
28858
+ # following example is a valid match expression for private NAT: "nexthop.hub ==
28859
+ # '/projects/my-project/global/hub/hub-1'"
28860
+ # Corresponds to the JSON property `match`
28861
+ # @return [String]
28862
+ attr_accessor :match
28863
+
28864
+ # An integer uniquely identifying a rule in the list. The rule number must be a
28865
+ # positive value between 0 and 65000, and must be unique among rules within a
28866
+ # NAT.
28867
+ # Corresponds to the JSON property `ruleNumber`
28868
+ # @return [Fixnum]
28869
+ attr_accessor :rule_number
28870
+
28871
+ def initialize(**args)
28872
+ update!(**args)
28873
+ end
28874
+
28875
+ # Update properties of this object
28876
+ def update!(**args)
28877
+ @action = args[:action] if args.key?(:action)
28878
+ @description = args[:description] if args.key?(:description)
28879
+ @match = args[:match] if args.key?(:match)
28880
+ @rule_number = args[:rule_number] if args.key?(:rule_number)
28881
+ end
28882
+ end
28883
+
28884
+ #
28885
+ class RouterNatRuleAction
28886
+ include Google::Apis::Core::Hashable
28887
+
28888
+ # A list of URLs of the IP resources used for this NAT rule. These IP addresses
28889
+ # must be valid static external IP addresses assigned to the project. This field
28890
+ # is used for public NAT.
28891
+ # Corresponds to the JSON property `sourceNatActiveIps`
28892
+ # @return [Array<String>]
28893
+ attr_accessor :source_nat_active_ips
28894
+
28895
+ # A list of URLs of the IP resources to be drained. These IPs must be valid
28896
+ # static external IPs that have been assigned to the NAT. These IPs should be
28897
+ # used for updating/patching a NAT rule only. This field is used for public NAT.
28898
+ # Corresponds to the JSON property `sourceNatDrainIps`
28899
+ # @return [Array<String>]
28900
+ attr_accessor :source_nat_drain_ips
28901
+
28902
+ def initialize(**args)
28903
+ update!(**args)
28904
+ end
28905
+
28906
+ # Update properties of this object
28907
+ def update!(**args)
28908
+ @source_nat_active_ips = args[:source_nat_active_ips] if args.key?(:source_nat_active_ips)
28909
+ @source_nat_drain_ips = args[:source_nat_drain_ips] if args.key?(:source_nat_drain_ips)
28910
+ end
28911
+ end
28912
+
28253
28913
  # Defines the IP ranges that want to use NAT for a subnetwork.
28254
28914
  class RouterNatSubnetworkToNat
28255
28915
  include Google::Apis::Core::Hashable
@@ -28338,6 +28998,11 @@ module Google
28338
28998
  # @return [Array<Google::Apis::ComputeV1::Route>]
28339
28999
  attr_accessor :advertised_routes
28340
29000
 
29001
+ # Next free: 15
29002
+ # Corresponds to the JSON property `bfdStatus`
29003
+ # @return [Google::Apis::ComputeV1::BfdStatus]
29004
+ attr_accessor :bfd_status
29005
+
28341
29006
  # IP address of the local BGP interface.
28342
29007
  # Corresponds to the JSON property `ipAddress`
28343
29008
  # @return [String]
@@ -28363,6 +29028,13 @@ module Google
28363
29028
  # @return [String]
28364
29029
  attr_accessor :peer_ip_address
28365
29030
 
29031
+ # [Output only] URI of the VM instance that is used as third-party router
29032
+ # appliances such as Next Gen Firewalls, Virtual Routers, or Router Appliances.
29033
+ # The VM instance is the peer side of the BGP session.
29034
+ # Corresponds to the JSON property `routerApplianceInstance`
29035
+ # @return [String]
29036
+ attr_accessor :router_appliance_instance
29037
+
28366
29038
  # BGP state as specified in RFC1771.
28367
29039
  # Corresponds to the JSON property `state`
28368
29040
  # @return [String]
@@ -28391,11 +29063,13 @@ module Google
28391
29063
  # Update properties of this object
28392
29064
  def update!(**args)
28393
29065
  @advertised_routes = args[:advertised_routes] if args.key?(:advertised_routes)
29066
+ @bfd_status = args[:bfd_status] if args.key?(:bfd_status)
28394
29067
  @ip_address = args[:ip_address] if args.key?(:ip_address)
28395
29068
  @linked_vpn_tunnel = args[:linked_vpn_tunnel] if args.key?(:linked_vpn_tunnel)
28396
29069
  @name = args[:name] if args.key?(:name)
28397
29070
  @num_learned_routes = args[:num_learned_routes] if args.key?(:num_learned_routes)
28398
29071
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
29072
+ @router_appliance_instance = args[:router_appliance_instance] if args.key?(:router_appliance_instance)
28399
29073
  @state = args[:state] if args.key?(:state)
28400
29074
  @status = args[:status] if args.key?(:status)
28401
29075
  @uptime = args[:uptime] if args.key?(:uptime)
@@ -28441,6 +29115,11 @@ module Google
28441
29115
  # @return [Fixnum]
28442
29116
  attr_accessor :num_vm_endpoints_with_nat_mappings
28443
29117
 
29118
+ # Status of rules in this NAT.
29119
+ # Corresponds to the JSON property `ruleStatus`
29120
+ # @return [Array<Google::Apis::ComputeV1::RouterStatusNatStatusNatRuleStatus>]
29121
+ attr_accessor :rule_status
29122
+
28444
29123
  # A list of fully qualified URLs of reserved IP address resources.
28445
29124
  # Corresponds to the JSON property `userAllocatedNatIpResources`
28446
29125
  # @return [Array<String>]
@@ -28464,11 +29143,58 @@ module Google
28464
29143
  @min_extra_nat_ips_needed = args[:min_extra_nat_ips_needed] if args.key?(:min_extra_nat_ips_needed)
28465
29144
  @name = args[:name] if args.key?(:name)
28466
29145
  @num_vm_endpoints_with_nat_mappings = args[:num_vm_endpoints_with_nat_mappings] if args.key?(:num_vm_endpoints_with_nat_mappings)
29146
+ @rule_status = args[:rule_status] if args.key?(:rule_status)
28467
29147
  @user_allocated_nat_ip_resources = args[:user_allocated_nat_ip_resources] if args.key?(:user_allocated_nat_ip_resources)
28468
29148
  @user_allocated_nat_ips = args[:user_allocated_nat_ips] if args.key?(:user_allocated_nat_ips)
28469
29149
  end
28470
29150
  end
28471
29151
 
29152
+ # Status of a NAT Rule contained in this NAT.
29153
+ class RouterStatusNatStatusNatRuleStatus
29154
+ include Google::Apis::Core::Hashable
29155
+
29156
+ # A list of active IPs for NAT. Example: ["1.1.1.1", "179.12.26.133"].
29157
+ # Corresponds to the JSON property `activeNatIps`
29158
+ # @return [Array<String>]
29159
+ attr_accessor :active_nat_ips
29160
+
29161
+ # A list of IPs for NAT that are in drain mode. Example: ["1.1.1.1", "179.12.26.
29162
+ # 133"].
29163
+ # Corresponds to the JSON property `drainNatIps`
29164
+ # @return [Array<String>]
29165
+ attr_accessor :drain_nat_ips
29166
+
29167
+ # The number of extra IPs to allocate. This will be greater than 0 only if the
29168
+ # existing IPs in this NAT Rule are NOT enough to allow all configured VMs to
29169
+ # use NAT.
29170
+ # Corresponds to the JSON property `minExtraIpsNeeded`
29171
+ # @return [Fixnum]
29172
+ attr_accessor :min_extra_ips_needed
29173
+
29174
+ # Number of VM endpoints (i.e., NICs) that have NAT Mappings from this NAT Rule.
29175
+ # Corresponds to the JSON property `numVmEndpointsWithNatMappings`
29176
+ # @return [Fixnum]
29177
+ attr_accessor :num_vm_endpoints_with_nat_mappings
29178
+
29179
+ # Rule number of the rule.
29180
+ # Corresponds to the JSON property `ruleNumber`
29181
+ # @return [Fixnum]
29182
+ attr_accessor :rule_number
29183
+
29184
+ def initialize(**args)
29185
+ update!(**args)
29186
+ end
29187
+
29188
+ # Update properties of this object
29189
+ def update!(**args)
29190
+ @active_nat_ips = args[:active_nat_ips] if args.key?(:active_nat_ips)
29191
+ @drain_nat_ips = args[:drain_nat_ips] if args.key?(:drain_nat_ips)
29192
+ @min_extra_ips_needed = args[:min_extra_ips_needed] if args.key?(:min_extra_ips_needed)
29193
+ @num_vm_endpoints_with_nat_mappings = args[:num_vm_endpoints_with_nat_mappings] if args.key?(:num_vm_endpoints_with_nat_mappings)
29194
+ @rule_number = args[:rule_number] if args.key?(:rule_number)
29195
+ end
29196
+ end
29197
+
28472
29198
  #
28473
29199
  class RouterStatusResponse
28474
29200
  include Google::Apis::Core::Hashable
@@ -29481,7 +30207,7 @@ module Google
29481
30207
  # Represents a ServiceAttachment resource. A service attachment represents a
29482
30208
  # service that a producer has exposed. It encapsulates the load balancer which
29483
30209
  # fronts the service runs and a list of NAT IP ranges that the producers uses to
29484
- # represent the consumers connecting to the service. next tag = 19
30210
+ # represent the consumers connecting to the service. next tag = 20
29485
30211
  class ServiceAttachment
29486
30212
  include Google::Apis::Core::Hashable
29487
30213
 
@@ -30010,6 +30736,25 @@ module Google
30010
30736
  end
30011
30737
  end
30012
30738
 
30739
+ # The share setting for reservations and sole tenancy node groups.
30740
+ class ShareSettings
30741
+ include Google::Apis::Core::Hashable
30742
+
30743
+ # Type of sharing for this shared-reservation
30744
+ # Corresponds to the JSON property `shareType`
30745
+ # @return [String]
30746
+ attr_accessor :share_type
30747
+
30748
+ def initialize(**args)
30749
+ update!(**args)
30750
+ end
30751
+
30752
+ # Update properties of this object
30753
+ def update!(**args)
30754
+ @share_type = args[:share_type] if args.key?(:share_type)
30755
+ end
30756
+ end
30757
+
30013
30758
  # A set of Shielded Instance options.
30014
30759
  class ShieldedInstanceConfig
30015
30760
  include Google::Apis::Core::Hashable
@@ -31508,9 +32253,8 @@ module Google
31508
32253
  attr_accessor :name
31509
32254
 
31510
32255
  # The URL of the network to which this subnetwork belongs, provided by the
31511
- # client when initially creating the subnetwork. Only networks that are in the
31512
- # distributed mode can have subnetworks. This field can be set only at resource
31513
- # creation time.
32256
+ # client when initially creating the subnetwork. This field can be set only at
32257
+ # resource creation time.
31514
32258
  # Corresponds to the JSON property `network`
31515
32259
  # @return [String]
31516
32260
  attr_accessor :network
@@ -32086,6 +32830,27 @@ module Google
32086
32830
  end
32087
32831
  end
32088
32832
 
32833
+ # Subsetting configuration for this BackendService. Currently this is applicable
32834
+ # only for Internal TCP/UDP load balancing, Internal HTTP(S) load balancing and
32835
+ # Traffic Director.
32836
+ class Subsetting
32837
+ include Google::Apis::Core::Hashable
32838
+
32839
+ #
32840
+ # Corresponds to the JSON property `policy`
32841
+ # @return [String]
32842
+ attr_accessor :policy
32843
+
32844
+ def initialize(**args)
32845
+ update!(**args)
32846
+ end
32847
+
32848
+ # Update properties of this object
32849
+ def update!(**args)
32850
+ @policy = args[:policy] if args.key?(:policy)
32851
+ end
32852
+ end
32853
+
32089
32854
  #
32090
32855
  class TcpHealthCheck
32091
32856
  include Google::Apis::Core::Hashable
@@ -33356,6 +34121,13 @@ module Google
33356
34121
  # @return [String]
33357
34122
  attr_accessor :nat_policy
33358
34123
 
34124
+ # The URL of the network this target instance uses to forward traffic. If not
34125
+ # specified, the traffic will be forwarded to the network that the default
34126
+ # network interface belongs to.
34127
+ # Corresponds to the JSON property `network`
34128
+ # @return [String]
34129
+ attr_accessor :network
34130
+
33359
34131
  # [Output Only] Server-defined URL for the resource.
33360
34132
  # Corresponds to the JSON property `selfLink`
33361
34133
  # @return [String]
@@ -33381,6 +34153,7 @@ module Google
33381
34153
  @kind = args[:kind] if args.key?(:kind)
33382
34154
  @name = args[:name] if args.key?(:name)
33383
34155
  @nat_policy = args[:nat_policy] if args.key?(:nat_policy)
34156
+ @network = args[:network] if args.key?(:network)
33384
34157
  @self_link = args[:self_link] if args.key?(:self_link)
33385
34158
  @zone = args[:zone] if args.key?(:zone)
33386
34159
  end
@@ -38173,7 +38946,7 @@ module Google
38173
38946
  # resourcemanager.organizationAdmin - members: - user:eve@example.com role:
38174
38947
  # roles/resourcemanager.organizationViewer condition: title: expirable access
38175
38948
  # description: Does not grant access after Sep 2020 expression: request.time <
38176
- # timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a
38949
+ # timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For a
38177
38950
  # description of IAM and its features, see the [IAM documentation](https://cloud.
38178
38951
  # google.com/iam/docs/).
38179
38952
  # Corresponds to the JSON property `policy`