google-apis-compute_beta 0.73.0 → 0.75.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.
@@ -1619,6 +1619,12 @@ module Google
1619
1619
  # @return [String]
1620
1620
  attr_accessor :disk_type
1621
1621
 
1622
+ # Whether this disk is using confidential compute mode.
1623
+ # Corresponds to the JSON property `enableConfidentialCompute`
1624
+ # @return [Boolean]
1625
+ attr_accessor :enable_confidential_compute
1626
+ alias_method :enable_confidential_compute?, :enable_confidential_compute
1627
+
1622
1628
  # A list of features to enable on the guest operating system. Applicable only
1623
1629
  # for bootable images. Read Enabling guest operating system features to see a
1624
1630
  # list of available options. Guest OS features are applied by merging
@@ -1751,6 +1757,7 @@ module Google
1751
1757
  @disk_name = args[:disk_name] if args.key?(:disk_name)
1752
1758
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
1753
1759
  @disk_type = args[:disk_type] if args.key?(:disk_type)
1760
+ @enable_confidential_compute = args[:enable_confidential_compute] if args.key?(:enable_confidential_compute)
1754
1761
  @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features)
1755
1762
  @labels = args[:labels] if args.key?(:labels)
1756
1763
  @licenses = args[:licenses] if args.key?(:licenses)
@@ -2905,7 +2912,7 @@ module Google
2905
2912
  # @return [String]
2906
2913
  attr_accessor :creation_timestamp
2907
2914
 
2908
- # Headers that the HTTP/S load balancer should add to proxied responses.
2915
+ # Headers that the Application Load Balancer should add to proxied responses.
2909
2916
  # Corresponds to the JSON property `customResponseHeaders`
2910
2917
  # @return [Array<String>]
2911
2918
  attr_accessor :custom_response_headers
@@ -6309,6 +6316,12 @@ module Google
6309
6316
  # @return [Google::Apis::ComputeBeta::CustomerEncryptionKey]
6310
6317
  attr_accessor :disk_encryption_key
6311
6318
 
6319
+ # Whether this disk is using confidential compute mode.
6320
+ # Corresponds to the JSON property `enableConfidentialCompute`
6321
+ # @return [Boolean]
6322
+ attr_accessor :enable_confidential_compute
6323
+ alias_method :enable_confidential_compute?, :enable_confidential_compute
6324
+
6312
6325
  # Specifies whether the disk restored from a source snapshot should erase
6313
6326
  # Windows specific VSS signature.
6314
6327
  # Corresponds to the JSON property `eraseWindowsVssSignature`
@@ -6659,6 +6672,7 @@ module Google
6659
6672
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
6660
6673
  @description = args[:description] if args.key?(:description)
6661
6674
  @disk_encryption_key = args[:disk_encryption_key] if args.key?(:disk_encryption_key)
6675
+ @enable_confidential_compute = args[:enable_confidential_compute] if args.key?(:enable_confidential_compute)
6662
6676
  @erase_windows_vss_signature = args[:erase_windows_vss_signature] if args.key?(:erase_windows_vss_signature)
6663
6677
  @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features)
6664
6678
  @id = args[:id] if args.key?(:id)
@@ -13208,6 +13222,13 @@ module Google
13208
13222
  # @return [Fixnum]
13209
13223
  attr_accessor :disk_size_gb
13210
13224
 
13225
+ # Whether this image is created from a confidential compute mode disk. [Output
13226
+ # Only]: This field is not set by user, but from source disk.
13227
+ # Corresponds to the JSON property `enableConfidentialCompute`
13228
+ # @return [Boolean]
13229
+ attr_accessor :enable_confidential_compute
13230
+ alias_method :enable_confidential_compute?, :enable_confidential_compute
13231
+
13211
13232
  # The name of the image family to which this image belongs. The image family
13212
13233
  # name can be from a publicly managed image family provided by Compute Engine,
13213
13234
  # or from a custom image family you create. For example, centos-stream-9 is a
@@ -13441,6 +13462,7 @@ module Google
13441
13462
  @deprecated = args[:deprecated] if args.key?(:deprecated)
13442
13463
  @description = args[:description] if args.key?(:description)
13443
13464
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
13465
+ @enable_confidential_compute = args[:enable_confidential_compute] if args.key?(:enable_confidential_compute)
13444
13466
  @family = args[:family] if args.key?(:family)
13445
13467
  @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features)
13446
13468
  @id = args[:id] if args.key?(:id)
@@ -15272,6 +15294,344 @@ module Google
15272
15294
  end
15273
15295
  end
15274
15296
 
