google-apis-compute_beta 0.109.0 → 0.110.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.
@@ -3503,7 +3503,7 @@ module Google
3503
3503
  # @return [Float]
3504
3504
  attr_accessor :max_utilization
3505
3505
 
3506
- # Name of a custom utilization signal. The name must be 1-24 characters long and
3506
+ # Name of a custom utilization signal. The name must be 1-64 characters long and
3507
3507
  # match the regular expression [a-z]([-_.a-z0-9]*[a-z0-9])? which means the
3508
3508
  # first character must be a lowercase letter, and all following characters must
3509
3509
  # be a dash, period, underscore, lowercase letter, or digit, except the last
@@ -3618,6 +3618,11 @@ module Google
3618
3618
  # @return [String]
3619
3619
  attr_accessor :description
3620
3620
 
3621
+ # Defines a dynamic forwarding configuration for the backend service.
3622
+ # Corresponds to the JSON property `dynamicForwarding`
3623
+ # @return [Google::Apis::ComputeBeta::BackendServiceDynamicForwarding]
3624
+ attr_accessor :dynamic_forwarding
3625
+
3621
3626
  # [Output Only] The resource URL for the edge security policy associated with
3622
3627
  # this backend service.
3623
3628
  # Corresponds to the JSON property `edgeSecurityPolicy`
@@ -3816,6 +3821,12 @@ module Google
3816
3821
  # @return [String]
3817
3822
  attr_accessor :network
3818
3823
 
3824
+ # Configures traffic steering properties of internal passthrough Network Load
3825
+ # Balancers.
3826
+ # Corresponds to the JSON property `networkPassThroughLbTrafficPolicy`
3827
+ # @return [Google::Apis::ComputeBeta::BackendServiceNetworkPassThroughLbTrafficPolicy]
3828
+ attr_accessor :network_pass_through_lb_traffic_policy
3829
+
3819
3830
  # Settings controlling the eviction of unhealthy hosts from the load balancing
3820
3831
  # pool for the backend service.
3821
3832
  # Corresponds to the JSON property `outlierDetection`
@@ -3950,6 +3961,7 @@ module Google
3950
3961
  @custom_request_headers = args[:custom_request_headers] if args.key?(:custom_request_headers)
3951
3962
  @custom_response_headers = args[:custom_response_headers] if args.key?(:custom_response_headers)
3952
3963
  @description = args[:description] if args.key?(:description)
3964
+ @dynamic_forwarding = args[:dynamic_forwarding] if args.key?(:dynamic_forwarding)
3953
3965
  @edge_security_policy = args[:edge_security_policy] if args.key?(:edge_security_policy)
3954
3966
  @enable_cdn = args[:enable_cdn] if args.key?(:enable_cdn)
3955
3967
  @external_managed_migration_state = args[:external_managed_migration_state] if args.key?(:external_managed_migration_state)
@@ -3969,6 +3981,7 @@ module Google
3969
3981
  @metadatas = args[:metadatas] if args.key?(:metadatas)
3970
3982
  @name = args[:name] if args.key?(:name)
3971
3983
  @network = args[:network] if args.key?(:network)
3984
+ @network_pass_through_lb_traffic_policy = args[:network_pass_through_lb_traffic_policy] if args.key?(:network_pass_through_lb_traffic_policy)
3972
3985
  @outlier_detection = args[:outlier_detection] if args.key?(:outlier_detection)
3973
3986
  @port = args[:port] if args.key?(:port)
3974
3987
  @port_name = args[:port_name] if args.key?(:port_name)
@@ -4396,7 +4409,7 @@ module Google
4396
4409
  attr_accessor :dry_run
4397
4410
  alias_method :dry_run?, :dry_run
4398
4411
 
4399
- # Name of a custom utilization signal. The name must be 1-24 characters long and
4412
+ # Name of a custom utilization signal. The name must be 1-64 characters long and
4400
4413
  # match the regular expression [a-z]([-_.a-z0-9]*[a-z0-9])? which means the
4401
4414
  # first character must be a lowercase letter, and all following characters must
4402
4415
  # be a dash, period, underscore, lowercase letter, or digit, except the last
@@ -4419,6 +4432,47 @@ module Google
4419
4432
  end
4420
4433
  end
4421
4434
 
4435
+ # Defines a dynamic forwarding configuration for the backend service.
4436
+ class BackendServiceDynamicForwarding
4437
+ include Google::Apis::Core::Hashable
4438
+
4439
+ # Defines a IP:PORT based dynamic forwarding configuration for the backend
4440
+ # service. Some ranges are restricted: Restricted ranges.
4441
+ # Corresponds to the JSON property `ipPortSelection`
4442
+ # @return [Google::Apis::ComputeBeta::BackendServiceDynamicForwardingIpPortSelection]
4443
+ attr_accessor :ip_port_selection
4444
+
4445
+ def initialize(**args)
4446
+ update!(**args)
4447
+ end
4448
+
4449
+ # Update properties of this object
4450
+ def update!(**args)
4451
+ @ip_port_selection = args[:ip_port_selection] if args.key?(:ip_port_selection)
4452
+ end
4453
+ end
4454
+
4455
+ # Defines a IP:PORT based dynamic forwarding configuration for the backend
4456
+ # service. Some ranges are restricted: Restricted ranges.
4457
+ class BackendServiceDynamicForwardingIpPortSelection
4458
+ include Google::Apis::Core::Hashable
4459
+
4460
+ # A boolean flag enabling IP:PORT based dynamic forwarding.
4461
+ # Corresponds to the JSON property `enabled`
4462
+ # @return [Boolean]
4463
+ attr_accessor :enabled
4464
+ alias_method :enabled?, :enabled
4465
+
4466
+ def initialize(**args)
4467
+ update!(**args)
4468
+ end
4469
+
4470
+ # Update properties of this object
4471
+ def update!(**args)
4472
+ @enabled = args[:enabled] if args.key?(:enabled)
4473
+ end
4474
+ end
4475
+
4422
4476
  # For load balancers that have configurable failover: [Internal passthrough
4423
4477
  # Network Load Balancers](https://cloud.google.com/load-balancing/docs/internal/
4424
4478
  # failover-overview) and [external passthrough Network Load Balancers](https://
@@ -4951,6 +5005,68 @@ module Google
4951
5005
  end
4952
5006
  end
4953
5007
 
5008
+ #
5009
+ class BackendServiceNetworkPassThroughLbTrafficPolicy
5010
+ include Google::Apis::Core::Hashable
5011
+
5012
+ # When configured, new connections are load balanced across healthy backend
5013
+ # endpoints in the local zone.
5014
+ # Corresponds to the JSON property `zonalAffinity`
5015
+ # @return [Google::Apis::ComputeBeta::BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity]
5016
+ attr_accessor :zonal_affinity
5017
+
5018
+ def initialize(**args)
5019
+ update!(**args)
5020
+ end
5021
+
5022
+ # Update properties of this object
5023
+ def update!(**args)
5024
+ @zonal_affinity = args[:zonal_affinity] if args.key?(:zonal_affinity)
5025
+ end
5026
+ end
5027
+
5028
+ #
5029
+ class BackendServiceNetworkPassThroughLbTrafficPolicyZonalAffinity
5030
+ include Google::Apis::Core::Hashable
5031
+
5032
+ # This field indicates whether zonal affinity is enabled or not. The possible
5033
+ # values are: - ZONAL_AFFINITY_DISABLED: Default Value. Zonal Affinity is
5034
+ # disabled. The load balancer distributes new connections to all healthy backend
5035
+ # endpoints across all zones. - ZONAL_AFFINITY_STAY_WITHIN_ZONE: Zonal Affinity
5036
+ # is enabled. The load balancer distributes new connections to all healthy
5037
+ # backend endpoints in the local zone only. If there are no healthy backend
5038
+ # endpoints in the local zone, the load balancer distributes new connections to
5039
+ # all backend endpoints in the local zone. - ZONAL_AFFINITY_SPILL_CROSS_ZONE:
5040
+ # Zonal Affinity is enabled. The load balancer distributes new connections to
5041
+ # all healthy backend endpoints in the local zone only. If there aren't enough
5042
+ # healthy backend endpoints in the local zone, the load balancer distributes new
5043
+ # connections to all healthy backend endpoints across all zones.
5044
+ # Corresponds to the JSON property `spillover`
5045
+ # @return [String]
5046
+ attr_accessor :spillover
5047
+
5048
+ # The value of the field must be in [0, 1]. When the ratio of the count of
5049
+ # healthy backend endpoints in a zone to the count of backend endpoints in that
5050
+ # same zone is equal to or above this threshold, the load balancer distributes
5051
+ # new connections to all healthy endpoints in the local zone only. When the
5052
+ # ratio of the count of healthy backend endpoints in a zone to the count of
5053
+ # backend endpoints in that same zone is below this threshold, the load balancer
5054
+ # distributes all new connections to all healthy endpoints across all zones.
5055
+ # Corresponds to the JSON property `spilloverRatio`
5056
+ # @return [Float]
5057
+ attr_accessor :spillover_ratio
5058
+
5059
+ def initialize(**args)
5060
+ update!(**args)
5061
+ end
5062
+
5063
+ # Update properties of this object
5064
+ def update!(**args)
5065
+ @spillover = args[:spillover] if args.key?(:spillover)
5066
+ @spillover_ratio = args[:spillover_ratio] if args.key?(:spillover_ratio)
5067
+ end
5068
+ end
5069
+
4954
5070
  #
4955
5071
  class BackendServiceReference
4956
5072
  include Google::Apis::Core::Hashable
@@ -5823,6 +5939,16 @@ module Google
5823
5939
  class CacheInvalidationRule
5824
5940
  include Google::Apis::Core::Hashable
5825
5941
 
5942
+ # [Preview] A list of cache tags used to identify cached objects. - Cache tags
5943
+ # are specified when the response is first cached, by setting the `Cache-Tag`
5944
+ # response header at the origin. - Multiple cache tags in the same invalidation
5945
+ # request are treated as Boolean `OR` - for example, `tag1 OR tag2 OR tag3`. -
5946
+ # If other fields are also specified, these are treated as Boolean `AND` with
5947
+ # any tags. Up to 10 tags can be specified in a single invalidation request.
5948
+ # Corresponds to the JSON property `cacheTags`
5949
+ # @return [Array<String>]
5950
+ attr_accessor :cache_tags
5951
+
5826
5952
  # If set, this invalidation rule will only apply to requests with a Host header
5827
5953
  # matching host.
5828
5954
  # Corresponds to the JSON property `host`
@@ -5840,6 +5966,7 @@ module Google
5840
5966
 
5841
5967
  # Update properties of this object
5842
5968
  def update!(**args)
5969
+ @cache_tags = args[:cache_tags] if args.key?(:cache_tags)
5843
5970
  @host = args[:host] if args.key?(:host)
5844
5971
  @path = args[:path] if args.key?(:path)
5845
5972
  end
@@ -5914,6 +6041,74 @@ module Google
5914
6041
  end
5915
6042
  end
5916
6043
 
6044
+ # A request to recommend the best way to consume the specified resources in the
6045
+ # future.
6046
+ class CalendarModeAdviceRequest
6047
+ include Google::Apis::Core::Hashable
6048
+
6049
+ # Specification of resources to create in the future. The key of the map is an
6050
+ # arbitrary string specified by the caller. Value of the map is a specification
6051
+ # of required resources and their constraints. Currently only one value is
6052
+ # allowed in this map.
6053
+ # Corresponds to the JSON property `futureResourcesSpecs`
6054
+ # @return [Hash<String,Google::Apis::ComputeBeta::FutureResourcesSpec>]
6055
+ attr_accessor :future_resources_specs
6056
+
6057
+ def initialize(**args)
6058
+ update!(**args)
6059
+ end
6060
+
6061
+ # Update properties of this object
6062
+ def update!(**args)
6063
+ @future_resources_specs = args[:future_resources_specs] if args.key?(:future_resources_specs)
6064
+ end
6065
+ end
6066
+
6067
+ # A response containing the recommended way of creating the specified resources
6068
+ # in the future. It contains (will contain) multiple recommendations that can be
6069
+ # analyzed by the customer and the best one can be picked.
6070
+ class CalendarModeAdviceResponse
6071
+ include Google::Apis::Core::Hashable
6072
+
6073
+ # Recommendations where, how and when to create the requested resources in order
6074
+ # to maximize their obtainability and minimize cost.
6075
+ # Corresponds to the JSON property `recommendations`
6076
+ # @return [Array<Google::Apis::ComputeBeta::CalendarModeRecommendation>]
6077
+ attr_accessor :recommendations
6078
+
6079
+ def initialize(**args)
6080
+ update!(**args)
6081
+ end
6082
+
6083
+ # Update properties of this object
6084
+ def update!(**args)
6085
+ @recommendations = args[:recommendations] if args.key?(:recommendations)
6086
+ end
6087
+ end
6088
+
6089
+ # A single recommendation to create requested resources. Contains detailed
6090
+ # recommendations for every future resources specification specified in
6091
+ # CalendarModeAdviceRequest.
6092
+ class CalendarModeRecommendation
6093
+ include Google::Apis::Core::Hashable
6094
+
6095
+ # Recommendations for every future resource specification passed in
6096
+ # CalendarModeAdviceRequest. Keys of the map correspond to keys specified in the
6097
+ # request.
6098
+ # Corresponds to the JSON property `recommendationsPerSpec`
6099
+ # @return [Hash<String,Google::Apis::ComputeBeta::FutureResourcesRecommendation>]
6100
+ attr_accessor :recommendations_per_spec
6101
+
6102
+ def initialize(**args)
6103
+ update!(**args)
6104
+ end
6105
+
6106
+ # Update properties of this object
6107
+ def update!(**args)
6108
+ @recommendations_per_spec = args[:recommendations_per_spec] if args.key?(:recommendations_per_spec)
6109
+ end
6110
+ end
6111
+
5917
6112
  # Settings controlling the volume of requests, connections and retries to this
