google-apis-compute_alpha 0.117.0 → 0.119.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.
@@ -1261,6 +1261,23 @@ module Google
1261
1261
  class AllocationAggregateReservation
1262
1262
  include Google::Apis::Core::Hashable
1263
1263
 
1264
+ # Count of reserved hosts of specified VM family. The host has fixed number of
1265
+ # accelerators based on the accelerator/vm-family selected.
1266
+ # Corresponds to the JSON property `hostCount`
1267
+ # @return [Fixnum]
1268
+ attr_accessor :host_count
1269
+
1270
+ # Number of hosts currently in use. If there is one or more Instances running on
1271
+ # the host, it is considered in use.
1272
+ # Corresponds to the JSON property `inUseHostCount`
1273
+ # @return [Fixnum]
1274
+ attr_accessor :in_use_host_count
1275
+
1276
+ # Number of instances currently in use in this reservation.
1277
+ # Corresponds to the JSON property `inUseInstanceCount`
1278
+ # @return [Fixnum]
1279
+ attr_accessor :in_use_instance_count
1280
+
1264
1281
  # [Output only] List of resources currently in use.
1265
1282
  # Corresponds to the JSON property `inUseResources`
1266
1283
  # @return [Array<Google::Apis::ComputeAlpha::AllocationAggregateReservationReservedResourceInfo>]
@@ -1288,6 +1305,9 @@ module Google
1288
1305
 
1289
1306
  # Update properties of this object
1290
1307
  def update!(**args)
1308
+ @host_count = args[:host_count] if args.key?(:host_count)
1309
+ @in_use_host_count = args[:in_use_host_count] if args.key?(:in_use_host_count)
1310
+ @in_use_instance_count = args[:in_use_instance_count] if args.key?(:in_use_instance_count)
1291
1311
  @in_use_resources = args[:in_use_resources] if args.key?(:in_use_resources)
1292
1312
  @reserved_resources = args[:reserved_resources] if args.key?(:reserved_resources)
1293
1313
  @vm_family = args[:vm_family] if args.key?(:vm_family)
@@ -3163,6 +3183,24 @@ module Google
3163
3183
  # @return [Fixnum]
3164
3184
  attr_accessor :max_connections_per_instance
3165
3185
 
3186
+ # Defines a maximum number of in-flight requests for the whole NEG or instance
3187
+ # group. Not available if backend's balancingMode is RATE or CONNECTION.
3188
+ # Corresponds to the JSON property `maxInFlightRequests`
3189
+ # @return [Fixnum]
3190
+ attr_accessor :max_in_flight_requests
3191
+
3192
+ # Defines a maximum number of in-flight requests for a single endpoint. Not
3193
+ # available if backend's balancingMode is RATE or CONNECTION.
3194
+ # Corresponds to the JSON property `maxInFlightRequestsPerEndpoint`
3195
+ # @return [Fixnum]
3196
+ attr_accessor :max_in_flight_requests_per_endpoint
3197
+
3198
+ # Defines a maximum number of in-flight requests for a single VM. Not available
3199
+ # if backend's balancingMode is RATE or CONNECTION.
3200
+ # Corresponds to the JSON property `maxInFlightRequestsPerInstance`
3201
+ # @return [Fixnum]
3202
+ attr_accessor :max_in_flight_requests_per_instance
3203
+
3166
3204
  # Defines a maximum number of HTTP requests per second (RPS). For usage
3167
3205
  # guidelines, see Rate balancing mode and Utilization balancing mode. Not
3168
3206
  # available if the backend's balancingMode is CONNECTION.
@@ -3201,6 +3239,11 @@ module Google
3201
3239
  # @return [String]
3202
3240
  attr_accessor :preference
3203
3241
 
3242
+ #
3243
+ # Corresponds to the JSON property `trafficDuration`
3244
+ # @return [String]
3245
+ attr_accessor :traffic_duration
3246
+
3204
3247
  def initialize(**args)
3205
3248
  update!(**args)
3206
3249
  end
@@ -3216,11 +3259,15 @@ module Google
3216
3259
  @max_connections = args[:max_connections] if args.key?(:max_connections)
3217
3260
  @max_connections_per_endpoint = args[:max_connections_per_endpoint] if args.key?(:max_connections_per_endpoint)
3218
3261
  @max_connections_per_instance = args[:max_connections_per_instance] if args.key?(:max_connections_per_instance)
3262
+ @max_in_flight_requests = args[:max_in_flight_requests] if args.key?(:max_in_flight_requests)
3263
+ @max_in_flight_requests_per_endpoint = args[:max_in_flight_requests_per_endpoint] if args.key?(:max_in_flight_requests_per_endpoint)
3264
+ @max_in_flight_requests_per_instance = args[:max_in_flight_requests_per_instance] if args.key?(:max_in_flight_requests_per_instance)
3219
3265
  @max_rate = args[:max_rate] if args.key?(:max_rate)
3220
3266
  @max_rate_per_endpoint = args[:max_rate_per_endpoint] if args.key?(:max_rate_per_endpoint)
3221
3267
  @max_rate_per_instance = args[:max_rate_per_instance] if args.key?(:max_rate_per_instance)
3222
3268
  @max_utilization = args[:max_utilization] if args.key?(:max_utilization)
3223
3269
  @preference = args[:preference] if args.key?(:preference)
3270
+ @traffic_duration = args[:traffic_duration] if args.key?(:traffic_duration)
3224
3271
  end
3225
3272
  end
3226
3273
 
@@ -3302,6 +3349,11 @@ module Google
3302
3349
  # @return [String]
3303
3350
  attr_accessor :name
3304
3351
 
3352
+ # Additional Backend Bucket parameters.
3353
+ # Corresponds to the JSON property `params`
3354
+ # @return [Google::Apis::ComputeAlpha::BackendBucketParams]
3355
+ attr_accessor :params
3356
+
3305
3357
  # [Output Only] URL of the region where the regional backend bucket resides.
3306
3358
  # This field is not applicable to global backend buckets. You must specify this
3307
3359
  # field as part of the HTTP request URL. It is not settable as a field in the
@@ -3343,6 +3395,7 @@ module Google
3343
3395
  @kind = args[:kind] if args.key?(:kind)
3344
3396
  @load_balancing_scheme = args[:load_balancing_scheme] if args.key?(:load_balancing_scheme)
3345
3397
  @name = args[:name] if args.key?(:name)
3398
+ @params = args[:params] if args.key?(:params)
3346
3399
  @region = args[:region] if args.key?(:region)
3347
3400
  @self_link = args[:self_link] if args.key?(:self_link)
3348
3401
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
@@ -3820,6 +3873,32 @@ module Google
3820
3873
  end
3821
3874
  end
3822
3875
 
3876
+ # Additional Backend Bucket parameters.
3877
+ class BackendBucketParams
3878
+ include Google::Apis::Core::Hashable
3879
+
3880
+ # Tag keys/values directly bound to this resource. Tag keys and values have the
3881
+ # same definition as resource manager tags. The field is allowed for INSERT only.
3882
+ # The keys/values to set on the resource should be specified in either ID ` : `
3883
+ # or Namespaced format ` : `. For example the following are valid inputs: * `"
3884
+ # tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"` * `"123/
3885
+ # environment" : "production", "345/abc" : "xyz"` Note: * Invalid combinations
3886
+ # of ID & namespaced format is not supported. For instance: `"123/environment" :
3887
+ # "tagValues/444"` is invalid.
3888
+ # Corresponds to the JSON property `resourceManagerTags`
3889
+ # @return [Hash<String,String>]
3890
+ attr_accessor :resource_manager_tags
3891
+
3892
+ def initialize(**args)
3893
+ update!(**args)
3894
+ end
3895
+
3896
+ # Update properties of this object
3897
+ def update!(**args)
3898
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
3899
+ end
3900
+ end
3901
+
3823
3902
  #
3824
3903
  class BackendBucketUsedBy
3825
3904
  include Google::Apis::Core::Hashable
@@ -3857,7 +3936,7 @@ module Google
3857
3936
  attr_accessor :max_utilization
3858
3937
 
3859
3938
  # Name of a custom utilization signal. The name must be 1-64 characters long and
3860
- # match the regular expression [a-z]([-_.a-z0-9]*[a-z0-9])? which means the
3939
+ # match the regular expression [a-z]([-_.a-z0-9]*[a-z0-9])? which means that the
3861
3940
  # first character must be a lowercase letter, and all following characters must
3862
3941
  # be a dash, period, underscore, lowercase letter, or digit, except the last
3863
3942
  # character, which cannot be a dash, period, or underscore. For usage guidelines,
@@ -3905,6 +3984,13 @@ module Google
3905
3984
  # @return [Fixnum]
3906
3985
  attr_accessor :affinity_cookie_ttl_sec
3907
3986
 
3987
+ # A boolean flag enabling multi-network mesh. This field is only allowed with
3988
+ # load balancing scheme set to INTERNAL_SELF_MANAGED.
3989
+ # Corresponds to the JSON property `allowMultinetwork`
3990
+ # @return [Boolean]
3991
+ attr_accessor :allow_multinetwork
3992
+ alias_method :allow_multinetwork?, :allow_multinetwork
3993
+
3908
3994
  # The list of backends that serve this BackendService.
3909
3995
  # Corresponds to the JSON property `backends`
3910
3996
  # @return [Array<Google::Apis::ComputeAlpha::Backend>]
@@ -4145,11 +4231,16 @@ module Google
4145
4231
  # was redirected to the load balancer. - MAGLEV: used as a drop in replacement
4146
4232
  # for the ring hash load balancer. Maglev is not as stable as ring hash but has
4147
4233
  # faster table lookup build times and host selection times. For more information
4148
- # about Maglev, see https://ai.google/research/pubs/pub44824 This field is
4149
- # applicable to either: - A regional backend service with the service_protocol
4150
- # set to HTTP, HTTPS, HTTP2 or H2C, and load_balancing_scheme set to
4151
- # INTERNAL_MANAGED. - A global backend service with the load_balancing_scheme
4152
- # set to INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If
4234
+ # about Maglev, see https://ai.google/research/pubs/pub44824 -
4235
+ # WEIGHTED_ROUND_ROBIN: Per-endpoint Weighted Round Robin Load Balancing using
4236
+ # weights computed from Backend reported Custom Metrics. If set, the Backend
4237
+ # Service responses are expected to contain non-standard HTTP response header
4238
+ # field Endpoint-Load-Metrics. The reported metrics to use for computing the
4239
+ # weights are specified via the customMetrics field. This field is applicable to
4240
+ # either: - A regional backend service with the service_protocol set to HTTP,
4241
+ # HTTPS, HTTP2 or H2C, and load_balancing_scheme set to INTERNAL_MANAGED. - A
4242
+ # global backend service with the load_balancing_scheme set to
4243
+ # INTERNAL_SELF_MANAGED, INTERNAL_MANAGED, or EXTERNAL_MANAGED. If
4153
4244
  # sessionAffinity is not configured—that is, if session affinity remains at the
4154
4245
  # default value of NONE—then the default value for localityLbPolicy is
4155
4246
  # ROUND_ROBIN. If session affinity is set to a value other than NONE, then the
@@ -4213,6 +4304,11 @@ module Google
4213
4304
  # @return [Google::Apis::ComputeAlpha::OutlierDetection]
4214
4305
  attr_accessor :outlier_detection
4215
4306
 
4307
+ # Additional Backend Service parameters.
4308
+ # Corresponds to the JSON property `params`
4309
+ # @return [Google::Apis::ComputeAlpha::BackendServiceParams]
4310
+ attr_accessor :params
4311
+
4216
4312
  # Deprecated in favor of portName. The TCP port to connect on the backend. The
4217
4313
  # default value is 80. For internal passthrough Network Load Balancers and
4218
4314
  # external passthrough Network Load Balancers, omit port.
@@ -4346,6 +4442,7 @@ module Google
4346
4442
  # Update properties of this object
4347
4443
  def update!(**args)
4348
4444
  @affinity_cookie_ttl_sec = args[:affinity_cookie_ttl_sec] if args.key?(:affinity_cookie_ttl_sec)
4445
+ @allow_multinetwork = args[:allow_multinetwork] if args.key?(:allow_multinetwork)
4349
4446
  @backends = args[:backends] if args.key?(:backends)
4350
4447
  @cdn_policy = args[:cdn_policy] if args.key?(:cdn_policy)
4351
4448
  @circuit_breakers = args[:circuit_breakers] if args.key?(:circuit_breakers)
@@ -4381,6 +4478,7 @@ module Google
4381
4478
  @network = args[:network] if args.key?(:network)
4382
4479
  @network_pass_through_lb_traffic_policy = args[:network_pass_through_lb_traffic_policy] if args.key?(:network_pass_through_lb_traffic_policy)
4383
4480
  @outlier_detection = args[:outlier_detection] if args.key?(:outlier_detection)
4481
+ @params = args[:params] if args.key?(:params)
4384
4482
  @port = args[:port] if args.key?(:port)
4385
4483
  @port_name = args[:port_name] if args.key?(:port_name)
4386
4484
  @protocol = args[:protocol] if args.key?(:protocol)
@@ -4810,7 +4908,7 @@ module Google
4810
4908
  alias_method :dry_run?, :dry_run
4811
4909
 
4812
4910
  # Name of a custom utilization signal. The name must be 1-64 characters long and
4813
- # match the regular expression [a-z]([-_.a-z0-9]*[a-z0-9])? which means the
4911
+ # match the regular expression [a-z]([-_.a-z0-9]*[a-z0-9])? which means that the
4814
4912
  # first character must be a lowercase letter, and all following characters must
4815
4913
  # be a dash, period, underscore, lowercase letter, or digit, except the last
4816
4914
  # character, which cannot be a dash, period, or underscore. For usage guidelines,
@@ -5648,6 +5746,32 @@ module Google
5648
5746
  end
5649
5747
  end
5650
5748
 
5749
+ # Additional Backend Service parameters.
5750
+ class BackendServiceParams
5751
+ include Google::Apis::Core::Hashable
5752
+
5753
+ # Tag keys/values directly bound to this resource. Tag keys and values have the
5754
+ # same definition as resource manager tags. The field is allowed for INSERT only.
5755
+ # The keys/values to set on the resource should be specified in either ID ` : `
5756
+ # or Namespaced format ` : `. For example the following are valid inputs: * `"
5757
+ # tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"` * `"123/
5758
+ # environment" : "production", "345/abc" : "xyz"` Note: * Invalid combinations
5759
+ # of ID & namespaced format is not supported. For instance: `"123/environment" :
5760
+ # "tagValues/444"` is invalid.
5761
+ # Corresponds to the JSON property `resourceManagerTags`
5762
+ # @return [Hash<String,String>]
5763
+ attr_accessor :resource_manager_tags
5764
+
5765
+ def initialize(**args)
5766
+ update!(**args)
5767
+ end
5768
+
5769
+ # Update properties of this object
5770
+ def update!(**args)
5771
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
5772
+ end
5773
+ end
5774
+
5651
5775
  #
5652
5776
  class BackendServiceReference
5653
5777
  include Google::Apis::Core::Hashable
@@ -6199,6 +6323,13 @@ module Google
6199
6323
  # @return [Array<Fixnum>]
6200
6324
  attr_accessor :asns
6201
6325
 
6326
+ # [Output only] ASNs in the path segment. This field is for better support of 32
6327
+ # bit ASNs as the other asns field suffers from overflow when the ASN is larger.
6328
+ # When type is SEQUENCE, these are ordered.
6329
+ # Corresponds to the JSON property `asns32`
6330
+ # @return [Array<Fixnum>]
6331
+ attr_accessor :asns32
6332
+
6202
6333
  # [Output only] Type of AS-PATH segment (SEQUENCE or SET)
6203
6334
  # Corresponds to the JSON property `type`
6204
6335
  # @return [String]
@@ -6211,6 +6342,7 @@ module Google
6211
6342
  # Update properties of this object
6212
6343
  def update!(**args)
6213
6344
  @asns = args[:asns] if args.key?(:asns)
6345
+ @asns32 = args[:asns32] if args.key?(:asns32)
6214
6346
  @type = args[:type] if args.key?(:type)
6215
6347
  end
6216
6348
  end
@@ -6971,7 +7103,7 @@ module Google
6971
7103
  include Google::Apis::Core::Hashable
6972
7104
 
6973
7105
  # Initially the API will provide one recommendation which balances the
6974
- # individual scores according to Google's preference.
7106
+ # individual scores according to service provider's preference.
6975
7107
  # Corresponds to the JSON property `recommendations`
6976
7108
  # @return [Array<Google::Apis::ComputeAlpha::CapacityAdviceResponseRecommendation>]
6977
7109
  attr_accessor :recommendations
@@ -8211,9 +8343,9 @@ module Google
8211
8343
  include Google::Apis::Core::Hashable
8212
8344
 
8213
8345
  # A list of CompositeHealthChecks contained in this scope.
8214
- # Corresponds to the JSON property `resources`
8346
+ # Corresponds to the JSON property `compositeHealthChecks`
8215
8347
  # @return [Array<Google::Apis::ComputeAlpha::CompositeHealthCheck>]
8216
- attr_accessor :resources
8348
+ attr_accessor :composite_health_checks
8217
8349
 
8218
8350
  # Informational warning which replaces the list of composite health checks when
8219
8351
  # the list is empty.
@@ -8227,7 +8359,7 @@ module Google
8227
8359
 
8228
8360
  # Update properties of this object
8229
8361
  def update!(**args)
8230
- @resources = args[:resources] if args.key?(:resources)
8362
+ @composite_health_checks = args[:composite_health_checks] if args.key?(:composite_health_checks)
8231
8363
  @warning = args[:warning] if args.key?(:warning)
8232
8364
  end
8233
8365
 
@@ -11216,6 +11348,12 @@ module Google
11216
11348
  # @return [String]
11217
11349
  attr_accessor :name
11218
11350
 
11351
+ # Input only. [Input Only] Additional params passed with the request, but not
11352
+ # persisted as part of resource payload.
11353
+ # Corresponds to the JSON property `params`
11354
+ # @return [Google::Apis::ComputeAlpha::ExternalVpnGatewayParams]
11355
+ attr_accessor :params
11356
+
11219
11357
  # Indicates the user-supplied redundancy type of this external VPN gateway.
11220
11358
  # Corresponds to the JSON property `redundancyType`
11221
11359
  # @return [String]
@@ -11240,6 +11378,7 @@ module Google
11240
11378
  @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
11241
11379
  @labels = args[:labels] if args.key?(:labels)
11242
11380
  @name = args[:name] if args.key?(:name)
11381
+ @params = args[:params] if args.key?(:params)
11243
11382
  @redundancy_type = args[:redundancy_type] if args.key?(:redundancy_type)
11244
11383
  @self_link = args[:self_link] if args.key?(:self_link)
11245
11384
  end
@@ -11411,6 +11550,33 @@ module Google
11411
11550
  end
11412
11551
  end
11413
11552
 