15297
+ # InstanceGroupManagerResizeRequest represents a request to create a number of
15298
+ # VMs: either immediately or by queuing the request for the specified time. This
15299
+ # resize request is nested under InstanceGroupManager and the VMs created by
15300
+ # this request are added to the owning InstanceGroupManager.
15301
+ class InstanceGroupManagerResizeRequest
15302
+ include Google::Apis::Core::Hashable
15303
+
15304
+ # The count of instances to create as part of this resize request.
15305
+ # Corresponds to the JSON property `count`
15306
+ # @return [Fixnum]
15307
+ attr_accessor :count
15308
+
15309
+ # [Output Only] The creation timestamp for this resize request in RFC3339 text
15310
+ # format.
15311
+ # Corresponds to the JSON property `creationTimestamp`
15312
+ # @return [String]
15313
+ attr_accessor :creation_timestamp
15314
+
15315
+ # An optional description of this resource.
15316
+ # Corresponds to the JSON property `description`
15317
+ # @return [String]
15318
+ attr_accessor :description
15319
+
15320
+ # [Output Only] A unique identifier for this resource type. The server generates
15321
+ # this identifier.
15322
+ # Corresponds to the JSON property `id`
15323
+ # @return [Fixnum]
15324
+ attr_accessor :id
15325
+
15326
+ # [Output Only] The resource type, which is always compute#
15327
+ # instanceGroupManagerResizeRequest for resize requests.
15328
+ # Corresponds to the JSON property `kind`
15329
+ # @return [String]
15330
+ attr_accessor :kind
15331
+
15332
+ # The name of this resize request. The name must be 1-63 characters long, and
15333
+ # comply with RFC1035.
15334
+ # Corresponds to the JSON property `name`
15335
+ # @return [String]
15336
+ attr_accessor :name
15337
+
15338
+ # [Output Only] The URL for this resize request. The server defines this URL.
15339
+ # Corresponds to the JSON property `selfLink`
15340
+ # @return [String]
15341
+ attr_accessor :self_link
15342
+
15343
+ # [Output Only] Server-defined URL for this resource with the resource id.
15344
+ # Corresponds to the JSON property `selfLinkWithId`
15345
+ # @return [String]
15346
+ attr_accessor :self_link_with_id
15347
+
15348
+ # [Output only] Current state of the request.
15349
+ # Corresponds to the JSON property `state`
15350
+ # @return [String]
15351
+ attr_accessor :state
15352
+
15353
+ # [Output only] Status of the request. The Status message is aligned with
15354
+ # QueuedResource.status. ResizeRequest.queuing_policy contains the queuing
15355
+ # policy as provided by the user; it could have either valid_until_time or
15356
+ # valid_until_duration. ResizeRequest.status.queuing_policy always contains
15357
+ # absolute time as calculated by the server when the request is queued.
15358
+ # Corresponds to the JSON property `status`
15359
+ # @return [Google::Apis::ComputeBeta::InstanceGroupManagerResizeRequestStatus]
15360
+ attr_accessor :status
15361
+
15362
+ # [Output Only] The URL of a zone where the resize request is located. Populated
15363
+ # only for zonal resize requests.
15364
+ # Corresponds to the JSON property `zone`
15365
+ # @return [String]
15366
+ attr_accessor :zone
15367
+
15368
+ def initialize(**args)
15369
+ update!(**args)
15370
+ end
15371
+
15372
+ # Update properties of this object
15373
+ def update!(**args)
15374
+ @count = args[:count] if args.key?(:count)
15375
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
15376
+ @description = args[:description] if args.key?(:description)
15377
+ @id = args[:id] if args.key?(:id)
15378
+ @kind = args[:kind] if args.key?(:kind)
15379
+ @name = args[:name] if args.key?(:name)
15380
+ @self_link = args[:self_link] if args.key?(:self_link)
15381
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
15382
+ @state = args[:state] if args.key?(:state)
15383
+ @status = args[:status] if args.key?(:status)
15384
+ @zone = args[:zone] if args.key?(:zone)
15385
+ end
15386
+ end
15387
+
15388
+ #
15389
+ class InstanceGroupManagerResizeRequestStatus
15390
+ include Google::Apis::Core::Hashable
15391
+
15392
+ # Errors encountered during the queueing or provisioning phases of the
15393
+ # ResizeRequest.
15394
+ # Corresponds to the JSON property `error`
15395
+ # @return [Google::Apis::ComputeBeta::InstanceGroupManagerResizeRequestStatus::Error]
15396
+ attr_accessor :error
15397
+
15398
+ def initialize(**args)
15399
+ update!(**args)
15400
+ end
15401
+
15402
+ # Update properties of this object
15403
+ def update!(**args)
15404
+ @error = args[:error] if args.key?(:error)
15405
+ end
15406
+
15407
+ # Errors encountered during the queueing or provisioning phases of the
15408
+ # ResizeRequest.
15409
+ class Error
15410
+ include Google::Apis::Core::Hashable
15411
+
15412
+ # [Output Only] The array of errors encountered while processing this operation.
15413
+ # Corresponds to the JSON property `errors`
15414
+ # @return [Array<Google::Apis::ComputeBeta::InstanceGroupManagerResizeRequestStatus::Error::Error>]
15415
+ attr_accessor :errors
15416
+
15417
+ def initialize(**args)
15418
+ update!(**args)
15419
+ end
15420
+
15421
+ # Update properties of this object
15422
+ def update!(**args)
15423
+ @errors = args[:errors] if args.key?(:errors)
15424
+ end
15425
+
15426
+ #
15427
+ class Error
15428
+ include Google::Apis::Core::Hashable
15429
+
15430
+ # [Output Only] The error type identifier for this error.
15431
+ # Corresponds to the JSON property `code`
15432
+ # @return [String]
15433
+ attr_accessor :code
15434
+
15435
+ # [Output Only] An optional list of messages that contain the error details.
15436
+ # There is a set of defined message types to use for providing details.The
15437
+ # syntax depends on the error code. For example, QuotaExceededInfo will have
15438
+ # details when the error code is QUOTA_EXCEEDED.
15439
+ # Corresponds to the JSON property `errorDetails`
15440
+ # @return [Array<Google::Apis::ComputeBeta::InstanceGroupManagerResizeRequestStatus::Error::Error::ErrorDetail>]
15441
+ attr_accessor :error_details
15442
+
15443
+ # [Output Only] Indicates the field in the request that caused the error. This
15444
+ # property is optional.
15445
+ # Corresponds to the JSON property `location`
15446
+ # @return [String]
15447
+ attr_accessor :location
15448
+
15449
+ # [Output Only] An optional, human-readable error message.
15450
+ # Corresponds to the JSON property `message`
15451
+ # @return [String]
15452
+ attr_accessor :message
15453
+
15454
+ def initialize(**args)
15455
+ update!(**args)
15456
+ end
15457
+
15458
+ # Update properties of this object
15459
+ def update!(**args)
15460
+ @code = args[:code] if args.key?(:code)
15461
+ @error_details = args[:error_details] if args.key?(:error_details)
15462
+ @location = args[:location] if args.key?(:location)
15463
+ @message = args[:message] if args.key?(:message)
15464
+ end
15465
+
15466
+ #
15467
+ class ErrorDetail
15468
+ include Google::Apis::Core::Hashable
15469
+
15470
+ # Describes the cause of the error with structured details. Example of an error
15471
+ # when contacting the "pubsub.googleapis.com" API when it is not enabled: ` "
15472
+ # reason": "API_DISABLED" "domain": "googleapis.com" "metadata": ` "resource": "
15473
+ # projects/123", "service": "pubsub.googleapis.com" ` ` This response indicates
15474
+ # that the pubsub.googleapis.com API is not enabled. Example of an error that is
15475
+ # returned when attempting to create a Spanner instance in a region that is out
15476
+ # of stock: ` "reason": "STOCKOUT" "domain": "spanner.googleapis.com", "metadata"
15477
+ # : ` "availableRegions": "us-central1,us-east2" ` `
15478
+ # Corresponds to the JSON property `errorInfo`
15479
+ # @return [Google::Apis::ComputeBeta::ErrorInfo]
15480
+ attr_accessor :error_info
15481
+
15482
+ # Provides links to documentation or for performing an out of band action. For
15483
+ # example, if a quota check failed with an error indicating the calling project
15484
+ # hasn't enabled the accessed service, this can contain a URL pointing directly
15485
+ # to the right place in the developer console to flip the bit.
15486
+ # Corresponds to the JSON property `help`
15487
+ # @return [Google::Apis::ComputeBeta::Help]
15488
+ attr_accessor :help
15489
+
15490
+ # Provides a localized error message that is safe to return to the user which
15491
+ # can be attached to an RPC error.
15492
+ # Corresponds to the JSON property `localizedMessage`
15493
+ # @return [Google::Apis::ComputeBeta::LocalizedMessage]
15494
+ attr_accessor :localized_message
15495
+
15496
+ # Additional details for quota exceeded error for resource quota.
15497
+ # Corresponds to the JSON property `quotaInfo`
15498
+ # @return [Google::Apis::ComputeBeta::QuotaExceededInfo]
15499
+ attr_accessor :quota_info
15500
+
15501
+ def initialize(**args)
15502
+ update!(**args)
15503
+ end
15504
+
15505
+ # Update properties of this object
15506
+ def update!(**args)
15507
+ @error_info = args[:error_info] if args.key?(:error_info)
15508
+ @help = args[:help] if args.key?(:help)
15509
+ @localized_message = args[:localized_message] if args.key?(:localized_message)
15510
+ @quota_info = args[:quota_info] if args.key?(:quota_info)
15511
+ end
15512
+ end
15513
+ end
15514
+ end
15515
+ end
15516
+
15517
+ # [Output Only] A list of resize requests.
15518
+ class InstanceGroupManagerResizeRequestsListResponse
15519
+ include Google::Apis::Core::Hashable
15520
+
15521
+ # [Output Only] Unique identifier for the resource; defined by the server.
15522
+ # Corresponds to the JSON property `id`
15523
+ # @return [String]
15524
+ attr_accessor :id
15525
+
15526
+ # A list of resize request resources.
15527
+ # Corresponds to the JSON property `items`
15528
+ # @return [Array<Google::Apis::ComputeBeta::InstanceGroupManagerResizeRequest>]
15529
+ attr_accessor :items
15530
+
15531
+ # [Output Only] Type of the resource. Always compute#
15532
+ # instanceGroupManagerResizeRequestList for a list of resize requests.
15533
+ # Corresponds to the JSON property `kind`
15534
+ # @return [String]
15535
+ attr_accessor :kind
15536
+
15537
+ # [Output Only] This token allows you to get the next page of results for list
15538
+ # requests. If the number of results is larger than maxResults, use the
15539
+ # nextPageToken as a value for the query parameter pageToken in the next list
15540
+ # request. Subsequent list requests will have their own nextPageToken to
15541
+ # continue paging through the results.
15542
+ # Corresponds to the JSON property `nextPageToken`
15543
+ # @return [String]
15544
+ attr_accessor :next_page_token
15545
+
15546
+ # [Output Only] Server-defined URL for this resource.
15547
+ # Corresponds to the JSON property `selfLink`
15548
+ # @return [String]
15549
+ attr_accessor :self_link
15550
+
15551
+ # [Output Only] Informational warning message.
15552
+ # Corresponds to the JSON property `warning`
15553
+ # @return [Google::Apis::ComputeBeta::InstanceGroupManagerResizeRequestsListResponse::Warning]
15554
+ attr_accessor :warning
15555
+
15556
+ def initialize(**args)
15557
+ update!(**args)
15558
+ end
15559
+
15560
+ # Update properties of this object
15561
+ def update!(**args)
15562
+ @id = args[:id] if args.key?(:id)
15563
+ @items = args[:items] if args.key?(:items)
15564
+ @kind = args[:kind] if args.key?(:kind)
15565
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
15566
+ @self_link = args[:self_link] if args.key?(:self_link)
15567
+ @warning = args[:warning] if args.key?(:warning)
15568
+ end
15569
+
15570
+ # [Output Only] Informational warning message.
15571
+ class Warning
15572
+ include Google::Apis::Core::Hashable
15573
+
15574
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
15575
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
15576
+ # Corresponds to the JSON property `code`
15577
+ # @return [String]
15578
+ attr_accessor :code
15579
+
15580
+ # [Output Only] Metadata about this warning in key: value format. For example: "
15581
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
15582
+ # Corresponds to the JSON property `data`
15583
+ # @return [Array<Google::Apis::ComputeBeta::InstanceGroupManagerResizeRequestsListResponse::Warning::Datum>]
15584
+ attr_accessor :data
15585
+
15586
+ # [Output Only] A human-readable description of the warning code.
15587
+ # Corresponds to the JSON property `message`
15588
+ # @return [String]
15589
+ attr_accessor :message
15590
+
15591
+ def initialize(**args)
15592
+ update!(**args)
15593
+ end
15594
+
15595
+ # Update properties of this object
15596
+ def update!(**args)
15597
+ @code = args[:code] if args.key?(:code)
15598
+ @data = args[:data] if args.key?(:data)
15599
+ @message = args[:message] if args.key?(:message)
15600
+ end
15601
+
15602
+ #
15603
+ class Datum
15604
+ include Google::Apis::Core::Hashable
15605
+
15606
+ # [Output Only] A key that provides more detail on the warning being returned.
15607
+ # For example, for warnings where there are no results in a list request for a
15608
+ # particular zone, this key might be scope and the key value might be the zone
15609
+ # name. Other examples might be a key indicating a deprecated resource and a
15610
+ # suggested replacement, or a warning about invalid network settings (for
15611
+ # example, if an instance attempts to perform IP forwarding but is not enabled
15612
+ # for IP forwarding).
15613
+ # Corresponds to the JSON property `key`
15614
+ # @return [String]
15615
+ attr_accessor :key
15616
+
15617
+ # [Output Only] A warning data value corresponding to the key.
15618
+ # Corresponds to the JSON property `value`
15619
+ # @return [String]
15620
+ attr_accessor :value
15621
+
15622
+ def initialize(**args)
15623
+ update!(**args)
15624
+ end
15625
+
15626
+ # Update properties of this object
15627
+ def update!(**args)
15628
+ @key = args[:key] if args.key?(:key)
15629
+ @value = args[:value] if args.key?(:value)
15630
+ end
15631
+ end
15632
+ end
15633
+ end
15634
+
15275
15635
  #