5918
6113
  # backend service.
5919
6114
  class CircuitBreakers
@@ -5982,29 +6177,33 @@ module Google
5982
6177
  end
5983
6178
  end
5984
6179
 
5985
- # Represents a regional Commitment resource. Creating a commitment resource
5986
- # means that you are purchasing a committed use contract with an explicit start
5987
- # and end time. You can create commitments based on vCPUs and memory usage and
5988
- # receive discounted rates. For full details, read Signing Up for Committed Use
5989
- # Discounts.
6180
+ # Represents a regional resource-based commitment resource. Creating this
6181
+ # commitment resource means that you are purchasing a resource-based committed
6182
+ # use contract, with an explicit start and end time. You can purchase resource-
6183
+ # based commitments for both hardware and software resources. For more
6184
+ # information, read Resource-based committed use discounts
5990
6185
  class Commitment
5991
6186
  include Google::Apis::Core::Hashable
5992
6187
 
5993
- # Specifies whether to enable automatic renewal for the commitment. The default
5994
- # value is false if not specified. The field can be updated until the day of the
5995
- # commitment expiration at 12:00am PST. If the field is set to true, the
5996
- # commitment will be automatically renewed for either one or three years
5997
- # according to the terms of the existing commitment.
6188
+ # Specifies whether to automatically renew the commitment at the end of its
6189
+ # current term. The default value is false. If you set the field to true, each
6190
+ # time your commitment reaches the end of its term, Compute Engine automatically
6191
+ # renews it for another term. You can update this field anytime before the
6192
+ # commitment expires. For example, if the commitment is set to expire at 12 AM
6193
+ # UTC-8 on January 3, 2027, you can update this field until 11:59 PM UTC-8 on
6194
+ # January 2, 2027.
5998
6195
  # Corresponds to the JSON property `autoRenew`
5999
6196
  # @return [Boolean]
6000
6197
  attr_accessor :auto_renew
6001
6198
  alias_method :auto_renew?, :auto_renew
6002
6199
 
6003
- # The category of the commitment. Category MACHINE specifies commitments
6004
- # composed of machine resources such as VCPU or MEMORY, listed in resources.
6005
- # Category LICENSE specifies commitments composed of software licenses, listed
6006
- # in licenseResources. Note that only MACHINE commitments should have a Type
6007
- # specified.
6200
+ # The category of the commitment; specifies whether the commitment is for
6201
+ # hardware or software resources. Category MACHINE specifies that you are
6202
+ # committing to hardware machine resources such as VCPU or MEMORY, listed in
6203
+ # resources. Category LICENSE specifies that you are committing to software
6204
+ # licenses, listed in licenseResources. Note that if you specify MACHINE
6205
+ # commitments, then you must also specify a type to indicate the machine series
6206
+ # of the hardware resource that you are committing to.
6008
6207
  # Corresponds to the JSON property `category`
6009
6208
  # @return [String]
6010
6209
  attr_accessor :category
@@ -6014,15 +6213,15 @@ module Google
6014
6213
  # @return [String]
6015
6214
  attr_accessor :creation_timestamp
6016
6215
 
6017
- # [Input Only] Optional, specifies the CUD end time requested by the customer in
6018
- # RFC3339 text format. Needed when the customer wants CUD's end date is later
6216
+ # [Input Only] Optional, specifies the requested commitment end time in RFC3339
6217
+ # text format. Use this option when the desired commitment's end date is later
6019
6218
  # than the start date + term duration.
6020
6219
  # Corresponds to the JSON property `customEndTimestamp`
6021
6220
  # @return [String]
6022
6221
  attr_accessor :custom_end_timestamp
6023
6222
 
6024
- # An optional description of this resource. Provide this property when you
6025
- # create the resource.
6223
+ # An optional description of the commitment. You can provide this property when
6224
+ # you create the resource.
6026
6225
  # Corresponds to the JSON property `description`
6027
6226
  # @return [String]
6028
6227
  attr_accessor :description
@@ -6032,11 +6231,7 @@ module Google
6032
6231
  # @return [String]
6033
6232
  attr_accessor :end_timestamp
6034
6233
 
6035
- # Specifies the already existing reservations to attach to the Commitment. This
6036
- # field is optional, and it can be a full or partial URL. For example, the
6037
- # following are valid URLs to an reservation: - https://www.googleapis.com/
6038
- # compute/v1/projects/project/zones/zone /reservations/reservation - projects/
6039
- # project/zones/zone/reservations/reservation
6234
+ #
6040
6235
  # Corresponds to the JSON property `existingReservations`
6041
6236
  # @return [Array<String>]
6042
6237
  attr_accessor :existing_reservations
@@ -6057,34 +6252,44 @@ module Google
6057
6252
  # @return [Google::Apis::ComputeBeta::LicenseResourceCommitment]
6058
6253
  attr_accessor :license_resource
6059
6254
 
6060
- # List of source commitments to be merged into a new commitment.
6255
+ # The list of source commitments that you are merging to create the new merged
6256
+ # commitment. For more information, see Merging commitments.
6061
6257
  # Corresponds to the JSON property `mergeSourceCommitments`
6062
6258
  # @return [Array<String>]
6063
6259
  attr_accessor :merge_source_commitments
6064
6260
 
6065
- # Name of the resource. Provided by the client when the resource is created. The
6066
- # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
6067
- # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
6068
- # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
6069
- # and all following characters must be a dash, lowercase letter, or digit,
6070
- # except the last character, which cannot be a dash.
6261
+ # Name of the commitment. You must specify a name when you purchase the
6262
+ # commitment. The name must be 1-63 characters long, and comply with RFC1035.
6263
+ # Specifically, the name must be 1-63 characters long and match the regular
6264
+ # expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must
6265
+ # be a lowercase letter, and all following characters must be a dash, lowercase
6266
+ # letter, or digit, except the last character, which cannot be a dash.
6071
6267
  # Corresponds to the JSON property `name`
6072
6268
  # @return [String]
6073
6269
  attr_accessor :name
6074
6270
 
6075
- # The plan for this commitment, which determines duration and discount rate. The
6076
- # currently supported plans are TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3
6077
- # years).
6271
+ # The minimum time duration that you commit to purchasing resources. The plan
6272
+ # that you choose determines the preset term length of the commitment (which is
6273
+ # 1 year or 3 years) and affects the discount rate that you receive for your
6274
+ # resources. Committing to a longer time duration typically gives you a higher
6275
+ # discount rate. The supported values for this field are TWELVE_MONTH (1 year),
6276
+ # and THIRTY_SIX_MONTH (3 years).
6078
6277
  # Corresponds to the JSON property `plan`
6079
6278
  # @return [String]
6080
6279
  attr_accessor :plan
6081
6280
 
6082
- # [Output Only] URL of the region where this commitment may be used.
6281
+ # [Output Only] URL of the region where the commitment and committed resources
6282
+ # are located.
6083
6283
  # Corresponds to the JSON property `region`
6084
6284
  # @return [String]
6085
6285
  attr_accessor :region
6086
6286
 
6087
- # List of create-on-create reservations for this commitment.
6287
+ # The list of new reservations that you want to create and attach to this
6288
+ # commitment. You must attach reservations to your commitment if your commitment
6289
+ # specifies any GPUs or Local SSD disks. For more information, see Attach
6290
+ # reservations to resource-based commitments. Specify this property only if you
6291
+ # want to create new reservations to attach. To attach existing reservations,
6292
+ # specify the existingReservations property instead.
6088
6293
  # Corresponds to the JSON property `reservations`
6089
6294
  # @return [Array<Google::Apis::ComputeBeta::Reservation>]
6090
6295
  attr_accessor :reservations
@@ -6094,8 +6299,9 @@ module Google
6094
6299
  # @return [Google::Apis::ComputeBeta::CommitmentResourceStatus]
6095
6300
  attr_accessor :resource_status
6096
6301
 
6097
- # A list of commitment amounts for particular resources. Note that VCPU and
6098
- # MEMORY resource commitments must occur together.
6302
+ # The list of all the hardware resources, with their types and amounts, that you
6303
+ # want to commit to. Specify as a separate entry in the list for each individual
6304
+ # resource type.
6099
6305
  # Corresponds to the JSON property `resources`
6100
6306
  # @return [Array<Google::Apis::ComputeBeta::ResourceCommitment>]
6101
6307
  attr_accessor :resources
@@ -6105,7 +6311,8 @@ module Google
6105
6311
  # @return [String]
6106
6312
  attr_accessor :self_link
6107
6313
 
6108
- # Source commitment to be split into a new commitment.
6314
+ # The source commitment from which you are transferring resources to create the
6315
+ # new split commitment. For more information, see Split commitments.
6109
6316
  # Corresponds to the JSON property `splitSourceCommitment`
6110
6317
  # @return [String]
6111
6318
  attr_accessor :split_source_commitment
@@ -6116,8 +6323,8 @@ module Google
6116
6323
  attr_accessor :start_timestamp
6117
6324
 
6118
6325
  # [Output Only] Status of the commitment with regards to eventual expiration (
6119
- # each commitment has an end date defined). One of the following values:
6120
- # NOT_YET_ACTIVE, ACTIVE, EXPIRED.
6326
+ # each commitment has an end date defined). Status can be one of the following
6327
+ # values: NOT_YET_ACTIVE, ACTIVE, or EXPIRED.
6121
6328
  # Corresponds to the JSON property `status`
6122
6329
  # @return [String]
6123
6330
  attr_accessor :status
@@ -6127,10 +6334,19 @@ module Google
6127
6334
  # @return [String]
6128
6335
  attr_accessor :status_message
6129
6336
 
6130
- # The type of commitment, which affects the discount rate and the eligible
6131
- # resources. Type MEMORY_OPTIMIZED specifies a commitment that will only apply
6132
- # to memory optimized machines. Type ACCELERATOR_OPTIMIZED specifies a
6133
- # commitment that will only apply to accelerator optimized machines.
6337
+ # The type of commitment; specifies the machine series for which you want to
6338
+ # commit to purchasing resources. The choice of machine series affects the
6339
+ # discount rate and the eligible resource types. The type must be one of the
6340
+ # following: ACCELERATOR_OPTIMIZED, ACCELERATOR_OPTIMIZED_A3,
6341
+ # ACCELERATOR_OPTIMIZED_A3_MEGA, COMPUTE_OPTIMIZED, COMPUTE_OPTIMIZED_C2D,
6342
+ # COMPUTE_OPTIMIZED_C3, COMPUTE_OPTIMIZED_C3D, COMPUTE_OPTIMIZED_H3,
6343
+ # GENERAL_PURPOSE, GENERAL_PURPOSE_C4, GENERAL_PURPOSE_E2, GENERAL_PURPOSE_N2,
6344
+ # GENERAL_PURPOSE_N2D, GENERAL_PURPOSE_N4, GENERAL_PURPOSE_T2D,
6345
+ # GRAPHICS_OPTIMIZED, MEMORY_OPTIMIZED, MEMORY_OPTIMIZED_M3, MEMORY_OPTIMIZED_X4,
6346
+ # STORAGE_OPTIMIZED_Z3. For example, type MEMORY_OPTIMIZED specifies a
6347
+ # commitment that applies only to eligible resources of memory optimized M1 and
6348
+ # M2 machine series. Type GENERAL_PURPOSE specifies a commitment that applies
6349
+ # only to eligible resources of general purpose N1 machine series.
6134
6350
  # Corresponds to the JSON property `type`
6135
6351
  # @return [String]
6136
6352
  attr_accessor :type
@@ -6434,7 +6650,7 @@ module Google
6434
6650
  class CommitmentsScopedList
6435
6651
  include Google::Apis::Core::Hashable
6436
6652
 
6437
- # [Output Only] A list of commitments contained in this scope.
6653
+ # [Output Only] The list of commitments contained in this scope.
6438
6654
  # Corresponds to the JSON property `commitments`
6439
6655
  # @return [Array<Google::Apis::ComputeBeta::Commitment>]
6440
6656
  attr_accessor :commitments