11553
+ #
11554
+ class ExternalVpnGatewayParams
11555
+ include Google::Apis::Core::Hashable
11556
+
11557
+ # Tag keys/values directly bound to this resource. Tag keys and values have the
11558
+ # same definition as resource manager tags. The field is allowed for INSERT only.
11559
+ # The keys/values to set on the resource should be specified in either ID ` : `
11560
+ # or Namespaced format ` : `. For example the following are valid inputs: * `"
11561
+ # tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"` * `"123/
11562
+ # environment" : "production", "345/abc" : "xyz"` Note: * Invalid combinations
11563
+ # of ID & namespaced format is not supported. For instance: `"123/environment" :
11564
+ # "tagValues/444"` is invalid. * Inconsistent format is not supported. For
11565
+ # instance: `"tagKeys/333" : "tagValues/444", "123/env" : "prod"` is invalid.
11566
+ # Corresponds to the JSON property `resourceManagerTags`
11567
+ # @return [Hash<String,String>]
11568
+ attr_accessor :resource_manager_tags
11569
+
11570
+ def initialize(**args)
11571
+ update!(**args)
11572
+ end
11573
+
11574
+ # Update properties of this object
11575
+ def update!(**args)
11576
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
11577
+ end
11578
+ end
11579
+
11414
11580
  #
11415
11581
  class FileContentBuffer
11416
11582
  include Google::Apis::Core::Hashable
@@ -12846,7 +13012,8 @@ module Google
12846
13012
  # allowed to inject packets into the consumer's network. If set to true, the
12847
13013
  # target service attachment must have tunneling enabled and TunnelingConfig.
12848
13014
  # RoutingMode set to PACKET_INJECTION Non-PSC forwarding rules should not use
12849
- # this field.
13015
+ # this field. This field was never released to any customers and is deprecated
13016
+ # and will be removed in the future.
12850
13017
  # Corresponds to the JSON property `allowPscPacketInjection`
12851
13018
  # @return [Boolean]
12852
13019
  attr_accessor :allow_psc_packet_injection
@@ -13166,6 +13333,13 @@ module Google
13166
13333
  # @return [String]
13167
13334
  attr_accessor :target
13168
13335
 
13336
+ # [PSC for VPC-hosted services only] Determines if clients are allowed to access
13337
+ # the producer service via this PSC endpoint.
13338
+ # Corresponds to the JSON property `trafficDisabled`
13339
+ # @return [Boolean]
13340
+ attr_accessor :traffic_disabled
13341
+ alias_method :traffic_disabled?, :traffic_disabled
13342
+
13169
13343
  def initialize(**args)
13170
13344
  update!(**args)
13171
13345
  end
@@ -13211,6 +13385,7 @@ module Google
13211
13385
  @source_ip_ranges = args[:source_ip_ranges] if args.key?(:source_ip_ranges)
13212
13386
  @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
13213
13387
  @target = args[:target] if args.key?(:target)
13388
+ @traffic_disabled = args[:traffic_disabled] if args.key?(:traffic_disabled)
13214
13389
  end
13215
13390
  end
13216
13391
 
@@ -13702,6 +13877,11 @@ module Google
13702
13877
  # @return [String]
13703
13878
  attr_accessor :planning_status
13704
13879
 
13880
+ # Protection tier for the workload.
13881
+ # Corresponds to the JSON property `protectionTier`
13882
+ # @return [String]
13883
+ attr_accessor :protection_tier
13884
+
13705
13885
  # The reservation mode which determines reservation-termination behavior and
13706
13886
  # expected pricing.
13707
13887
  # Corresponds to the JSON property `reservationMode`
@@ -13786,6 +13966,7 @@ module Google
13786
13966
  @name = args[:name] if args.key?(:name)
13787
13967
  @name_prefix = args[:name_prefix] if args.key?(:name_prefix)
13788
13968
  @planning_status = args[:planning_status] if args.key?(:planning_status)
13969
+ @protection_tier = args[:protection_tier] if args.key?(:protection_tier)
13789
13970
  @reservation_mode = args[:reservation_mode] if args.key?(:reservation_mode)
13790
13971
  @reservation_name = args[:reservation_name] if args.key?(:reservation_name)
13791
13972
  @scheduling_type = args[:scheduling_type] if args.key?(:scheduling_type)
@@ -15608,6 +15789,836 @@ module Google
15608
15789
  end
15609
15790
  end
15610
15791
 