15276
15636
  class InstanceGroupManagerStatus
15277
15637
  include Google::Apis::Core::Hashable
@@ -15497,11 +15857,9 @@ module Google
15497
15857
  # @return [String]
15498
15858
  attr_accessor :replacement_method
15499
15859
 
15500
- # The type of update process. You can specify either PROACTIVE so that the
15501
- # instance group manager proactively executes actions in order to bring
15502
- # instances to their target versions or OPPORTUNISTIC so that no action is
15503
- # proactively executed but the update will be performed as part of other actions
15504
- # (for example, resizes or recreateInstances calls).
15860
+ # The type of update process. You can specify either PROACTIVE so that the MIG
15861
+ # automatically updates VMs to the latest configurations or OPPORTUNISTIC so
15862
+ # that you can select the VMs that you want to update.
15505
15863
  # Corresponds to the JSON property `type`
15506
15864
  # @return [String]
15507
15865
  attr_accessor :type
@@ -18511,6 +18869,15 @@ module Google
18511
18869
  attr_accessor :admin_enabled
18512
18870
  alias_method :admin_enabled?, :admin_enabled
18513
18871
 
18872
+ # [Output only] List of features available for this Interconnect connection,
18873
+ # which can take one of the following values: - MACSEC If present then the
18874
+ # interconnect was created on MACsec capable hardware ports. If not present then
18875
+ # the interconnect is provisioned on non-MACsec capable ports and MACsec
18876
+ # enablement will fail.
18877
+ # Corresponds to the JSON property `availableFeatures`
18878
+ # @return [Array<String>]
18879
+ attr_accessor :available_features
18880
+
18514
18881
  # [Output Only] A list of CircuitInfo objects, that describe the individual
18515
18882
  # circuits in this LAG.
18516
18883
  # Corresponds to the JSON property `circuitInfos`
@@ -18611,6 +18978,19 @@ module Google
18611
18978
  # @return [String]
18612
18979
  attr_accessor :location
18613
18980
 
18981
+ # Configuration information for enabling Media Access Control security (MACsec)
18982
+ # on this Interconnect connection between Google and your on-premises router.
18983
+ # Corresponds to the JSON property `macsec`
18984
+ # @return [Google::Apis::ComputeBeta::InterconnectMacsec]
18985
+ attr_accessor :macsec
18986
+
18987
+ # Enable or disable MACsec on this Interconnect connection. MACsec enablement
18988
+ # fails if the MACsec object is not specified.
18989
+ # Corresponds to the JSON property `macsecEnabled`
18990
+ # @return [Boolean]
18991
+ attr_accessor :macsec_enabled
18992
+ alias_method :macsec_enabled?, :macsec_enabled
18993
+
18614
18994
  # Name of the resource. Provided by the client when the resource is created. The
18615
18995
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
18616
18996
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -18659,6 +19039,16 @@ module Google
18659
19039
  # @return [String]
18660
19040
  attr_accessor :remote_location
18661
19041
 
19042
+ # Optional. List of features requested for this Interconnect connection, which
19043
+ # can take one of the following values: - MACSEC If specified then the
19044
+ # interconnect will be created on MACsec capable hardware ports. If not
19045
+ # specified, the default value is false, which will allocate non-MACsec capable
19046
+ # ports first if available. This parameter can only be provided during
19047
+ # interconnect INSERT and cannot be changed using interconnect PATCH.
19048
+ # Corresponds to the JSON property `requestedFeatures`
19049
+ # @return [Array<String>]
19050
+ attr_accessor :requested_features
19051
+
18662
19052
  # Target number of physical links in the link bundle, as requested by the
18663
19053
  # customer.
18664
19054
  # Corresponds to the JSON property `requestedLinkCount`
@@ -18694,6 +19084,7 @@ module Google
18694
19084
  # Update properties of this object
18695
19085
  def update!(**args)
18696
19086
  @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
19087
+ @available_features = args[:available_features] if args.key?(:available_features)
18697
19088
  @circuit_infos = args[:circuit_infos] if args.key?(:circuit_infos)
18698
19089
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
18699
19090
  @customer_name = args[:customer_name] if args.key?(:customer_name)
@@ -18709,12 +19100,15 @@ module Google
18709
19100
  @labels = args[:labels] if args.key?(:labels)