@@ -6714,6 +6930,201 @@ module Google
6714
6930
  end
6715
6931
  end
6716
6932
 
6933
+ # A resource that represents a cross-site network. You can use cross-site
6934
+ # networks to connect your on-premises networks to each other through
6935
+ # Interconnect connections.
6936
+ class CrossSiteNetwork
6937
+ include Google::Apis::Core::Hashable
6938
+
6939
+ # [Output Only] Creation timestamp in RFC3339 text format.
6940
+ # Corresponds to the JSON property `creationTimestamp`
6941
+ # @return [String]
6942
+ attr_accessor :creation_timestamp
6943
+
6944
+ # An optional description of the cross-site network.
6945
+ # Corresponds to the JSON property `description`
6946
+ # @return [String]
6947
+ attr_accessor :description
6948
+
6949
+ # [Output Only] The unique identifier for the resource type. The server
6950
+ # generates this identifier.
6951
+ # Corresponds to the JSON property `id`
6952
+ # @return [Fixnum]
6953
+ attr_accessor :id
6954
+
6955
+ # [Output Only] Type of the resource. Always compute#crossSiteNetwork for cross-
6956
+ # site networks.
6957
+ # Corresponds to the JSON property `kind`
6958
+ # @return [String]
6959
+ attr_accessor :kind
6960
+
6961
+ # Name of the resource. Provided by the client when the resource is created. The
6962
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
6963
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
6964
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
6965
+ # and all following characters must be a dash, lowercase letter, or digit,
6966
+ # except the last character, which cannot be a dash.
6967
+ # Corresponds to the JSON property `name`
6968
+ # @return [String]
6969
+ attr_accessor :name
6970
+
6971
+ # [Output Only] Server-defined URL for the resource.
6972
+ # Corresponds to the JSON property `selfLink`
6973
+ # @return [String]
6974
+ attr_accessor :self_link
6975
+
6976
+ # [Output Only] Server-defined URL for this resource with the resource id.
6977
+ # Corresponds to the JSON property `selfLinkWithId`
6978
+ # @return [String]
6979
+ attr_accessor :self_link_with_id
6980
+
6981
+ def initialize(**args)
6982
+ update!(**args)
6983
+ end
6984
+
6985
+ # Update properties of this object
6986
+ def update!(**args)
6987
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
6988
+ @description = args[:description] if args.key?(:description)
6989
+ @id = args[:id] if args.key?(:id)
6990
+ @kind = args[:kind] if args.key?(:kind)
6991
+ @name = args[:name] if args.key?(:name)
6992
+ @self_link = args[:self_link] if args.key?(:self_link)
6993
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
6994
+ end
6995
+ end
6996
+
6997
+ # Response to the list request that contains a list of cross-site networks.
6998
+ class CrossSiteNetworkList
6999
+ include Google::Apis::Core::Hashable
7000
+
7001
+ #
7002
+ # Corresponds to the JSON property `etag`
7003
+ # @return [String]
7004
+ attr_accessor :etag
7005
+
7006
+ # [Output Only] Unique identifier for the resource; defined by the server.
7007
+ # Corresponds to the JSON property `id`
7008
+ # @return [String]
7009
+ attr_accessor :id
7010
+
7011
+ # A list of CrossSiteNetwork resources.
7012
+ # Corresponds to the JSON property `items`
7013
+ # @return [Array<Google::Apis::ComputeBeta::CrossSiteNetwork>]
7014
+ attr_accessor :items
7015
+
7016
+ # [Output Only] Type of the resource. Always compute#crossSiteNetwork for cross-
7017
+ # site networks.
7018
+ # Corresponds to the JSON property `kind`
7019
+ # @return [String]
7020
+ attr_accessor :kind
7021
+
7022
+ # [Output Only] This token allows you to get the next page of results for list
7023
+ # requests. If the number of results is larger than maxResults, use the
7024
+ # nextPageToken as a value for the query parameter pageToken in the next list
7025
+ # request. Subsequent list requests will have their own nextPageToken to
7026
+ # continue paging through the results.
7027
+ # Corresponds to the JSON property `nextPageToken`
7028
+ # @return [String]
7029
+ attr_accessor :next_page_token
7030
+
7031
+ # [Output Only] Server-defined URL for this resource.
7032
+ # Corresponds to the JSON property `selfLink`
7033
+ # @return [String]
7034
+ attr_accessor :self_link
7035
+
7036
+ # [Output Only] Unreachable resources. end_interface:
7037
+ # MixerListResponseWithEtagBuilder
7038
+ # Corresponds to the JSON property `unreachables`
7039
+ # @return [Array<String>]
7040
+ attr_accessor :unreachables
7041
+
7042
+ # [Output Only] Informational warning message.
7043
+ # Corresponds to the JSON property `warning`
7044
+ # @return [Google::Apis::ComputeBeta::CrossSiteNetworkList::Warning]
7045
+ attr_accessor :warning
7046
+
7047
+ def initialize(**args)
7048
+ update!(**args)
7049
+ end
7050
+
7051
+ # Update properties of this object
7052
+ def update!(**args)
7053
+ @etag = args[:etag] if args.key?(:etag)
7054
+ @id = args[:id] if args.key?(:id)
7055
+ @items = args[:items] if args.key?(:items)
7056
+ @kind = args[:kind] if args.key?(:kind)
7057
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
7058
+ @self_link = args[:self_link] if args.key?(:self_link)
7059
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
7060
+ @warning = args[:warning] if args.key?(:warning)
7061
+ end
7062
+
7063
+ # [Output Only] Informational warning message.
7064
+ class Warning
7065
+ include Google::Apis::Core::Hashable
7066
+
7067
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
7068
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
7069
+ # Corresponds to the JSON property `code`
7070
+ # @return [String]
7071
+ attr_accessor :code
7072
+
7073
+ # [Output Only] Metadata about this warning in key: value format. For example: "
7074
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
7075
+ # Corresponds to the JSON property `data`
7076
+ # @return [Array<Google::Apis::ComputeBeta::CrossSiteNetworkList::Warning::Datum>]
7077
+ attr_accessor :data
7078
+
7079
+ # [Output Only] A human-readable description of the warning code.
7080
+ # Corresponds to the JSON property `message`
7081
+ # @return [String]
7082
+ attr_accessor :message
7083
+
7084
+ def initialize(**args)
7085
+ update!(**args)
7086
+ end
7087
+
7088
+ # Update properties of this object
7089
+ def update!(**args)
7090
+ @code = args[:code] if args.key?(:code)
7091
+ @data = args[:data] if args.key?(:data)
7092
+ @message = args[:message] if args.key?(:message)
7093
+ end
7094
+
7095
+ #
7096
+ class Datum
7097
+ include Google::Apis::Core::Hashable
7098
+
7099
+ # [Output Only] A key that provides more detail on the warning being returned.
7100
+ # For example, for warnings where there are no results in a list request for a
7101
+ # particular zone, this key might be scope and the key value might be the zone
7102
+ # name. Other examples might be a key indicating a deprecated resource and a
7103
+ # suggested replacement, or a warning about invalid network settings (for
7104
+ # example, if an instance attempts to perform IP forwarding but is not enabled
7105
+ # for IP forwarding).
7106
+ # Corresponds to the JSON property `key`
7107
+ # @return [String]
7108
+ attr_accessor :key
7109
+
7110
+ # [Output Only] A warning data value corresponding to the key.
7111
+ # Corresponds to the JSON property `value`
7112
+ # @return [String]
7113
+ attr_accessor :value
7114
+
7115
+ def initialize(**args)
7116
+ update!(**args)
7117
+ end
7118
+
7119
+ # Update properties of this object
7120
+ def update!(**args)
7121
+ @key = args[:key] if args.key?(:key)
7122
+ @value = args[:value] if args.key?(:value)
7123
+ end
7124
+ end
7125
+ end
7126
+ end
7127
+
6717
7128
  # Specifies the custom error response policy that must be applied when the
6718
7129
  # backend service or backend bucket responds with an error.
6719
7130
  class CustomErrorResponsePolicy
@@ -10358,6 +10769,58 @@ module Google
10358
10769
  end
10359
10770
  end
10360
10771
 
10772
+ # A flexible specification of a time range that has 3 points of flexibility: (1)
10773
+ # a flexible start time, (2) a flexible end time, (3) a flexible duration. It is
10774
+ # possible to specify a contradictory time range that cannot be matched by any
10775
+ # Interval. This causes a validation error.
10776
+ class FlexibleTimeRange
10777
+ include Google::Apis::Core::Hashable
10778
+
10779
+ #
10780
+ # Corresponds to the JSON property `endTimeNotEarlierThan`
10781
+ # @return [String]
10782
+ attr_accessor :end_time_not_earlier_than
10783
+
10784
+ #
10785
+ # Corresponds to the JSON property `endTimeNotLaterThan`
10786
+ # @return [String]
10787
+ attr_accessor :end_time_not_later_than
10788
+
10789
+ #
10790
+ # Corresponds to the JSON property `maxDuration`
10791
+ # @return [String]
10792
+ attr_accessor :max_duration
10793
+
10794
+ #
10795
+ # Corresponds to the JSON property `minDuration`
10796
+ # @return [String]
10797
+ attr_accessor :min_duration
10798
+
10799
+ #
10800
+ # Corresponds to the JSON property `startTimeNotEarlierThan`
10801
+ # @return [String]
10802
+ attr_accessor :start_time_not_earlier_than
10803
+
10804
+ #
10805
+ # Corresponds to the JSON property `startTimeNotLaterThan`
10806
+ # @return [String]
10807
+ attr_accessor :start_time_not_later_than
10808
+
10809
+ def initialize(**args)
10810
+ update!(**args)
10811
+ end
10812
+
10813
+ # Update properties of this object
10814
+ def update!(**args)
10815
+ @end_time_not_earlier_than = args[:end_time_not_earlier_than] if args.key?(:end_time_not_earlier_than)
10816
+ @end_time_not_later_than = args[:end_time_not_later_than] if args.key?(:end_time_not_later_than)
10817
+ @max_duration = args[:max_duration] if args.key?(:max_duration)
10818
+ @min_duration = args[:min_duration] if args.key?(:min_duration)
10819
+ @start_time_not_earlier_than = args[:start_time_not_earlier_than] if args.key?(:start_time_not_earlier_than)
10820
+ @start_time_not_later_than = args[:start_time_not_later_than] if args.key?(:start_time_not_later_than)
10821
+ end
10822
+ end
10823
+
10361
10824
  # Represents a Forwarding Rule resource. Forwarding rule resources in Google
10362
10825
  # Cloud can be either regional or global in scope: * [Global](https://cloud.
10363
10826
  # google.com/compute/docs/reference/rest/beta/globalForwardingRules) * [Regional]
@@ -11195,6 +11658,13 @@ module Google
11195
11658
  class FutureReservation
11196
11659
  include Google::Apis::Core::Hashable
11197
11660
 
11661
+ # This reservation type is specified by total resource amounts (e.g. total count
11662
+ # of CPUs) and can account for multiple instance SKUs. In other words, one can
11663
+ # create instances of varying shapes against this reservation.
11664
+ # Corresponds to the JSON property `aggregateReservation`
11665
+ # @return [Google::Apis::ComputeBeta::AllocationAggregateReservation]
11666
+ attr_accessor :aggregate_reservation
11667
+
11198
11668
  # Future timestamp when the FR auto-created reservations will be deleted by
11199
11669
  # Compute Engine. Format of this field must be a valid href="https://www.ietf.
11200
11670
  # org/rfc/rfc3339.txt">RFC3339 value.
@@ -11279,6 +11749,12 @@ module Google
11279
11749
  # @return [String]
11280
11750
  attr_accessor :planning_status
11281
11751
 
11752
+ # The reservation mode which determines reservation-termination behavior and
11753
+ # expected pricing.
11754
+ # Corresponds to the JSON property `reservationMode`
11755
+ # @return [String]
11756
+ attr_accessor :reservation_mode
11757
+
11282
11758
  # Name of reservations where the capacity is provisioned at the time of delivery
11283
11759
  # of future reservations. If the reservation with the given name does not exist
11284
11760
  # already, it is created automatically at the time of Approval with INACTIVE
@@ -11343,6 +11819,7 @@ module Google
11343
11819
 
11344
11820
  # Update properties of this object
11345
11821
  def update!(**args)
11822
+ @aggregate_reservation = args[:aggregate_reservation] if args.key?(:aggregate_reservation)
11346
11823
  @auto_created_reservations_delete_time = args[:auto_created_reservations_delete_time] if args.key?(:auto_created_reservations_delete_time)
11347
11824
  @auto_created_reservations_duration = args[:auto_created_reservations_duration] if args.key?(:auto_created_reservations_duration)
11348
11825
  @auto_delete_auto_created_reservations = args[:auto_delete_auto_created_reservations] if args.key?(:auto_delete_auto_created_reservations)
@@ -11355,6 +11832,7 @@ module Google
11355
11832
  @name = args[:name] if args.key?(:name)