15792
+ # HaController handles failover for a VM Instance.
15793
+ class HaController
15794
+ include Google::Apis::Core::Hashable
15795
+
15796
+ # [Output Only] Creation timestamp in RFC3339 text format.
15797
+ # Corresponds to the JSON property `creationTimestamp`
15798
+ # @return [String]
15799
+ attr_accessor :creation_timestamp
15800
+
15801
+ # An optional description of this resource. Provide this property when you
15802
+ # create the resource.
15803
+ # Corresponds to the JSON property `description`
15804
+ # @return [String]
15805
+ attr_accessor :description
15806
+
15807
+ # Indicates how failover should be initiated.
15808
+ # Corresponds to the JSON property `failoverInitiation`
15809
+ # @return [String]
15810
+ attr_accessor :failover_initiation
15811
+
15812
+ # [Output Only] The unique identifier for the resource. This identifier is
15813
+ # defined by the server.
15814
+ # Corresponds to the JSON property `id`
15815
+ # @return [Fixnum]
15816
+ attr_accessor :id
15817
+
15818
+ # Name of the instance that HaController is in charge of. If not specified the
15819
+ # HaController's resource name will be used instead. The name must be 1-63
15820
+ # characters long, and comply with RFC1035. Specifically, the name must be 1-63
15821
+ # characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
15822
+ # which means the first character must be a lowercase letter, and all following
15823
+ # characters must be a dash, lowercase letter, or digit, except the last
15824
+ # character, which cannot be a dash.
15825
+ # Corresponds to the JSON property `instanceName`
15826
+ # @return [String]
15827
+ attr_accessor :instance_name
15828
+
15829
+ # [Output Only] Type of the resource. Always compute#haController for
15830
+ # HaControllers.
15831
+ # Corresponds to the JSON property `kind`
15832
+ # @return [String]
15833
+ attr_accessor :kind
15834
+
15835
+ # Name of the resource. Provided by the client when the resource is created. The
15836
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
15837
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
15838
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
15839
+ # and all following characters must be a dash, lowercase letter, or digit,
15840
+ # except the last character, which cannot be a dash.
15841
+ # Corresponds to the JSON property `name`
15842
+ # @return [String]
15843
+ attr_accessor :name
15844
+
15845
+ # [Output Only] URL of the region where the resource resides. You must specify
15846
+ # this field as part of the HTTP request URL. It is not settable as a field in
15847
+ # the request body.
15848
+ # Corresponds to the JSON property `region`
15849
+ # @return [String]
15850
+ attr_accessor :region
15851
+
15852
+ # Indicates the capacity guarantees in the secondary zone.
15853
+ # Corresponds to the JSON property `secondaryZoneCapacity`
15854
+ # @return [String]
15855
+ attr_accessor :secondary_zone_capacity
15856
+
15857
+ # [Output only] Server-defined URL for the resource.
15858
+ # Corresponds to the JSON property `selfLink`
15859
+ # @return [String]
15860
+ attr_accessor :self_link
15861
+
15862
+ # [Output Only] Server-defined URL for this resource with the resource id.
15863
+ # Corresponds to the JSON property `selfLinkWithId`
15864
+ # @return [String]
15865
+ attr_accessor :self_link_with_id
15866
+
15867
+ # Contains information about current status of the HaController.
15868
+ # Corresponds to the JSON property `status`
15869
+ # @return [Google::Apis::ComputeAlpha::HaControllerStatus]
15870
+ attr_accessor :status
15871
+
15872
+ # Map of zone configurations Key: name of the zone Value: ZoneConfiguration
15873
+ # Corresponds to the JSON property `zoneConfigurations`
15874
+ # @return [Hash<String,Google::Apis::ComputeAlpha::HaControllerZoneConfiguration>]
15875
+ attr_accessor :zone_configurations
15876
+
15877
+ def initialize(**args)
15878
+ update!(**args)
15879
+ end
15880
+
15881
+ # Update properties of this object
15882
+ def update!(**args)
15883
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
15884
+ @description = args[:description] if args.key?(:description)
15885
+ @failover_initiation = args[:failover_initiation] if args.key?(:failover_initiation)
15886
+ @id = args[:id] if args.key?(:id)
15887
+ @instance_name = args[:instance_name] if args.key?(:instance_name)
15888
+ @kind = args[:kind] if args.key?(:kind)
15889
+ @name = args[:name] if args.key?(:name)
15890
+ @region = args[:region] if args.key?(:region)
15891
+ @secondary_zone_capacity = args[:secondary_zone_capacity] if args.key?(:secondary_zone_capacity)
15892
+ @self_link = args[:self_link] if args.key?(:self_link)
15893
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
15894
+ @status = args[:status] if args.key?(:status)
15895
+ @zone_configurations = args[:zone_configurations] if args.key?(:zone_configurations)
15896
+ end
15897
+ end
15898
+
15899
+ # Contains information about current status of the HaController.
15900
+ class HaControllerStatus
15901
+ include Google::Apis::Core::Hashable
15902
+
15903
+ # Contains information about the current failover operation.
15904
+ # Corresponds to the JSON property `failoverProgress`
15905
+ # @return [Google::Apis::ComputeAlpha::HaControllerStatusFailoverProgress]
15906
+ attr_accessor :failover_progress
15907
+
15908
+ # [Output Only] Indicates if the failover is currently in-progress.
15909
+ # Corresponds to the JSON property `ongoingFailover`
15910
+ # @return [Boolean]
15911
+ attr_accessor :ongoing_failover
15912
+ alias_method :ongoing_failover?, :ongoing_failover
15913
+
15914
+ # [Output Only] The URL to the instance that is intended to be primary at this
15915
+ # moment. Primary instance will be changed at the very beginning of a failover
15916
+ # operation.
15917
+ # Corresponds to the JSON property `primaryInstance`
15918
+ # @return [String]
15919
+ attr_accessor :primary_instance
15920
+
15921
+ # [Output Only] The name of the zone that is intended to be primary at this
15922
+ # moment. Primary zone will be changed at the very beginning of a failover
15923
+ # operation. The zone may not be operational in the middle of a failover
15924
+ # operation.
15925
+ # Corresponds to the JSON property `primaryZone`
15926
+ # @return [String]
15927
+ attr_accessor :primary_zone
15928
+
15929
+ # [Output Only] Indicates if the resource is ready for initiating a failover to
15930
+ # the secondary zone.
15931
+ # Corresponds to the JSON property `readyForFailover`
15932
+ # @return [Boolean]
15933
+ attr_accessor :ready_for_failover
15934
+ alias_method :ready_for_failover?, :ready_for_failover
15935
+
15936
+ # [Output Only] Map of zone statuses. Key: name of the zone Value: ZoneStatus
15937
+ # Corresponds to the JSON property `zoneStatus`
15938
+ # @return [Hash<String,Google::Apis::ComputeAlpha::HaControllerStatusZoneStatus>]
15939
+ attr_accessor :zone_status
15940
+
15941
+ def initialize(**args)
15942
+ update!(**args)
15943
+ end
15944
+
15945
+ # Update properties of this object
15946
+ def update!(**args)
15947
+ @failover_progress = args[:failover_progress] if args.key?(:failover_progress)
15948
+ @ongoing_failover = args[:ongoing_failover] if args.key?(:ongoing_failover)
15949
+ @primary_instance = args[:primary_instance] if args.key?(:primary_instance)
15950
+ @primary_zone = args[:primary_zone] if args.key?(:primary_zone)
15951
+ @ready_for_failover = args[:ready_for_failover] if args.key?(:ready_for_failover)
15952
+ @zone_status = args[:zone_status] if args.key?(:zone_status)
15953
+ end
15954
+ end
15955
+
15956
+ # Contains information about the current failover operation.
15957
+ class HaControllerStatusFailoverProgress
15958
+ include Google::Apis::Core::Hashable
15959
+
15960
+ # [Output Only] Indicates if failover has been triggered automatically or
15961
+ # manually.
15962
+ # Corresponds to the JSON property `failoverTrigger`
15963
+ # @return [String]
15964
+ attr_accessor :failover_trigger
15965
+
15966
+ # [Output Only] Timestamp of the last failover trigger.
15967
+ # Corresponds to the JSON property `failoverTriggerTimestamp`
15968
+ # @return [String]
15969
+ attr_accessor :failover_trigger_timestamp
15970
+
15971
+ # [Output Only] Contains details of the last failed failover. This field is
15972
+ # filled only if the current failover is failing
15973
+ # Corresponds to the JSON property `lastFailoverAttempt`
15974
+ # @return [Google::Apis::ComputeAlpha::HaControllerStatusFailoverProgressLastFailoverAttempt]
15975
+ attr_accessor :last_failover_attempt
15976
+
15977
+ def initialize(**args)
15978
+ update!(**args)
15979
+ end
15980
+
15981
+ # Update properties of this object
15982
+ def update!(**args)
15983
+ @failover_trigger = args[:failover_trigger] if args.key?(:failover_trigger)
15984
+ @failover_trigger_timestamp = args[:failover_trigger_timestamp] if args.key?(:failover_trigger_timestamp)
15985
+ @last_failover_attempt = args[:last_failover_attempt] if args.key?(:last_failover_attempt)
15986
+ end
15987
+ end
15988
+
15989
+ #
15990
+ class HaControllerStatusFailoverProgressLastFailoverAttempt
15991
+ include Google::Apis::Core::Hashable
15992
+
15993
+ # [Output Only] Encountered errors during the last attempt to process failover.
15994
+ # Corresponds to the JSON property `errors`
15995
+ # @return [Google::Apis::ComputeAlpha::HaControllerStatusFailoverProgressLastFailoverAttempt::Errors]
15996
+ attr_accessor :errors
15997
+
15998
+ # [Output Only] Show timestamp only if there is an error. RFC3339 text format.
15999
+ # Corresponds to the JSON property `timestamp`
16000
+ # @return [String]
16001
+ attr_accessor :timestamp
16002
+
16003
+ def initialize(**args)
16004
+ update!(**args)
16005
+ end
16006
+
16007
+ # Update properties of this object
16008
+ def update!(**args)
16009
+ @errors = args[:errors] if args.key?(:errors)
16010
+ @timestamp = args[:timestamp] if args.key?(:timestamp)
16011
+ end
16012
+
16013
+ # [Output Only] Encountered errors during the last attempt to process failover.
16014
+ class Errors
16015
+ include Google::Apis::Core::Hashable
16016
+
16017
+ # [Output Only] The array of errors encountered while processing this operation.
16018
+ # Corresponds to the JSON property `errors`
16019
+ # @return [Array<Google::Apis::ComputeAlpha::HaControllerStatusFailoverProgressLastFailoverAttempt::Errors::Error>]
16020
+ attr_accessor :errors
16021
+
16022
+ def initialize(**args)
16023
+ update!(**args)
16024
+ end
16025
+
16026
+ # Update properties of this object
16027
+ def update!(**args)
16028
+ @errors = args[:errors] if args.key?(:errors)
16029
+ end
16030
+
16031
+ #
16032
+ class Error
16033
+ include Google::Apis::Core::Hashable
16034
+
16035
+ # [Output Only] The error type identifier for this error.
16036
+ # Corresponds to the JSON property `code`
16037
+ # @return [String]
16038
+ attr_accessor :code
16039
+
16040
+ # [Output Only] An optional list of messages that contain the error details.
16041
+ # There is a set of defined message types to use for providing details.The
16042
+ # syntax depends on the error code. For example, QuotaExceededInfo will have
16043
+ # details when the error code is QUOTA_EXCEEDED.
16044
+ # Corresponds to the JSON property `errorDetails`
16045
+ # @return [Array<Google::Apis::ComputeAlpha::HaControllerStatusFailoverProgressLastFailoverAttempt::Errors::Error::ErrorDetail>]
16046
+ attr_accessor :error_details
16047
+
16048
+ # [Output Only] Indicates the field in the request that caused the error. This
16049
+ # property is optional.
16050
+ # Corresponds to the JSON property `location`
16051
+ # @return [String]
16052
+ attr_accessor :location
16053
+
16054
+ # [Output Only] An optional, human-readable error message.
16055
+ # Corresponds to the JSON property `message`
16056
+ # @return [String]
16057
+ attr_accessor :message
16058
+
16059
+ def initialize(**args)
16060
+ update!(**args)
16061
+ end
16062
+
16063
+ # Update properties of this object
16064
+ def update!(**args)
16065
+ @code = args[:code] if args.key?(:code)
16066
+ @error_details = args[:error_details] if args.key?(:error_details)
16067
+ @location = args[:location] if args.key?(:location)
16068
+ @message = args[:message] if args.key?(:message)
16069
+ end
16070
+
16071
+ #
16072
+ class ErrorDetail
16073
+ include Google::Apis::Core::Hashable
16074
+
16075
+ # Describes the cause of the error with structured details. Example of an error
16076
+ # when contacting the "pubsub.googleapis.com" API when it is not enabled: ` "
16077
+ # reason": "API_DISABLED" "domain": "googleapis.com" "metadata": ` "resource": "
16078
+ # projects/123", "service": "pubsub.googleapis.com" ` ` This response indicates
16079
+ # that the pubsub.googleapis.com API is not enabled. Example of an error that is
16080
+ # returned when attempting to create a Spanner instance in a region that is out
16081
+ # of stock: ` "reason": "STOCKOUT" "domain": "spanner.googleapis.com", "metadata"
16082
+ # : ` "availableRegions": "us-central1,us-east2" ` `
16083
+ # Corresponds to the JSON property `errorInfo`
16084
+ # @return [Google::Apis::ComputeAlpha::ErrorInfo]
16085
+ attr_accessor :error_info
16086
+
16087
+ # Provides links to documentation or for performing an out of band action. For
16088
+ # example, if a quota check failed with an error indicating the calling project
16089
+ # hasn't enabled the accessed service, this can contain a URL pointing directly
16090
+ # to the right place in the developer console to flip the bit.
16091
+ # Corresponds to the JSON property `help`
16092
+ # @return [Google::Apis::ComputeAlpha::Help]
16093
+ attr_accessor :help
16094
+
16095
+ # Provides a localized error message that is safe to return to the user which
16096
+ # can be attached to an RPC error.
16097
+ # Corresponds to the JSON property `localizedMessage`
16098
+ # @return [Google::Apis::ComputeAlpha::LocalizedMessage]
16099
+ attr_accessor :localized_message
16100
+
16101
+ # Additional details for quota exceeded error for resource quota.
16102
+ # Corresponds to the JSON property `quotaInfo`
16103
+ # @return [Google::Apis::ComputeAlpha::QuotaExceededInfo]
16104
+ attr_accessor :quota_info
16105
+
16106
+ def initialize(**args)
16107
+ update!(**args)
16108
+ end
16109
+
16110
+ # Update properties of this object
16111
+ def update!(**args)
16112
+ @error_info = args[:error_info] if args.key?(:error_info)
16113
+ @help = args[:help] if args.key?(:help)
16114
+ @localized_message = args[:localized_message] if args.key?(:localized_message)
16115
+ @quota_info = args[:quota_info] if args.key?(:quota_info)
16116
+ end
16117
+ end
16118
+ end
16119
+ end
16120
+ end
16121
+
16122
+ # Contains the status of a specific zone.
16123
+ class HaControllerStatusZoneStatus
16124
+ include Google::Apis::Core::Hashable
16125
+
16126
+ # [Output Only] Indicates if the zone is primary at this moment.
16127
+ # Corresponds to the JSON property `isPrimary`
16128
+ # @return [Boolean]
16129
+ attr_accessor :is_primary
16130
+ alias_method :is_primary?, :is_primary
16131
+
16132
+ # [Output Only] Indicates if the zone is ready for initiating a failover.
16133
+ # Corresponds to the JSON property `isZoneReady`
16134
+ # @return [Boolean]
16135
+ attr_accessor :is_zone_ready
16136
+ alias_method :is_zone_ready?, :is_zone_ready
16137
+
16138
+ # Contains details of the last failed operation.
16139
+ # Corresponds to the JSON property `lastError`
16140
+ # @return [Google::Apis::ComputeAlpha::HaControllerStatusZoneStatusLastError]
16141
+ attr_accessor :last_error
16142
+
16143
+ def initialize(**args)
16144
+ update!(**args)
16145
+ end
16146
+
16147
+ # Update properties of this object
16148
+ def update!(**args)
16149
+ @is_primary = args[:is_primary] if args.key?(:is_primary)
16150
+ @is_zone_ready = args[:is_zone_ready] if args.key?(:is_zone_ready)
16151
+ @last_error = args[:last_error] if args.key?(:last_error)
16152
+ end
16153
+ end
16154
+
16155
+ # Contains details of the last failed operation.
16156
+ class HaControllerStatusZoneStatusLastError
16157
+ include Google::Apis::Core::Hashable
16158
+
16159
+ # [Output Only] Encountered errors.
16160
+ # Corresponds to the JSON property `errors`
16161
+ # @return [Google::Apis::ComputeAlpha::HaControllerStatusZoneStatusLastError::Errors]
16162
+ attr_accessor :errors
16163
+
16164
+ # [Output Only] Show timestamp only if there is an error. RFC3339 text format.
16165
+ # Corresponds to the JSON property `timestamp`
16166
+ # @return [String]
16167
+ attr_accessor :timestamp
16168
+
16169
+ def initialize(**args)
16170
+ update!(**args)
16171
+ end
16172
+
16173
+ # Update properties of this object
16174
+ def update!(**args)
16175
+ @errors = args[:errors] if args.key?(:errors)
16176
+ @timestamp = args[:timestamp] if args.key?(:timestamp)
16177
+ end
16178
+
16179
+ # [Output Only] Encountered errors.
16180
+ class Errors
16181
+ include Google::Apis::Core::Hashable
16182
+
16183
+ # [Output Only] The array of errors encountered while processing this operation.
16184
+ # Corresponds to the JSON property `errors`
16185
+ # @return [Array<Google::Apis::ComputeAlpha::HaControllerStatusZoneStatusLastError::Errors::Error>]
16186
+ attr_accessor :errors
16187
+
16188
+ def initialize(**args)
16189
+ update!(**args)
16190
+ end
16191
+
16192
+ # Update properties of this object
16193
+ def update!(**args)
16194
+ @errors = args[:errors] if args.key?(:errors)
16195
+ end
16196
+
16197
+ #
16198
+ class Error
16199
+ include Google::Apis::Core::Hashable
16200
+
16201
+ # [Output Only] The error type identifier for this error.
16202
+ # Corresponds to the JSON property `code`
16203
+ # @return [String]
16204
+ attr_accessor :code
16205
+
16206
+ # [Output Only] An optional list of messages that contain the error details.
16207
+ # There is a set of defined message types to use for providing details.The
16208
+ # syntax depends on the error code. For example, QuotaExceededInfo will have
16209
+ # details when the error code is QUOTA_EXCEEDED.
16210
+ # Corresponds to the JSON property `errorDetails`
16211
+ # @return [Array<Google::Apis::ComputeAlpha::HaControllerStatusZoneStatusLastError::Errors::Error::ErrorDetail>]
16212
+ attr_accessor :error_details
16213
+
16214
+ # [Output Only] Indicates the field in the request that caused the error. This
16215
+ # property is optional.
16216
+ # Corresponds to the JSON property `location`
16217
+ # @return [String]
16218
+ attr_accessor :location
16219
+
16220
+ # [Output Only] An optional, human-readable error message.
16221
+ # Corresponds to the JSON property `message`
16222
+ # @return [String]
16223
+ attr_accessor :message
16224
+
16225
+ def initialize(**args)
16226
+ update!(**args)
16227
+ end
16228
+
16229
+ # Update properties of this object
16230
+ def update!(**args)
16231
+ @code = args[:code] if args.key?(:code)
16232
+ @error_details = args[:error_details] if args.key?(:error_details)
16233
+ @location = args[:location] if args.key?(:location)
16234
+ @message = args[:message] if args.key?(:message)
16235
+ end
16236
+
16237
+ #
16238
+ class ErrorDetail
16239
+ include Google::Apis::Core::Hashable
16240
+
16241
+ # Describes the cause of the error with structured details. Example of an error
16242
+ # when contacting the "pubsub.googleapis.com" API when it is not enabled: ` "
16243
+ # reason": "API_DISABLED" "domain": "googleapis.com" "metadata": ` "resource": "
16244
+ # projects/123", "service": "pubsub.googleapis.com" ` ` This response indicates
16245
+ # that the pubsub.googleapis.com API is not enabled. Example of an error that is
16246
+ # returned when attempting to create a Spanner instance in a region that is out
16247
+ # of stock: ` "reason": "STOCKOUT" "domain": "spanner.googleapis.com", "metadata"
16248
+ # : ` "availableRegions": "us-central1,us-east2" ` `
16249
+ # Corresponds to the JSON property `errorInfo`
16250
+ # @return [Google::Apis::ComputeAlpha::ErrorInfo]
16251
+ attr_accessor :error_info
16252
+
16253
+ # Provides links to documentation or for performing an out of band action. For
16254
+ # example, if a quota check failed with an error indicating the calling project
16255
+ # hasn't enabled the accessed service, this can contain a URL pointing directly
16256
+ # to the right place in the developer console to flip the bit.
16257
+ # Corresponds to the JSON property `help`
16258
+ # @return [Google::Apis::ComputeAlpha::Help]
16259
+ attr_accessor :help
16260
+
16261
+ # Provides a localized error message that is safe to return to the user which
16262
+ # can be attached to an RPC error.
16263
+ # Corresponds to the JSON property `localizedMessage`
16264
+ # @return [Google::Apis::ComputeAlpha::LocalizedMessage]
16265
+ attr_accessor :localized_message
16266
+
16267
+ # Additional details for quota exceeded error for resource quota.
16268
+ # Corresponds to the JSON property `quotaInfo`
16269
+ # @return [Google::Apis::ComputeAlpha::QuotaExceededInfo]
16270
+ attr_accessor :quota_info
16271
+
16272
+ def initialize(**args)
16273
+ update!(**args)
16274
+ end
16275
+
16276
+ # Update properties of this object
16277
+ def update!(**args)
16278
+ @error_info = args[:error_info] if args.key?(:error_info)
16279
+ @help = args[:help] if args.key?(:help)
16280
+ @localized_message = args[:localized_message] if args.key?(:localized_message)
16281
+ @quota_info = args[:quota_info] if args.key?(:quota_info)
16282
+ end
16283
+ end
16284
+ end
16285
+ end
16286
+ end
16287
+
16288
+ # Config for a zone that the HaController may use for running the VM instance.
16289
+ class HaControllerZoneConfiguration
16290
+ include Google::Apis::Core::Hashable
16291
+
16292
+ # A set of node affinity configurations. Refer to Configuring node affinity for
16293
+ # more information. Overrides reservationAffinity.
16294
+ # Corresponds to the JSON property `nodeAffinities`
16295
+ # @return [Array<Google::Apis::ComputeAlpha::HaControllerZoneConfigurationNodeAffinity>]
16296
+ attr_accessor :node_affinities
16297
+
16298
+ # Specifies the reservations that this instance can consume from. This message
16299
+ # should be an exact copy of the Instances representation of AllocationAffinity.
16300
+ # LINT.IfChange(HaControllerAllocationAffinityMixer)
16301
+ # Corresponds to the JSON property `reservationAffinity`
16302
+ # @return [Google::Apis::ComputeAlpha::HaControllerZoneConfigurationReservationAffinity]
16303
+ attr_accessor :reservation_affinity
16304
+
16305
+ def initialize(**args)
16306
+ update!(**args)
16307
+ end
16308
+
16309
+ # Update properties of this object
16310
+ def update!(**args)
16311
+ @node_affinities = args[:node_affinities] if args.key?(:node_affinities)
16312
+ @reservation_affinity = args[:reservation_affinity] if args.key?(:reservation_affinity)
16313
+ end
16314
+ end
16315
+
16316
+ # Node Affinity: the configuration of desired nodes onto which the Instance
16317
+ # could be scheduled. This message should be an exact copy of the Instances
16318
+ # representation of NodeAffinity. LINT.IfChange(HaControllerNodeAffinityMixer)
16319
+ class HaControllerZoneConfigurationNodeAffinity
16320
+ include Google::Apis::Core::Hashable
16321
+
16322
+ # Corresponds to the label key of Node resource.
16323
+ # Corresponds to the JSON property `key`
16324
+ # @return [String]
16325
+ attr_accessor :key
16326
+
16327
+ # Defines the operation of node selection. Valid operators are IN for affinity
16328
+ # and NOT_IN for anti-affinity.
16329
+ # Corresponds to the JSON property `operator`
16330
+ # @return [String]
16331
+ attr_accessor :operator
16332
+
16333
+ # Corresponds to the label values of Node resource.
16334
+ # Corresponds to the JSON property `values`
16335
+ # @return [Array<String>]
16336
+ attr_accessor :values
16337
+
16338
+ def initialize(**args)
16339
+ update!(**args)
16340
+ end
16341
+
16342
+ # Update properties of this object
16343
+ def update!(**args)
16344
+ @key = args[:key] if args.key?(:key)
16345
+ @operator = args[:operator] if args.key?(:operator)
16346
+ @values = args[:values] if args.key?(:values)
16347
+ end
16348
+ end
16349
+
16350
+ # Specifies the reservations that this instance can consume from. This message
16351
+ # should be an exact copy of the Instances representation of AllocationAffinity.
16352
+ # LINT.IfChange(HaControllerAllocationAffinityMixer)
16353
+ class HaControllerZoneConfigurationReservationAffinity
16354
+ include Google::Apis::Core::Hashable
16355
+
16356
+ # Specifies the type of reservation from which this instance can consume
16357
+ # resources: ANY_RESERVATION (default), SPECIFIC_RESERVATION, or NO_RESERVATION.
16358
+ # See Consuming reserved instances for examples.
16359
+ # Corresponds to the JSON property `consumeReservationType`
16360
+ # @return [String]
16361
+ attr_accessor :consume_reservation_type
16362
+
16363
+ # Corresponds to the label key of a reservation resource. To target a
16364
+ # SPECIFIC_RESERVATION by name, specify googleapis.com/reservation-name as the
16365
+ # key and specify the name of your reservation as its value.
16366
+ # Corresponds to the JSON property `key`
16367
+ # @return [String]
16368
+ attr_accessor :key
16369
+
16370
+ # Corresponds to the label values of a reservation resource. This can be either
16371
+ # a name to a reservation in the same project or "projects/different-project/
16372
+ # reservations/some-reservation-name" to target a shared reservation in the same
16373
+ # zone but in a different project.
16374
+ # Corresponds to the JSON property `values`
16375
+ # @return [Array<String>]
16376
+ attr_accessor :values
16377
+
16378
+ def initialize(**args)
16379
+ update!(**args)
16380
+ end
16381
+
16382
+ # Update properties of this object
16383
+ def update!(**args)
16384
+ @consume_reservation_type = args[:consume_reservation_type] if args.key?(:consume_reservation_type)
16385
+ @key = args[:key] if args.key?(:key)
16386
+ @values = args[:values] if args.key?(:values)
16387
+ end
16388
+ end
16389
+
16390
+ #
16391
+ class HaControllersFailoverRequest
16392
+ include Google::Apis::Core::Hashable
16393
+
16394
+ # Name of the destination zone for the failover.
16395
+ # Corresponds to the JSON property `primaryZone`
16396
+ # @return [String]
16397
+ attr_accessor :primary_zone
16398
+
16399
+ def initialize(**args)
16400
+ update!(**args)
16401
+ end
16402
+
16403
+ # Update properties of this object
16404
+ def update!(**args)
16405
+ @primary_zone = args[:primary_zone] if args.key?(:primary_zone)
16406
+ end
16407
+ end
16408
+
16409
+ #
16410
+ class HaControllersList
16411
+ include Google::Apis::Core::Hashable
16412
+
16413
+ #
16414
+ # Corresponds to the JSON property `etag`
16415
+ # @return [String]
16416
+ attr_accessor :etag
16417
+
16418
+ # Unique identifier for the resource; defined by the server.
16419
+ # Corresponds to the JSON property `id`
16420
+ # @return [String]
16421
+ attr_accessor :id
16422
+
16423
+ # A list of HaControllers in the specified project and region.
16424
+ # Corresponds to the JSON property `items`
16425
+ # @return [Array<Google::Apis::ComputeAlpha::HaController>]
16426
+ attr_accessor :items
16427
+
16428
+ # This token allows you to get the next page of results for maxResults, use the
16429
+ # nextPageToken as a value for the query parameter pageToken in the next list
16430
+ # request. Subsequent list requests will have their own nextPageToken to
16431
+ # continue paging through the results.
16432
+ # Corresponds to the JSON property `nextPageToken`
16433
+ # @return [String]
16434
+ attr_accessor :next_page_token
16435
+
16436
+ # [Output only] Server-defined URL for this resource.
16437
+ # Corresponds to the JSON property `selfLink`
16438
+ # @return [String]
16439
+ attr_accessor :self_link
16440
+
16441
+ # [Output only] Unreachable resources.
16442
+ # Corresponds to the JSON property `unreachables`
16443
+ # @return [Array<String>]
16444
+ attr_accessor :unreachables
16445
+
16446
+ # Informational warning message.
16447
+ # Corresponds to the JSON property `warning`
16448
+ # @return [Google::Apis::ComputeAlpha::HaControllersList::Warning]
16449
+ attr_accessor :warning
16450
+
16451
+ def initialize(**args)
16452
+ update!(**args)
16453
+ end
16454
+
16455
+ # Update properties of this object
16456
+ def update!(**args)
16457
+ @etag = args[:etag] if args.key?(:etag)
16458
+ @id = args[:id] if args.key?(:id)
16459
+ @items = args[:items] if args.key?(:items)
16460
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
16461
+ @self_link = args[:self_link] if args.key?(:self_link)
16462
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
16463
+ @warning = args[:warning] if args.key?(:warning)
16464
+ end
16465
+
16466
+ # Informational warning message.
16467
+ class Warning
16468
+ include Google::Apis::Core::Hashable
16469
+
16470
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
16471
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
16472
+ # Corresponds to the JSON property `code`
16473
+ # @return [String]
16474
+ attr_accessor :code
16475
+
16476
+ # [Output Only] Metadata about this warning in key: value format. For example: "
16477
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
16478
+ # Corresponds to the JSON property `data`
16479
+ # @return [Array<Google::Apis::ComputeAlpha::HaControllersList::Warning::Datum>]
16480
+ attr_accessor :data
16481
+
16482
+ # [Output Only] A human-readable description of the warning code.
16483
+ # Corresponds to the JSON property `message`
16484
+ # @return [String]
16485
+ attr_accessor :message
16486
+
16487
+ def initialize(**args)
16488
+ update!(**args)
16489
+ end
16490
+
16491
+ # Update properties of this object
16492
+ def update!(**args)
16493
+ @code = args[:code] if args.key?(:code)
16494
+ @data = args[:data] if args.key?(:data)
16495
+ @message = args[:message] if args.key?(:message)
16496
+ end
16497
+
16498
+ #
16499
+ class Datum
16500
+ include Google::Apis::Core::Hashable
16501
+
16502
+ # [Output Only] A key that provides more detail on the warning being returned.
16503
+ # For example, for warnings where there are no results in a list request for a
16504
+ # particular zone, this key might be scope and the key value might be the zone
16505
+ # name. Other examples might be a key indicating a deprecated resource and a
16506
+ # suggested replacement, or a warning about invalid network settings (for
16507
+ # example, if an instance attempts to perform IP forwarding but is not enabled
16508
+ # for IP forwarding).
16509
+ # Corresponds to the JSON property `key`
16510
+ # @return [String]
16511
+ attr_accessor :key
16512
+
16513
+ # [Output Only] A warning data value corresponding to the key.
16514
+ # Corresponds to the JSON property `value`
16515
+ # @return [String]
16516
+ attr_accessor :value
16517
+
16518
+ def initialize(**args)
16519
+ update!(**args)
16520
+ end
16521
+
16522
+ # Update properties of this object
16523
+ def update!(**args)
16524
+ @key = args[:key] if args.key?(:key)
16525
+ @value = args[:value] if args.key?(:value)
16526
+ end
16527
+ end
16528
+ end
16529
+ end
16530
+
16531
+ #
16532
+ class HealthAggregationPoliciesScopedList
16533
+ include Google::Apis::Core::Hashable
16534
+
16535
+ # A list of HealthAggregationPolicys contained in this scope.
16536
+ # Corresponds to the JSON property `healthAggregationPolicies`
16537
+ # @return [Array<Google::Apis::ComputeAlpha::HealthAggregationPolicy>]
16538
+ attr_accessor :health_aggregation_policies
16539
+
16540
+ # Informational warning which replaces the list of health aggregation policies
16541
+ # when the list is empty.
16542
+ # Corresponds to the JSON property `warning`
16543
+ # @return [Google::Apis::ComputeAlpha::HealthAggregationPoliciesScopedList::Warning]
16544
+ attr_accessor :warning
16545
+
16546
+ def initialize(**args)
16547
+ update!(**args)
16548
+ end
16549
+
16550
+ # Update properties of this object
16551
+ def update!(**args)
16552
+ @health_aggregation_policies = args[:health_aggregation_policies] if args.key?(:health_aggregation_policies)
16553
+ @warning = args[:warning] if args.key?(:warning)
16554
+ end
16555
+
16556
+ # Informational warning which replaces the list of health aggregation policies
16557
+ # when the list is empty.
16558
+ class Warning
16559
+ include Google::Apis::Core::Hashable
16560
+
16561
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
16562
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
16563
+ # Corresponds to the JSON property `code`
16564
+ # @return [String]
16565
+ attr_accessor :code
16566
+
16567
+ # [Output Only] Metadata about this warning in key: value format. For example: "
16568
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
16569
+ # Corresponds to the JSON property `data`
16570
+ # @return [Array<Google::Apis::ComputeAlpha::HealthAggregationPoliciesScopedList::Warning::Datum>]
16571
+ attr_accessor :data
16572
+
16573
+ # [Output Only] A human-readable description of the warning code.
16574
+ # Corresponds to the JSON property `message`
16575
+ # @return [String]
16576
+ attr_accessor :message
16577
+
16578
+ def initialize(**args)
16579
+ update!(**args)
16580
+ end
16581
+
16582
+ # Update properties of this object
16583
+ def update!(**args)
16584
+ @code = args[:code] if args.key?(:code)
16585
+ @data = args[:data] if args.key?(:data)
16586
+ @message = args[:message] if args.key?(:message)
16587
+ end
16588
+
16589
+ #
16590
+ class Datum
16591
+ include Google::Apis::Core::Hashable
16592
+
16593
+ # [Output Only] A key that provides more detail on the warning being returned.
16594
+ # For example, for warnings where there are no results in a list request for a
16595
+ # particular zone, this key might be scope and the key value might be the zone
16596
+ # name. Other examples might be a key indicating a deprecated resource and a
16597
+ # suggested replacement, or a warning about invalid network settings (for
16598
+ # example, if an instance attempts to perform IP forwarding but is not enabled
16599
+ # for IP forwarding).
16600
+ # Corresponds to the JSON property `key`
16601
+ # @return [String]
16602
+ attr_accessor :key
16603
+
16604
+ # [Output Only] A warning data value corresponding to the key.
16605
+ # Corresponds to the JSON property `value`
16606
+ # @return [String]
16607
+ attr_accessor :value
16608
+
16609
+ def initialize(**args)
16610
+ update!(**args)
16611
+ end
16612
+
16613
+ # Update properties of this object
16614
+ def update!(**args)
16615
+ @key = args[:key] if args.key?(:key)
16616
+ @value = args[:value] if args.key?(:value)
16617
+ end
16618
+ end
16619
+ end
16620
+ end
16621
+
15611
16622
  # Represents a health aggregation policy. A health aggregation policy resource