18710
19101
  @link_type = args[:link_type] if args.key?(:link_type)
18711
19102
  @location = args[:location] if args.key?(:location)
19103
+ @macsec = args[:macsec] if args.key?(:macsec)
19104
+ @macsec_enabled = args[:macsec_enabled] if args.key?(:macsec_enabled)
18712
19105
  @name = args[:name] if args.key?(:name)
18713
19106
  @noc_contact_email = args[:noc_contact_email] if args.key?(:noc_contact_email)
18714
19107
  @operational_status = args[:operational_status] if args.key?(:operational_status)
18715
19108
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
18716
19109
  @provisioned_link_count = args[:provisioned_link_count] if args.key?(:provisioned_link_count)
18717
19110
  @remote_location = args[:remote_location] if args.key?(:remote_location)
19111
+ @requested_features = args[:requested_features] if args.key?(:requested_features)
18718
19112
  @requested_link_count = args[:requested_link_count] if args.key?(:requested_link_count)
18719
19113
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
18720
19114
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -19587,8 +19981,9 @@ module Google
19587
19981
  end
19588
19982
  end
19589
19983
 
19590
- # Diagnostics information about interconnect, contains detailed and current
19591
- # technical information about Google's side of the connection.
19984
+ # Diagnostics information about the Interconnect connection, which contains
19985
+ # detailed and current technical information about Google's side of the
19986
+ # connection.
19592
19987
  class InterconnectDiagnostics
19593
19988
  include Google::Apis::Core::Hashable
19594
19989
 
@@ -19752,6 +20147,11 @@ module Google
19752
20147
  # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsLinkLacpStatus]
19753
20148
  attr_accessor :lacp_status
19754
20149
 
20150
+ # Describes the status of MACsec encryption on the link.
20151
+ # Corresponds to the JSON property `macsec`
20152
+ # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsMacsecStatus]
20153
+ attr_accessor :macsec
20154
+
19755
20155
  # The operational status of the link.
19756
20156
  # Corresponds to the JSON property `operationalStatus`
19757
20157
  # @return [String]
@@ -19779,12 +20179,40 @@ module Google
19779
20179
  @circuit_id = args[:circuit_id] if args.key?(:circuit_id)
19780
20180
  @google_demarc = args[:google_demarc] if args.key?(:google_demarc)
19781
20181
  @lacp_status = args[:lacp_status] if args.key?(:lacp_status)
20182
+ @macsec = args[:macsec] if args.key?(:macsec)
19782
20183
  @operational_status = args[:operational_status] if args.key?(:operational_status)
19783
20184
  @receiving_optical_power = args[:receiving_optical_power] if args.key?(:receiving_optical_power)
19784
20185
  @transmitting_optical_power = args[:transmitting_optical_power] if args.key?(:transmitting_optical_power)
19785
20186
  end
19786
20187
  end
19787
20188
 
20189
+ # Describes the status of MACsec encryption on the link.
20190
+ class InterconnectDiagnosticsMacsecStatus
20191
+ include Google::Apis::Core::Hashable
20192
+
20193
+ # Indicates the Connectivity Association Key Name (CKN) currently being used if
20194
+ # MACsec is operational.
20195
+ # Corresponds to the JSON property `ckn`
20196
+ # @return [String]
20197
+ attr_accessor :ckn
20198
+
20199
+ # Indicates whether or not MACsec is operational on this link.
20200
+ # Corresponds to the JSON property `operational`
20201
+ # @return [Boolean]
20202
+ attr_accessor :operational
20203
+ alias_method :operational?, :operational
20204
+
20205
+ def initialize(**args)
20206
+ update!(**args)
20207
+ end
20208
+
20209
+ # Update properties of this object
20210
+ def update!(**args)
20211
+ @ckn = args[:ckn] if args.key?(:ckn)
20212
+ @operational = args[:operational] if args.key?(:operational)
20213
+ end
20214
+ end
20215
+
19788
20216
  # Response to the list request, and contains a list of interconnects.
19789
20217
  class InterconnectList
19790
20218
  include Google::Apis::Core::Hashable
@@ -19923,6 +20351,19 @@ module Google
19923
20351
  # @return [String]
19924
20352
  attr_accessor :availability_zone
19925
20353
 
20354
+ # [Output only] List of features available at this InterconnectLocation, which
20355
+ # can take one of the following values: - MACSEC
20356
+ # Corresponds to the JSON property `availableFeatures`
20357
+ # @return [Array<String>]
20358
+ attr_accessor :available_features
20359
+
20360
+ # [Output only] List of link types available at this InterconnectLocation, which
20361
+ # can take one of the following values: - LINK_TYPE_ETHERNET_10G_LR -
20362
+ # LINK_TYPE_ETHERNET_100G_LR
20363
+ # Corresponds to the JSON property `availableLinkTypes`
20364
+ # @return [Array<String>]
20365
+ attr_accessor :available_link_types
20366
+
19926
20367
  # [Output Only] Metropolitan area designator that indicates which city an
19927
20368
  # interconnect is located. For example: "Chicago, IL", "Amsterdam, Netherlands".
19928
20369
  # Corresponds to the JSON property `city`
@@ -20013,6 +20454,8 @@ module Google
20013
20454
  def update!(**args)
20014
20455
  @address = args[:address] if args.key?(:address)
20015
20456
  @availability_zone = args[:availability_zone] if args.key?(:availability_zone)
20457
+ @available_features = args[:available_features] if args.key?(:available_features)
20458
+ @available_link_types = args[:available_link_types] if args.key?(:available_link_types)
20016
20459
  @city = args[:city] if args.key?(:city)
20017
20460
  @continent = args[:continent] if args.key?(:continent)
20018
20461
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
@@ -20181,6 +20624,137 @@ module Google
20181
20624
  end
20182
20625
  end
20183
20626
 