11356
11833
  @name_prefix = args[:name_prefix] if args.key?(:name_prefix)
11357
11834
  @planning_status = args[:planning_status] if args.key?(:planning_status)
11835
+ @reservation_mode = args[:reservation_mode] if args.key?(:reservation_mode)
11358
11836
  @reservation_name = args[:reservation_name] if args.key?(:reservation_name)
11359
11837
  @scheduling_type = args[:scheduling_type] if args.key?(:scheduling_type)
11360
11838
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -12023,6 +12501,286 @@ module Google
12023
12501
  end
12024
12502
  end
12025
12503
 
12504
+ # Recommendation for single resources specification, to be created in the future.
12505
+ class FutureResourcesRecommendation
12506
+ include Google::Apis::Core::Hashable
12507
+
12508
+ #
12509
+ # Corresponds to the JSON property `endTime`
12510
+ # @return [String]
12511
+ attr_accessor :end_time
12512
+
12513
+ # The advised location for resource usage. When a zone, in format 'zones/'. If
12514
+ # not set, it means that no location is recommended - see other_locations for
12515
+ # details.
12516
+ # Corresponds to the JSON property `location`
12517
+ # @return [String]
12518
+ attr_accessor :location
12519
+
12520
+ # List of locations in the request scope that were not recommended. Keys of the
12521
+ # map are zones, in format 'zones/'. The values are status information
12522
+ # indicating the recommendation status.
12523
+ # Corresponds to the JSON property `otherLocations`
12524
+ # @return [Hash<String,Google::Apis::ComputeBeta::FutureResourcesRecommendationOtherLocation>]
12525
+ attr_accessor :other_locations
12526
+
12527
+ # Unique id of the recommendation, a UUID string generated by the API.
12528
+ # Corresponds to the JSON property `recommendationId`
12529
+ # @return [String]
12530
+ attr_accessor :recommendation_id
12531
+
12532
+ # Type of recommendation. Currently only FUTURE_RESERVATION is supported.
12533
+ # Corresponds to the JSON property `recommendationType`
12534
+ # @return [String]
12535
+ attr_accessor :recommendation_type
12536
+
12537
+ #
12538
+ # Corresponds to the JSON property `startTime`
12539
+ # @return [String]
12540
+ attr_accessor :start_time
12541
+
12542
+ def initialize(**args)
12543
+ update!(**args)
12544
+ end
12545
+
12546
+ # Update properties of this object
12547
+ def update!(**args)
12548
+ @end_time = args[:end_time] if args.key?(:end_time)
12549
+ @location = args[:location] if args.key?(:location)
12550
+ @other_locations = args[:other_locations] if args.key?(:other_locations)
12551
+ @recommendation_id = args[:recommendation_id] if args.key?(:recommendation_id)
12552
+ @recommendation_type = args[:recommendation_type] if args.key?(:recommendation_type)
12553
+ @start_time = args[:start_time] if args.key?(:start_time)
12554
+ end
12555
+ end
12556
+
12557
+ # Information about recommendation status for locations that were allowed but
12558
+ # not used by the response.
12559
+ class FutureResourcesRecommendationOtherLocation
12560
+ include Google::Apis::Core::Hashable
12561
+
12562
+ # Details (human readable) describing the situation. For example, if status is
12563
+ # CONDITION_NOT_MET, then details contain information about the parameters of
12564
+ # the time window that did not meet the required conditions.
12565
+ # Corresponds to the JSON property `details`
12566
+ # @return [String]
12567
+ attr_accessor :details
12568
+
12569
+ # Status of recommendation in this location.
12570
+ # Corresponds to the JSON property `status`
12571
+ # @return [String]
12572
+ attr_accessor :status
12573
+
12574
+ def initialize(**args)
12575
+ update!(**args)
12576
+ end
12577
+
12578
+ # Update properties of this object
12579
+ def update!(**args)
12580
+ @details = args[:details] if args.key?(:details)
12581
+ @status = args[:status] if args.key?(:status)
12582
+ end
12583
+ end
12584
+
12585
+ # Specification of resources to be created at some time in the future within an
12586
+ # optionally specified set of locations, and within the specified time range.
12587
+ class FutureResourcesSpec
12588
+ include Google::Apis::Core::Hashable
12589
+
12590
+ # Indicates if the reservation allocation strategy is static (DENSE) or dynamic (
12591
+ # STANDARD). Defaults to DENSE.
12592
+ # Corresponds to the JSON property `deploymentType`
12593
+ # @return [String]
12594
+ attr_accessor :deployment_type
12595
+
12596
+ # Specification of locations to create resources in.
12597
+ # Corresponds to the JSON property `locationPolicy`
12598
+ # @return [Google::Apis::ComputeBeta::FutureResourcesSpecLocationPolicy]
12599
+ attr_accessor :location_policy
12600
+
12601
+ # Specification of reserved resources.
12602
+ # Corresponds to the JSON property `targetResources`
12603
+ # @return [Google::Apis::ComputeBeta::FutureResourcesSpecTargetResources]
12604
+ attr_accessor :target_resources
12605
+
12606
+ # A flexible specification of a time range that has 3 points of flexibility: (1)
12607
+ # a flexible start time, (2) a flexible end time, (3) a flexible duration. It is
12608
+ # possible to specify a contradictory time range that cannot be matched by any
12609
+ # Interval. This causes a validation error.
12610
+ # Corresponds to the JSON property `timeRangeSpec`
12611
+ # @return [Google::Apis::ComputeBeta::FlexibleTimeRange]
12612
+ attr_accessor :time_range_spec
12613
+
12614
+ def initialize(**args)
12615
+ update!(**args)
12616
+ end
12617
+
12618
+ # Update properties of this object
12619
+ def update!(**args)
12620
+ @deployment_type = args[:deployment_type] if args.key?(:deployment_type)
12621
+ @location_policy = args[:location_policy] if args.key?(:location_policy)
12622
+ @target_resources = args[:target_resources] if args.key?(:target_resources)
12623
+ @time_range_spec = args[:time_range_spec] if args.key?(:time_range_spec)
12624
+ end
12625
+ end
12626
+
12627
+ #
12628
+ class FutureResourcesSpecAggregateResources
12629
+ include Google::Apis::Core::Hashable
12630
+
12631
+ # Size of the request, in accelerator (chip) count.
12632
+ # Corresponds to the JSON property `acceleratorCount`
12633
+ # @return [Fixnum]
12634
+ attr_accessor :accelerator_count
12635
+
12636
+ # The VM family that all instances scheduled against this reservation must
12637
+ # belong to. Use for TPU reservations.
12638
+ # Corresponds to the JSON property `vmFamily`
12639
+ # @return [String]
12640
+ attr_accessor :vm_family
12641
+
12642
+ # Workload type. Use for TPU reservations.
12643
+ # Corresponds to the JSON property `workloadType`
12644
+ # @return [String]
12645
+ attr_accessor :workload_type
12646
+
12647
+ def initialize(**args)
12648
+ update!(**args)
12649
+ end
12650
+
12651
+ # Update properties of this object
12652
+ def update!(**args)
12653
+ @accelerator_count = args[:accelerator_count] if args.key?(:accelerator_count)
12654
+ @vm_family = args[:vm_family] if args.key?(:vm_family)
12655
+ @workload_type = args[:workload_type] if args.key?(:workload_type)
12656
+ end
12657
+ end
12658
+
12659
+ #
12660
+ class FutureResourcesSpecLocalSsdPartition
12661
+ include Google::Apis::Core::Hashable
12662
+
12663
+ # Disk interface. Defaults to SCSI.
12664
+ # Corresponds to the JSON property `diskInterface`
12665
+ # @return [String]
12666
+ attr_accessor :disk_interface
12667
+
12668
+ # The size of the disk in GB.
12669
+ # Corresponds to the JSON property `diskSizeGb`
12670
+ # @return [Fixnum]
12671
+ attr_accessor :disk_size_gb
12672
+
12673
+ def initialize(**args)
12674
+ update!(**args)
12675
+ end
12676
+
12677
+ # Update properties of this object
12678
+ def update!(**args)
12679
+ @disk_interface = args[:disk_interface] if args.key?(:disk_interface)
12680
+ @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
12681
+ end
12682
+ end
12683
+
12684
+ # Specification of locations to create resources in.
12685
+ class FutureResourcesSpecLocationPolicy
12686
+ include Google::Apis::Core::Hashable
12687
+
12688
+ # Preferences for specified locations. Keys of the map are locations - zones, in
12689
+ # format of 'zones/'. Values are preferences for the zones. If a zone is not
12690
+ # specified in this map, it is ALLOWed.
12691
+ # Corresponds to the JSON property `locations`
12692
+ # @return [Hash<String,Google::Apis::ComputeBeta::FutureResourcesSpecLocationPolicyLocation>]
12693
+ attr_accessor :locations
12694
+
12695
+ def initialize(**args)
12696
+ update!(**args)
12697
+ end
12698
+
12699
+ # Update properties of this object
12700
+ def update!(**args)
12701
+ @locations = args[:locations] if args.key?(:locations)
12702
+ end
12703
+ end
12704
+
12705
+ # Preference for a single specified location.
12706
+ class FutureResourcesSpecLocationPolicyLocation
12707
+ include Google::Apis::Core::Hashable
12708
+
12709
+ # Preference for this location.
12710
+ # Corresponds to the JSON property `preference`
12711
+ # @return [String]
12712
+ attr_accessor :preference
12713
+
12714
+ def initialize(**args)
12715
+ update!(**args)
12716
+ end
12717
+
12718
+ # Update properties of this object
12719
+ def update!(**args)
12720
+ @preference = args[:preference] if args.key?(:preference)
12721
+ end
12722
+ end
12723
+
12724
+ #
12725
+ class FutureResourcesSpecSpecificSkuResources
12726
+ include Google::Apis::Core::Hashable
12727
+
12728
+ # Size of the request, in instance count.
12729
+ # Corresponds to the JSON property `instanceCount`
12730
+ # @return [Fixnum]
12731
+ attr_accessor :instance_count
12732
+
12733
+ # Local SSD partitions. You do not have to include SSD partitions that are built
12734
+ # in the machine type.
12735
+ # Corresponds to the JSON property `localSsdPartitions`
12736
+ # @return [Array<Google::Apis::ComputeBeta::FutureResourcesSpecLocalSsdPartition>]
12737
+ attr_accessor :local_ssd_partitions
12738
+
12739
+ # The machine type to use for instances that will use the reservation. This
12740
+ # field only accepts machine type names. e.g. n2-standard-4 and does not accept
12741
+ # machine type full or partial url. e.g. projects/my-l7ilb-project/zones/us-
12742
+ # central1-a/machineTypes/n2-standard-4. Use for GPU reservations.
12743
+ # Corresponds to the JSON property `machineType`
12744
+ # @return [String]
12745
+ attr_accessor :machine_type
12746
+
12747
+ def initialize(**args)
12748
+ update!(**args)
12749
+ end
12750
+
12751
+ # Update properties of this object
12752
+ def update!(**args)
12753
+ @instance_count = args[:instance_count] if args.key?(:instance_count)
12754
+ @local_ssd_partitions = args[:local_ssd_partitions] if args.key?(:local_ssd_partitions)
12755
+ @machine_type = args[:machine_type] if args.key?(:machine_type)
12756
+ end
12757
+ end
12758
+
12759
+ # Specification of reserved resources.
12760
+ class FutureResourcesSpecTargetResources
12761
+ include Google::Apis::Core::Hashable
12762
+
12763
+ #
12764
+ # Corresponds to the JSON property `aggregateResources`
12765
+ # @return [Google::Apis::ComputeBeta::FutureResourcesSpecAggregateResources]
12766
+ attr_accessor :aggregate_resources
12767
+
12768
+ #
12769
+ # Corresponds to the JSON property `specificSkuResources`
12770
+ # @return [Google::Apis::ComputeBeta::FutureResourcesSpecSpecificSkuResources]
12771
+ attr_accessor :specific_sku_resources
12772
+
12773
+ def initialize(**args)
12774
+ update!(**args)
12775
+ end
12776
+
12777
+ # Update properties of this object
12778
+ def update!(**args)
12779
+ @aggregate_resources = args[:aggregate_resources] if args.key?(:aggregate_resources)
12780
+ @specific_sku_resources = args[:specific_sku_resources] if args.key?(:specific_sku_resources)
12781
+ end
12782
+ end
12783
+
12026
12784
  #
12027
12785
  class GrpcHealthCheck
12028
12786
  include Google::Apis::Core::Hashable
@@ -16144,11 +16902,11 @@ module Google
16144
16902
  # @return [String]
16145
16903
  attr_accessor :name
16146
16904
 