15612
16623
  # defines a policy to aggregate health. For more information, see Health checks
15613
16624
  # overview.
@@ -15731,6 +16742,129 @@ module Google
15731
16742
  end
15732
16743
  end
15733
16744
 
16745
+ # Contains a list of HealthAggregationPoliciesScopedList.
16746
+ class HealthAggregationPolicyAggregatedList
16747
+ include Google::Apis::Core::Hashable
16748
+
16749
+ # [Output Only] Unique identifier for the resource; defined by the server.
16750
+ # Corresponds to the JSON property `id`
16751
+ # @return [String]
16752
+ attr_accessor :id
16753
+
16754
+ # A list of HealthAggregationPoliciesScopedList resources.
16755
+ # Corresponds to the JSON property `items`
16756
+ # @return [Hash<String,Google::Apis::ComputeAlpha::HealthAggregationPoliciesScopedList>]
16757
+ attr_accessor :items
16758
+
16759
+ # Type of resource.
16760
+ # Corresponds to the JSON property `kind`
16761
+ # @return [String]
16762
+ attr_accessor :kind
16763
+
16764
+ # [Output Only] This token allows you to get the next page of results for list
16765
+ # requests. If the number of results is larger than maxResults, use the
16766
+ # nextPageToken as a value for the query parameter pageToken in the next list
16767
+ # request. Subsequent list requests will have their own nextPageToken to
16768
+ # continue paging through the results.
16769
+ # Corresponds to the JSON property `nextPageToken`
16770
+ # @return [String]
16771
+ attr_accessor :next_page_token
16772
+
16773
+ # [Output Only] Server-defined URL for this resource.
16774
+ # Corresponds to the JSON property `selfLink`
16775
+ # @return [String]
16776
+ attr_accessor :self_link
16777
+
16778
+ # [Output Only] Unreachable resources.
16779
+ # Corresponds to the JSON property `unreachables`
16780
+ # @return [Array<String>]
16781
+ attr_accessor :unreachables
16782
+
16783
+ # [Output Only] Informational warning message.
16784
+ # Corresponds to the JSON property `warning`
16785
+ # @return [Google::Apis::ComputeAlpha::HealthAggregationPolicyAggregatedList::Warning]
16786
+ attr_accessor :warning
16787
+
16788
+ def initialize(**args)
16789
+ update!(**args)
16790
+ end
16791
+
16792
+ # Update properties of this object
16793
+ def update!(**args)
16794
+ @id = args[:id] if args.key?(:id)
16795
+ @items = args[:items] if args.key?(:items)
16796
+ @kind = args[:kind] if args.key?(:kind)
16797
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
16798
+ @self_link = args[:self_link] if args.key?(:self_link)
16799
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
16800
+ @warning = args[:warning] if args.key?(:warning)
16801
+ end
16802
+
16803
+ # [Output Only] Informational warning message.
16804
+ class Warning
16805
+ include Google::Apis::Core::Hashable
16806
+
16807
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
16808
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
16809
+ # Corresponds to the JSON property `code`
16810
+ # @return [String]
16811
+ attr_accessor :code
16812
+
16813
+ # [Output Only] Metadata about this warning in key: value format. For example: "
16814
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
16815
+ # Corresponds to the JSON property `data`
16816
+ # @return [Array<Google::Apis::ComputeAlpha::HealthAggregationPolicyAggregatedList::Warning::Datum>]
16817
+ attr_accessor :data
16818
+
16819
+ # [Output Only] A human-readable description of the warning code.
16820
+ # Corresponds to the JSON property `message`
16821
+ # @return [String]
16822
+ attr_accessor :message
16823
+
16824
+ def initialize(**args)
16825
+ update!(**args)
16826
+ end
16827
+
16828
+ # Update properties of this object
16829
+ def update!(**args)
16830
+ @code = args[:code] if args.key?(:code)
16831
+ @data = args[:data] if args.key?(:data)
16832
+ @message = args[:message] if args.key?(:message)
16833
+ end
16834
+
16835
+ #
16836
+ class Datum
16837
+ include Google::Apis::Core::Hashable
16838
+
16839
+ # [Output Only] A key that provides more detail on the warning being returned.
16840
+ # For example, for warnings where there are no results in a list request for a
16841
+ # particular zone, this key might be scope and the key value might be the zone
16842
+ # name. Other examples might be a key indicating a deprecated resource and a
16843
+ # suggested replacement, or a warning about invalid network settings (for
16844
+ # example, if an instance attempts to perform IP forwarding but is not enabled
16845
+ # for IP forwarding).
16846
+ # Corresponds to the JSON property `key`
16847
+ # @return [String]
16848
+ attr_accessor :key
16849
+
16850
+ # [Output Only] A warning data value corresponding to the key.
16851
+ # Corresponds to the JSON property `value`
16852
+ # @return [String]
16853
+ attr_accessor :value
16854
+
16855
+ def initialize(**args)
16856
+ update!(**args)
16857
+ end
16858
+
16859
+ # Update properties of this object
16860
+ def update!(**args)
16861
+ @key = args[:key] if args.key?(:key)
16862
+ @value = args[:value] if args.key?(:value)
16863
+ end
16864
+ end
16865
+ end
16866
+ end
16867
+
15734
16868
  #
15735
16869
  class HealthAggregationPolicyList
15736
16870
  include Google::Apis::Core::Hashable
@@ -17300,9 +18434,9 @@ module Google
17300
18434
  include Google::Apis::Core::Hashable
17301
18435
 
17302
18436
  # A list of HealthSources contained in this scope.
17303
- # Corresponds to the JSON property `resources`
18437
+ # Corresponds to the JSON property `healthSources`
17304
18438
  # @return [Array<Google::Apis::ComputeAlpha::HealthSource>]
17305
- attr_accessor :resources
18439
+ attr_accessor :health_sources
17306
18440
 
17307
18441
  # Informational warning which replaces the list of health sources when the list
17308
18442
  # is empty.
@@ -17316,7 +18450,7 @@ module Google
17316
18450
 
17317
18451
  # Update properties of this object
17318
18452
  def update!(**args)
17319
- @resources = args[:resources] if args.key?(:resources)
18453
+ @health_sources = args[:health_sources] if args.key?(:health_sources)
17320
18454
  @warning = args[:warning] if args.key?(:warning)
17321
18455
  end
17322
18456
 
@@ -20051,6 +21185,12 @@ module Google
20051
21185
  class InstanceFlexibilityPolicyInstanceSelection
20052
21186
  include Google::Apis::Core::Hashable
20053
21187
 
21188
+ # Disks to be attached to the instances created from in this selection. They
21189
+ # override the disks specified in the instance properties.
21190
+ # Corresponds to the JSON property `disks`
21191
+ # @return [Array<Google::Apis::ComputeAlpha::AttachedDisk>]
21192
+ attr_accessor :disks
21193
+
20054
21194
  # Alternative machine types to use for instances that are created from these
20055
21195
  # properties. This field only accepts a machine type names, for example `n2-
20056
21196
  # standard-4` and not URLs or partial URLs.
@@ -20071,6 +21211,7 @@ module Google
20071
21211
 
20072
21212
  # Update properties of this object
20073
21213
  def update!(**args)
21214
+ @disks = args[:disks] if args.key?(:disks)
20074
21215
  @machine_types = args[:machine_types] if args.key?(:machine_types)
20075
21216
  @rank = args[:rank] if args.key?(:rank)
20076
21217
  end
@@ -33289,11 +34430,6 @@ module Google
33289
34430
  # @return [String]
33290
34431
  attr_accessor :self_link
33291
34432
 
33292
- # [Output only] Server-defined URL for this resource with the resource id.
33293
- # Corresponds to the JSON property `selfLinkWithId`
33294
- # @return [String]
33295
- attr_accessor :self_link_with_id
33296
-
33297
34433
  #
33298
34434
  # Corresponds to the JSON property `status`
33299
34435
  # @return [Google::Apis::ComputeAlpha::MultiMigStatus]
@@ -33313,7 +34449,6 @@ module Google
33313
34449
  @region = args[:region] if args.key?(:region)
33314
34450
  @resource_policies = args[:resource_policies] if args.key?(:resource_policies)
33315
34451
  @self_link = args[:self_link] if args.key?(:self_link)
33316
- @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
33317
34452
  @status = args[:status] if args.key?(:status)
33318
34453
  end
33319
34454
  end
@@ -33328,11 +34463,6 @@ module Google
33328
34463
  # @return [String]
33329
34464
  attr_accessor :creation_timestamp
33330
34465
 
33331
- # An optional description of this resource.
33332
- # Corresponds to the JSON property `description`
33333
- # @return [String]
33334
- attr_accessor :description
33335
-
33336
34466
  # [Output only] The unique identifier for this resource type. The server
33337
34467
  # generates this identifier.
33338
34468
  # Corresponds to the JSON property `id`
@@ -33361,11 +34491,6 @@ module Google
33361
34491
  # @return [String]
33362
34492
  attr_accessor :self_link
33363
34493
 
33364
- # [Output Only] Server-defined URL for this resource with the resource id.
33365
- # Corresponds to the JSON property `selfLinkWithId`
33366
- # @return [String]
33367
- attr_accessor :self_link_with_id
33368
-
33369
34494
  # [Output Only] The status of this multi-MIG member
33370
34495
  # Corresponds to the JSON property `status`
33371
34496
  # @return [Google::Apis::ComputeAlpha::MultiMigMemberStatus]
@@ -33378,13 +34503,11 @@ module Google
33378
34503
  # Update properties of this object
33379
34504
  def update!(**args)
33380
34505
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
33381
- @description = args[:description] if args.key?(:description)
33382
34506
  @id = args[:id] if args.key?(:id)
33383
34507
  @kind = args[:kind] if args.key?(:kind)
33384
34508
  @name = args[:name] if args.key?(:name)
33385
34509
  @region = args[:region] if args.key?(:region)
33386
34510
  @self_link = args[:self_link] if args.key?(:self_link)
33387
- @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
33388
34511
  @status = args[:status] if args.key?(:status)
33389
34512
  end
33390
34513
  end
@@ -33555,6 +34678,12 @@ module Google
33555
34678
  class MultiMigStatus
33556
34679
  include Google::Apis::Core::Hashable
33557
34680
 
34681
+ # [Output Only] The accelerator topology applied to this multi-MIG. Currently
34682
+ # only one accelerator topology is supported.
34683
+ # Corresponds to the JSON property `appliedAcceleratorTopologies`
34684
+ # @return [Array<Google::Apis::ComputeAlpha::MultiMigStatusAcceleratorTopology>]
34685
+ attr_accessor :applied_accelerator_topologies
34686
+
33558
34687
  #
33559
34688
  # Corresponds to the JSON property `memberInstanceGroupManagers`
33560
34689
  # @return [Array<String>]
@@ -33571,19 +34700,181 @@ module Google
33571
34700
 
33572
34701
  # Update properties of this object
33573
34702
  def update!(**args)
34703
+ @applied_accelerator_topologies = args[:applied_accelerator_topologies] if args.key?(:applied_accelerator_topologies)
33574
34704
  @member_instance_group_managers = args[:member_instance_group_managers] if args.key?(:member_instance_group_managers)
33575
34705
  @members_count = args[:members_count] if args.key?(:members_count)
33576
34706
  end
33577
34707
  end
33578
34708
 
33579
34709
  #
33580
- class MultiMigsList
34710
+ class MultiMigStatusAcceleratorTopology
33581
34711
  include Google::Apis::Core::Hashable
33582
34712
 
33583
- #
33584
- # Corresponds to the JSON property `etag`
34713
+ # [Output Only] Topology in the format of: "16x16", "4x4x4", etc. The value is
34714
+ # the same as configured in the WorkloadPolicy.
34715
+ # Corresponds to the JSON property `acceleratorTopology`
33585
34716
  # @return [String]
33586
- attr_accessor :etag
34717
+ attr_accessor :accelerator_topology
34718
+
34719
+ # [Output Only] The state of the accelerator topology.
34720
+ # Corresponds to the JSON property `acceleratorTopologyState`
34721
+ # @return [String]
34722
+ attr_accessor :accelerator_topology_state
34723
+
34724
+ # [Output Only] The result of the latest accelerator topology state check.
34725
+ # Corresponds to the JSON property `acceleratorTopologyStateLastCheck`
34726
+ # @return [Google::Apis::ComputeAlpha::MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck]
34727
+ attr_accessor :accelerator_topology_state_last_check
34728
+
34729
+ def initialize(**args)
34730
+ update!(**args)
34731
+ end
34732
+
34733
+ # Update properties of this object
34734
+ def update!(**args)
34735
+ @accelerator_topology = args[:accelerator_topology] if args.key?(:accelerator_topology)
34736
+ @accelerator_topology_state = args[:accelerator_topology_state] if args.key?(:accelerator_topology_state)
34737
+ @accelerator_topology_state_last_check = args[:accelerator_topology_state_last_check] if args.key?(:accelerator_topology_state_last_check)
34738
+ end
34739
+ end
34740
+
34741
+ #
34742
+ class MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck
34743
+ include Google::Apis::Core::Hashable
34744
+
34745
+ # [Output Only] Encountered errors on the last state check.
34746
+ # Corresponds to the JSON property `error`
34747
+ # @return [Google::Apis::ComputeAlpha::MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck::Error]
34748
+ attr_accessor :error
34749
+
34750
+ # [Output Only] Timestamp is shown only if there is an error. The field has //
34751
+ # RFC3339 // text format.
34752
+ # Corresponds to the JSON property `timestamp`
34753
+ # @return [String]
34754
+ attr_accessor :timestamp
34755
+
34756
+ def initialize(**args)
34757
+ update!(**args)
34758
+ end
34759
+
34760
+ # Update properties of this object
34761
+ def update!(**args)
34762
+ @error = args[:error] if args.key?(:error)
34763
+ @timestamp = args[:timestamp] if args.key?(:timestamp)
34764
+ end
34765
+
34766
+ # [Output Only] Encountered errors on the last state check.
34767
+ class Error
34768
+ include Google::Apis::Core::Hashable
34769
+
34770
+ # [Output Only] The array of errors encountered while processing this operation.
34771
+ # Corresponds to the JSON property `errors`
34772
+ # @return [Array<Google::Apis::ComputeAlpha::MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck::Error::Error>]
34773
+ attr_accessor :errors
34774
+
34775
+ def initialize(**args)
34776
+ update!(**args)
34777
+ end
34778
+
34779
+ # Update properties of this object
34780
+ def update!(**args)
34781
+ @errors = args[:errors] if args.key?(:errors)
34782
+ end
34783
+
34784
+ #
34785
+ class Error
34786
+ include Google::Apis::Core::Hashable
34787
+
34788
+ # [Output Only] The error type identifier for this error.
34789
+ # Corresponds to the JSON property `code`
34790
+ # @return [String]
34791
+ attr_accessor :code
34792
+
34793
+ # [Output Only] An optional list of messages that contain the error details.
34794
+ # There is a set of defined message types to use for providing details.The
34795
+ # syntax depends on the error code. For example, QuotaExceededInfo will have
34796
+ # details when the error code is QUOTA_EXCEEDED.
34797
+ # Corresponds to the JSON property `errorDetails`
34798
+ # @return [Array<Google::Apis::ComputeAlpha::MultiMigStatusAcceleratorTopologyAcceleratorTopologyStateLastCheck::Error::Error::ErrorDetail>]
34799
+ attr_accessor :error_details
34800
+
34801
+ # [Output Only] Indicates the field in the request that caused the error. This
34802
+ # property is optional.
34803
+ # Corresponds to the JSON property `location`
34804
+ # @return [String]
34805
+ attr_accessor :location
34806
+
34807
+ # [Output Only] An optional, human-readable error message.
34808
+ # Corresponds to the JSON property `message`
34809
+ # @return [String]
34810
+ attr_accessor :message
34811
+
34812
+ def initialize(**args)
34813
+ update!(**args)
34814
+ end
34815
+
34816
+ # Update properties of this object
34817
+ def update!(**args)
34818
+ @code = args[:code] if args.key?(:code)
34819
+ @error_details = args[:error_details] if args.key?(:error_details)
34820
+ @location = args[:location] if args.key?(:location)
34821
+ @message = args[:message] if args.key?(:message)
34822
+ end
34823
+
34824
+ #
34825
+ class ErrorDetail
34826
+ include Google::Apis::Core::Hashable
34827
+
34828
+ # Describes the cause of the error with structured details. Example of an error
34829
+ # when contacting the "pubsub.googleapis.com" API when it is not enabled: ` "
34830
+ # reason": "API_DISABLED" "domain": "googleapis.com" "metadata": ` "resource": "
34831
+ # projects/123", "service": "pubsub.googleapis.com" ` ` This response indicates
34832
+ # that the pubsub.googleapis.com API is not enabled. Example of an error that is
34833
+ # returned when attempting to create a Spanner instance in a region that is out
34834
+ # of stock: ` "reason": "STOCKOUT" "domain": "spanner.googleapis.com", "metadata"
34835
+ # : ` "availableRegions": "us-central1,us-east2" ` `
34836
+ # Corresponds to the JSON property `errorInfo`
34837
+ # @return [Google::Apis::ComputeAlpha::ErrorInfo]
34838
+ attr_accessor :error_info
34839
+
34840
+ # Provides links to documentation or for performing an out of band action. For
34841
+ # example, if a quota check failed with an error indicating the calling project
34842
+ # hasn't enabled the accessed service, this can contain a URL pointing directly
34843
+ # to the right place in the developer console to flip the bit.
34844
+ # Corresponds to the JSON property `help`
34845
+ # @return [Google::Apis::ComputeAlpha::Help]
34846
+ attr_accessor :help
34847
+
34848
+ # Provides a localized error message that is safe to return to the user which
34849
+ # can be attached to an RPC error.
34850
+ # Corresponds to the JSON property `localizedMessage`
34851
+ # @return [Google::Apis::ComputeAlpha::LocalizedMessage]
34852
+ attr_accessor :localized_message
34853
+
34854
+ # Additional details for quota exceeded error for resource quota.
34855
+ # Corresponds to the JSON property `quotaInfo`
34856
+ # @return [Google::Apis::ComputeAlpha::QuotaExceededInfo]
34857
+ attr_accessor :quota_info
34858
+
34859
+ def initialize(**args)
34860
+ update!(**args)
34861
+ end
34862
+
34863
+ # Update properties of this object
34864
+ def update!(**args)
34865
+ @error_info = args[:error_info] if args.key?(:error_info)
34866
+ @help = args[:help] if args.key?(:help)
34867
+ @localized_message = args[:localized_message] if args.key?(:localized_message)
34868
+ @quota_info = args[:quota_info] if args.key?(:quota_info)
34869
+ end
34870
+ end
34871
+ end
34872
+ end
34873
+ end
34874
+
34875
+ #
34876
+ class MultiMigsList
34877
+ include Google::Apis::Core::Hashable
33587
34878
 