20627
+ # Configuration information for enabling Media Access Control security (MACsec)
20628
+ # on this Interconnect connection between Google and your on-premises router.
20629
+ class InterconnectMacsec
20630
+ include Google::Apis::Core::Hashable
20631
+
20632
+ # If set to true, the Interconnect connection is configured with a should-secure
20633
+ # MACsec security policy, that allows the Google router to fallback to cleartext
20634
+ # traffic if the MKA session cannot be established. By default, the Interconnect
20635
+ # connection is configured with a must-secure security policy that drops all
20636
+ # traffic if the MKA session cannot be established with your router.
20637
+ # Corresponds to the JSON property `failOpen`
20638
+ # @return [Boolean]
20639
+ attr_accessor :fail_open
20640
+ alias_method :fail_open?, :fail_open
20641
+
20642
+ # Required. A keychain placeholder describing a set of named key objects along
20643
+ # with their start times. A MACsec CKN/CAK will be generated for each key in the
20644
+ # key chain. Google router will automatically pick the key with the most recent
20645
+ # startTime when establishing or re-establishing a MACsec secure link.
20646
+ # Corresponds to the JSON property `preSharedKeys`
20647
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectMacsecPreSharedKey>]
20648
+ attr_accessor :pre_shared_keys
20649
+
20650
+ def initialize(**args)
20651
+ update!(**args)
20652
+ end
20653
+
20654
+ # Update properties of this object
20655
+ def update!(**args)
20656
+ @fail_open = args[:fail_open] if args.key?(:fail_open)
20657
+ @pre_shared_keys = args[:pre_shared_keys] if args.key?(:pre_shared_keys)
20658
+ end
20659
+ end
20660
+
20661
+ # MACsec configuration information for the Interconnect connection. Contains the
20662
+ # generated Connectivity Association Key Name (CKN) and the key (CAK) for this
20663
+ # Interconnect connection.
20664
+ class InterconnectMacsecConfig
20665
+ include Google::Apis::Core::Hashable
20666
+
20667
+ # A keychain placeholder describing a set of named key objects along with their
20668
+ # start times. A MACsec CKN/CAK is generated for each key in the key chain.
20669
+ # Google router automatically picks the key with the most recent startTime when
20670
+ # establishing or re-establishing a MACsec secure link.
20671
+ # Corresponds to the JSON property `preSharedKeys`
20672
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectMacsecConfigPreSharedKey>]
20673
+ attr_accessor :pre_shared_keys
20674
+
20675
+ def initialize(**args)
20676
+ update!(**args)
20677
+ end
20678
+
20679
+ # Update properties of this object
20680
+ def update!(**args)
20681
+ @pre_shared_keys = args[:pre_shared_keys] if args.key?(:pre_shared_keys)
20682
+ end
20683
+ end
20684
+
20685
+ # Describes a pre-shared key used to setup MACsec in static connectivity
20686
+ # association key (CAK) mode.
20687
+ class InterconnectMacsecConfigPreSharedKey
20688
+ include Google::Apis::Core::Hashable
20689
+
20690
+ # An auto-generated Connectivity Association Key (CAK) for this key.
20691
+ # Corresponds to the JSON property `cak`
20692
+ # @return [String]
20693
+ attr_accessor :cak
20694
+
20695
+ # An auto-generated Connectivity Association Key Name (CKN) for this key.
20696
+ # Corresponds to the JSON property `ckn`
20697
+ # @return [String]
20698
+ attr_accessor :ckn
20699
+
20700
+ # User provided name for this pre-shared key.
20701
+ # Corresponds to the JSON property `name`
20702
+ # @return [String]
20703
+ attr_accessor :name
20704
+
20705
+ # User provided timestamp on or after which this key is valid.
20706
+ # Corresponds to the JSON property `startTime`
20707
+ # @return [String]
20708
+ attr_accessor :start_time
20709
+
20710
+ def initialize(**args)
20711
+ update!(**args)
20712
+ end
20713
+
20714
+ # Update properties of this object
20715
+ def update!(**args)
20716
+ @cak = args[:cak] if args.key?(:cak)
20717
+ @ckn = args[:ckn] if args.key?(:ckn)
20718
+ @name = args[:name] if args.key?(:name)
20719
+ @start_time = args[:start_time] if args.key?(:start_time)
20720
+ end
20721
+ end
20722
+
20723
+ # Describes a pre-shared key used to setup MACsec in static connectivity
20724
+ # association key (CAK) mode.
20725
+ class InterconnectMacsecPreSharedKey
20726
+ include Google::Apis::Core::Hashable
20727
+
20728
+ # Required. A name for this pre-shared key. The name must be 1-63 characters
20729
+ # long, and comply with RFC1035. Specifically, the name must be 1-63 characters
20730
+ # long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
20731
+ # the first character must be a lowercase letter, and all following characters
20732
+ # must be a dash, lowercase letter, or digit, except the last character, which
20733
+ # cannot be a dash.
20734
+ # Corresponds to the JSON property `name`
20735
+ # @return [String]
20736
+ attr_accessor :name
20737
+
20738
+ # A RFC3339 timestamp on or after which the key is valid. startTime can be in
20739
+ # the future. If the keychain has a single key, startTime can be omitted. If the
20740
+ # keychain has multiple keys, startTime is mandatory for each key. The start
20741
+ # times of keys must be in increasing order. The start times of two consecutive
20742
+ # keys must be at least 6 hours apart.
20743
+ # Corresponds to the JSON property `startTime`
20744
+ # @return [String]
20745
+ attr_accessor :start_time
20746
+
20747
+ def initialize(**args)
20748
+ update!(**args)
20749
+ end
20750
+
20751
+ # Update properties of this object
20752
+ def update!(**args)
20753
+ @name = args[:name] if args.key?(:name)
20754
+ @start_time = args[:start_time] if args.key?(:start_time)
20755
+ end
20756
+ end
20757
+
20184
20758
  # Description of a planned outage on this Interconnect.
20185
20759
  class InterconnectOutageNotification
20186
20760
  include Google::Apis::Core::Hashable
@@ -20625,8 +21199,9 @@ module Google
20625
21199
  class InterconnectsGetDiagnosticsResponse
20626
21200
  include Google::Apis::Core::Hashable
20627
21201
 
20628
- # Diagnostics information about interconnect, contains detailed and current
20629
- # technical information about Google's side of the connection.
21202
+ # Diagnostics information about the Interconnect connection, which contains
21203
+ # detailed and current technical information about Google's side of the
21204
+ # connection.
20630
21205
  # Corresponds to the JSON property `result`
20631
21206
  # @return [Google::Apis::ComputeBeta::InterconnectDiagnostics]
20632
21207
  attr_accessor :result
@@ -20641,6 +21216,33 @@ module Google
20641
21216
  end
20642
21217
  end
20643
21218
 
21219
+ # Response for the InterconnectsGetMacsecConfigRequest.
21220
+ class InterconnectsGetMacsecConfigResponse
21221
+ include Google::Apis::Core::Hashable
21222
+
21223
+ # end_interface: MixerGetResponseWithEtagBuilder
21224
+ # Corresponds to the JSON property `etag`
21225
+ # @return [String]
21226
+ attr_accessor :etag
21227
+
21228
+ # MACsec configuration information for the Interconnect connection. Contains the
21229
+ # generated Connectivity Association Key Name (CKN) and the key (CAK) for this
21230
+ # Interconnect connection.
21231
+ # Corresponds to the JSON property `result`
21232
+ # @return [Google::Apis::ComputeBeta::InterconnectMacsecConfig]
21233
+ attr_accessor :result
21234
+
21235
+ def initialize(**args)
21236
+ update!(**args)
21237
+ end
21238
+
21239
+ # Update properties of this object
21240
+ def update!(**args)
21241
+ @etag = args[:etag] if args.key?(:etag)
21242
+ @result = args[:result] if args.key?(:result)
21243
+ end
21244
+ end
21245
+
20644
21246
  # Represents a License resource. A License represents billing and aggregate
20645
21247
  # usage data for public and marketplace images. *Caution* This resource is
20646
21248
  # intended for use only by third-party partners who are creating Cloud
@@ -22053,6 +22655,12 @@ module Google
22053
22655
  # @return [Google::Apis::ComputeBeta::ManagedInstanceLastAttempt]
22054
22656
  attr_accessor :last_attempt
22055
22657
 
22658
+ # [Output Only] The name of the instance. The name will always exist even if the
22659
+ # instance has not yet been created.
22660
+ # Corresponds to the JSON property `name`
22661
+ # @return [String]
22662
+ attr_accessor :name
22663
+
22056
22664
  # Preserved state for a given instance.
22057
22665
  # Corresponds to the JSON property `preservedStateFromConfig`
22058
22666
  # @return [Google::Apis::ComputeBeta::PreservedState]
@@ -22081,6 +22689,7 @@ module Google
22081
22689
  @instance_health = args[:instance_health] if args.key?(:instance_health)
22082
22690
  @instance_status = args[:instance_status] if args.key?(:instance_status)
22083
22691
  @last_attempt = args[:last_attempt] if args.key?(:last_attempt)
22692
+ @name = args[:name] if args.key?(:name)
22084
22693
  @preserved_state_from_config = args[:preserved_state_from_config] if args.key?(:preserved_state_from_config)
22085
22694
  @preserved_state_from_policy = args[:preserved_state_from_policy] if args.key?(:preserved_state_from_policy)
22086
22695
  @version = args[:version] if args.key?(:version)
@@ -27782,45 +28391,38 @@ module Google
27782
28391
  # @return [Google::Apis::ComputeBeta::Duration]
27783
28392
  attr_accessor :base_ejection_time
27784
28393
 