16147
- # Assigns a name to a port number. For example: `name: "http", port: 80` This
16148
- # allows the system to reference ports by the assigned name instead of a port
16149
- # number. Named ports can also contain multiple ports. For example: [`name: "
16150
- # app1", port: 8080`, `name: "app1", port: 8081`, `name: "app2", port: 8082`]
16151
- # Named ports apply to all instances in this instance group.
16905
+ # Optional. Assigns a name to a port number. For example: `name: "http", port:
16906
+ # 80` This allows the system to reference ports by the assigned name instead of
16907
+ # a port number. Named ports can also contain multiple ports. For example: [`
16908
+ # name: "app1", port: 8080`, `name: "app1", port: 8081`, `name: "app2", port:
16909
+ # 8082`] Named ports apply to all instances in this instance group.
16152
16910
  # Corresponds to the JSON property `namedPorts`
16153
16911
  # @return [Array<Google::Apis::ComputeBeta::NamedPort>]
16154
16912
  attr_accessor :named_ports
@@ -17138,6 +17896,17 @@ module Google
17138
17896
  # @return [String]
17139
17897
  attr_accessor :force_update_on_repair
17140
17898
 
17899
+ # The action that a MIG performs on an unhealthy VM. A VM is marked as unhealthy
17900
+ # when the application running on that VM fails a health check. Valid values are:
17901
+ # - DEFAULT_ACTION (default): MIG uses the same action configured for
17902
+ # instanceLifecyclePolicy.defaultActionOnFailure field. - REPAIR: MIG
17903
+ # automatically repairs an unhealthy VM by recreating it. - DO_NOTHING: MIG
17904
+ # doesn't repair an unhealthy VM. For more information, see About repairing VMs
17905
+ # in a MIG.
17906
+ # Corresponds to the JSON property `onFailedHealthCheck`
17907
+ # @return [String]
17908
+ attr_accessor :on_failed_health_check
17909
+
17141
17910
  def initialize(**args)
17142
17911
  update!(**args)
17143
17912
  end
@@ -17146,6 +17915,7 @@ module Google
17146
17915
  def update!(**args)
17147
17916
  @default_action_on_failure = args[:default_action_on_failure] if args.key?(:default_action_on_failure)
17148
17917
  @force_update_on_repair = args[:force_update_on_repair] if args.key?(:force_update_on_repair)
17918
+ @on_failed_health_check = args[:on_failed_health_check] if args.key?(:on_failed_health_check)
17149
17919
  end
17150
17920
  end
17151
17921
 
@@ -20429,6 +21199,56 @@ module Google
20429
21199
  end
20430
21200
  end
20431
21201
 
21202
+ #
21203
+ class InstancesReportHostAsFaultyRequest
21204
+ include Google::Apis::Core::Hashable
21205
+
21206
+ # The disruption schedule for the VM. Default to IMMEDIATE.
21207
+ # Corresponds to the JSON property `disruptionSchedule`
21208
+ # @return [String]
21209
+ attr_accessor :disruption_schedule
21210
+
21211
+ #
21212
+ # Corresponds to the JSON property `faultReasons`
21213
+ # @return [Array<Google::Apis::ComputeBeta::InstancesReportHostAsFaultyRequestFaultReason>]
21214
+ attr_accessor :fault_reasons
21215
+
21216
+ def initialize(**args)
21217
+ update!(**args)
21218
+ end
21219
+
21220
+ # Update properties of this object
21221
+ def update!(**args)
21222
+ @disruption_schedule = args[:disruption_schedule] if args.key?(:disruption_schedule)
21223
+ @fault_reasons = args[:fault_reasons] if args.key?(:fault_reasons)
21224
+ end
21225
+ end
21226
+
21227
+ #
21228
+ class InstancesReportHostAsFaultyRequestFaultReason
21229
+ include Google::Apis::Core::Hashable
21230
+
21231
+ #
21232
+ # Corresponds to the JSON property `behavior`
21233
+ # @return [String]
21234
+ attr_accessor :behavior
21235
+
21236
+ #
21237
+ # Corresponds to the JSON property `description`
21238
+ # @return [String]
21239
+ attr_accessor :description
21240
+
21241
+ def initialize(**args)
21242
+ update!(**args)
21243
+ end
21244
+
21245
+ # Update properties of this object
21246
+ def update!(**args)
21247
+ @behavior = args[:behavior] if args.key?(:behavior)
21248
+ @description = args[:description] if args.key?(:description)
21249
+ end
21250
+ end
21251
+
20432
21252
  #
20433
21253
  class InstancesResumeRequest
20434
21254
  include Google::Apis::Core::Hashable
@@ -21512,6 +22332,13 @@ module Google
21512
22332
  # @return [String]
21513
22333
  attr_accessor :state
21514
22334
 
22335
+ # [Output Only] A list of the URLs of all CrossSiteNetwork WireGroups configured
22336
+ # to use this Interconnect. The Interconnect cannot be deleted if this list is
22337
+ # non-empty.
22338
+ # Corresponds to the JSON property `wireGroups`
22339
+ # @return [Array<String>]
22340
+ attr_accessor :wire_groups
22341
+
21515
22342
  def initialize(**args)
21516
22343
  update!(**args)
21517
22344
  end
@@ -21550,6 +22377,7 @@ module Google
21550
22377
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
21551
22378
  @self_link = args[:self_link] if args.key?(:self_link)
21552
22379
  @state = args[:state] if args.key?(:state)
22380
+ @wire_groups = args[:wire_groups] if args.key?(:wire_groups)
21553
22381
  end
21554
22382
  end
21555
22383
 
@@ -22915,6 +23743,14 @@ module Google
22915
23743
  # @return [String]
22916
23744
  attr_accessor :creation_timestamp
22917
23745
 
23746
+ # [Output Only] A list of InterconnectLocation.CrossSiteInterconnectInfo objects,
23747
+ # that describe where Cross-Site Interconnect wires may connect to from this
23748
+ # location and associated connection parameters. Cross-Site Interconnect isn't
23749
+ # allowed to locations which are not listed.
23750
+ # Corresponds to the JSON property `crossSiteInterconnectInfos`
23751
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectLocationCrossSiteInterconnectInfo>]
23752
+ attr_accessor :cross_site_interconnect_infos
23753
+
22918
23754
  # [Output Only] An optional description of the resource.
22919
23755
  # Corresponds to the JSON property `description`
22920
23756
  # @return [String]
@@ -22993,6 +23829,7 @@ module Google
22993
23829
  @city = args[:city] if args.key?(:city)
22994
23830
  @continent = args[:continent] if args.key?(:continent)
22995
23831
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
23832
+ @cross_site_interconnect_infos = args[:cross_site_interconnect_infos] if args.key?(:cross_site_interconnect_infos)
22996
23833
  @description = args[:description] if args.key?(:description)
22997
23834
  @facility_provider = args[:facility_provider] if args.key?(:facility_provider)
22998
23835
  @facility_provider_facility_id = args[:facility_provider_facility_id] if args.key?(:facility_provider_facility_id)
@@ -23007,6 +23844,28 @@ module Google
23007
23844
  end
23008
23845
  end
23009
23846
 
23847
+ # Information about Cross-Site Interconnect wires which may be created between
23848
+ # the containing location and another remote location.
23849
+ class InterconnectLocationCrossSiteInterconnectInfo
23850
+ include Google::Apis::Core::Hashable
23851
+
23852
+ # The remote location for Cross-Site Interconnect wires. This specifies an
23853
+ # InterconnectLocation city (metropolitan area designator), which itself may
23854
+ # match multiple InterconnectLocations.
23855
+ # Corresponds to the JSON property `city`
23856
+ # @return [String]
23857
+ attr_accessor :city
23858
+
23859
+ def initialize(**args)
23860
+ update!(**args)
23861
+ end
23862
+
23863
+ # Update properties of this object
23864
+ def update!(**args)
23865
+ @city = args[:city] if args.key?(:city)
23866
+ end
23867
+ end
23868
+
23010
23869
  # Response to the list request, and contains a list of interconnect locations.
23011
23870
  class InterconnectLocationList
23012
23871
  include Google::Apis::Core::Hashable
@@ -23965,17 +24824,17 @@ module Google
23965
24824
  class LicenseResourceCommitment
23966
24825
  include Google::Apis::Core::Hashable
23967
24826
 
23968
- # The number of licenses purchased.
24827
+ # The number of licenses you plan to purchase.
23969
24828
  # Corresponds to the JSON property `amount`
23970
24829
  # @return [Fixnum]
23971
24830
  attr_accessor :amount
23972
24831
 
23973
- # Specifies the core range of the instance for which this license applies.
24832
+ # The number of cores per license.
23974
24833
  # Corresponds to the JSON property `coresPerLicense`
23975
24834
  # @return [String]
23976
24835
  attr_accessor :cores_per_license
23977
24836
 
23978
- # Any applicable license URI.
24837
+ # The applicable license URI.
23979
24838
  # Corresponds to the JSON property `license`
23980
24839
  # @return [String]
23981
24840
  attr_accessor :license
@@ -26807,13 +27666,13 @@ module Google
26807
27666
  class NetworkEndpoint
26808
27667
  include Google::Apis::Core::Hashable
26809
27668
 
26810
- # Metadata defined as annotations on the network endpoint.
27669
+ # Optional metadata defined as annotations on the network endpoint.
26811
27670
  # Corresponds to the JSON property `annotations`
26812
27671
  # @return [Hash<String,String>]
26813
27672
  attr_accessor :annotations
26814
27673
 
26815
- # Represents the port number to which PSC consumer sends packets. Only valid for
26816
- # network endpoint groups created with GCE_VM_IP_PORTMAP endpoint type.
27674
+ # Represents the port number to which PSC consumer sends packets. Optional. Only
27675
+ # valid for network endpoint groups created with GCE_VM_IP_PORTMAP endpoint type.
26817
27676
  # Corresponds to the JSON property `clientDestinationPort`
26818
27677
  # @return [Fixnum]
26819
27678
  attr_accessor :client_destination_port
@@ -26824,12 +27683,13 @@ module Google
26824
27683
  # @return [String]
26825
27684
  attr_accessor :fqdn
26826
27685
 
26827
- # The name or a URL of VM instance of this network endpoint. This field is
26828
- # required for network endpoints of type GCE_VM_IP and GCE_VM_IP_PORT. The
26829
- # instance must be in the same zone of network endpoint group (for zonal NEGs)
26830
- # or in the zone within the region of the NEG (for regional NEGs). If the
26831
- # ipAddress is specified, it must belongs to the VM instance. The name must be 1-
26832
- # 63 characters long, and comply with RFC1035 or be a valid URL pointing to an
27686
+ # The name or a URL of VM instance of this network endpoint. Optional, the field
27687
+ # presence depends on the network endpoint type. The field is required for
27688
+ # network endpoints of type GCE_VM_IP and GCE_VM_IP_PORT. The instance must be
27689
+ # in the same zone of network endpoint group (for zonal NEGs) or in the zone
27690
+ # within the region of the NEG (for regional NEGs). If the ipAddress is
27691
+ # specified, it must belongs to the VM instance. The name must be 1-63
27692
+ # characters long, and comply with RFC1035 or be a valid URL pointing to an
26833
27693
  # existing instance.
26834
27694
  # Corresponds to the JSON property `instance`
26835
27695
  # @return [String]
@@ -26883,7 +27743,7 @@ module Google
26883
27743
  class NetworkEndpointGroup
26884
27744
  include Google::Apis::Core::Hashable
26885
27745
 
26886
- # Metadata defined as annotations on the network endpoint group.
27746
+ # Optional. Metadata defined as annotations on the network endpoint group.
26887
27747
  # Corresponds to the JSON property `annotations`
26888
27748
  # @return [Hash<String,String>]
26889
27749
  attr_accessor :annotations
@@ -26918,8 +27778,8 @@ module Google
26918
27778
  attr_accessor :creation_timestamp
26919
27779
 
26920
27780
  # The default port used if the port number is not specified in the network
26921
- # endpoint. If the network endpoint type is either GCE_VM_IP, SERVERLESS or
26922
- # PRIVATE_SERVICE_CONNECT, this field must not be specified.
27781
+ # endpoint. Optional. If the network endpoint type is either GCE_VM_IP,
27782
+ # SERVERLESS or PRIVATE_SERVICE_CONNECT, this field must not be specified.
26923
27783
  # Corresponds to the JSON property `defaultPort`
26924
27784
  # @return [Fixnum]
26925
27785
  attr_accessor :default_port
@@ -26978,7 +27838,8 @@ module Google
26978
27838
 
26979
27839
  # The target service url used to set up private service connection to a Google
26980
27840
  # API or a PSC Producer Service Attachment. An example value is: asia-northeast3-
26981
- # cloudkms.googleapis.com
27841
+ # cloudkms.googleapis.com. Optional. Only valid when networkEndpointType is
27842
+ # PRIVATE_SERVICE_CONNECT.
26982
27843
  # Corresponds to the JSON property `pscTargetService`
26983
27844
  # @return [String]
26984
27845
  attr_accessor :psc_target_service
@@ -27842,7 +28703,8 @@ module Google
27842
28703
  class NetworkEndpointWithHealthStatus
27843
28704
  include Google::Apis::Core::Hashable
27844
28705
 