33588
34879
  # Unique identifier for the resource; defined by the server.
33589
34880
  # Corresponds to the JSON property `id`
@@ -33613,11 +34904,6 @@ module Google
33613
34904
  # @return [String]
33614
34905
  attr_accessor :self_link
33615
34906
 
33616
- # [Output only] Unreachable resources.
33617
- # Corresponds to the JSON property `unreachables`
33618
- # @return [Array<String>]
33619
- attr_accessor :unreachables
33620
-
33621
34907
  # Informational warning message.
33622
34908
  # Corresponds to the JSON property `warning`
33623
34909
  # @return [Google::Apis::ComputeAlpha::MultiMigsList::Warning]
@@ -33629,13 +34915,11 @@ module Google
33629
34915
 
33630
34916
  # Update properties of this object
33631
34917
  def update!(**args)
33632
- @etag = args[:etag] if args.key?(:etag)
33633
34918
  @id = args[:id] if args.key?(:id)
33634
34919
  @items = args[:items] if args.key?(:items)
33635
34920
  @kind = args[:kind] if args.key?(:kind)
33636
34921
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
33637
34922
  @self_link = args[:self_link] if args.key?(:self_link)
33638
- @unreachables = args[:unreachables] if args.key?(:unreachables)
33639
34923
  @warning = args[:warning] if args.key?(:warning)
33640
34924
  end
33641
34925
 
@@ -36866,6 +38150,11 @@ module Google
36866
38150
  # @return [String]
36867
38151
  attr_accessor :allow_external_ip_access
36868
38152
 
38153
+ # Specifies whether firewall policy can be attached to the network.
38154
+ # Corresponds to the JSON property `allowFirewallPolicy`
38155
+ # @return [String]
38156
+ attr_accessor :allow_firewall_policy
38157
+
36869
38158
  # Specifies whether Cloud Interconnect creation is allowed.
36870
38159
  # Corresponds to the JSON property `allowInterconnect`
36871
38160
  # @return [String]
@@ -36926,6 +38215,11 @@ module Google
36926
38215
  # @return [String]
36927
38216
  attr_accessor :allow_sub_interfaces
36928
38217
 
38218
+ # Specifies whether VPC firewall rules can be created under the network.
38219
+ # Corresponds to the JSON property `allowVpcFirewallRules`
38220
+ # @return [String]
38221
+ attr_accessor :allow_vpc_firewall_rules
38222
+
36929
38223
  # Specifies whether VPC peering is allowed.
36930
38224
  # Corresponds to the JSON property `allowVpcPeering`
36931
38225
  # @return [String]
@@ -36936,6 +38230,11 @@ module Google
36936
38230
  # @return [String]
36937
38231
  attr_accessor :allow_vpn
36938
38232
 
38233
+ #
38234
+ # Corresponds to the JSON property `firewallPolicyTypes`
38235
+ # @return [Array<String>]
38236
+ attr_accessor :firewall_policy_types
38237
+
36939
38238
  # If set, limits the interface types that the network supports. If empty, all
36940
38239
  # interface types are supported.
36941
38240
  # Corresponds to the JSON property `interfaceTypes`
@@ -36981,6 +38280,7 @@ module Google
36981
38280
  @allow_cloud_router = args[:allow_cloud_router] if args.key?(:allow_cloud_router)
36982
38281
  @allow_default_nic_attachment = args[:allow_default_nic_attachment] if args.key?(:allow_default_nic_attachment)
36983
38282
  @allow_external_ip_access = args[:allow_external_ip_access] if args.key?(:allow_external_ip_access)
38283
+ @allow_firewall_policy = args[:allow_firewall_policy] if args.key?(:allow_firewall_policy)
36984
38284
  @allow_interconnect = args[:allow_interconnect] if args.key?(:allow_interconnect)
36985
38285
  @allow_ip_forwarding = args[:allow_ip_forwarding] if args.key?(:allow_ip_forwarding)
36986
38286
  @allow_load_balancing = args[:allow_load_balancing] if args.key?(:allow_load_balancing)
@@ -36993,8 +38293,10 @@ module Google
36993
38293
  @allow_same_network_unicast = args[:allow_same_network_unicast] if args.key?(:allow_same_network_unicast)
36994
38294
  @allow_static_routes = args[:allow_static_routes] if args.key?(:allow_static_routes)
36995
38295
  @allow_sub_interfaces = args[:allow_sub_interfaces] if args.key?(:allow_sub_interfaces)
38296
+ @allow_vpc_firewall_rules = args[:allow_vpc_firewall_rules] if args.key?(:allow_vpc_firewall_rules)
36996
38297
  @allow_vpc_peering = args[:allow_vpc_peering] if args.key?(:allow_vpc_peering)
36997
38298
  @allow_vpn = args[:allow_vpn] if args.key?(:allow_vpn)
38299
+ @firewall_policy_types = args[:firewall_policy_types] if args.key?(:firewall_policy_types)
36998
38300
  @interface_types = args[:interface_types] if args.key?(:interface_types)
36999
38301
  @subnet_purposes = args[:subnet_purposes] if args.key?(:subnet_purposes)
37000
38302
  @subnet_stack_types = args[:subnet_stack_types] if args.key?(:subnet_stack_types)
@@ -42081,16 +43383,11 @@ module Google
42081
43383
  class PreviewFeatureRolloutOperation
42082
43384
  include Google::Apis::Core::Hashable
42083
43385
 
42084
- #
43386
+ # Represents the input for the rollout operation.
42085
43387
  # Corresponds to the JSON property `rolloutInput`
42086
43388
  # @return [Google::Apis::ComputeAlpha::PreviewFeatureRolloutOperationRolloutInput]
42087
43389
  attr_accessor :rollout_input
42088
43390
 
42089
- #
42090
- # Corresponds to the JSON property `rolloutStatus`
42091
- # @return [Google::Apis::ComputeAlpha::PreviewFeatureRolloutOperationRolloutStatus]
42092
- attr_accessor :rollout_status
42093
-
42094
43391
  def initialize(**args)
42095
43392
  update!(**args)
42096
43393
  end
@@ -42098,11 +43395,10 @@ module Google
42098
43395
  # Update properties of this object
42099
43396
  def update!(**args)
42100
43397
  @rollout_input = args[:rollout_input] if args.key?(:rollout_input)
42101
- @rollout_status = args[:rollout_status] if args.key?(:rollout_status)
42102
43398
  end
42103
43399
  end
42104
43400
 
42105
- #
43401
+ # Represents the input for the rollout operation.
42106
43402
  class PreviewFeatureRolloutOperationRolloutInput
42107
43403
  include Google::Apis::Core::Hashable
42108
43404
 
@@ -42118,13 +43414,6 @@ module Google
42118
43414
  # @return [String]
42119
43415
  attr_accessor :predefined_rollout_plan
42120
43416
 
42121
- # The UUID of the retry action. Only needed if this is a retry for an existing
42122
- # rollout. This can be used after the user canceled a rollout and want to retry
42123
- # it with no changes.
42124
- # Corresponds to the JSON property `retryUuid`
42125
- # @return [String]
42126
- attr_accessor :retry_uuid
42127
-
42128
43417
  def initialize(**args)
42129
43418
  update!(**args)
42130
43419
  end
@@ -42133,68 +43422,6 @@ module Google
42133
43422
  def update!(**args)
42134
43423
  @name = args[:name] if args.key?(:name)
42135
43424
  @predefined_rollout_plan = args[:predefined_rollout_plan] if args.key?(:predefined_rollout_plan)
42136
- @retry_uuid = args[:retry_uuid] if args.key?(:retry_uuid)
42137
- end
42138
- end
42139
-
42140
- #
42141
- class PreviewFeatureRolloutOperationRolloutStatus
42142
- include Google::Apis::Core::Hashable
42143
-
42144
- # Output only. The ongoing rollout resources. There can be multiple ongoing
42145
- # rollouts for a resource.
42146
- # Corresponds to the JSON property `ongoingRollouts`
42147
- # @return [Array<Google::Apis::ComputeAlpha::PreviewFeatureRolloutOperationRolloutStatusRolloutMetadata>]
42148
- attr_accessor :ongoing_rollouts
42149
-
42150
- # Output only. The last completed rollout resource. This field will not be
42151
- # populated until the first rollout is completed.
42152
- # Corresponds to the JSON property `previousRollout`
42153
- # @return [Google::Apis::ComputeAlpha::PreviewFeatureRolloutOperationRolloutStatusRolloutMetadata]
42154
- attr_accessor :previous_rollout
42155
-
42156
- def initialize(**args)
42157
- update!(**args)
42158
- end
42159
-
42160
- # Update properties of this object
42161
- def update!(**args)
42162
- @ongoing_rollouts = args[:ongoing_rollouts] if args.key?(:ongoing_rollouts)
42163
- @previous_rollout = args[:previous_rollout] if args.key?(:previous_rollout)
42164
- end
42165
- end
42166
-
42167
- #
42168
- class PreviewFeatureRolloutOperationRolloutStatusRolloutMetadata
42169
- include Google::Apis::Core::Hashable
42170
-
42171
- # The name of the rollout Ex. organizations//locations/global/rollouts/ Ex.
42172
- # folders//locations/global/rollouts/ Ex. projects//locations/global/rollouts/.
42173
- # Corresponds to the JSON property `rollout`
42174
- # @return [String]
42175
- attr_accessor :rollout
42176
-
42177
- # The name of the rollout plan Ex. organizations//locations/global/rolloutPlans/
42178
- # Ex. folders//locations/global/rolloutPlans/ Ex. projects//locations/global/
42179
- # rolloutPlans/.
42180
- # Corresponds to the JSON property `rolloutPlan`
42181
- # @return [String]
42182
- attr_accessor :rollout_plan
42183
-
42184
- # [Output Only] The status of the feature.
42185
- # Corresponds to the JSON property `status`
42186
- # @return [Google::Apis::ComputeAlpha::PreviewFeatureStatus]
42187
- attr_accessor :status
42188
-
42189
- def initialize(**args)
42190
- update!(**args)
42191
- end
42192
-
42193
- # Update properties of this object
42194
- def update!(**args)
42195
- @rollout = args[:rollout] if args.key?(:rollout)
42196
- @rollout_plan = args[:rollout_plan] if args.key?(:rollout_plan)
42197
- @status = args[:status] if args.key?(:status)
42198
43425
  end
42199
43426
  end
42200
43427
 
@@ -42212,7 +43439,7 @@ module Google
42212
43439
  # @return [String]
42213
43440
  attr_accessor :help_link
42214
43441
 
42215
- #
43442
+ # [Output Only] The release status of the feature.
42216
43443
  # Corresponds to the JSON property `releaseStatus`
42217
43444
  # @return [Google::Apis::ComputeAlpha::PreviewFeatureStatusReleaseStatus]
42218
43445
  attr_accessor :release_status
@@ -42229,7 +43456,7 @@ module Google
42229
43456
  end
42230
43457
  end
42231
43458
 
42232
- #
43459
+ # [Output Only] The release status of the feature.
42233
43460
  class PreviewFeatureStatusReleaseStatus
42234
43461
  include Google::Apis::Core::Hashable
42235
43462
 
@@ -43045,6 +44272,24 @@ module Google
43045
44272
  # @return [Array<Google::Apis::ComputeAlpha::PublicDelegatedPrefixPublicDelegatedSubPrefix>]
43046
44273
  attr_accessor :public_delegated_sub_prefixs
43047
44274
 
44275
+ # The purpose of the public delegated prefix. This field can only be set for the
44276
+ # top-level global public delegated prefix. It is an output-only field for the
44277
+ # sub-delegates that inherit the value from the top-level global public
44278
+ # delegated prefix. Once the value is set, it cannot be changed. The field
44279
+ # cannot be set for regional public delegated prefixes. The supported values are:
44280
+ # - APPLICATION_AND_PROXY_LOAD_BALANCERS: The global public delegated prefix
44281
+ # can only be used by Global External Application and Proxy Load Balancers to
44282
+ # allocate addresses for forwarding rules. This is the default value. -
44283
+ # PASSTHROUGH_LOAD_BALANCER_AVAILABILITY_GROUP0: The global public delegated
44284
+ # prefix can only be used by Global External Passthrough Network Load Balancers
44285
+ # to allocate Availability Group 0 addresses for forwarding rules. -
44286
+ # PASSTHROUGH_LOAD_BALANCER_AVAILABILITY_GROUP1: The global public delegated
44287
+ # prefix can only be used by Global External Passthrough Network Load Balancers
44288
+ # to allocate Availability Group 1 addresses for forwarding rules.
44289
+ # Corresponds to the JSON property `purpose`
44290
+ # @return [String]
44291
+ attr_accessor :purpose
44292
+
43048
44293
  # [Output Only] URL of the region where the public delegated prefix resides.
43049
44294
  # This field applies only to the region resource. You must specify this field as
43050
44295
  # part of the HTTP request URL. It is not settable as a field in the request
@@ -43093,6 +44338,7 @@ module Google
43093
44338
  @name = args[:name] if args.key?(:name)
43094
44339
  @parent_prefix = args[:parent_prefix] if args.key?(:parent_prefix)
43095
44340
  @public_delegated_sub_prefixs = args[:public_delegated_sub_prefixs] if args.key?(:public_delegated_sub_prefixs)
44341
+ @purpose = args[:purpose] if args.key?(:purpose)
43096
44342
  @region = args[:region] if args.key?(:region)
43097
44343
  @self_link = args[:self_link] if args.key?(:self_link)
43098
44344
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
@@ -43392,6 +44638,12 @@ module Google
43392
44638
  # @return [String]
43393
44639
  attr_accessor :name
43394
44640
 
44641
+ # [Output Only] The purpose of the sub public delegated prefix. Inherited from
44642
+ # parent prefix.
44643
+ # Corresponds to the JSON property `purpose`
44644
+ # @return [String]
44645
+ attr_accessor :purpose
44646
+
43395
44647
  # [Output Only] The region of the sub public delegated prefix if it is regional.
43396
44648
  # If absent, the sub prefix is global.
43397
44649
  # Corresponds to the JSON property `region`
@@ -43417,6 +44669,7 @@ module Google
43417
44669
  @is_address = args[:is_address] if args.key?(:is_address)
43418
44670
  @mode = args[:mode] if args.key?(:mode)
43419
44671
  @name = args[:name] if args.key?(:name)
44672
+ @purpose = args[:purpose] if args.key?(:purpose)
43420
44673
  @region = args[:region] if args.key?(:region)
43421
44674
  @status = args[:status] if args.key?(:status)
43422
44675
  end
@@ -47386,6 +48639,12 @@ module Google
47386
48639
  class Reservation
47387
48640
  include Google::Apis::Core::Hashable
47388
48641
 
48642
+ # Advance control for cluster management, applicable only to DENSE deployment
48643
+ # type reservations.
48644
+ # Corresponds to the JSON property `advancedDeploymentControl`
48645
+ # @return [Google::Apis::ComputeAlpha::ReservationAdvancedDeploymentControl]
48646
+ attr_accessor :advanced_deployment_control
48647
+
47389
48648
  # This reservation type is specified by total resource amounts (e.g. total count
47390
48649
  # of CPUs) and can account for multiple instance SKUs. In other words, one can
47391
48650
  # create instances of varying shapes against this reservation.
@@ -47554,6 +48813,7 @@ module Google
47554
48813
 
47555
48814
  # Update properties of this object
47556
48815
  def update!(**args)
48816
+ @advanced_deployment_control = args[:advanced_deployment_control] if args.key?(:advanced_deployment_control)
47557
48817
  @aggregate_reservation = args[:aggregate_reservation] if args.key?(:aggregate_reservation)
47558
48818
  @commitment = args[:commitment] if args.key?(:commitment)
47559
48819
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
@@ -47583,6 +48843,26 @@ module Google
47583
48843
  end
47584
48844
  end
47585
48845
 
48846
+ # Advance control for cluster management, applicable only to DENSE deployment
48847
+ # type reservations.
48848
+ class ReservationAdvancedDeploymentControl
48849
+ include Google::Apis::Core::Hashable
48850
+
48851
+ # Indicates chosen reservation operational mode for the reservation.
48852
+ # Corresponds to the JSON property `reservationOperationalMode`
48853
+ # @return [String]
48854
+ attr_accessor :reservation_operational_mode
48855
+
48856
+ def initialize(**args)
48857
+ update!(**args)
48858
+ end
48859
+
48860
+ # Update properties of this object
48861
+ def update!(**args)
48862
+ @reservation_operational_mode = args[:reservation_operational_mode] if args.key?(:reservation_operational_mode)
48863
+ end
48864
+ end
48865
+
47586
48866
  # Specifies the reservations that this instance can consume from.
47587
48867
  class ReservationAffinity
47588
48868
  include Google::Apis::Core::Hashable
@@ -47776,6 +49056,12 @@ module Google
47776
49056
  # @return [Fixnum]
47777
49057
  attr_accessor :in_use_count
47778
49058
 
49059
+ # Number of hosts currently in use. If there is one or more Instances running on
49060
+ # the host, it is considered in use.
49061
+ # Corresponds to the JSON property `inUseHostCount`
49062
+ # @return [Fixnum]
49063
+ attr_accessor :in_use_host_count
49064
+
47779
49065
  # [Output Only] Type of the resource. Always compute#reservationBlock for
47780
49066
  # reservation blocks.
47781
49067
  # Corresponds to the JSON property `kind`
@@ -47851,6 +49137,7 @@ module Google
47851
49137
  @health_info = args[:health_info] if args.key?(:health_info)
47852
49138
  @id = args[:id] if args.key?(:id)
47853
49139
  @in_use_count = args[:in_use_count] if args.key?(:in_use_count)
49140
+ @in_use_host_count = args[:in_use_host_count] if args.key?(:in_use_host_count)
47854
49141
  @kind = args[:kind] if args.key?(:kind)
47855
49142
  @location_prefix = args[:location_prefix] if args.key?(:location_prefix)
47856
49143
  @name = args[:name] if args.key?(:name)
@@ -48271,6 +49558,12 @@ module Google
48271
49558
  # @return [Fixnum]
48272
49559
  attr_accessor :in_use_count
48273
49560
 
49561
+ # Number of hosts currently in use. If there is one or more Instances running on
49562
+ # the host, it is considered in use.
49563
+ # Corresponds to the JSON property `inUseHostCount`
49564
+ # @return [Fixnum]
49565
+ attr_accessor :in_use_host_count
49566
+
48274
49567
  # [Output Only] Type of the resource. Always compute#reservationSubBlock for
48275
49568
  # reservation subBlocks.
48276
49569
  # Corresponds to the JSON property `kind`
@@ -48325,6 +49618,7 @@ module Google
48325
49618
  @health_info = args[:health_info] if args.key?(:health_info)
48326
49619
  @id = args[:id] if args.key?(:id)
48327
49620
  @in_use_count = args[:in_use_count] if args.key?(:in_use_count)
49621
+ @in_use_host_count = args[:in_use_host_count] if args.key?(:in_use_host_count)
48328
49622
  @kind = args[:kind] if args.key?(:kind)
48329
49623
  @name = args[:name] if args.key?(:name)
48330
49624
  @physical_topology = args[:physical_topology] if args.key?(:physical_topology)
@@ -48549,6 +49843,62 @@ module Google
48549
49843
  end
48550
49844
  end
48551
49845
 