27785
- # Number of errors before a host is ejected from the connection pool. When the
27786
- # backend host is accessed over HTTP, a 5xx return code qualifies as an error.
27787
- # Defaults to 5. Not supported when the backend service is referenced by a URL
27788
- # map that is bound to target gRPC proxy that has validateForProxyless field set
27789
- # to true.
28394
+ # Number of consecutive errors before a backend endpoint is ejected from the
28395
+ # load balancing pool. When the backend endpoint is accessed over HTTP, a 5xx
28396
+ # return code qualifies as an error. Defaults to 5.
27790
28397
  # Corresponds to the JSON property `consecutiveErrors`
27791
28398
  # @return [Fixnum]
27792
28399
  attr_accessor :consecutive_errors
27793
28400
 
27794
28401
  # The number of consecutive gateway failures (502, 503, 504 status or connection
27795
28402
  # errors that are mapped to one of those status codes) before a consecutive
27796
- # gateway failure ejection occurs. Defaults to 3. Not supported when the backend
27797
- # service is referenced by a URL map that is bound to target gRPC proxy that has
27798
- # validateForProxyless field set to true.
28403
+ # gateway failure ejection occurs. Defaults to 3.
27799
28404
  # Corresponds to the JSON property `consecutiveGatewayFailure`
27800
28405
  # @return [Fixnum]
27801
28406
  attr_accessor :consecutive_gateway_failure
27802
28407
 
27803
- # The percentage chance that a host will be actually ejected when an outlier
28408
+ # The percentage chance that a backend endpoint will be ejected when an outlier
27804
28409
  # status is detected through consecutive 5xx. This setting can be used to
27805
- # disable ejection or to ramp it up slowly. Defaults to 0. Not supported when
27806
- # the backend service is referenced by a URL map that is bound to target gRPC
27807
- # proxy that has validateForProxyless field set to true.
28410
+ # disable ejection or to ramp it up slowly. Defaults to 0.
27808
28411
  # Corresponds to the JSON property `enforcingConsecutiveErrors`
27809
28412
  # @return [Fixnum]
27810
28413
  attr_accessor :enforcing_consecutive_errors
27811
28414
 
27812
- # The percentage chance that a host will be actually ejected when an outlier
28415
+ # The percentage chance that a backend endpoint will be ejected when an outlier
27813
28416
  # status is detected through consecutive gateway failures. This setting can be
27814
- # used to disable ejection or to ramp it up slowly. Defaults to 100. Not
27815
- # supported when the backend service is referenced by a URL map that is bound to
27816
- # target gRPC proxy that has validateForProxyless field set to true.
28417
+ # used to disable ejection or to ramp it up slowly. Defaults to 100.
27817
28418
  # Corresponds to the JSON property `enforcingConsecutiveGatewayFailure`
27818
28419
  # @return [Fixnum]
27819
28420
  attr_accessor :enforcing_consecutive_gateway_failure
27820
28421
 
27821
- # The percentage chance that a host will be actually ejected when an outlier
28422
+ # The percentage chance that a backend endpoint will be ejected when an outlier
27822
28423
  # status is detected through success rate statistics. This setting can be used
27823
- # to disable ejection or to ramp it up slowly. Defaults to 100.
28424
+ # to disable ejection or to ramp it up slowly. Defaults to 100. Not supported
28425
+ # when the backend service uses Serverless NEG.
27824
28426
  # Corresponds to the JSON property `enforcingSuccessRate`
27825
28427
  # @return [Fixnum]
27826
28428
  attr_accessor :enforcing_success_rate
@@ -27833,25 +28435,29 @@ module Google
27833
28435
  # @return [Google::Apis::ComputeBeta::Duration]
27834
28436
  attr_accessor :interval
27835
28437
 
27836
- # Maximum percentage of hosts in the load balancing pool for the backend service
27837
- # that can be ejected. Defaults to 50%.
28438
+ # Maximum percentage of backend endpoints in the load balancing pool for the
28439
+ # backend service that can be ejected if the ejection conditions are met.
28440
+ # Defaults to 50%.
27838
28441
  # Corresponds to the JSON property `maxEjectionPercent`
27839
28442
  # @return [Fixnum]
27840
28443
  attr_accessor :max_ejection_percent
27841
28444
 
27842
- # The number of hosts in a cluster that must have enough request volume to
27843
- # detect success rate outliers. If the number of hosts is less than this setting,
27844
- # outlier detection via success rate statistics is not performed for any host
27845
- # in the cluster. Defaults to 5.
28445
+ # The number of backend endpoints in the load balancing pool that must have
28446
+ # enough request volume to detect success rate outliers. If the number of
28447
+ # backend endpoints is fewer than this setting, outlier detection via success
28448
+ # rate statistics is not performed for any backend endpoint in the load
28449
+ # balancing pool. Defaults to 5. Not supported when the backend service uses
28450
+ # Serverless NEG.
27846
28451
  # Corresponds to the JSON property `successRateMinimumHosts`
27847
28452
  # @return [Fixnum]
27848
28453
  attr_accessor :success_rate_minimum_hosts
27849
28454
 
27850
28455
  # The minimum number of total requests that must be collected in one interval (
27851
- # as defined by the interval duration above) to include this host in success
27852
- # rate based outlier detection. If the volume is lower than this setting,
27853
- # outlier detection via success rate statistics is not performed for that host.
27854
- # Defaults to 100.
28456
+ # as defined by the interval duration above) to include this backend endpoint in
28457
+ # success rate based outlier detection. If the volume is lower than this setting,
28458
+ # outlier detection via success rate statistics is not performed for that
28459
+ # backend endpoint. Defaults to 100. Not supported when the backend service uses
28460
+ # Serverless NEG.
27855
28461
  # Corresponds to the JSON property `successRateRequestVolume`
27856
28462
  # @return [Fixnum]
27857
28463
  attr_accessor :success_rate_request_volume
@@ -27859,9 +28465,10 @@ module Google
27859
28465
  # This factor is used to determine the ejection threshold for success rate
27860
28466
  # outlier ejection. The ejection threshold is the difference between the mean
27861
28467
  # success rate, and the product of this factor and the standard deviation of the
27862
- # mean success rate: mean - (stdev * success_rate_stdev_factor). This factor is
28468
+ # mean success rate: mean - (stdev * successRateStdevFactor). This factor is
27863
28469
  # divided by a thousand to get a double. That is, if the desired factor is 1.9,
27864
- # the runtime value should be 1900. Defaults to 1900.
28470
+ # the runtime value should be 1900. Defaults to 1900. Not supported when the
28471
+ # backend service uses Serverless NEG.
27865
28472
  # Corresponds to the JSON property `successRateStdevFactor`
27866
28473
  # @return [Fixnum]
27867
28474
  attr_accessor :success_rate_stdev_factor
@@ -29069,6 +29676,13 @@ module Google
29069
29676
  # @return [String]
29070
29677
  attr_accessor :kind
29071
29678
 
29679
+ # [Output Only] The Cloud Armor Managed Protection (CAMP) tier for this project.
29680
+ # It can be one of the following values: CA_STANDARD, CAMP_PLUS_MONTHLY. If this
29681
+ # field is not specified, it is assumed to be CA_STANDARD.
29682
+ # Corresponds to the JSON property `managedProtectionTier`
29683
+ # @return [String]
29684
+ attr_accessor :managed_protection_tier
29685
+
29072
29686
  # The project ID. For example: my-example-project. Use the project ID to make
29073
29687
  # requests to Compute Engine.
29074
29688
  # Corresponds to the JSON property `name`
@@ -29117,6 +29731,7 @@ module Google
29117
29731
  @enabled_features = args[:enabled_features] if args.key?(:enabled_features)
29118
29732
  @id = args[:id] if args.key?(:id)
29119
29733
  @kind = args[:kind] if args.key?(:kind)