27845
- # [Output only] The health status of network endpoint;
28706
+ # [Output only] The health status of network endpoint. Optional. Displayed only
28707
+ # if the network endpoint has centralized health checking configured.
27846
28708
  # Corresponds to the JSON property `healths`
27847
28709
  # @return [Array<Google::Apis::ComputeBeta::HealthStatusForNetworkEndpoint>]
27848
28710
  attr_accessor :healths
@@ -28086,6 +28948,11 @@ module Google
28086
28948
  # @return [String]
28087
28949
  attr_accessor :nic_type
28088
28950
 
28951
+ # Name of the parent network interface of a dynamic network interface.
28952
+ # Corresponds to the JSON property `parentNicName`
28953
+ # @return [String]
28954
+ attr_accessor :parent_nic_name
28955
+
28089
28956
  # The networking queue count that's specified by users for the network interface.
28090
28957
  # Both Rx and Tx queues will be set to this number. It'll be empty if not
28091
28958
  # specified by the users.
@@ -28113,6 +28980,12 @@ module Google
28113
28980
  # @return [String]
28114
28981
  attr_accessor :subnetwork
28115
28982
 
28983
+ # VLAN tag of a dynamic network interface, must be an integer in the range from
28984
+ # 2 to 255 inclusively.
28985
+ # Corresponds to the JSON property `vlan`
28986
+ # @return [Fixnum]
28987
+ attr_accessor :vlan
28988
+
28116
28989
  def initialize(**args)
28117
28990
  update!(**args)
28118
28991
  end
@@ -28132,9 +29005,11 @@ module Google
28132
29005
  @network_attachment = args[:network_attachment] if args.key?(:network_attachment)
28133
29006
  @network_ip = args[:network_ip] if args.key?(:network_ip)
28134
29007
  @nic_type = args[:nic_type] if args.key?(:nic_type)
29008
+ @parent_nic_name = args[:parent_nic_name] if args.key?(:parent_nic_name)
28135
29009
  @queue_count = args[:queue_count] if args.key?(:queue_count)
28136
29010
  @stack_type = args[:stack_type] if args.key?(:stack_type)
28137
29011
  @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
29012
+ @vlan = args[:vlan] if args.key?(:vlan)
28138
29013
  end
28139
29014
  end
28140
29015
 
@@ -28442,11 +29317,6 @@ module Google
28442
29317
  # @return [String]
28443
29318
  attr_accessor :self_link_with_id
28444
29319
 
28445
- # [Output Only] Zone to which the network is restricted.
28446
- # Corresponds to the JSON property `zone`
28447
- # @return [String]
28448
- attr_accessor :zone
28449
-
28450
29320
  def initialize(**args)
28451
29321
  update!(**args)
28452
29322
  end
@@ -28462,7 +29332,6 @@ module Google
28462
29332
  @name = args[:name] if args.key?(:name)
28463
29333
  @self_link = args[:self_link] if args.key?(:self_link)
28464
29334
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
28465
- @zone = args[:zone] if args.key?(:zone)
28466
29335
  end
28467
29336
  end
28468
29337
 
@@ -30425,6 +31294,11 @@ module Google
30425
31294
  # @return [Fixnum]
30426
31295
  attr_accessor :local_ssd_gb
30427
31296
 
31297
+ # [Output Only] Maximum number of VMs that can be created for this node type.
31298
+ # Corresponds to the JSON property `maxVms`
31299
+ # @return [Fixnum]
31300
+ attr_accessor :max_vms
31301
+
30428
31302
  # [Output Only] The amount of physical memory available to the node type,
30429
31303
  # defined in MB.
30430
31304
  # Corresponds to the JSON property `memoryMb`
@@ -30461,6 +31335,7 @@ module Google
30461
31335
  @id = args[:id] if args.key?(:id)
30462
31336
  @kind = args[:kind] if args.key?(:kind)
30463
31337
  @local_ssd_gb = args[:local_ssd_gb] if args.key?(:local_ssd_gb)
31338
+ @max_vms = args[:max_vms] if args.key?(:max_vms)
30464
31339
  @memory_mb = args[:memory_mb] if args.key?(:memory_mb)
30465
31340
  @name = args[:name] if args.key?(:name)
30466
31341
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -34600,7 +35475,7 @@ module Google
34600
35475
  class RegionCommitmentsUpdateReservationsRequest
34601
35476
  include Google::Apis::Core::Hashable
34602
35477
 
34603
- # A list of two reservations to transfer GPUs and local SSD between.
35478
+ # A list of two reservations to transfer GPUs and Local SSD disks between.
34604
35479
  # Corresponds to the JSON property `reservations`
34605
35480
  # @return [Array<Google::Apis::ComputeBeta::Reservation>]
34606
35481
  attr_accessor :reservations
@@ -36409,6 +37284,11 @@ module Google
36409
37284
  # @return [String]
36410
37285
  attr_accessor :name
36411
37286
 
37287
+ # [Output only] Indicates the reservation mode of the reservation.
37288
+ # Corresponds to the JSON property `reservationMode`
37289
+ # @return [String]
37290
+ attr_accessor :reservation_mode
37291
+
36412
37292
  # Specify the reservation sharing policy. If unspecified, the reservation will
36413
37293
  # not be shared with Google Cloud managed services.
36414
37294
  # Corresponds to the JSON property `reservationSharingPolicy`
@@ -36486,6 +37366,7 @@ module Google
36486
37366
  @id = args[:id] if args.key?(:id)
36487
37367
  @kind = args[:kind] if args.key?(:kind)
36488
37368
  @name = args[:name] if args.key?(:name)
37369
+ @reservation_mode = args[:reservation_mode] if args.key?(:reservation_mode)
36489
37370
  @reservation_sharing_policy = args[:reservation_sharing_policy] if args.key?(:reservation_sharing_policy)
36490
37371
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
36491
37372
  @resource_status = args[:resource_status] if args.key?(:resource_status)
@@ -37032,6 +37913,44 @@ module Google
37032
37913
  end
37033
37914
  end
37034
37915
 
37916
+ #
37917
+ class ReservationsBlocksPerformMaintenanceRequest
37918
+ include Google::Apis::Core::Hashable
37919
+
37920
+ # Specifies if all, running or unused hosts are in scope for this request.
37921
+ # Corresponds to the JSON property `maintenanceScope`
37922
+ # @return [String]
37923
+ attr_accessor :maintenance_scope
37924
+
37925
+ def initialize(**args)
37926
+ update!(**args)
37927
+ end
37928
+
37929
+ # Update properties of this object
37930
+ def update!(**args)
37931
+ @maintenance_scope = args[:maintenance_scope] if args.key?(:maintenance_scope)
37932
+ end
37933
+ end
37934
+
37935
+ #
37936
+ class ReservationsPerformMaintenanceRequest
37937
+ include Google::Apis::Core::Hashable
37938
+
37939
+ # Specifies if all, running or unused hosts are in scope for this request.
37940
+ # Corresponds to the JSON property `maintenanceScope`
37941
+ # @return [String]
37942
+ attr_accessor :maintenance_scope
37943
+
37944
+ def initialize(**args)
37945
+ update!(**args)
37946
+ end
37947
+
37948
+ # Update properties of this object
37949
+ def update!(**args)
37950
+ @maintenance_scope = args[:maintenance_scope] if args.key?(:maintenance_scope)
37951
+ end
37952
+ end
37953
+
37035
37954
  #
37036
37955
  class ReservationsResizeRequest
37037
37956
  include Google::Apis::Core::Hashable
@@ -37143,27 +38062,30 @@ module Google
37143
38062
  end
37144
38063
  end
37145
38064
 
37146
- # Commitment for a particular resource (a Commitment is composed of one or more
37147
- # of these).
38065
+ # Commitment for a particular hardware resource (a commitment is composed of one
38066
+ # or more of these).
37148
38067
  class ResourceCommitment
37149
38068
  include Google::Apis::Core::Hashable
37150
38069
 
37151
- # Name of the accelerator type resource. Applicable only when the type is
37152
- # ACCELERATOR.
38070
+ # Name of the accelerator type or GPU resource. Specify this field only when the
38071
+ # type of hardware resource is ACCELERATOR.
37153
38072
  # Corresponds to the JSON property `acceleratorType`
37154
38073
  # @return [String]
37155
38074
  attr_accessor :accelerator_type
37156
38075
 
37157
- # The amount of the resource purchased (in a type-dependent unit, such as bytes).
37158
- # For vCPUs, this can just be an integer. For memory, this must be provided in
37159
- # MB. Memory must be a multiple of 256 MB, with up to 6.5GB of memory per every
37160
- # vCPU.
38076
+ # The quantity of the hardware resource that you want to commit to purchasing (
38077
+ # in a type-dependent unit). - For vCPUs, you must specify an integer value. -
38078
+ # For memory, you specify the amount of MB that you want. The value you specify
38079
+ # must be a multiple of 256 MB, with up to 6.5 GB of memory per every vCPU. -
38080
+ # For GPUs, you must specify an integer value. - For Local SSD disks, you must
38081
+ # specify the amount in GB. The size of a single Local SSD disk is 375 GB.
37161
38082
  # Corresponds to the JSON property `amount`
37162
38083
  # @return [Fixnum]
37163
38084
  attr_accessor :amount
37164
38085
 
37165
- # Type of resource for which this commitment applies. Possible values are VCPU,
37166
- # MEMORY, LOCAL_SSD, and ACCELERATOR.
38086
+ # The type of hardware resource that you want to specify. You can specify any of
38087
+ # the following values: - VCPU - MEMORY - LOCAL_SSD - ACCELERATOR Specify as a
38088
+ # separate entry in the list for each individual resource type.
37167
38089
  # Corresponds to the JSON property `type`
37168
38090
  # @return [String]
37169
38091
  attr_accessor :type
@@ -39232,16 +40154,14 @@ module Google
39232
40154
 
39233
40155
  # List of export policies applied to this peer, in the order they must be
39234
40156
  # evaluated. The name must correspond to an existing policy that has
39235
- # ROUTE_POLICY_TYPE_EXPORT type. Note that Route Policies are currently
39236
- # available in preview. Please use Beta API to use Route Policies.
40157
+ # ROUTE_POLICY_TYPE_EXPORT type.
39237
40158
  # Corresponds to the JSON property `exportPolicies`
39238
40159
  # @return [Array<String>]
39239
40160
  attr_accessor :export_policies
39240
40161
 
39241
40162
  # List of import policies applied to this peer, in the order they must be
39242
40163
  # evaluated. The name must correspond to an existing policy that has
39243
- # ROUTE_POLICY_TYPE_IMPORT type. Note that Route Policies are currently
39244
- # available in preview. Please use Beta API to use Route Policies.
40164
+ # ROUTE_POLICY_TYPE_IMPORT type.
39245
40165
  # Corresponds to the JSON property `importPolicies`
39246
40166
  # @return [Array<String>]
39247
40167
  attr_accessor :import_policies
@@ -39437,9 +40357,9 @@ module Google
39437
40357
  # truncate the IP address, as it represents the IP address of the interface. -
39438
40358
  # For Internet Protocol version 6 (IPv6), the value must be a unique local
39439
40359
  # address (ULA) range from fdff:1::/64 with a mask length of 126 or less. This
39440
- # value should be a CIDR-formatted string, for example, fc00:0:1:1::1/112.
39441
- # Within the router's VPC, this IPv6 prefix will be reserved exclusively for
39442
- # this connection and cannot be used for any other purpose.
40360
+ # value should be a CIDR-formatted string, for example, fdff:1::1/112. Within
40361
+ # the router's VPC, this IPv6 prefix will be reserved exclusively for this
40362
+ # connection and cannot be used for any other purpose.
39443
40363
  # Corresponds to the JSON property `ipRange`
39444
40364
  # @return [String]
39445
40365
  attr_accessor :ip_range
@@ -44485,10 +45405,9 @@ module Google
44485
45405
 
44486
45406
  # [Output Only] The unique ID of the instant snapshot used to create this
44487
45407
  # snapshot. This value identifies the exact instant snapshot that was used to
44488
- # create this persistent disk. For example, if you created the persistent disk
44489
- # from an instant snapshot that was later deleted and recreated under the same
44490
- # name, the source instant snapshot ID would identify the exact instant snapshot
44491
- # that was used.
45408
+ # create this snapshot. For example, if you created the snapshot from an instant
45409
+ # snapshot that was later deleted and recreated under the same name, the source
45410
+ # instant snapshot ID would identify the exact instant snapshot that was used.
44492
45411
  # Corresponds to the JSON property `sourceInstantSnapshotId`
44493
45412
  # @return [String]
44494
45413
  attr_accessor :source_instant_snapshot_id
@@ -47586,16 +48505,18 @@ module Google
47586
48505
  attr_accessor :private_ipv6_google_access
47587
48506
 
47588
48507
  # The purpose of the resource. This field can be either PRIVATE,