49846
+ #
49847
+ class ReservationSubBlocksReportFaultyRequest
49848
+ include Google::Apis::Core::Hashable
49849
+
49850
+ # The disruption schedule for the subBlock.
49851
+ # Corresponds to the JSON property `disruptionSchedule`
49852
+ # @return [String]
49853
+ attr_accessor :disruption_schedule
49854
+
49855
+ # The component that experienced the fault.
49856
+ # Corresponds to the JSON property `failureComponent`
49857
+ # @return [String]
49858
+ attr_accessor :failure_component
49859
+
49860
+ # The reasons for the fault experienced with the subBlock.
49861
+ # Corresponds to the JSON property `faultReasons`
49862
+ # @return [Array<Google::Apis::ComputeAlpha::ReservationSubBlocksReportFaultyRequestFaultReason>]
49863
+ attr_accessor :fault_reasons
49864
+
49865
+ def initialize(**args)
49866
+ update!(**args)
49867
+ end
49868
+
49869
+ # Update properties of this object
49870
+ def update!(**args)
49871
+ @disruption_schedule = args[:disruption_schedule] if args.key?(:disruption_schedule)
49872
+ @failure_component = args[:failure_component] if args.key?(:failure_component)
49873
+ @fault_reasons = args[:fault_reasons] if args.key?(:fault_reasons)
49874
+ end
49875
+ end
49876
+
49877
+ # The reason for the fault experienced with the subBlock.
49878
+ class ReservationSubBlocksReportFaultyRequestFaultReason
49879
+ include Google::Apis::Core::Hashable
49880
+
49881
+ # The behavior of the fault experienced with the subBlock.
49882
+ # Corresponds to the JSON property `behavior`
49883
+ # @return [String]
49884
+ attr_accessor :behavior
49885
+
49886
+ # The description of the fault experienced with the subBlock.
49887
+ # Corresponds to the JSON property `description`
49888
+ # @return [String]
49889
+ attr_accessor :description
49890
+
49891
+ def initialize(**args)
49892
+ update!(**args)
49893
+ end
49894
+
49895
+ # Update properties of this object
49896
+ def update!(**args)
49897
+ @behavior = args[:behavior] if args.key?(:behavior)
49898
+ @description = args[:description] if args.key?(:description)
49899
+ end
49900
+ end
49901
+
48552
49902
  #
48553
49903
  class ReservationsBlocksPerformMaintenanceRequest
48554
49904
  include Google::Apis::Core::Hashable
@@ -49764,17 +51114,18 @@ module Google
49764
51114
  class ResourcePolicyWorkloadPolicy
49765
51115
  include Google::Apis::Core::Hashable
49766
51116
 
49767
- #
51117
+ # Specifies the topology required to create a partition for VMs that have
51118
+ # interconnected GPUs.
49768
51119
  # Corresponds to the JSON property `acceleratorTopology`
49769
51120
  # @return [String]
49770
51121
  attr_accessor :accelerator_topology
49771
51122
 
49772
- #
51123
+ # Specifies the maximum distance between instances.
49773
51124
  # Corresponds to the JSON property `maxTopologyDistance`
49774
51125
  # @return [String]
49775
51126
  attr_accessor :max_topology_distance
49776
51127
 
49777
- #
51128
+ # Specifies the intent of the instance placement in the MIG.
49778
51129
  # Corresponds to the JSON property `type`
49779
51130
  # @return [String]
49780
51131
  attr_accessor :type
@@ -55642,7 +56993,9 @@ module Google
55642
56993
  # @return [String]
55643
56994
  attr_accessor :target
55644
56995
 
55645
- # Type of the redirect action.
56996
+ # Type of the redirect action. Possible values are: - GOOGLE_RECAPTCHA: redirect
56997
+ # to reCAPTCHA for manual challenge assessment. - EXTERNAL_302: redirect to a
56998
+ # different URL via a 302 response.
55646
56999
  # Corresponds to the JSON property `type`
55647
57000
  # @return [String]
55648
57001
  attr_accessor :type
@@ -55943,7 +57296,8 @@ module Google
55943
57296
  # service attachment. Each project or network has a connection limit. A given
55944
57297
  # service attachment can manage connections at either the project or network
55945
57298
  # level. Therefore, both the accept and reject lists for a given service
55946
- # attachment must contain either only projects or only networks.
57299
+ # attachment must contain either only projects or only networks or only
57300
+ # endpoints.
55947
57301
  # Corresponds to the JSON property `consumerAcceptLists`
55948
57302
  # @return [Array<Google::Apis::ComputeAlpha::ServiceAttachmentConsumerProjectLimit>]
55949
57303
  attr_accessor :consumer_accept_lists
@@ -56007,6 +57361,11 @@ module Google
56007
57361
  # @return [String]
56008
57362
  attr_accessor :kind
56009
57363
 
57364
+ # Metadata of the service attachment.
57365
+ # Corresponds to the JSON property `metadata`
57366
+ # @return [Hash<String,String>]
57367
+ attr_accessor :metadata
57368
+
56010
57369
  # Name of the resource. Provided by the client when the resource is created. The
56011
57370
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
56012
57371
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -56104,6 +57463,7 @@ module Google
56104
57463
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
56105
57464
  @id = args[:id] if args.key?(:id)
56106
57465
  @kind = args[:kind] if args.key?(:kind)
57466
+ @metadata = args[:metadata] if args.key?(:metadata)
56107
57467
  @name = args[:name] if args.key?(:name)
56108
57468
  @nat_subnets = args[:nat_subnets] if args.key?(:nat_subnets)
56109
57469
  @producer_forwarding_rule = args[:producer_forwarding_rule] if args.key?(:producer_forwarding_rule)
@@ -56295,7 +57655,8 @@ module Google
56295
57655
  class ServiceAttachmentConsumerProjectLimit
56296
57656
  include Google::Apis::Core::Hashable
56297
57657
 
56298
- # The value of the limit to set.
57658
+ # The value of the limit to set. For endpoint_url, the limit should be no more
57659
+ # than 1.
56299
57660
  # Corresponds to the JSON property `connectionLimit`
56300
57661
  # @return [Fixnum]
56301
57662
  attr_accessor :connection_limit
@@ -59465,6 +60826,11 @@ module Google
59465
60826
  # @return [String]
59466
60827
  attr_accessor :description
59467
60828
 
60829
+ # Exapool provisioned capacities for each SKU type
60830
+ # Corresponds to the JSON property `exapoolProvisionedCapacityGb`
60831
+ # @return [Google::Apis::ComputeAlpha::StoragePoolExapoolProvisionedCapacityGb]
60832
+ attr_accessor :exapool_provisioned_capacity_gb
60833
+
59468
60834
  # [Output Only] The unique identifier for the resource. This identifier is
59469
60835
  # defined by the server.
59470
60836
  # Corresponds to the JSON property `id`
@@ -59511,7 +60877,7 @@ module Google
59511
60877
  # @return [String]
59512
60878
  attr_accessor :performance_provisioning_type
59513
60879
 
59514
- # Size, in GiB, of the storage pool. For more information about the size limits,
60880
+ # Size of the storage pool in GiB. For more information about the size limits,
59515
60881
  # see https://cloud.google.com/compute/docs/disks/storage-pools.
59516
60882
  # Corresponds to the JSON property `poolProvisionedCapacityGb`
59517
60883
  # @return [Fixnum]
@@ -59523,8 +60889,8 @@ module Google
59523
60889
  # @return [Fixnum]
59524
60890
  attr_accessor :pool_provisioned_iops
59525
60891
 
59526
- # Provisioned throughput of the storage pool. Only relevant if the storage pool
59527
- # type is hyperdisk-balanced or hyperdisk-throughput.
60892
+ # Provisioned throughput of the storage pool in MiB/s. Only relevant if the
60893
+ # storage pool type is hyperdisk-balanced or hyperdisk-throughput.
59528
60894
  # Corresponds to the JSON property `poolProvisionedThroughput`
59529
60895
  # @return [Fixnum]
59530
60896
  attr_accessor :pool_provisioned_throughput
@@ -59592,6 +60958,7 @@ module Google
59592
60958
  @capacity_provisioning_type = args[:capacity_provisioning_type] if args.key?(:capacity_provisioning_type)
59593
60959
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
59594
60960
  @description = args[:description] if args.key?(:description)
60961
+ @exapool_provisioned_capacity_gb = args[:exapool_provisioned_capacity_gb] if args.key?(:exapool_provisioned_capacity_gb)
59595
60962
  @id = args[:id] if args.key?(:id)
59596
60963
  @kind = args[:kind] if args.key?(:kind)
59597
60964
  @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
@@ -59824,6 +61191,37 @@ module Google
59824
61191
  end
59825
61192
  end
59826
61193
 
61194
+ # Exapool provisioned capacities for each SKU type
61195
+ class StoragePoolExapoolProvisionedCapacityGb
61196
+ include Google::Apis::Core::Hashable
61197
+
61198
+ # Size, in GiB, of provisioned capacity-optimized capacity for this Exapool
61199
+ # Corresponds to the JSON property `capacityOptimized`
61200
+ # @return [Fixnum]
61201
+ attr_accessor :capacity_optimized
61202
+
61203
+ # Size, in GiB, of provisioned read-optimized capacity for this Exapool
61204
+ # Corresponds to the JSON property `readOptimized`
61205
+ # @return [Fixnum]
61206
+ attr_accessor :read_optimized
61207
+
61208
+ # Size, in GiB, of provisioned write-optimized capacity for this Exapool
61209
+ # Corresponds to the JSON property `writeOptimized`
61210
+ # @return [Fixnum]
61211
+ attr_accessor :write_optimized
61212
+
61213
+ def initialize(**args)
61214
+ update!(**args)
61215
+ end
61216
+
61217
+ # Update properties of this object
61218
+ def update!(**args)
61219
+ @capacity_optimized = args[:capacity_optimized] if args.key?(:capacity_optimized)
61220
+ @read_optimized = args[:read_optimized] if args.key?(:read_optimized)
61221
+ @write_optimized = args[:write_optimized] if args.key?(:write_optimized)
61222
+ end
61223
+ end
61224
+
59827
61225
  # A list of StoragePool resources.
59828
61226
  class StoragePoolList
59829
61227
  include Google::Apis::Core::Hashable
@@ -60105,6 +61503,26 @@ module Google
60105
61503
  # @return [Fixnum]
60106
61504
  attr_accessor :disk_count
60107
61505
 
61506
+ # [Output Only] Maximum allowed read IOPS for this Exapool.
61507
+ # Corresponds to the JSON property `exapoolMaxReadIops`
61508
+ # @return [Fixnum]
61509
+ attr_accessor :exapool_max_read_iops
61510
+
61511
+ # [Output Only] Maximum allowed read throughput in MiB/s for this Exapool.
61512
+ # Corresponds to the JSON property `exapoolMaxReadThroughput`
61513
+ # @return [Fixnum]
61514
+ attr_accessor :exapool_max_read_throughput
61515
+
61516
+ # [Output Only] Maximum allowed write IOPS for this Exapool.
61517
+ # Corresponds to the JSON property `exapoolMaxWriteIops`
61518
+ # @return [Fixnum]
61519
+ attr_accessor :exapool_max_write_iops
61520
+
61521
+ # [Output Only] Maximum allowed write throughput in MiB/s for this Exapool.
61522
+ # Corresponds to the JSON property `exapoolMaxWriteThroughput`
61523
+ # @return [Fixnum]
61524
+ attr_accessor :exapool_max_write_throughput
61525
+
60108
61526
  # [Output Only] Timestamp of the last successful resize in RFC3339 text format.
60109
61527
  # Corresponds to the JSON property `lastResizeTimestamp`
60110
61528
  # @return [String]
@@ -60115,7 +61533,7 @@ module Google
60115
61533
  # @return [Fixnum]
60116
61534
  attr_accessor :max_aggregate_disk_size_gb
60117
61535
 
60118
- # [Output Only] Maximum allowed aggregate disk size in gigabytes.
61536
+ # [Output Only] Maximum allowed aggregate disk size in GiB.
60119
61537
  # Corresponds to the JSON property `maxTotalProvisionedDiskCapacityGb`
60120
61538
  # @return [Fixnum]
60121
61539
  attr_accessor :max_total_provisioned_disk_capacity_gb
@@ -60139,7 +61557,7 @@ module Google
60139
61557
  # @return [Fixnum]
60140
61558
  attr_accessor :pool_used_iops
60141
61559
 
60142
- # [Output Only] Sum of all the disks' provisioned throughput in MB/s.
61560
+ # [Output Only] Sum of all the disks' provisioned throughput in MiB/s.
60143
61561
  # Corresponds to the JSON property `poolUsedThroughput`
60144
61562
  # @return [Fixnum]
60145
61563
  attr_accessor :pool_used_throughput
@@ -60149,8 +61567,8 @@ module Google
60149
61567
  # @return [Fixnum]
60150
61568
  attr_accessor :pool_user_written_bytes
60151
61569
 
60152
- # [Output Only] Sum of all the capacity provisioned in disks in this storage
60153
- # pool. A disk's provisioned capacity is the same as its total capacity.
61570
+ # [Output Only] Sum of all the disks' provisioned capacity (in GiB) in this
61571
+ # storage pool. A disk's provisioned capacity is the same as its total capacity.
60154
61572
  # Corresponds to the JSON property `totalProvisionedDiskCapacityGb`
60155
61573
  # @return [Fixnum]
60156
61574
  attr_accessor :total_provisioned_disk_capacity_gb
@@ -60160,9 +61578,9 @@ module Google
60160
61578
  # @return [Fixnum]
60161
61579
  attr_accessor :total_provisioned_disk_iops
60162
61580
 
60163
- # [Output Only] Sum of all the disks' provisioned throughput in MB/s, minus some
60164
- # amount that is allowed per disk that is not counted towards pool's throughput
60165
- # capacity.
61581
+ # [Output Only] Sum of all the disks' provisioned throughput in MiB/s, minus
61582
+ # some amount that is allowed per disk that is not counted towards pool's
61583
+ # throughput capacity.
60166
61584
  # Corresponds to the JSON property `totalProvisionedDiskThroughput`
60167
61585
  # @return [Fixnum]
60168
61586
  attr_accessor :total_provisioned_disk_throughput
@@ -60191,6 +61609,10 @@ module Google
60191
61609
  @aggregate_disk_provisioned_iops = args[:aggregate_disk_provisioned_iops] if args.key?(:aggregate_disk_provisioned_iops)
60192
61610
  @aggregate_disk_size_gb = args[:aggregate_disk_size_gb] if args.key?(:aggregate_disk_size_gb)
60193
61611
  @disk_count = args[:disk_count] if args.key?(:disk_count)
61612
+ @exapool_max_read_iops = args[:exapool_max_read_iops] if args.key?(:exapool_max_read_iops)
61613
+ @exapool_max_read_throughput = args[:exapool_max_read_throughput] if args.key?(:exapool_max_read_throughput)
61614
+ @exapool_max_write_iops = args[:exapool_max_write_iops] if args.key?(:exapool_max_write_iops)
61615
+ @exapool_max_write_throughput = args[:exapool_max_write_throughput] if args.key?(:exapool_max_write_throughput)
60194
61616
  @last_resize_timestamp = args[:last_resize_timestamp] if args.key?(:last_resize_timestamp)
60195
61617
  @max_aggregate_disk_size_gb = args[:max_aggregate_disk_size_gb] if args.key?(:max_aggregate_disk_size_gb)
60196
61618
  @max_total_provisioned_disk_capacity_gb = args[:max_total_provisioned_disk_capacity_gb] if args.key?(:max_total_provisioned_disk_capacity_gb)
@@ -60994,6 +62416,11 @@ module Google
60994
62416
  # @return [String]
60995
62417
  attr_accessor :reserved_internal_range
60996
62418
 
62419
+ # Configures subnet mask resolution for this subnetwork.
62420
+ # Corresponds to the JSON property `resolveSubnetMask`
62421
+ # @return [String]
62422
+ attr_accessor :resolve_subnet_mask
62423
+
60997
62424
  # The role of subnetwork. Currently, this field is only used when purpose is set
60998
62425
  # to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. The value can be set to
60999
62426
  # ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for
@@ -61101,6 +62528,7 @@ module Google
61101
62528
  @purpose = args[:purpose] if args.key?(:purpose)
61102
62529
  @region = args[:region] if args.key?(:region)
61103
62530
  @reserved_internal_range = args[:reserved_internal_range] if args.key?(:reserved_internal_range)
62531
+ @resolve_subnet_mask = args[:resolve_subnet_mask] if args.key?(:resolve_subnet_mask)
61104
62532
  @role = args[:role] if args.key?(:role)
61105
62533
  @secondary_ip_ranges = args[:secondary_ip_ranges] if args.key?(:secondary_ip_ranges)
61106
62534
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -65150,6 +66578,12 @@ module Google
65150
66578
  # @return [String]
65151
66579
  attr_accessor :network
65152
66580
 
66581
+ # Input only. [Input Only] Additional params passed with the request, but not
66582
+ # persisted as part of resource payload.
66583
+ # Corresponds to the JSON property `params`
66584
+ # @return [Google::Apis::ComputeAlpha::TargetVpnGatewayParams]
66585
+ attr_accessor :params
66586
+
65153
66587
  # [Output Only] URL of the region where the target VPN gateway resides. You must
65154
66588
  # specify this field as part of the HTTP request URL. It is not settable as a
65155
66589
  # field in the request body.
@@ -65189,6 +66623,7 @@ module Google
65189
66623
  @labels = args[:labels] if args.key?(:labels)
65190
66624
  @name = args[:name] if args.key?(:name)
65191
66625
  @network = args[:network] if args.key?(:network)
66626
+ @params = args[:params] if args.key?(:params)
65192
66627
  @region = args[:region] if args.key?(:region)
65193
66628
  @self_link = args[:self_link] if args.key?(:self_link)
65194
66629
  @status = args[:status] if args.key?(:status)
@@ -65438,6 +66873,33 @@ module Google
65438
66873
  end
65439
66874
  end
65440
66875
 
66876
+ #
66877
+ class TargetVpnGatewayParams
66878
+ include Google::Apis::Core::Hashable
66879
+
66880
+ # Tag keys/values directly bound to this resource. Tag keys and values have the
66881
+ # same definition as resource manager tags. The field is allowed for INSERT only.
66882
+ # The keys/values to set on the resource should be specified in either ID ` : `
66883
+ # or Namespaced format ` : `. For example the following are valid inputs: * `"
66884
+ # tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"` * `"123/
66885
+ # environment" : "production", "345/abc" : "xyz"` Note: * Invalid combinations
66886
+ # of ID & namespaced format is not supported. For instance: `"123/environment" :
66887
+ # "tagValues/444"` is invalid. * Inconsistent format is not supported. For
66888
+ # instance: `"tagKeys/333" : "tagValues/444", "123/env" : "prod"` is invalid.
66889
+ # Corresponds to the JSON property `resourceManagerTags`
66890
+ # @return [Hash<String,String>]
66891
+ attr_accessor :resource_manager_tags
66892
+
66893
+ def initialize(**args)
66894
+ update!(**args)
66895
+ end
66896
+
66897
+ # Update properties of this object
66898
+ def update!(**args)
66899
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
66900
+ end
66901
+ end
66902
+
65441
66903
  #
65442
66904
  class TargetVpnGatewaysScopedList
65443
66905
  include Google::Apis::Core::Hashable
@@ -66965,28 +68427,385 @@ module Google
66965
68427
  end
66966
68428
  end
66967
68429
 