29734
+ @managed_protection_tier = args[:managed_protection_tier] if args.key?(:managed_protection_tier)
29120
29735
  @name = args[:name] if args.key?(:name)
29121
29736
  @quotas = args[:quotas] if args.key?(:quotas)
29122
29737
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -29241,6 +29856,25 @@ module Google
29241
29856
  end
29242
29857
  end
29243
29858
 
29859
+ #
29860
+ class ProjectsSetManagedProtectionTierRequest
29861
+ include Google::Apis::Core::Hashable
29862
+
29863
+ # Managed protection tier to be set.
29864
+ # Corresponds to the JSON property `managedProtectionTier`
29865
+ # @return [String]
29866
+ attr_accessor :managed_protection_tier
29867
+
29868
+ def initialize(**args)
29869
+ update!(**args)
29870
+ end
29871
+
29872
+ # Update properties of this object
29873
+ def update!(**args)
29874
+ @managed_protection_tier = args[:managed_protection_tier] if args.key?(:managed_protection_tier)
29875
+ end
29876
+ end
29877
+
29244
29878
  # A public advertised prefix represents an aggregated IP prefix or netblock
29245
29879
  # which customers bring to cloud. The IP prefix is a single unit of route
29246
29880
  # advertisement and is announced globally to the internet.
@@ -30076,6 +30710,12 @@ module Google
30076
30710
  # @return [Hash<String,String>]
30077
30711
  attr_accessor :dimensions
30078
30712
 
30713
+ # Future quota limit being rolled out. The limit's unit depends on the quota
30714
+ # type or metric.
30715
+ # Corresponds to the JSON property `futureLimit`
30716
+ # @return [Float]
30717
+ attr_accessor :future_limit
30718
+
30079
30719
  # Current effective quota limit. The limit's unit depends on the quota type or
30080
30720
  # metric.
30081
30721
  # Corresponds to the JSON property `limit`
@@ -30092,6 +30732,11 @@ module Google
30092
30732
  # @return [String]
30093
30733
  attr_accessor :metric_name
30094
30734
 
30735
+ # Rollout status of the future quota limit.
30736
+ # Corresponds to the JSON property `rolloutStatus`
30737
+ # @return [String]
30738
+ attr_accessor :rollout_status
30739
+
30095
30740
  def initialize(**args)
30096
30741
  update!(**args)
30097
30742
  end
@@ -30099,9 +30744,11 @@ module Google
30099
30744
  # Update properties of this object
30100
30745
  def update!(**args)
30101
30746
  @dimensions = args[:dimensions] if args.key?(:dimensions)
30747
+ @future_limit = args[:future_limit] if args.key?(:future_limit)
30102
30748
  @limit = args[:limit] if args.key?(:limit)
30103
30749
  @limit_name = args[:limit_name] if args.key?(:limit_name)
30104
30750
  @metric_name = args[:metric_name] if args.key?(:metric_name)
30751
+ @rollout_status = args[:rollout_status] if args.key?(:rollout_status)
30105
30752
  end
30106
30753
  end
30107
30754
 
@@ -31593,6 +32240,44 @@ module Google
31593
32240
  end
31594
32241
  end
31595
32242
 
32243
+ #
32244
+ class RegionNetworkEndpointGroupsAttachEndpointsRequest
32245
+ include Google::Apis::Core::Hashable
32246
+
32247
+ # The list of network endpoints to be attached.
32248
+ # Corresponds to the JSON property `networkEndpoints`
32249
+ # @return [Array<Google::Apis::ComputeBeta::NetworkEndpoint>]
32250
+ attr_accessor :network_endpoints
32251
+
32252
+ def initialize(**args)
32253
+ update!(**args)
32254
+ end
32255
+
32256
+ # Update properties of this object
32257
+ def update!(**args)
32258
+ @network_endpoints = args[:network_endpoints] if args.key?(:network_endpoints)
32259
+ end
32260
+ end
32261
+
32262
+ #
32263
+ class RegionNetworkEndpointGroupsDetachEndpointsRequest
32264
+ include Google::Apis::Core::Hashable
32265
+
32266
+ # The list of network endpoints to be detached.
32267
+ # Corresponds to the JSON property `networkEndpoints`
32268
+ # @return [Array<Google::Apis::ComputeBeta::NetworkEndpoint>]
32269
+ attr_accessor :network_endpoints
32270
+
32271
+ def initialize(**args)
32272
+ update!(**args)
32273
+ end
32274
+
32275
+ # Update properties of this object
32276
+ def update!(**args)
32277
+ @network_endpoints = args[:network_endpoints] if args.key?(:network_endpoints)
32278
+ end
32279
+ end
32280
+
31596
32281
  #
31597
32282
  class RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse
31598
32283
  include Google::Apis::Core::Hashable
@@ -34671,6 +35356,12 @@ module Google
34671
35356
  # @return [Fixnum]
34672
35357
  attr_accessor :tcp_transitory_idle_timeout_sec
34673
35358
 
35359
+ # Indicates whether this NAT is used for public or private IP translation. If
35360
+ # unspecified, it defaults to PUBLIC.
35361
+ # Corresponds to the JSON property `type`
35362
+ # @return [String]
35363
+ attr_accessor :type
35364
+
34674
35365
  # Timeout (in seconds) for UDP connections. Defaults to 30s if not set.
34675
35366
  # Corresponds to the JSON property `udpIdleTimeoutSec`
34676
35367
  # @return [Fixnum]
@@ -34700,6 +35391,7 @@ module Google
34700
35391
  @tcp_established_idle_timeout_sec = args[:tcp_established_idle_timeout_sec] if args.key?(:tcp_established_idle_timeout_sec)
34701
35392
  @tcp_time_wait_timeout_sec = args[:tcp_time_wait_timeout_sec] if args.key?(:tcp_time_wait_timeout_sec)
34702
35393
  @tcp_transitory_idle_timeout_sec = args[:tcp_transitory_idle_timeout_sec] if args.key?(:tcp_transitory_idle_timeout_sec)
35394
+ @type = args[:type] if args.key?(:type)
34703
35395
  @udp_idle_timeout_sec = args[:udp_idle_timeout_sec] if args.key?(:udp_idle_timeout_sec)
34704
35396
  end
34705
35397
  end
@@ -34791,6 +35483,13 @@ module Google
34791
35483
  # @return [Array<String>]
34792
35484
  attr_accessor :source_nat_active_ips
34793
35485
 
35486
+ # A list of URLs of the subnetworks used as source ranges for this NAT Rule.
35487
+ # These subnetworks must have purpose set to PRIVATE_NAT. This field is used for
35488
+ # private NAT.
35489
+ # Corresponds to the JSON property `sourceNatActiveRanges`
35490
+ # @return [Array<String>]
35491
+ attr_accessor :source_nat_active_ranges
35492
+
34794
35493
  # A list of URLs of the IP resources to be drained. These IPs must be valid
34795
35494
  # static external IPs that have been assigned to the NAT. These IPs should be
34796
35495
  # used for updating/patching a NAT rule only. This field is used for public NAT.
@@ -34798,6 +35497,14 @@ module Google
34798
35497
  # @return [Array<String>]
34799
35498
  attr_accessor :source_nat_drain_ips
34800
35499
 
35500
+ # A list of URLs of subnetworks representing source ranges to be drained. This
35501
+ # is only supported on patch/update, and these subnetworks must have previously
35502
+ # been used as active ranges in this NAT Rule. This field is used for private
35503
+ # NAT.
35504
+ # Corresponds to the JSON property `sourceNatDrainRanges`
35505
+ # @return [Array<String>]
35506
+ attr_accessor :source_nat_drain_ranges
35507
+
34801
35508
  def initialize(**args)
34802
35509
  update!(**args)
34803
35510
  end
@@ -34805,7 +35512,9 @@ module Google
34805
35512
  # Update properties of this object