47589
- # GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, PEER_MIGRATION or
47590
- # PRIVATE_SERVICE_CONNECT. PRIVATE is the default purpose for user-created
47591
- # subnets or subnets that are automatically created in auto mode networks.
47592
- # Subnets with purpose set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY are
47593
- # user-created subnetworks that are reserved for Envoy-based load balancers. A
47594
- # subnet with purpose set to PRIVATE_SERVICE_CONNECT is used to publish services
47595
- # using Private Service Connect. A subnet with purpose set to PEER_MIGRATION is
47596
- # used for subnet migration from one peered VPC to another. If unspecified, the
47597
- # subnet purpose defaults to PRIVATE. The enableFlowLogs field isn't supported
47598
- # if the subnet purpose field is set to GLOBAL_MANAGED_PROXY or
48508
+ # GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, PEER_MIGRATION,
48509
+ # PRIVATE_SERVICE_CONNECT or PRIVATE_NAT. PRIVATE is the default purpose for
48510
+ # user-created subnets or subnets that are automatically created in auto mode
48511
+ # networks. Subnets with purpose set to GLOBAL_MANAGED_PROXY or
48512
+ # REGIONAL_MANAGED_PROXY are user-created subnetworks that are reserved for
48513
+ # Envoy-based load balancers. A subnet with purpose set to
48514
+ # PRIVATE_SERVICE_CONNECT is used to publish services using Private Service
48515
+ # Connect. A subnet with purpose set to PEER_MIGRATION is used for subnet
48516
+ # migration from one peered VPC to another. A subnet with purpose set to
48517
+ # PRIVATE_NAT is used for Private NAT IP address by Private NAT Gateway. If
48518
+ # unspecified, the subnet purpose defaults to PRIVATE. The enableFlowLogs field
48519
+ # isn't supported if the subnet purpose field is set to GLOBAL_MANAGED_PROXY or
47599
48520
  # REGIONAL_MANAGED_PROXY.
47600
48521
  # Corresponds to the JSON property `purpose`
47601
48522
  # @return [String]
@@ -49297,10 +50218,13 @@ module Google
49297
50218
  # describes how the proxy should authenticate inbound traffic. serverTlsPolicy
49298
50219
  # only applies to a global TargetHttpsProxy attached to globalForwardingRules
49299
50220
  # with the loadBalancingScheme set to INTERNAL_SELF_MANAGED or EXTERNAL or
49300
- # EXTERNAL_MANAGED. For details which ServerTlsPolicy resources are accepted
49301
- # with INTERNAL_SELF_MANAGED and which with EXTERNAL, EXTERNAL_MANAGED
49302
- # loadBalancingScheme consult ServerTlsPolicy documentation. If left blank,
49303
- # communications are not encrypted.
50221
+ # EXTERNAL_MANAGED or INTERNAL_MANAGED. It also applies to a regional
50222
+ # TargetHttpsProxy attached to regional forwardingRules with the
50223
+ # loadBalancingScheme set to EXTERNAL_MANAGED or INTERNAL_MANAGED. For details
50224
+ # which ServerTlsPolicy resources are accepted with INTERNAL_SELF_MANAGED and
50225
+ # which with EXTERNAL, INTERNAL_MANAGED, EXTERNAL_MANAGED loadBalancingScheme
50226
+ # consult ServerTlsPolicy documentation. If left blank, communications are not
50227
+ # encrypted.
49304
50228
  # Corresponds to the JSON property `serverTlsPolicy`
49305
50229
  # @return [String]
49306
50230
  attr_accessor :server_tls_policy
@@ -52856,16 +53780,18 @@ module Google
52856
53780
  attr_accessor :network
52857
53781
 
52858
53782
  # The purpose of the resource. This field can be either PRIVATE,
52859
- # GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, PEER_MIGRATION or
52860
- # PRIVATE_SERVICE_CONNECT. PRIVATE is the default purpose for user-created
52861
- # subnets or subnets that are automatically created in auto mode networks.
52862
- # Subnets with purpose set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY are
52863
- # user-created subnetworks that are reserved for Envoy-based load balancers. A
52864
- # subnet with purpose set to PRIVATE_SERVICE_CONNECT is used to publish services
52865
- # using Private Service Connect. A subnet with purpose set to PEER_MIGRATION is
52866
- # used for subnet migration from one peered VPC to another. If unspecified, the
52867
- # subnet purpose defaults to PRIVATE. The enableFlowLogs field isn't supported
52868
- # if the subnet purpose field is set to GLOBAL_MANAGED_PROXY or
53783
+ # GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, PEER_MIGRATION,
53784
+ # PRIVATE_SERVICE_CONNECT or PRIVATE_NAT. PRIVATE is the default purpose for
53785
+ # user-created subnets or subnets that are automatically created in auto mode
53786
+ # networks. Subnets with purpose set to GLOBAL_MANAGED_PROXY or
53787
+ # REGIONAL_MANAGED_PROXY are user-created subnetworks that are reserved for
53788
+ # Envoy-based load balancers. A subnet with purpose set to
53789
+ # PRIVATE_SERVICE_CONNECT is used to publish services using Private Service
53790
+ # Connect. A subnet with purpose set to PEER_MIGRATION is used for subnet
53791
+ # migration from one peered VPC to another. A subnet with purpose set to
53792
+ # PRIVATE_NAT is used for Private NAT IP address by Private NAT Gateway. If
53793
+ # unspecified, the subnet purpose defaults to PRIVATE. The enableFlowLogs field
53794
+ # isn't supported if the subnet purpose field is set to GLOBAL_MANAGED_PROXY or
52869
53795
  # REGIONAL_MANAGED_PROXY.
52870
53796
  # Corresponds to the JSON property `purpose`
52871
53797
  # @return [String]
@@ -54655,6 +55581,478 @@ module Google
54655
55581
  end
54656
55582
  end
54657
55583
 
