google-apis-compute_v1 0.15.0 → 0.19.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
@@ -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`