66968
- # The location in Cloud Storage and naming method of the daily usage report.
66969
- # Contains bucket_name and report_name prefix.
66970
- class UsageExportLocation
68430
+ # The location in Cloud Storage and naming method of the daily usage report.
68431
+ # Contains bucket_name and report_name prefix.
68432
+ class UsageExportLocation
68433
+ include Google::Apis::Core::Hashable
68434
+
68435
+ # The name of an existing bucket in Cloud Storage where the usage report object
68436
+ # is stored. The Google Service Account is granted write access to this bucket.
68437
+ # This can either be the bucket name by itself, such as example-bucket, or the
68438
+ # bucket name with gs:// or https://storage.googleapis.com/ in front of it, such
68439
+ # as gs://example-bucket.
68440
+ # Corresponds to the JSON property `bucketName`
68441
+ # @return [String]
68442
+ attr_accessor :bucket_name
68443
+
68444
+ # An optional prefix for the name of the usage report object stored in
68445
+ # bucketName. If not supplied, defaults to usage_gce. The report is stored as a
68446
+ # CSV file named report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day
68447
+ # of the usage according to Pacific Time. If you supply a prefix, it should
68448
+ # conform to Cloud Storage object naming conventions.
68449
+ # Corresponds to the JSON property `reportNamePrefix`
68450
+ # @return [String]
68451
+ attr_accessor :report_name_prefix
68452
+
68453
+ def initialize(**args)
68454
+ update!(**args)
68455
+ end
68456
+
68457
+ # Update properties of this object
68458
+ def update!(**args)
68459
+ @bucket_name = args[:bucket_name] if args.key?(:bucket_name)
68460
+ @report_name_prefix = args[:report_name_prefix] if args.key?(:report_name_prefix)
68461
+ end
68462
+ end
68463
+
68464
+ # Contain information of Nat mapping for a VM endpoint (i.e., NIC).
68465
+ class VmEndpointNatMappings
68466
+ include Google::Apis::Core::Hashable
68467
+
68468
+ # Name of the VM instance which the endpoint belongs to
68469
+ # Corresponds to the JSON property `instanceName`
68470
+ # @return [String]
68471
+ attr_accessor :instance_name
68472
+
68473
+ #
68474
+ # Corresponds to the JSON property `interfaceNatMappings`
68475
+ # @return [Array<Google::Apis::ComputeAlpha::VmEndpointNatMappingsInterfaceNatMappings>]
68476
+ attr_accessor :interface_nat_mappings
68477
+
68478
+ def initialize(**args)
68479
+ update!(**args)
68480
+ end
68481
+
68482
+ # Update properties of this object
68483
+ def update!(**args)
68484
+ @instance_name = args[:instance_name] if args.key?(:instance_name)
68485
+ @interface_nat_mappings = args[:interface_nat_mappings] if args.key?(:interface_nat_mappings)
68486
+ end
68487
+ end
68488
+
68489
+ # Contain information of Nat mapping for an interface of this endpoint.
68490
+ class VmEndpointNatMappingsInterfaceNatMappings
68491
+ include Google::Apis::Core::Hashable
68492
+
68493
+ # List of all drain IP:port-range mappings assigned to this interface. These
68494
+ # ranges are inclusive, that is, both the first and the last ports can be used
68495
+ # for NAT. Example: ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
68496
+ # Corresponds to the JSON property `drainNatIpPortRanges`
68497
+ # @return [Array<String>]
68498
+ attr_accessor :drain_nat_ip_port_ranges
68499
+
68500
+ # A list of all IP:port-range mappings assigned to this interface. These ranges
68501
+ # are inclusive, that is, both the first and the last ports can be used for NAT.
68502
+ # Example: ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
68503
+ # Corresponds to the JSON property `natIpPortRanges`
68504
+ # @return [Array<String>]
68505
+ attr_accessor :nat_ip_port_ranges
68506
+
68507
+ # Total number of drain ports across all NAT IPs allocated to this interface. It
68508
+ # equals to the aggregated port number in the field drain_nat_ip_port_ranges.
68509
+ # Corresponds to the JSON property `numTotalDrainNatPorts`
68510
+ # @return [Fixnum]
68511
+ attr_accessor :num_total_drain_nat_ports
68512
+
68513
+ # Total number of ports across all NAT IPs allocated to this interface. It
68514
+ # equals to the aggregated port number in the field nat_ip_port_ranges.
68515
+ # Corresponds to the JSON property `numTotalNatPorts`
68516
+ # @return [Fixnum]
68517
+ attr_accessor :num_total_nat_ports
68518
+
68519
+ # Information about mappings provided by rules in this NAT.
68520
+ # Corresponds to the JSON property `ruleMappings`
68521
+ # @return [Array<Google::Apis::ComputeAlpha::VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings>]
68522
+ attr_accessor :rule_mappings
68523
+
68524
+ # Alias IP range for this interface endpoint. It will be a private (RFC 1918) IP
68525
+ # range. Examples: "10.33.4.55/32", or "192.168.5.0/24".
68526
+ # Corresponds to the JSON property `sourceAliasIpRange`
68527
+ # @return [String]
68528
+ attr_accessor :source_alias_ip_range
68529
+
68530
+ # Primary IP of the VM for this NIC.
68531
+ # Corresponds to the JSON property `sourceVirtualIp`
68532
+ # @return [String]
68533
+ attr_accessor :source_virtual_ip
68534
+
68535
+ def initialize(**args)
68536
+ update!(**args)
68537
+ end
68538
+
68539
+ # Update properties of this object
68540
+ def update!(**args)
68541
+ @drain_nat_ip_port_ranges = args[:drain_nat_ip_port_ranges] if args.key?(:drain_nat_ip_port_ranges)
68542
+ @nat_ip_port_ranges = args[:nat_ip_port_ranges] if args.key?(:nat_ip_port_ranges)
68543
+ @num_total_drain_nat_ports = args[:num_total_drain_nat_ports] if args.key?(:num_total_drain_nat_ports)
68544
+ @num_total_nat_ports = args[:num_total_nat_ports] if args.key?(:num_total_nat_ports)
68545
+ @rule_mappings = args[:rule_mappings] if args.key?(:rule_mappings)
68546
+ @source_alias_ip_range = args[:source_alias_ip_range] if args.key?(:source_alias_ip_range)
68547
+ @source_virtual_ip = args[:source_virtual_ip] if args.key?(:source_virtual_ip)
68548
+ end
68549
+ end
68550
+
68551
+ # Contains information of NAT Mappings provided by a NAT Rule.
68552
+ class VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings
68553
+ include Google::Apis::Core::Hashable
68554
+
68555
+ # List of all drain IP:port-range mappings assigned to this interface by this
68556
+ # rule. These ranges are inclusive, that is, both the first and the last ports
68557
+ # can be used for NAT. Example: ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
68558
+ # Corresponds to the JSON property `drainNatIpPortRanges`
68559
+ # @return [Array<String>]
68560
+ attr_accessor :drain_nat_ip_port_ranges
68561
+
68562
+ # A list of all IP:port-range mappings assigned to this interface by this rule.
68563
+ # These ranges are inclusive, that is, both the first and the last ports can be
68564
+ # used for NAT. Example: ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
68565
+ # Corresponds to the JSON property `natIpPortRanges`
68566
+ # @return [Array<String>]
68567
+ attr_accessor :nat_ip_port_ranges
68568
+
68569
+ # Total number of drain ports across all NAT IPs allocated to this interface by
68570
+ # this rule. It equals the aggregated port number in the field
68571
+ # drain_nat_ip_port_ranges.
68572
+ # Corresponds to the JSON property `numTotalDrainNatPorts`
68573
+ # @return [Fixnum]
68574
+ attr_accessor :num_total_drain_nat_ports
68575
+
68576
+ # Total number of ports across all NAT IPs allocated to this interface by this
68577
+ # rule. It equals the aggregated port number in the field nat_ip_port_ranges.
68578
+ # Corresponds to the JSON property `numTotalNatPorts`
68579
+ # @return [Fixnum]
68580
+ attr_accessor :num_total_nat_ports
68581
+
68582
+ # Rule number of the NAT Rule.
68583
+ # Corresponds to the JSON property `ruleNumber`
68584
+ # @return [Fixnum]
68585
+ attr_accessor :rule_number
68586
+
68587
+ def initialize(**args)
68588
+ update!(**args)
68589
+ end
68590
+
68591
+ # Update properties of this object
68592
+ def update!(**args)
68593
+ @drain_nat_ip_port_ranges = args[:drain_nat_ip_port_ranges] if args.key?(:drain_nat_ip_port_ranges)
68594
+ @nat_ip_port_ranges = args[:nat_ip_port_ranges] if args.key?(:nat_ip_port_ranges)
68595
+ @num_total_drain_nat_ports = args[:num_total_drain_nat_ports] if args.key?(:num_total_drain_nat_ports)
68596
+ @num_total_nat_ports = args[:num_total_nat_ports] if args.key?(:num_total_nat_ports)
68597
+ @rule_number = args[:rule_number] if args.key?(:rule_number)
68598
+ end
68599
+ end
68600
+
68601
+ # Contains a list of VmEndpointNatMappings.
68602
+ class VmEndpointNatMappingsList
68603
+ include Google::Apis::Core::Hashable
68604
+
68605
+ # [Output Only] The unique identifier for the resource. This identifier is
68606
+ # defined by the server.
68607
+ # Corresponds to the JSON property `id`
68608
+ # @return [String]
68609
+ attr_accessor :id
68610
+
68611
+ # [Output Only] Type of resource. Always compute#vmEndpointNatMappingsList for
68612
+ # lists of Nat mappings of VM endpoints.
68613
+ # Corresponds to the JSON property `kind`
68614
+ # @return [String]
68615
+ attr_accessor :kind
68616
+
68617
+ # [Output Only] This token allows you to get the next page of results for list
68618
+ # requests. If the number of results is larger than maxResults, use the
68619
+ # nextPageToken as a value for the query parameter pageToken in the next list
68620
+ # request. Subsequent list requests will have their own nextPageToken to
68621
+ # continue paging through the results.
68622
+ # Corresponds to the JSON property `nextPageToken`
68623
+ # @return [String]
68624
+ attr_accessor :next_page_token
68625
+
68626
+ # [Output Only] A list of Nat mapping information of VM endpoints.
68627
+ # Corresponds to the JSON property `result`
68628
+ # @return [Array<Google::Apis::ComputeAlpha::VmEndpointNatMappings>]
68629
+ attr_accessor :result
68630
+
68631
+ # [Output Only] Server-defined URL for this resource.
68632
+ # Corresponds to the JSON property `selfLink`
68633
+ # @return [String]
68634
+ attr_accessor :self_link
68635
+
68636
+ # [Output Only] Informational warning message.
68637
+ # Corresponds to the JSON property `warning`
68638
+ # @return [Google::Apis::ComputeAlpha::VmEndpointNatMappingsList::Warning]
68639
+ attr_accessor :warning
68640
+
68641
+ def initialize(**args)
68642
+ update!(**args)
68643
+ end
68644
+
68645
+ # Update properties of this object
68646
+ def update!(**args)
68647
+ @id = args[:id] if args.key?(:id)
68648
+ @kind = args[:kind] if args.key?(:kind)
68649
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
68650
+ @result = args[:result] if args.key?(:result)
68651
+ @self_link = args[:self_link] if args.key?(:self_link)
68652
+ @warning = args[:warning] if args.key?(:warning)
68653
+ end
68654
+
68655
+ # [Output Only] Informational warning message.
68656
+ class Warning
68657
+ include Google::Apis::Core::Hashable
68658
+
68659
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
68660
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
68661
+ # Corresponds to the JSON property `code`
68662
+ # @return [String]
68663
+ attr_accessor :code
68664
+
68665
+ # [Output Only] Metadata about this warning in key: value format. For example: "
68666
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
68667
+ # Corresponds to the JSON property `data`
68668
+ # @return [Array<Google::Apis::ComputeAlpha::VmEndpointNatMappingsList::Warning::Datum>]
68669
+ attr_accessor :data
68670
+
68671
+ # [Output Only] A human-readable description of the warning code.
68672
+ # Corresponds to the JSON property `message`
68673
+ # @return [String]
68674
+ attr_accessor :message
68675
+
68676
+ def initialize(**args)
68677
+ update!(**args)
68678
+ end
68679
+
68680
+ # Update properties of this object
68681
+ def update!(**args)
68682
+ @code = args[:code] if args.key?(:code)
68683
+ @data = args[:data] if args.key?(:data)
68684
+ @message = args[:message] if args.key?(:message)
68685
+ end
68686
+
68687
+ #
68688
+ class Datum
68689
+ include Google::Apis::Core::Hashable
68690
+
68691
+ # [Output Only] A key that provides more detail on the warning being returned.
68692
+ # For example, for warnings where there are no results in a list request for a
68693
+ # particular zone, this key might be scope and the key value might be the zone
68694
+ # name. Other examples might be a key indicating a deprecated resource and a
68695
+ # suggested replacement, or a warning about invalid network settings (for
68696
+ # example, if an instance attempts to perform IP forwarding but is not enabled
68697
+ # for IP forwarding).
68698
+ # Corresponds to the JSON property `key`
68699
+ # @return [String]
68700
+ attr_accessor :key
68701
+
68702
+ # [Output Only] A warning data value corresponding to the key.
68703
+ # Corresponds to the JSON property `value`
68704
+ # @return [String]
68705
+ attr_accessor :value
68706
+
68707
+ def initialize(**args)
68708
+ update!(**args)
68709
+ end
68710
+
68711
+ # Update properties of this object
68712
+ def update!(**args)
68713
+ @key = args[:key] if args.key?(:key)
68714
+ @value = args[:value] if args.key?(:value)
68715
+ end
68716
+ end
68717
+ end
68718
+ end
68719
+
68720
+ # Represents a VM extension policy.
68721
+ class VmExtensionPolicy
66971
68722
  include Google::Apis::Core::Hashable
66972
68723
 
66973
- # The name of an existing bucket in Cloud Storage where the usage report object
66974
- # is stored. The Google Service Account is granted write access to this bucket.
66975
- # This can either be the bucket name by itself, such as example-bucket, or the
66976
- # bucket name with gs:// or https://storage.googleapis.com/ in front of it, such
66977
- # as gs://example-bucket.
66978
- # Corresponds to the JSON property `bucketName`
68724
+ # [Output Only] Creation timestamp in RFC3339 text format.
68725
+ # Corresponds to the JSON property `creationTimestamp`
66979
68726
  # @return [String]
66980
- attr_accessor :bucket_name
68727
+ attr_accessor :creation_timestamp
66981
68728
 
66982
- # An optional prefix for the name of the usage report object stored in
66983
- # bucketName. If not supplied, defaults to usage_gce. The report is stored as a
66984
- # CSV file named report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day
66985
- # of the usage according to Pacific Time. If you supply a prefix, it should
66986
- # conform to Cloud Storage object naming conventions.
66987
- # Corresponds to the JSON property `reportNamePrefix`
68729
+ # An optional description of this resource.
68730
+ # Corresponds to the JSON property `description`
66988
68731
  # @return [String]
66989
- attr_accessor :report_name_prefix
68732
+ attr_accessor :description
68733
+
68734
+ # Required. A map of extension names (e.g., "cloudops") to their corresponding
68735
+ # policy configurations.
68736
+ # Corresponds to the JSON property `extensionPolicies`
68737
+ # @return [Hash<String,Google::Apis::ComputeAlpha::VmExtensionPolicyExtensionPolicy>]
68738
+ attr_accessor :extension_policies
68739
+
68740
+ # Optional. [Output Only] Link to the global policy that manages this zone
68741
+ # policy, if applicable.
68742
+ # Corresponds to the JSON property `globalResourceLink`
68743
+ # @return [String]
68744
+ attr_accessor :global_resource_link
68745
+
68746
+ # [Output Only] The unique identifier for the resource. This identifier is
68747
+ # defined by the server.
68748
+ # Corresponds to the JSON property `id`
68749
+ # @return [Fixnum]
68750
+ attr_accessor :id
68751
+
68752
+ # Optional. Selectors to target VMs for this policy. VMs are selected if they
68753
+ # match *any* of the provided selectors (logical OR). If this list is empty, the
68754
+ # policy applies to all VMs.
68755
+ # Corresponds to the JSON property `instanceSelectors`
68756
+ # @return [Array<Google::Apis::ComputeAlpha::VmExtensionPolicyInstanceSelector>]
68757
+ attr_accessor :instance_selectors
68758
+
68759
+ # [Output Only] Type of the resource. Always compute#vmExtensionPolicy.
68760
+ # Corresponds to the JSON property `kind`
68761
+ # @return [String]
68762
+ attr_accessor :kind
68763
+
68764
+ # Optional. [Output Only] Indicates if this policy is managed by a global policy.
68765
+ # Corresponds to the JSON property `managedByGlobal`
68766
+ # @return [Boolean]
68767
+ attr_accessor :managed_by_global
68768
+ alias_method :managed_by_global?, :managed_by_global
68769
+
68770
+ # Name of the resource. Provided by the client when the resource is created. The
68771
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
68772
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
68773
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
68774
+ # and all following characters must be a dash, lowercase letter, or digit,
68775
+ # except the last character, which cannot be a dash.
68776
+ # Corresponds to the JSON property `name`
68777
+ # @return [String]
68778
+ attr_accessor :name
68779
+
68780
+ # Optional. Priority of this policy. Used to resolve conflicts when multiple
68781
+ # policies apply to the same extension. The policy priority is an integer from 0
68782
+ # to 65535, inclusive. Lower integers indicate higher priorities. If you do not
68783
+ # specify a priority when creating a rule, it is assigned a priority of 1000. If
68784
+ # priorities are equal, the policy with the more recent creation timestamp takes
68785
+ # precedence.
68786
+ # Corresponds to the JSON property `priority`
68787
+ # @return [Fixnum]
68788
+ attr_accessor :priority
68789
+
68790
+ # [Output Only] Server-defined fully-qualified URL for this resource.
68791
+ # Corresponds to the JSON property `selfLink`
68792
+ # @return [String]
68793
+ attr_accessor :self_link
68794
+
68795
+ # [Output Only] Server-defined URL for this resource's resource id.
68796
+ # Corresponds to the JSON property `selfLinkWithId`
68797
+ # @return [String]
68798
+ attr_accessor :self_link_with_id
68799
+
68800
+ # Optional. [Output Only] Current state of the policy: ACTIVE or DELETING.
68801
+ # Corresponds to the JSON property `state`
68802
+ # @return [String]
68803
+ attr_accessor :state
68804
+
68805
+ # [Output Only] Update timestamp in RFC3339 text format.
68806
+ # Corresponds to the JSON property `updateTimestamp`
68807
+ # @return [String]
68808
+ attr_accessor :update_timestamp
66990
68809
 
66991
68810
  def initialize(**args)
66992
68811
  update!(**args)
@@ -66994,24 +68813,37 @@ module Google
66994
68813
 
66995
68814
  # Update properties of this object
66996
68815
  def update!(**args)
66997
- @bucket_name = args[:bucket_name] if args.key?(:bucket_name)
66998
- @report_name_prefix = args[:report_name_prefix] if args.key?(:report_name_prefix)
68816
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
68817
+ @description = args[:description] if args.key?(:description)
68818
+ @extension_policies = args[:extension_policies] if args.key?(:extension_policies)
68819
+ @global_resource_link = args[:global_resource_link] if args.key?(:global_resource_link)
68820
+ @id = args[:id] if args.key?(:id)
68821
+ @instance_selectors = args[:instance_selectors] if args.key?(:instance_selectors)
68822
+ @kind = args[:kind] if args.key?(:kind)
68823
+ @managed_by_global = args[:managed_by_global] if args.key?(:managed_by_global)
68824
+ @name = args[:name] if args.key?(:name)
68825
+ @priority = args[:priority] if args.key?(:priority)
68826
+ @self_link = args[:self_link] if args.key?(:self_link)
68827
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
68828
+ @state = args[:state] if args.key?(:state)
68829
+ @update_timestamp = args[:update_timestamp] if args.key?(:update_timestamp)
66999
68830
  end