34806
35513
  def update!(**args)
34807
35514
  @source_nat_active_ips = args[:source_nat_active_ips] if args.key?(:source_nat_active_ips)
35515
+ @source_nat_active_ranges = args[:source_nat_active_ranges] if args.key?(:source_nat_active_ranges)
34808
35516
  @source_nat_drain_ips = args[:source_nat_drain_ips] if args.key?(:source_nat_drain_ips)
35517
+ @source_nat_drain_ranges = args[:source_nat_drain_ranges] if args.key?(:source_nat_drain_ranges)
34809
35518
  end
34810
35519
  end
34811
35520
 
@@ -35623,6 +36332,14 @@ module Google
35623
36332
  # @return [String]
35624
36333
  attr_accessor :instance_termination_action
35625
36334
 
36335
+ # A Duration represents a fixed-length span of time represented as a count of
36336
+ # seconds and fractions of seconds at nanosecond resolution. It is independent
36337
+ # of any calendar and concepts like "day" or "month". Range is approximately 10,
36338
+ # 000 years.
36339
+ # Corresponds to the JSON property `localSsdRecoveryTimeout`
36340
+ # @return [Google::Apis::ComputeBeta::Duration]
36341
+ attr_accessor :local_ssd_recovery_timeout
36342
+
35626
36343
  # An opaque location hint used to place the instance close to other resources.
35627
36344
  # This field is for use by internal tools that use the public API.
35628
36345
  # Corresponds to the JSON property `locationHint`
@@ -35699,6 +36416,7 @@ module Google
35699
36416
  @automatic_restart = args[:automatic_restart] if args.key?(:automatic_restart)
35700
36417
  @host_error_timeout_seconds = args[:host_error_timeout_seconds] if args.key?(:host_error_timeout_seconds)
35701
36418
  @instance_termination_action = args[:instance_termination_action] if args.key?(:instance_termination_action)
36419
+ @local_ssd_recovery_timeout = args[:local_ssd_recovery_timeout] if args.key?(:local_ssd_recovery_timeout)
35702
36420
  @location_hint = args[:location_hint] if args.key?(:location_hint)
35703
36421
  @maintenance_freeze_duration_hours = args[:maintenance_freeze_duration_hours] if args.key?(:maintenance_freeze_duration_hours)
35704
36422
  @maintenance_interval = args[:maintenance_interval] if args.key?(:maintenance_interval)
@@ -36315,6 +37033,12 @@ module Google
36315
37033
  # @return [String]
36316
37034
  attr_accessor :rule_visibility
36317
37035
 
37036
+ # Configuration options for layer7 adaptive protection for various customizable
37037
+ # thresholds.
37038
+ # Corresponds to the JSON property `thresholdConfigs`
37039
+ # @return [Array<Google::Apis::ComputeBeta::SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig>]
37040
+ attr_accessor :threshold_configs
37041
+
36318
37042
  def initialize(**args)
36319
37043
  update!(**args)
36320
37044
  end
@@ -36323,6 +37047,51 @@ module Google
36323
37047
  def update!(**args)
36324
37048
  @enable = args[:enable] if args.key?(:enable)
36325
37049
  @rule_visibility = args[:rule_visibility] if args.key?(:rule_visibility)
37050
+ @threshold_configs = args[:threshold_configs] if args.key?(:threshold_configs)
37051
+ end
37052
+ end
37053
+
37054
+ #
37055
+ class SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig
37056
+ include Google::Apis::Core::Hashable
37057
+
37058
+ #
37059
+ # Corresponds to the JSON property `autoDeployConfidenceThreshold`
37060
+ # @return [Float]
37061
+ attr_accessor :auto_deploy_confidence_threshold
37062
+
37063
+ #
37064
+ # Corresponds to the JSON property `autoDeployExpirationSec`
37065
+ # @return [Fixnum]
37066
+ attr_accessor :auto_deploy_expiration_sec
37067
+
37068
+ #
37069
+ # Corresponds to the JSON property `autoDeployImpactedBaselineThreshold`
37070
+ # @return [Float]
37071
+ attr_accessor :auto_deploy_impacted_baseline_threshold
37072
+
37073
+ #
37074
+ # Corresponds to the JSON property `autoDeployLoadThreshold`
37075
+ # @return [Float]
37076
+ attr_accessor :auto_deploy_load_threshold
37077
+
37078
+ # The name must be 1-63 characters long, and comply with RFC1035. The name must
37079
+ # be unique within the security policy.
37080
+ # Corresponds to the JSON property `name`
37081
+ # @return [String]
37082
+ attr_accessor :name
37083
+
37084
+ def initialize(**args)
37085
+ update!(**args)
37086
+ end
37087
+
37088
+ # Update properties of this object
37089
+ def update!(**args)
37090
+ @auto_deploy_confidence_threshold = args[:auto_deploy_confidence_threshold] if args.key?(:auto_deploy_confidence_threshold)
37091
+ @auto_deploy_expiration_sec = args[:auto_deploy_expiration_sec] if args.key?(:auto_deploy_expiration_sec)
37092
+ @auto_deploy_impacted_baseline_threshold = args[:auto_deploy_impacted_baseline_threshold] if args.key?(:auto_deploy_impacted_baseline_threshold)
37093
+ @auto_deploy_load_threshold = args[:auto_deploy_load_threshold] if args.key?(:auto_deploy_load_threshold)
37094
+ @name = args[:name] if args.key?(:name)
36326
37095
  end
36327
37096
  end
36328
37097
 
@@ -37863,6 +38632,11 @@ module Google
37863
38632
  class ServiceAttachmentConnectedEndpoint
37864
38633
  include Google::Apis::Core::Hashable
37865
38634
 
38635
+ # The url of the consumer network.
38636
+ # Corresponds to the JSON property `consumerNetwork`
38637
+ # @return [String]
38638
+ attr_accessor :consumer_network
38639
+
37866
38640
  # The url of a connected endpoint.
37867
38641
  # Corresponds to the JSON property `endpoint`
37868
38642
  # @return [String]
@@ -37884,6 +38658,7 @@ module Google
37884
38658
 
37885
38659
  # Update properties of this object
37886
38660
  def update!(**args)
38661
+ @consumer_network = args[:consumer_network] if args.key?(:consumer_network)
37887
38662
  @endpoint = args[:endpoint] if args.key?(:endpoint)
37888
38663
  @psc_connection_id = args[:psc_connection_id] if args.key?(:psc_connection_id)
37889
38664
  @status = args[:status] if args.key?(:status)
@@ -38496,6 +39271,13 @@ module Google
38496
39271
  # @return [Fixnum]
38497
39272
  attr_accessor :download_bytes
38498
39273
 
39274
+ # Whether this snapshot is created from a confidential compute mode disk. [
39275
+ # Output Only]: This field is not set by user, but from source disk.
39276
+ # Corresponds to the JSON property `enableConfidentialCompute`
39277
+ # @return [Boolean]
39278
+ attr_accessor :enable_confidential_compute
39279
+ alias_method :enable_confidential_compute?, :enable_confidential_compute
39280
+
38499
39281
  # [Input Only] Whether to attempt an application consistent snapshot by
38500
39282
  # informing the OS to prepare for the snapshot process.
38501
39283
  # Corresponds to the JSON property `guestFlush`
@@ -38695,6 +39477,7 @@ module Google
38695
39477
  @description = args[:description] if args.key?(:description)
38696
39478
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
38697
39479
  @download_bytes = args[:download_bytes] if args.key?(:download_bytes)
39480
+ @enable_confidential_compute = args[:enable_confidential_compute] if args.key?(:enable_confidential_compute)
38698
39481
  @guest_flush = args[:guest_flush] if args.key?(:guest_flush)
38699
39482
  @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features)
38700
39483
  @id = args[:id] if args.key?(:id)