google-apis-compute_beta 0.73.0 → 0.75.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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)