67000
68831
  end
67001
68832
 
67002
- # Contain information of Nat mapping for a VM endpoint (i.e., NIC).
67003
- class VmEndpointNatMappings
68833
+ # Configuration for a specific VM extension.
68834
+ class VmExtensionPolicyExtensionPolicy
67004
68835
  include Google::Apis::Core::Hashable
67005
68836
 
67006
- # Name of the VM instance which the endpoint belongs to
67007
- # Corresponds to the JSON property `instanceName`
68837
+ # Optional. The specific version of the extension to install. If not set, the
68838
+ # latest version is used.
68839
+ # Corresponds to the JSON property `pinnedVersion`
67008
68840
  # @return [String]
67009
- attr_accessor :instance_name
68841
+ attr_accessor :pinned_version
67010
68842
 
67011
- #
67012
- # Corresponds to the JSON property `interfaceNatMappings`
67013
- # @return [Array<Google::Apis::ComputeAlpha::VmEndpointNatMappingsInterfaceNatMappings>]
67014
- attr_accessor :interface_nat_mappings
68843
+ # Optional. String-based configuration data for the extension.
68844
+ # Corresponds to the JSON property `stringConfig`
68845
+ # @return [String]
68846
+ attr_accessor :string_config
67015
68847
 
67016
68848
  def initialize(**args)
67017
68849
  update!(**args)
@@ -67019,56 +68851,19 @@ module Google
67019
68851
 
67020
68852
  # Update properties of this object
67021
68853
  def update!(**args)
67022
- @instance_name = args[:instance_name] if args.key?(:instance_name)
67023
- @interface_nat_mappings = args[:interface_nat_mappings] if args.key?(:interface_nat_mappings)
68854
+ @pinned_version = args[:pinned_version] if args.key?(:pinned_version)
68855
+ @string_config = args[:string_config] if args.key?(:string_config)
67024
68856
  end
67025
68857
  end
67026
68858
 
67027
- # Contain information of Nat mapping for an interface of this endpoint.
67028
- class VmEndpointNatMappingsInterfaceNatMappings
68859
+ # Defines how to select VMs to apply a zone VM extension policy.
68860
+ class VmExtensionPolicyInstanceSelector
67029
68861
  include Google::Apis::Core::Hashable
67030
68862
 
67031
- # List of all drain IP:port-range mappings assigned to this interface. These
67032
- # ranges are inclusive, that is, both the first and the last ports can be used
67033
- # for NAT. Example: ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
67034
- # Corresponds to the JSON property `drainNatIpPortRanges`
67035
- # @return [Array<String>]
67036
- attr_accessor :drain_nat_ip_port_ranges
67037
-
67038
- # A list of all IP:port-range mappings assigned to this interface. These ranges
67039
- # are inclusive, that is, both the first and the last ports can be used for NAT.
67040
- # Example: ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
67041
- # Corresponds to the JSON property `natIpPortRanges`
67042
- # @return [Array<String>]
67043
- attr_accessor :nat_ip_port_ranges
67044
-
67045
- # Total number of drain ports across all NAT IPs allocated to this interface. It
67046
- # equals to the aggregated port number in the field drain_nat_ip_port_ranges.
67047
- # Corresponds to the JSON property `numTotalDrainNatPorts`
67048
- # @return [Fixnum]
67049
- attr_accessor :num_total_drain_nat_ports
67050
-
67051
- # Total number of ports across all NAT IPs allocated to this interface. It
67052
- # equals to the aggregated port number in the field nat_ip_port_ranges.
67053
- # Corresponds to the JSON property `numTotalNatPorts`
67054
- # @return [Fixnum]
67055
- attr_accessor :num_total_nat_ports
67056
-
67057
- # Information about mappings provided by rules in this NAT.
67058
- # Corresponds to the JSON property `ruleMappings`
67059
- # @return [Array<Google::Apis::ComputeAlpha::VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings>]
67060
- attr_accessor :rule_mappings
67061
-
67062
- # Alias IP range for this interface endpoint. It will be a private (RFC 1918) IP
67063
- # range. Examples: "10.33.4.55/32", or "192.168.5.0/24".
67064
- # Corresponds to the JSON property `sourceAliasIpRange`
67065
- # @return [String]
67066
- attr_accessor :source_alias_ip_range
67067
-
67068
- # Primary IP of the VM for this NIC.
67069
- # Corresponds to the JSON property `sourceVirtualIp`
67070
- # @return [String]
67071
- attr_accessor :source_virtual_ip
68863
+ # A LabelSelector is applied to a VM only if it matches all the specified labels.
68864
+ # Corresponds to the JSON property `labelSelector`
68865
+ # @return [Google::Apis::ComputeAlpha::VmExtensionPolicyLabelSelector]
68866
+ attr_accessor :label_selector
67072
68867
 
67073
68868
  def initialize(**args)
67074
68869
  update!(**args)
@@ -67076,51 +68871,23 @@ module Google
67076
68871
 
67077
68872
  # Update properties of this object
67078
68873
  def update!(**args)
67079
- @drain_nat_ip_port_ranges = args[:drain_nat_ip_port_ranges] if args.key?(:drain_nat_ip_port_ranges)
67080
- @nat_ip_port_ranges = args[:nat_ip_port_ranges] if args.key?(:nat_ip_port_ranges)
67081
- @num_total_drain_nat_ports = args[:num_total_drain_nat_ports] if args.key?(:num_total_drain_nat_ports)
67082
- @num_total_nat_ports = args[:num_total_nat_ports] if args.key?(:num_total_nat_ports)
67083
- @rule_mappings = args[:rule_mappings] if args.key?(:rule_mappings)
67084
- @source_alias_ip_range = args[:source_alias_ip_range] if args.key?(:source_alias_ip_range)
67085
- @source_virtual_ip = args[:source_virtual_ip] if args.key?(:source_virtual_ip)
68874
+ @label_selector = args[:label_selector] if args.key?(:label_selector)
67086
68875
  end
67087
68876
  end
67088
68877
 
67089
- # Contains information of NAT Mappings provided by a NAT Rule.
67090
- class VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings
68878
+ # A LabelSelector is applied to a VM only if it matches all the specified labels.
68879
+ class VmExtensionPolicyLabelSelector
67091
68880
  include Google::Apis::Core::Hashable
67092
68881
 
67093
- # List of all drain IP:port-range mappings assigned to this interface by this
67094
- # rule. These ranges are inclusive, that is, both the first and the last ports
67095
- # can be used for NAT. Example: ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
67096
- # Corresponds to the JSON property `drainNatIpPortRanges`
67097
- # @return [Array<String>]
67098
- attr_accessor :drain_nat_ip_port_ranges
67099
-
67100
- # A list of all IP:port-range mappings assigned to this interface by this rule.
67101
- # These ranges are inclusive, that is, both the first and the last ports can be
67102
- # used for NAT. Example: ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
67103
- # Corresponds to the JSON property `natIpPortRanges`
67104
- # @return [Array<String>]
67105
- attr_accessor :nat_ip_port_ranges
67106
-
67107
- # Total number of drain ports across all NAT IPs allocated to this interface by
67108
- # this rule. It equals the aggregated port number in the field
67109
- # drain_nat_ip_port_ranges.
67110
- # Corresponds to the JSON property `numTotalDrainNatPorts`
67111
- # @return [Fixnum]
67112
- attr_accessor :num_total_drain_nat_ports
67113
-
67114
- # Total number of ports across all NAT IPs allocated to this interface by this
67115
- # rule. It equals the aggregated port number in the field nat_ip_port_ranges.
67116
- # Corresponds to the JSON property `numTotalNatPorts`
67117
- # @return [Fixnum]
67118
- attr_accessor :num_total_nat_ports
67119
-
67120
- # Rule number of the NAT Rule.
67121
- # Corresponds to the JSON property `ruleNumber`
67122
- # @return [Fixnum]
67123
- attr_accessor :rule_number
68882
+ # Optional. A map of key-value pairs representing VM labels. VMs must have all
68883
+ # of the labels specified in this map to be selected (logical AND). e.g. If the `
68884
+ # inclusion_labels` are `("key1", "value1"), ("key2", "value2")`, the VM labels
68885
+ # must contain both ("key1", "value1") and ("key2", "value2") to be selected. If
68886
+ # the VM labels are ("key1", "value1") and ("something", "else"), it will not be
68887
+ # selected. If the map is empty, it's considered a match.
68888
+ # Corresponds to the JSON property `inclusionLabels`
68889
+ # @return [Hash<String,String>]
68890
+ attr_accessor :inclusion_labels
67124
68891
 
67125
68892
  def initialize(**args)
67126
68893
  update!(**args)
@@ -67128,26 +68895,34 @@ module Google
67128
68895
 
67129
68896
  # Update properties of this object
67130
68897
  def update!(**args)
67131
- @drain_nat_ip_port_ranges = args[:drain_nat_ip_port_ranges] if args.key?(:drain_nat_ip_port_ranges)
67132
- @nat_ip_port_ranges = args[:nat_ip_port_ranges] if args.key?(:nat_ip_port_ranges)
67133
- @num_total_drain_nat_ports = args[:num_total_drain_nat_ports] if args.key?(:num_total_drain_nat_ports)
67134
- @num_total_nat_ports = args[:num_total_nat_ports] if args.key?(:num_total_nat_ports)
67135
- @rule_number = args[:rule_number] if args.key?(:rule_number)
68898
+ @inclusion_labels = args[:inclusion_labels] if args.key?(:inclusion_labels)
67136
68899
  end
67137
68900
  end
67138
68901
 
67139
- # Contains a list of VmEndpointNatMappings.
67140
- class VmEndpointNatMappingsList
68902
+ #
68903
+ class VmExtensionPolicyList
67141
68904
  include Google::Apis::Core::Hashable
67142
68905
 
67143
- # [Output Only] The unique identifier for the resource. This identifier is
67144
- # defined by the server.
68906
+ # [Output Only] Fingerprint of this resource. A hash of the contents stored in
68907
+ # this object. This field is used in optimistic locking. This field will be
68908
+ # ignored when inserting a VmExtensionPolicy. An up-to-date fingerprint must be
68909
+ # provided in order to update the VmExtensionPolicy. To see the latest value of
68910
+ # the fingerprint, make a get() request to retrieve a VmExtensionPolicy.
68911
+ # Corresponds to the JSON property `etag`
68912
+ # @return [String]
68913
+ attr_accessor :etag
68914
+
68915
+ # [Output Only] Unique identifier for the resource; defined by the server.
67145
68916
  # Corresponds to the JSON property `id`
67146
68917
  # @return [String]
67147
68918
  attr_accessor :id
67148
68919
 
67149
- # [Output Only] Type of resource. Always compute#vmEndpointNatMappingsList for
67150
- # lists of Nat mappings of VM endpoints.
68920
+ # [Output Only] A list of VM extension policy resources.
68921
+ # Corresponds to the JSON property `items`
68922
+ # @return [Array<Google::Apis::ComputeAlpha::VmExtensionPolicy>]
68923
+ attr_accessor :items
68924
+
68925
+ # Type of resource.
67151
68926
  # Corresponds to the JSON property `kind`
67152
68927
  # @return [String]
67153
68928
  attr_accessor :kind
@@ -67161,19 +68936,19 @@ module Google
67161
68936
  # @return [String]
67162
68937
  attr_accessor :next_page_token
67163
68938
 
67164
- # [Output Only] A list of Nat mapping information of VM endpoints.
67165
- # Corresponds to the JSON property `result`
67166
- # @return [Array<Google::Apis::ComputeAlpha::VmEndpointNatMappings>]
67167
- attr_accessor :result
67168
-
67169
68939
  # [Output Only] Server-defined URL for this resource.
67170
68940
  # Corresponds to the JSON property `selfLink`
67171
68941
  # @return [String]
67172
68942
  attr_accessor :self_link
67173
68943
 
68944
+ # [Output Only] Unreachable resources.
68945
+ # Corresponds to the JSON property `unreachables`
68946
+ # @return [Array<String>]
68947
+ attr_accessor :unreachables
68948
+
67174
68949
  # [Output Only] Informational warning message.
67175
68950
  # Corresponds to the JSON property `warning`
67176
- # @return [Google::Apis::ComputeAlpha::VmEndpointNatMappingsList::Warning]
68951
+ # @return [Google::Apis::ComputeAlpha::VmExtensionPolicyList::Warning]
67177
68952
  attr_accessor :warning
67178
68953
 
67179
68954
  def initialize(**args)
@@ -67182,11 +68957,13 @@ module Google
67182
68957
 
67183
68958
  # Update properties of this object
67184
68959
  def update!(**args)
68960
+ @etag = args[:etag] if args.key?(:etag)
67185
68961
  @id = args[:id] if args.key?(:id)
68962
+ @items = args[:items] if args.key?(:items)
67186
68963
  @kind = args[:kind] if args.key?(:kind)
67187
68964
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
67188
- @result = args[:result] if args.key?(:result)
67189
68965
  @self_link = args[:self_link] if args.key?(:self_link)
68966
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
67190
68967
  @warning = args[:warning] if args.key?(:warning)
67191
68968
  end
67192
68969
 
@@ -67203,7 +68980,7 @@ module Google
67203
68980
  # [Output Only] Metadata about this warning in key: value format. For example: "
67204
68981
  # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
67205
68982
  # Corresponds to the JSON property `data`
67206
- # @return [Array<Google::Apis::ComputeAlpha::VmEndpointNatMappingsList::Warning::Datum>]
68983
+ # @return [Array<Google::Apis::ComputeAlpha::VmExtensionPolicyList::Warning::Datum>]
67207
68984
  attr_accessor :data
67208
68985
 
67209
68986
  # [Output Only] A human-readable description of the warning code.
@@ -67326,6 +69103,12 @@ module Google
67326
69103
  # @return [String]
67327
69104
  attr_accessor :network
67328
69105
 
69106
+ # Input only. [Input Only] Additional params passed with the request, but not
69107
+ # persisted as part of resource payload.
69108
+ # Corresponds to the JSON property `params`
69109
+ # @return [Google::Apis::ComputeAlpha::VpnGatewayParams]
69110
+ attr_accessor :params
69111
+
67329
69112
  # [Output Only] URL of the region where the VPN gateway resides.
67330
69113
  # Corresponds to the JSON property `region`
67331
69114
  # @return [String]
@@ -67364,6 +69147,7 @@ module Google
67364
69147
  @labels = args[:labels] if args.key?(:labels)
67365
69148
  @name = args[:name] if args.key?(:name)
67366
69149
  @network = args[:network] if args.key?(:network)
69150
+ @params = args[:params] if args.key?(:params)
67367
69151
  @region = args[:region] if args.key?(:region)
67368
69152
  @self_link = args[:self_link] if args.key?(:self_link)
67369
69153
  @stack_type = args[:stack_type] if args.key?(:stack_type)
@@ -67611,6 +69395,33 @@ module Google
67611
69395
  end
67612
69396
  end
67613
69397
 
69398
+ #
69399
+ class VpnGatewayParams
69400
+ include Google::Apis::Core::Hashable
69401
+
69402
+ # Tag keys/values directly bound to this resource. Tag keys and values have the
69403
+ # same definition as resource manager tags. The field is allowed for INSERT only.
69404
+ # The keys/values to set on the resource should be specified in either ID ` : `
69405
+ # or Namespaced format ` : `. For example the following are valid inputs: * `"
69406
+ # tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"` * `"123/
69407
+ # environment" : "production", "345/abc" : "xyz"` Note: * Invalid combinations
69408
+ # of ID & namespaced format is not supported. For instance: `"123/environment" :
69409
+ # "tagValues/444"` is invalid. * Inconsistent format is not supported. For
69410
+ # instance: `"tagKeys/333" : "tagValues/444", "123/env" : "prod"` is invalid.
69411
+ # Corresponds to the JSON property `resourceManagerTags`
69412
+ # @return [Hash<String,String>]
69413
+ attr_accessor :resource_manager_tags
69414
+
69415
+ def initialize(**args)
69416
+ update!(**args)
69417
+ end
69418
+
69419
+ # Update properties of this object
69420
+ def update!(**args)
69421
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
69422
+ end
69423
+ end
69424
+
67614
69425
  #
67615
69426
  class VpnGatewayStatus
67616
69427
  include Google::Apis::Core::Hashable
@@ -67977,6 +69788,12 @@ module Google
67977
69788
  # @return [String]
67978
69789
  attr_accessor :name
67979
69790
 
69791
+ # Input only. [Input Only] Additional params passed with the request, but not
69792
+ # persisted as part of resource payload.
69793
+ # Corresponds to the JSON property `params`
69794
+ # @return [Google::Apis::ComputeAlpha::VpnTunnelParams]
69795
+ attr_accessor :params
69796
+
67980
69797
  # URL of the peer side external VPN gateway to which this VPN tunnel is
67981
69798
  # connected. Provided by the client when the VPN tunnel is created. This field
67982
69799
  # is exclusive with the field peerGcpGateway.
@@ -68103,6 +69920,7 @@ module Google
68103
69920
  @labels = args[:labels] if args.key?(:labels)
68104
69921
  @local_traffic_selector = args[:local_traffic_selector] if args.key?(:local_traffic_selector)
68105
69922
  @name = args[:name] if args.key?(:name)
69923
+ @params = args[:params] if args.key?(:params)
68106
69924
  @peer_external_gateway = args[:peer_external_gateway] if args.key?(:peer_external_gateway)
68107
69925
  @peer_external_gateway_interface = args[:peer_external_gateway_interface] if args.key?(:peer_external_gateway_interface)
68108
69926
  @peer_gcp_gateway = args[:peer_gcp_gateway] if args.key?(:peer_gcp_gateway)
@@ -68385,6 +70203,33 @@ module Google
68385
70203
  end
68386
70204
  end
68387
70205
 
70206
+ #
70207
+ class VpnTunnelParams
70208
+ include Google::Apis::Core::Hashable
70209
+
70210
+ # Tag keys/values directly bound to this resource. Tag keys and values have the
70211
+ # same definition as resource manager tags. The field is allowed for INSERT only.
70212
+ # The keys/values to set on the resource should be specified in either ID ` : `
70213
+ # or Namespaced format ` : `. For example the following are valid inputs: * `"
70214
+ # tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"` * `"123/
70215
+ # environment" : "production", "345/abc" : "xyz"` Note: * Invalid combinations
70216
+ # of ID & namespaced format is not supported. For instance: `"123/environment" :
70217
+ # "tagValues/444"` is invalid. * Inconsistent format is not supported. For
70218
+ # instance: `"tagKeys/333" : "tagValues/444", "123/env" : "prod"` is invalid.
70219
+ # Corresponds to the JSON property `resourceManagerTags`
70220
+ # @return [Hash<String,String>]
70221
+ attr_accessor :resource_manager_tags
70222
+
70223
+ def initialize(**args)
70224
+ update!(**args)
70225
+ end
70226
+
70227
+ # Update properties of this object
70228
+ def update!(**args)
70229
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
70230
+ end
70231
+ end
70232
+
68388
70233
  #
68389
70234
  class VpnTunnelPhase1Algorithms
68390
70235
  include Google::Apis::Core::Hashable