55584
+ # A pseudowire that connects two Interconnect connections.
55585
+ class Wire
55586
+ include Google::Apis::Core::Hashable
55587
+
55588
+ # [Output Only] Indicates whether the wire is enabled. When false, the wire is
55589
+ # disabled. When true and when the wire group of the wire is also enabled, the
55590
+ # wire is enabled. Defaults to true.
55591
+ # Corresponds to the JSON property `adminEnabled`
55592
+ # @return [Boolean]
55593
+ attr_accessor :admin_enabled
55594
+ alias_method :admin_enabled?, :admin_enabled
55595
+
55596
+ # Wire endpoints are specific Interconnect connections.
55597
+ # Corresponds to the JSON property `endpoints`
55598
+ # @return [Array<Google::Apis::ComputeBeta::WireEndpoint>]
55599
+ attr_accessor :endpoints
55600
+
55601
+ # [Output Only] A label that identifies the wire. The format of this label
55602
+ # combines the existing labels of the wire group endpoints and Interconnect
55603
+ # connections used by this wire in alphabetical order as follows: `ENDPOINT_A+
55604
+ # CONNECTION_A1,ENDPOINT_B+CONNECTION_B1`, where: - ENDPOINT_A and ENDPOINT_B:
55605
+ # are the labels that you entered as map keys when you specified the wire group
55606
+ # endpoint objects. - CONNECTION_A1 and CONNECTION_B1: are the labels that you
55607
+ # entered as map keys when you specified the wire group Interconnect objects.
55608
+ # Corresponds to the JSON property `label`
55609
+ # @return [String]
55610
+ attr_accessor :label
55611
+
55612
+ # The properties of a wire.
55613
+ # Corresponds to the JSON property `wireProperties`
55614
+ # @return [Google::Apis::ComputeBeta::WireProperties]
55615
+ attr_accessor :wire_properties
55616
+
55617
+ def initialize(**args)
55618
+ update!(**args)
55619
+ end
55620
+
55621
+ # Update properties of this object
55622
+ def update!(**args)
55623
+ @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
55624
+ @endpoints = args[:endpoints] if args.key?(:endpoints)
55625
+ @label = args[:label] if args.key?(:label)
55626
+ @wire_properties = args[:wire_properties] if args.key?(:wire_properties)
55627
+ end
55628
+ end
55629
+
55630
+ # Wire endpoints are specific Interconnect connections.
55631
+ class WireEndpoint
55632
+ include Google::Apis::Core::Hashable
55633
+
55634
+ #
55635
+ # Corresponds to the JSON property `interconnect`
55636
+ # @return [String]
55637
+ attr_accessor :interconnect
55638
+
55639
+ #
55640
+ # Corresponds to the JSON property `vlanTag`
55641
+ # @return [Fixnum]
55642
+ attr_accessor :vlan_tag
55643
+
55644
+ def initialize(**args)
55645
+ update!(**args)
55646
+ end
55647
+
55648
+ # Update properties of this object
55649
+ def update!(**args)
55650
+ @interconnect = args[:interconnect] if args.key?(:interconnect)
55651
+ @vlan_tag = args[:vlan_tag] if args.key?(:vlan_tag)
55652
+ end
55653
+ end
55654
+
55655
+ # A resource that represents a group of redundant wires.
55656
+ class WireGroup
55657
+ include Google::Apis::Core::Hashable
55658
+
55659
+ # Indicates whether the wires in the wire group are enabled. When false, the
55660
+ # wires in the wire group are disabled. When true and when there is
55661
+ # simultaneously no wire-specific override of `adminEnabled` to false, a given
55662
+ # wire is enabled. Defaults to true.
55663
+ # Corresponds to the JSON property `adminEnabled`
55664
+ # @return [Boolean]
55665
+ attr_accessor :admin_enabled
55666
+ alias_method :admin_enabled?, :admin_enabled
55667
+
55668
+ # [Output Only] Creation timestamp in RFC3339 text format.
55669
+ # Corresponds to the JSON property `creationTimestamp`
55670
+ # @return [String]
55671
+ attr_accessor :creation_timestamp
55672
+
55673
+ # An optional description of the wire group.
55674
+ # Corresponds to the JSON property `description`
55675
+ # @return [String]
55676
+ attr_accessor :description
55677
+
55678
+ # A map that contains the logical endpoints of the wire group. Specify key-value
55679
+ # pairs for the map as follows: - Key: an RFC1035 user-specified label. - Value:
55680
+ # an Endpoint object.
55681
+ # Corresponds to the JSON property `endpoints`
55682
+ # @return [Hash<String,Google::Apis::ComputeBeta::WireGroupEndpoint>]
55683
+ attr_accessor :endpoints
55684
+
55685
+ # [Output Only] The unique identifier for the resource type. The server
55686
+ # generates this identifier.
55687
+ # Corresponds to the JSON property `id`
55688
+ # @return [Fixnum]
55689
+ attr_accessor :id
55690
+
55691
+ # [Output Only] Type of the resource. Always compute#wireGroups for wire groups.
55692
+ # Corresponds to the JSON property `kind`
55693
+ # @return [String]
55694
+ attr_accessor :kind
55695
+
55696
+ # Name of the resource. Provided by the client when the resource is created. The
55697
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
55698
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
55699
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
55700
+ # and all following characters must be a dash, lowercase letter, or digit,
55701
+ # except the last character, which cannot be a dash.
55702
+ # Corresponds to the JSON property `name`
55703
+ # @return [String]
55704
+ attr_accessor :name
55705
+
55706
+ # [Output Only] Server-defined URL for the resource.
55707
+ # Corresponds to the JSON property `selfLink`
55708
+ # @return [String]
55709
+ attr_accessor :self_link
55710
+
55711
+ #
55712
+ # Corresponds to the JSON property `selfLinkWithId`
55713
+ # @return [String]
55714
+ attr_accessor :self_link_with_id
55715
+
55716
+ # Topology details for the wire group.
55717
+ # Corresponds to the JSON property `topology`
55718
+ # @return [Google::Apis::ComputeBeta::WireGroupTopology]
55719
+ attr_accessor :topology
55720
+
55721
+ # The properties of a wire group. These properties determine how a group of
55722
+ # redundant wires are created and managed.
55723
+ # Corresponds to the JSON property `wireGroupProperties`
55724
+ # @return [Google::Apis::ComputeBeta::WireGroupProperties]
55725
+ attr_accessor :wire_group_properties
55726
+
55727
+ # The properties of a wire.
55728
+ # Corresponds to the JSON property `wireProperties`
55729
+ # @return [Google::Apis::ComputeBeta::WireProperties]
55730
+ attr_accessor :wire_properties
55731
+
55732
+ # The single/redundant wire(s) managed by the wire group.
55733
+ # Corresponds to the JSON property `wires`
55734
+ # @return [Array<Google::Apis::ComputeBeta::Wire>]
55735
+ attr_accessor :wires
55736
+
55737
+ def initialize(**args)
55738
+ update!(**args)
55739
+ end
55740
+
55741
+ # Update properties of this object
55742
+ def update!(**args)
55743
+ @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
55744
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
55745
+ @description = args[:description] if args.key?(:description)
55746
+ @endpoints = args[:endpoints] if args.key?(:endpoints)
55747
+ @id = args[:id] if args.key?(:id)
55748
+ @kind = args[:kind] if args.key?(:kind)
55749
+ @name = args[:name] if args.key?(:name)
55750
+ @self_link = args[:self_link] if args.key?(:self_link)
55751
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
55752
+ @topology = args[:topology] if args.key?(:topology)
55753
+ @wire_group_properties = args[:wire_group_properties] if args.key?(:wire_group_properties)
55754
+ @wire_properties = args[:wire_properties] if args.key?(:wire_properties)
55755
+ @wires = args[:wires] if args.key?(:wires)
55756
+ end
55757
+ end
55758
+
55759
+ # A logical endpoint for the wire group. An endpoint represents a metro that
55760
+ # contains redundant Interconnect connections. A wire group is created between
55761
+ # two endpoints.
55762
+ class WireGroupEndpoint
55763
+ include Google::Apis::Core::Hashable
55764
+
55765
+ # A map that contains the redundant Interconnect connections. Specify key-value
55766
+ # pairs for the map as follows: - Key: an RFC1035 user-specified label. - Value:
55767
+ # an Interconnect object.
55768
+ # Corresponds to the JSON property `interconnects`
55769
+ # @return [Hash<String,Google::Apis::ComputeBeta::WireGroupEndpointInterconnect>]
55770
+ attr_accessor :interconnects
55771
+
55772
+ def initialize(**args)
55773
+ update!(**args)
55774
+ end
55775
+
55776
+ # Update properties of this object
55777
+ def update!(**args)
55778
+ @interconnects = args[:interconnects] if args.key?(:interconnects)
55779
+ end
55780
+ end
55781
+
55782
+ # The redundant Interconnect connections for this endpoint.
55783
+ class WireGroupEndpointInterconnect
55784
+ include Google::Apis::Core::Hashable
55785
+
55786
+ # An Interconnect connection. You can specify the connection as a partial or
55787
+ # full URL. If the connection is in a different project from the cross-site
55788
+ # network, use a format that specifies the project. See the following examples
55789
+ # of partial and full URLs: global/interconnects/NAME projects/PROJECT_ID/global/
55790
+ # interconnects/NAME - https://compute.googleapis.com/compute/projects/
55791
+ # PROJECT_ID /global/interconnects/NAME
55792
+ # Corresponds to the JSON property `interconnect`
55793
+ # @return [String]
55794
+ attr_accessor :interconnect
55795
+
55796
+ # To configure the wire group for VLAN mode, enter a VLAN tag, which is a number
55797
+ # from `2` to `4093`. You can autoallocate a tag by entering `0`. To configure
55798
+ # the wire group for port mode, enter `-1`. Review the following guidelines: - A
55799
+ # VLAN tag must be unique for an Interconnect connection across all attachments
55800
+ # and wire groups. - Both endpoints of a wire must use the same VLAN tag value. -
55801
+ # Single wire and redundant type wire groups must have only one VLAN tag. -
55802
+ # Port mode pseudowires must have a single VLAN tag with a value of `-1` for
55803
+ # both endpoints. - Box and cross type wire groups must have two VLAN tags. The
55804
+ # first is for the same-zone pseudowire, and the second is for the cross-zone
55805
+ # pseudowire.
55806
+ # Corresponds to the JSON property `vlanTags`
55807
+ # @return [Array<Fixnum>]
55808
+ attr_accessor :vlan_tags
55809
+
55810
+ def initialize(**args)
55811
+ update!(**args)
55812
+ end
55813
+
55814
+ # Update properties of this object
55815
+ def update!(**args)
55816
+ @interconnect = args[:interconnect] if args.key?(:interconnect)
55817
+ @vlan_tags = args[:vlan_tags] if args.key?(:vlan_tags)
55818
+ end
55819
+ end
55820
+
55821
+ # Response for the list request.
55822
+ class WireGroupList
55823
+ include Google::Apis::Core::Hashable
55824
+
55825
+ #
55826
+ # Corresponds to the JSON property `etag`
55827
+ # @return [String]
55828
+ attr_accessor :etag
55829
+
55830
+ # [Output Only] Unique identifier for the resource; defined by the server.
55831
+ # Corresponds to the JSON property `id`
55832
+ # @return [String]
55833
+ attr_accessor :id
55834
+
55835
+ # A list of wire group resources.
55836
+ # Corresponds to the JSON property `items`
55837
+ # @return [Array<Google::Apis::ComputeBeta::WireGroup>]
55838
+ attr_accessor :items
55839
+
55840
+ # [Output Only] Type of the resource. Always compute#wireGroups for wire groups.
55841
+ # Corresponds to the JSON property `kind`
55842
+ # @return [String]
55843
+ attr_accessor :kind
55844
+
55845
+ # [Output Only] This token allows you to get the next page of results for list
55846
+ # requests. If the number of results is larger than maxResults, use the
55847
+ # nextPageToken as a value for the query parameter pageToken in the next list
55848
+ # request. Subsequent list requests will have their own nextPageToken to
55849
+ # continue paging through the results.
55850
+ # Corresponds to the JSON property `nextPageToken`
55851
+ # @return [String]
55852
+ attr_accessor :next_page_token
55853
+
55854
+ # [Output Only] Server-defined URL for this resource.
55855
+ # Corresponds to the JSON property `selfLink`
55856
+ # @return [String]
55857
+ attr_accessor :self_link
55858
+
55859
+ # [Output Only] Unreachable resources. end_interface:
55860
+ # MixerListResponseWithEtagBuilder
55861
+ # Corresponds to the JSON property `unreachables`
55862
+ # @return [Array<String>]
55863
+ attr_accessor :unreachables
55864
+
55865
+ # [Output Only] Informational warning message.
55866
+ # Corresponds to the JSON property `warning`
55867
+ # @return [Google::Apis::ComputeBeta::WireGroupList::Warning]
55868
+ attr_accessor :warning
55869
+
55870
+ def initialize(**args)
55871
+ update!(**args)
55872
+ end
55873
+
55874
+ # Update properties of this object
55875
+ def update!(**args)
55876
+ @etag = args[:etag] if args.key?(:etag)
55877
+ @id = args[:id] if args.key?(:id)
55878
+ @items = args[:items] if args.key?(:items)
55879
+ @kind = args[:kind] if args.key?(:kind)
55880
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
55881
+ @self_link = args[:self_link] if args.key?(:self_link)
55882
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
55883
+ @warning = args[:warning] if args.key?(:warning)
55884
+ end
55885
+
55886
+ # [Output Only] Informational warning message.
55887
+ class Warning
55888
+ include Google::Apis::Core::Hashable
55889
+
55890
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
55891
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
55892
+ # Corresponds to the JSON property `code`
55893
+ # @return [String]
55894
+ attr_accessor :code
55895
+
55896
+ # [Output Only] Metadata about this warning in key: value format. For example: "
55897
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
55898
+ # Corresponds to the JSON property `data`
55899
+ # @return [Array<Google::Apis::ComputeBeta::WireGroupList::Warning::Datum>]
55900
+ attr_accessor :data
55901
+
55902
+ # [Output Only] A human-readable description of the warning code.
55903
+ # Corresponds to the JSON property `message`
55904
+ # @return [String]
55905
+ attr_accessor :message
55906
+
55907
+ def initialize(**args)
55908
+ update!(**args)
55909
+ end
55910
+
55911
+ # Update properties of this object
55912
+ def update!(**args)
55913
+ @code = args[:code] if args.key?(:code)
55914
+ @data = args[:data] if args.key?(:data)
55915
+ @message = args[:message] if args.key?(:message)
55916
+ end
55917
+
55918
+ #
55919
+ class Datum
55920
+ include Google::Apis::Core::Hashable
55921
+
55922
+ # [Output Only] A key that provides more detail on the warning being returned.
55923
+ # For example, for warnings where there are no results in a list request for a
55924
+ # particular zone, this key might be scope and the key value might be the zone
55925
+ # name. Other examples might be a key indicating a deprecated resource and a
55926
+ # suggested replacement, or a warning about invalid network settings (for
55927
+ # example, if an instance attempts to perform IP forwarding but is not enabled
55928
+ # for IP forwarding).
55929
+ # Corresponds to the JSON property `key`
55930
+ # @return [String]
55931
+ attr_accessor :key
55932
+
55933
+ # [Output Only] A warning data value corresponding to the key.
55934
+ # Corresponds to the JSON property `value`
55935
+ # @return [String]
55936
+ attr_accessor :value
55937
+
55938
+ def initialize(**args)
55939
+ update!(**args)
55940
+ end
55941
+
55942
+ # Update properties of this object
55943
+ def update!(**args)
55944
+ @key = args[:key] if args.key?(:key)
55945
+ @value = args[:value] if args.key?(:value)
55946
+ end
55947
+ end
55948
+ end
55949
+ end
55950
+
55951
+ # The properties of a wire group. These properties determine how a group of
55952
+ # redundant wires are created and managed.
55953
+ class WireGroupProperties
55954
+ include Google::Apis::Core::Hashable
55955
+
55956
+ # The type of the wire group, one of the following: - WIRE: a single pseudowire
55957
+ # over two Interconnect connections with no redundancy. - REDUNDANT: two
55958
+ # pseudowires over four Interconnect connections, with two connections in one
55959
+ # metro and two connections in another metro. Each redundant pair of
55960
+ # Interconnect connections spans both edge availability domains of the metro.
55961
+ # Each pseudowire connects Interconnect connections in matching edge
55962
+ # availability domains of the two metros. - BOX_AND_CROSS: four pseudowires over
55963
+ # four Interconnect connections, with two connections in one metro and two
55964
+ # connections in another metro. Each redundant pair of Interconnect connections
55965
+ # spans both edge availability domains of the metro. Two pseudowires connect
55966
+ # Interconnect connections in matching edge availability domains of the two
55967
+ # metros. Two additional pseudowires connect the non-matching edge availability
55968
+ # domains of the two metros.
55969
+ # Corresponds to the JSON property `type`
55970
+ # @return [String]
55971
+ attr_accessor :type
55972
+
55973
+ def initialize(**args)
55974
+ update!(**args)
55975
+ end
55976
+
55977
+ # Update properties of this object
55978
+ def update!(**args)
55979
+ @type = args[:type] if args.key?(:type)
55980
+ end
55981
+ end
55982
+
55983
+ # Topology details for the wire group.
55984
+ class WireGroupTopology
55985
+ include Google::Apis::Core::Hashable
55986
+
55987
+ # Topology details for all endpoints in the wire group.
55988
+ # Corresponds to the JSON property `endpoints`
55989
+ # @return [Array<Google::Apis::ComputeBeta::WireGroupTopologyEndpoint>]
55990
+ attr_accessor :endpoints
55991
+
55992
+ def initialize(**args)
55993
+ update!(**args)
55994
+ end
55995
+
55996
+ # Update properties of this object
55997
+ def update!(**args)
55998
+ @endpoints = args[:endpoints] if args.key?(:endpoints)
55999
+ end
56000
+ end
56001
+
56002
+ # Topology details for a single wire group endpoint.
56003
+ class WireGroupTopologyEndpoint
56004
+ include Google::Apis::Core::Hashable
56005
+
56006
+ # The InterconnectLocation.city (metropolitan area designator) that all
56007
+ # interconnects are located in.
56008
+ # Corresponds to the JSON property `city`
56009
+ # @return [String]
56010
+ attr_accessor :city
56011
+
56012
+ # Endpoint label from the wire group.
56013
+ # Corresponds to the JSON property `label`
56014
+ # @return [String]
56015
+ attr_accessor :label
56016
+
56017
+ def initialize(**args)
56018
+ update!(**args)
56019
+ end
56020
+
56021
+ # Update properties of this object
56022
+ def update!(**args)
56023
+ @city = args[:city] if args.key?(:city)
56024
+ @label = args[:label] if args.key?(:label)
56025
+ end
56026
+ end
56027
+
56028
+ # The properties of a wire.
56029
+ class WireProperties
56030
+ include Google::Apis::Core::Hashable
56031
+
56032
+ # The unmetered bandwidth in Gigabits per second, using decimal units. `10` is
56033
+ # 10 Gbps, `100` is 100 Gbps.
56034
+ # Corresponds to the JSON property `bandwidthUnmetered`
56035
+ # @return [Fixnum]
56036
+ attr_accessor :bandwidth_unmetered
56037
+
56038
+ # Response when a fault is detected in a pseudowire: - NONE: default. -
56039
+ # DISABLE_PORT: set the port line protocol down when inline probes detect a
56040
+ # fault. This setting is only permitted on port mode pseudowires.
56041
+ # Corresponds to the JSON property `faultResponse`
56042
+ # @return [String]
56043
+ attr_accessor :fault_response
56044
+
56045
+ def initialize(**args)
56046
+ update!(**args)
56047
+ end
56048
+
56049
+ # Update properties of this object
56050
+ def update!(**args)
56051
+ @bandwidth_unmetered = args[:bandwidth_unmetered] if args.key?(:bandwidth_unmetered)
56052
+ @fault_response = args[:fault_response] if args.key?(:fault_response)
56053
+ end
56054
+ end
56055
+
54658
56056
  #
54659
56057
  class XpnHostList
54660
56058
  include Google::Apis::Core::Hashable