google-apis-compute_beta 0.73.0 → 0.74.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)
@@ -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
@@ -18511,6 +18871,15 @@ module Google
18511
18871
  attr_accessor :admin_enabled
18512
18872
  alias_method :admin_enabled?, :admin_enabled
18513
18873
 
18874
+ # [Output only] List of features available for this Interconnect connection,
18875
+ # which can take one of the following values: - MACSEC If present then the
18876
+ # interconnect was created on MACsec capable hardware ports. If not present then
18877
+ # the interconnect is provisioned on non-MACsec capable ports and MACsec
18878
+ # enablement will fail.
18879
+ # Corresponds to the JSON property `availableFeatures`
18880
+ # @return [Array<String>]
18881
+ attr_accessor :available_features
18882
+
18514
18883
  # [Output Only] A list of CircuitInfo objects, that describe the individual
18515
18884
  # circuits in this LAG.
18516
18885
  # Corresponds to the JSON property `circuitInfos`
@@ -18611,6 +18980,19 @@ module Google
18611
18980
  # @return [String]
18612
18981
  attr_accessor :location
18613
18982
 
18983
+ # Configuration information for enabling Media Access Control security (MACsec)
18984
+ # on this Interconnect connection between Google and your on-premises router.
18985
+ # Corresponds to the JSON property `macsec`
18986
+ # @return [Google::Apis::ComputeBeta::InterconnectMacsec]
18987
+ attr_accessor :macsec
18988
+
18989
+ # Enable or disable MACsec on this Interconnect connection. MACsec enablement
18990
+ # fails if the MACsec object is not specified.
18991
+ # Corresponds to the JSON property `macsecEnabled`
18992
+ # @return [Boolean]
18993
+ attr_accessor :macsec_enabled
18994
+ alias_method :macsec_enabled?, :macsec_enabled
18995
+
18614
18996
  # Name of the resource. Provided by the client when the resource is created. The
18615
18997
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
18616
18998
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -18659,6 +19041,16 @@ module Google
18659
19041
  # @return [String]
18660
19042
  attr_accessor :remote_location
18661
19043
 
19044
+ # Optional. List of features requested for this Interconnect connection, which
19045
+ # can take one of the following values: - MACSEC If specified then the
19046
+ # interconnect will be created on MACsec capable hardware ports. If not
19047
+ # specified, the default value is false, which will allocate non-MACsec capable
19048
+ # ports first if available. This parameter can only be provided during
19049
+ # interconnect INSERT and cannot be changed using interconnect PATCH.
19050
+ # Corresponds to the JSON property `requestedFeatures`
19051
+ # @return [Array<String>]
19052
+ attr_accessor :requested_features
19053
+
18662
19054
  # Target number of physical links in the link bundle, as requested by the
18663
19055
  # customer.
18664
19056
  # Corresponds to the JSON property `requestedLinkCount`
@@ -18694,6 +19086,7 @@ module Google
18694
19086
  # Update properties of this object
18695
19087
  def update!(**args)
18696
19088
  @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
19089
+ @available_features = args[:available_features] if args.key?(:available_features)
18697
19090
  @circuit_infos = args[:circuit_infos] if args.key?(:circuit_infos)
18698
19091
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
18699
19092
  @customer_name = args[:customer_name] if args.key?(:customer_name)
@@ -18709,12 +19102,15 @@ module Google
18709
19102
  @labels = args[:labels] if args.key?(:labels)
18710
19103
  @link_type = args[:link_type] if args.key?(:link_type)
18711
19104
  @location = args[:location] if args.key?(:location)
19105
+ @macsec = args[:macsec] if args.key?(:macsec)
19106
+ @macsec_enabled = args[:macsec_enabled] if args.key?(:macsec_enabled)
18712
19107
  @name = args[:name] if args.key?(:name)
18713
19108
  @noc_contact_email = args[:noc_contact_email] if args.key?(:noc_contact_email)
18714
19109
  @operational_status = args[:operational_status] if args.key?(:operational_status)
18715
19110
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
18716
19111
  @provisioned_link_count = args[:provisioned_link_count] if args.key?(:provisioned_link_count)
18717
19112
  @remote_location = args[:remote_location] if args.key?(:remote_location)
19113
+ @requested_features = args[:requested_features] if args.key?(:requested_features)
18718
19114
  @requested_link_count = args[:requested_link_count] if args.key?(:requested_link_count)
18719
19115
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
18720
19116
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -19587,8 +19983,9 @@ module Google
19587
19983
  end
19588
19984
  end
19589
19985
 
19590
- # Diagnostics information about interconnect, contains detailed and current
19591
- # technical information about Google's side of the connection.
19986
+ # Diagnostics information about the Interconnect connection, which contains
19987
+ # detailed and current technical information about Google's side of the
19988
+ # connection.
19592
19989
  class InterconnectDiagnostics
19593
19990
  include Google::Apis::Core::Hashable
19594
19991
 
@@ -19752,6 +20149,11 @@ module Google
19752
20149
  # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsLinkLacpStatus]
19753
20150
  attr_accessor :lacp_status
19754
20151
 
20152
+ # Describes the status of MACsec encryption on the link.
20153
+ # Corresponds to the JSON property `macsec`
20154
+ # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsMacsecStatus]
20155
+ attr_accessor :macsec
20156
+
19755
20157
  # The operational status of the link.
19756
20158
  # Corresponds to the JSON property `operationalStatus`
19757
20159
  # @return [String]
@@ -19779,12 +20181,40 @@ module Google
19779
20181
  @circuit_id = args[:circuit_id] if args.key?(:circuit_id)
19780
20182
  @google_demarc = args[:google_demarc] if args.key?(:google_demarc)
19781
20183
  @lacp_status = args[:lacp_status] if args.key?(:lacp_status)
20184
+ @macsec = args[:macsec] if args.key?(:macsec)
19782
20185
  @operational_status = args[:operational_status] if args.key?(:operational_status)
19783
20186
  @receiving_optical_power = args[:receiving_optical_power] if args.key?(:receiving_optical_power)
19784
20187
  @transmitting_optical_power = args[:transmitting_optical_power] if args.key?(:transmitting_optical_power)
19785
20188
  end
19786
20189
  end
19787
20190
 
20191
+ # Describes the status of MACsec encryption on the link.
20192
+ class InterconnectDiagnosticsMacsecStatus
20193
+ include Google::Apis::Core::Hashable
20194
+
20195
+ # Indicates the Connectivity Association Key Name (CKN) currently being used if
20196
+ # MACsec is operational.
20197
+ # Corresponds to the JSON property `ckn`
20198
+ # @return [String]
20199
+ attr_accessor :ckn
20200
+
20201
+ # Indicates whether or not MACsec is operational on this link.
20202
+ # Corresponds to the JSON property `operational`
20203
+ # @return [Boolean]
20204
+ attr_accessor :operational
20205
+ alias_method :operational?, :operational
20206
+
20207
+ def initialize(**args)
20208
+ update!(**args)
20209
+ end
20210
+
20211
+ # Update properties of this object
20212
+ def update!(**args)
20213
+ @ckn = args[:ckn] if args.key?(:ckn)
20214
+ @operational = args[:operational] if args.key?(:operational)
20215
+ end
20216
+ end
20217
+
19788
20218
  # Response to the list request, and contains a list of interconnects.
19789
20219
  class InterconnectList
19790
20220
  include Google::Apis::Core::Hashable
@@ -19923,6 +20353,19 @@ module Google
19923
20353
  # @return [String]
19924
20354
  attr_accessor :availability_zone
19925
20355
 
20356
+ # [Output only] List of features available at this InterconnectLocation, which
20357
+ # can take one of the following values: - MACSEC
20358
+ # Corresponds to the JSON property `availableFeatures`
20359
+ # @return [Array<String>]
20360
+ attr_accessor :available_features
20361
+
20362
+ # [Output only] List of link types available at this InterconnectLocation, which
20363
+ # can take one of the following values: - LINK_TYPE_ETHERNET_10G_LR -
20364
+ # LINK_TYPE_ETHERNET_100G_LR
20365
+ # Corresponds to the JSON property `availableLinkTypes`
20366
+ # @return [Array<String>]
20367
+ attr_accessor :available_link_types
20368
+
19926
20369
  # [Output Only] Metropolitan area designator that indicates which city an
19927
20370
  # interconnect is located. For example: "Chicago, IL", "Amsterdam, Netherlands".
19928
20371
  # Corresponds to the JSON property `city`
@@ -20013,6 +20456,8 @@ module Google
20013
20456
  def update!(**args)
20014
20457
  @address = args[:address] if args.key?(:address)
20015
20458
  @availability_zone = args[:availability_zone] if args.key?(:availability_zone)
20459
+ @available_features = args[:available_features] if args.key?(:available_features)
20460
+ @available_link_types = args[:available_link_types] if args.key?(:available_link_types)
20016
20461
  @city = args[:city] if args.key?(:city)
20017
20462
  @continent = args[:continent] if args.key?(:continent)
20018
20463
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
@@ -20181,6 +20626,137 @@ module Google
20181
20626
  end
20182
20627
  end
20183
20628
 
20629
+ # Configuration information for enabling Media Access Control security (MACsec)
20630
+ # on this Interconnect connection between Google and your on-premises router.
20631
+ class InterconnectMacsec
20632
+ include Google::Apis::Core::Hashable
20633
+
20634
+ # If set to true, the Interconnect connection is configured with a should-secure
20635
+ # MACsec security policy, that allows the Google router to fallback to cleartext
20636
+ # traffic if the MKA session cannot be established. By default, the Interconnect
20637
+ # connection is configured with a must-secure security policy that drops all
20638
+ # traffic if the MKA session cannot be established with your router.
20639
+ # Corresponds to the JSON property `failOpen`
20640
+ # @return [Boolean]
20641
+ attr_accessor :fail_open
20642
+ alias_method :fail_open?, :fail_open
20643
+
20644
+ # Required. A keychain placeholder describing a set of named key objects along
20645
+ # with their start times. A MACsec CKN/CAK will be generated for each key in the
20646
+ # key chain. Google router will automatically pick the key with the most recent
20647
+ # startTime when establishing or re-establishing a MACsec secure link.
20648
+ # Corresponds to the JSON property `preSharedKeys`
20649
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectMacsecPreSharedKey>]
20650
+ attr_accessor :pre_shared_keys
20651
+
20652
+ def initialize(**args)
20653
+ update!(**args)
20654
+ end
20655
+
20656
+ # Update properties of this object
20657
+ def update!(**args)
20658
+ @fail_open = args[:fail_open] if args.key?(:fail_open)
20659
+ @pre_shared_keys = args[:pre_shared_keys] if args.key?(:pre_shared_keys)
20660
+ end
20661
+ end
20662
+
20663
+ # MACsec configuration information for the Interconnect connection. Contains the
20664
+ # generated Connectivity Association Key Name (CKN) and the key (CAK) for this
20665
+ # Interconnect connection.
20666
+ class InterconnectMacsecConfig
20667
+ include Google::Apis::Core::Hashable
20668
+
20669
+ # A keychain placeholder describing a set of named key objects along with their
20670
+ # start times. A MACsec CKN/CAK is generated for each key in the key chain.
20671
+ # Google router automatically picks the key with the most recent startTime when
20672
+ # establishing or re-establishing a MACsec secure link.
20673
+ # Corresponds to the JSON property `preSharedKeys`
20674
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectMacsecConfigPreSharedKey>]
20675
+ attr_accessor :pre_shared_keys
20676
+
20677
+ def initialize(**args)
20678
+ update!(**args)
20679
+ end
20680
+
20681
+ # Update properties of this object
20682
+ def update!(**args)
20683
+ @pre_shared_keys = args[:pre_shared_keys] if args.key?(:pre_shared_keys)
20684
+ end
20685
+ end
20686
+
20687
+ # Describes a pre-shared key used to setup MACsec in static connectivity
20688
+ # association key (CAK) mode.
20689
+ class InterconnectMacsecConfigPreSharedKey
20690
+ include Google::Apis::Core::Hashable
20691
+
20692
+ # An auto-generated Connectivity Association Key (CAK) for this key.
20693
+ # Corresponds to the JSON property `cak`
20694
+ # @return [String]
20695
+ attr_accessor :cak
20696
+
20697
+ # An auto-generated Connectivity Association Key Name (CKN) for this key.
20698
+ # Corresponds to the JSON property `ckn`
20699
+ # @return [String]
20700
+ attr_accessor :ckn
20701
+
20702
+ # User provided name for this pre-shared key.
20703
+ # Corresponds to the JSON property `name`
20704
+ # @return [String]
20705
+ attr_accessor :name
20706
+
20707
+ # User provided timestamp on or after which this key is valid.
20708
+ # Corresponds to the JSON property `startTime`
20709
+ # @return [String]
20710
+ attr_accessor :start_time
20711
+
20712
+ def initialize(**args)
20713
+ update!(**args)
20714
+ end
20715
+
20716
+ # Update properties of this object
20717
+ def update!(**args)
20718
+ @cak = args[:cak] if args.key?(:cak)
20719
+ @ckn = args[:ckn] if args.key?(:ckn)
20720
+ @name = args[:name] if args.key?(:name)
20721
+ @start_time = args[:start_time] if args.key?(:start_time)
20722
+ end
20723
+ end
20724
+
20725
+ # Describes a pre-shared key used to setup MACsec in static connectivity
20726
+ # association key (CAK) mode.
20727
+ class InterconnectMacsecPreSharedKey
20728
+ include Google::Apis::Core::Hashable
20729
+
20730
+ # Required. A name for this pre-shared key. The name must be 1-63 characters
20731
+ # long, and comply with RFC1035. Specifically, the name must be 1-63 characters
20732
+ # long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
20733
+ # the first character must be a lowercase letter, and all following characters
20734
+ # must be a dash, lowercase letter, or digit, except the last character, which
20735
+ # cannot be a dash.
20736
+ # Corresponds to the JSON property `name`
20737
+ # @return [String]
20738
+ attr_accessor :name
20739
+
20740
+ # A RFC3339 timestamp on or after which the key is valid. startTime can be in
20741
+ # the future. If the keychain has a single key, startTime can be omitted. If the
20742
+ # keychain has multiple keys, startTime is mandatory for each key. The start
20743
+ # times of keys must be in increasing order. The start times of two consecutive
20744
+ # keys must be at least 6 hours apart.
20745
+ # Corresponds to the JSON property `startTime`
20746
+ # @return [String]
20747
+ attr_accessor :start_time
20748
+
20749
+ def initialize(**args)
20750
+ update!(**args)
20751
+ end
20752
+
20753
+ # Update properties of this object
20754
+ def update!(**args)
20755
+ @name = args[:name] if args.key?(:name)
20756
+ @start_time = args[:start_time] if args.key?(:start_time)
20757
+ end
20758
+ end
20759
+
20184
20760
  # Description of a planned outage on this Interconnect.
20185
20761
  class InterconnectOutageNotification
20186
20762
  include Google::Apis::Core::Hashable
@@ -20625,8 +21201,9 @@ module Google
20625
21201
  class InterconnectsGetDiagnosticsResponse
20626
21202
  include Google::Apis::Core::Hashable
20627
21203
 
20628
- # Diagnostics information about interconnect, contains detailed and current
20629
- # technical information about Google's side of the connection.
21204
+ # Diagnostics information about the Interconnect connection, which contains
21205
+ # detailed and current technical information about Google's side of the
21206
+ # connection.
20630
21207
  # Corresponds to the JSON property `result`
20631
21208
  # @return [Google::Apis::ComputeBeta::InterconnectDiagnostics]
20632
21209
  attr_accessor :result
@@ -20641,6 +21218,33 @@ module Google
20641
21218
  end
20642
21219
  end
20643
21220
 
21221
+ # Response for the InterconnectsGetMacsecConfigRequest.
21222
+ class InterconnectsGetMacsecConfigResponse
21223
+ include Google::Apis::Core::Hashable
21224
+
21225
+ # end_interface: MixerGetResponseWithEtagBuilder
21226
+ # Corresponds to the JSON property `etag`
21227
+ # @return [String]
21228
+ attr_accessor :etag
21229
+
21230
+ # MACsec configuration information for the Interconnect connection. Contains the
21231
+ # generated Connectivity Association Key Name (CKN) and the key (CAK) for this
21232
+ # Interconnect connection.
21233
+ # Corresponds to the JSON property `result`
21234
+ # @return [Google::Apis::ComputeBeta::InterconnectMacsecConfig]
21235
+ attr_accessor :result
21236
+
21237
+ def initialize(**args)
21238
+ update!(**args)
21239
+ end
21240
+
21241
+ # Update properties of this object
21242
+ def update!(**args)
21243
+ @etag = args[:etag] if args.key?(:etag)
21244
+ @result = args[:result] if args.key?(:result)
21245
+ end
21246
+ end
21247
+
20644
21248
  # Represents a License resource. A License represents billing and aggregate
20645
21249
  # usage data for public and marketplace images. *Caution* This resource is
20646
21250
  # intended for use only by third-party partners who are creating Cloud
@@ -22053,6 +22657,12 @@ module Google
22053
22657
  # @return [Google::Apis::ComputeBeta::ManagedInstanceLastAttempt]
22054
22658
  attr_accessor :last_attempt
22055
22659
 
22660
+ # [Output Only] The name of the instance. The name will always exist even if the
22661
+ # instance has not yet been created.
22662
+ # Corresponds to the JSON property `name`
22663
+ # @return [String]
22664
+ attr_accessor :name
22665
+
22056
22666
  # Preserved state for a given instance.
22057
22667
  # Corresponds to the JSON property `preservedStateFromConfig`
22058
22668
  # @return [Google::Apis::ComputeBeta::PreservedState]
@@ -22081,6 +22691,7 @@ module Google
22081
22691
  @instance_health = args[:instance_health] if args.key?(:instance_health)
22082
22692
  @instance_status = args[:instance_status] if args.key?(:instance_status)
22083
22693
  @last_attempt = args[:last_attempt] if args.key?(:last_attempt)
22694
+ @name = args[:name] if args.key?(:name)
22084
22695
  @preserved_state_from_config = args[:preserved_state_from_config] if args.key?(:preserved_state_from_config)
22085
22696
  @preserved_state_from_policy = args[:preserved_state_from_policy] if args.key?(:preserved_state_from_policy)
22086
22697
  @version = args[:version] if args.key?(:version)
@@ -27782,45 +28393,38 @@ module Google
27782
28393
  # @return [Google::Apis::ComputeBeta::Duration]
27783
28394
  attr_accessor :base_ejection_time
27784
28395
 
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.
28396
+ # Number of consecutive errors before a backend endpoint is ejected from the
28397
+ # load balancing pool. When the backend endpoint is accessed over HTTP, a 5xx
28398
+ # return code qualifies as an error. Defaults to 5.
27790
28399
  # Corresponds to the JSON property `consecutiveErrors`
27791
28400
  # @return [Fixnum]
27792
28401
  attr_accessor :consecutive_errors
27793
28402
 
27794
28403
  # The number of consecutive gateway failures (502, 503, 504 status or connection
27795
28404
  # 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.
28405
+ # gateway failure ejection occurs. Defaults to 3.
27799
28406
  # Corresponds to the JSON property `consecutiveGatewayFailure`
27800
28407
  # @return [Fixnum]
27801
28408
  attr_accessor :consecutive_gateway_failure
27802
28409
 
27803
- # The percentage chance that a host will be actually ejected when an outlier
28410
+ # The percentage chance that a backend endpoint will be ejected when an outlier
27804
28411
  # 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.
28412
+ # disable ejection or to ramp it up slowly. Defaults to 0.
27808
28413
  # Corresponds to the JSON property `enforcingConsecutiveErrors`
27809
28414
  # @return [Fixnum]
27810
28415
  attr_accessor :enforcing_consecutive_errors
27811
28416
 
27812
- # The percentage chance that a host will be actually ejected when an outlier
28417
+ # The percentage chance that a backend endpoint will be ejected when an outlier
27813
28418
  # 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.
28419
+ # used to disable ejection or to ramp it up slowly. Defaults to 100.
27817
28420
  # Corresponds to the JSON property `enforcingConsecutiveGatewayFailure`
27818
28421
  # @return [Fixnum]
27819
28422
  attr_accessor :enforcing_consecutive_gateway_failure
27820
28423
 
27821
- # The percentage chance that a host will be actually ejected when an outlier
28424
+ # The percentage chance that a backend endpoint will be ejected when an outlier
27822
28425
  # 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.
28426
+ # to disable ejection or to ramp it up slowly. Defaults to 100. Not supported
28427
+ # when the backend service uses Serverless NEG.
27824
28428
  # Corresponds to the JSON property `enforcingSuccessRate`
27825
28429
  # @return [Fixnum]
27826
28430
  attr_accessor :enforcing_success_rate
@@ -27833,25 +28437,29 @@ module Google
27833
28437
  # @return [Google::Apis::ComputeBeta::Duration]
27834
28438
  attr_accessor :interval
27835
28439
 
27836
- # Maximum percentage of hosts in the load balancing pool for the backend service
27837
- # that can be ejected. Defaults to 50%.
28440
+ # Maximum percentage of backend endpoints in the load balancing pool for the
28441
+ # backend service that can be ejected if the ejection conditions are met.
28442
+ # Defaults to 50%.
27838
28443
  # Corresponds to the JSON property `maxEjectionPercent`
27839
28444
  # @return [Fixnum]
27840
28445
  attr_accessor :max_ejection_percent
27841
28446
 
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.
28447
+ # The number of backend endpoints in the load balancing pool that must have
28448
+ # enough request volume to detect success rate outliers. If the number of
28449
+ # backend endpoints is fewer than this setting, outlier detection via success
28450
+ # rate statistics is not performed for any backend endpoint in the load
28451
+ # balancing pool. Defaults to 5. Not supported when the backend service uses
28452
+ # Serverless NEG.
27846
28453
  # Corresponds to the JSON property `successRateMinimumHosts`
27847
28454
  # @return [Fixnum]
27848
28455
  attr_accessor :success_rate_minimum_hosts
27849
28456
 
27850
28457
  # 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.
28458
+ # as defined by the interval duration above) to include this backend endpoint in
28459
+ # success rate based outlier detection. If the volume is lower than this setting,
28460
+ # outlier detection via success rate statistics is not performed for that
28461
+ # backend endpoint. Defaults to 100. Not supported when the backend service uses
28462
+ # Serverless NEG.
27855
28463
  # Corresponds to the JSON property `successRateRequestVolume`
27856
28464
  # @return [Fixnum]
27857
28465
  attr_accessor :success_rate_request_volume
@@ -27859,9 +28467,10 @@ module Google
27859
28467
  # This factor is used to determine the ejection threshold for success rate
27860
28468
  # outlier ejection. The ejection threshold is the difference between the mean
27861
28469
  # 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
28470
+ # mean success rate: mean - (stdev * successRateStdevFactor). This factor is
27863
28471
  # 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.
28472
+ # the runtime value should be 1900. Defaults to 1900. Not supported when the
28473
+ # backend service uses Serverless NEG.
27865
28474
  # Corresponds to the JSON property `successRateStdevFactor`
27866
28475
  # @return [Fixnum]
27867
28476
  attr_accessor :success_rate_stdev_factor
@@ -31593,6 +32202,44 @@ module Google
31593
32202
  end
31594
32203
  end
31595
32204
 
32205
+ #
32206
+ class RegionNetworkEndpointGroupsAttachEndpointsRequest
32207
+ include Google::Apis::Core::Hashable
32208
+
32209
+ # The list of network endpoints to be attached.
32210
+ # Corresponds to the JSON property `networkEndpoints`
32211
+ # @return [Array<Google::Apis::ComputeBeta::NetworkEndpoint>]
32212
+ attr_accessor :network_endpoints
32213
+
32214
+ def initialize(**args)
32215
+ update!(**args)
32216
+ end
32217
+
32218
+ # Update properties of this object
32219
+ def update!(**args)
32220
+ @network_endpoints = args[:network_endpoints] if args.key?(:network_endpoints)
32221
+ end
32222
+ end
32223
+
32224
+ #
32225
+ class RegionNetworkEndpointGroupsDetachEndpointsRequest
32226
+ include Google::Apis::Core::Hashable
32227
+
32228
+ # The list of network endpoints to be detached.
32229
+ # Corresponds to the JSON property `networkEndpoints`
32230
+ # @return [Array<Google::Apis::ComputeBeta::NetworkEndpoint>]
32231
+ attr_accessor :network_endpoints
32232
+
32233
+ def initialize(**args)
32234
+ update!(**args)
32235
+ end
32236
+
32237
+ # Update properties of this object
32238
+ def update!(**args)
32239
+ @network_endpoints = args[:network_endpoints] if args.key?(:network_endpoints)
32240
+ end
32241
+ end
32242
+
31596
32243
  #
31597
32244
  class RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse
31598
32245
  include Google::Apis::Core::Hashable
@@ -34671,6 +35318,12 @@ module Google
34671
35318
  # @return [Fixnum]
34672
35319
  attr_accessor :tcp_transitory_idle_timeout_sec
34673
35320
 
35321
+ # Indicates whether this NAT is used for public or private IP translation. If
35322
+ # unspecified, it defaults to PUBLIC.
35323
+ # Corresponds to the JSON property `type`
35324
+ # @return [String]
35325
+ attr_accessor :type
35326
+
34674
35327
  # Timeout (in seconds) for UDP connections. Defaults to 30s if not set.
34675
35328
  # Corresponds to the JSON property `udpIdleTimeoutSec`
34676
35329
  # @return [Fixnum]
@@ -34700,6 +35353,7 @@ module Google
34700
35353
  @tcp_established_idle_timeout_sec = args[:tcp_established_idle_timeout_sec] if args.key?(:tcp_established_idle_timeout_sec)
34701
35354
  @tcp_time_wait_timeout_sec = args[:tcp_time_wait_timeout_sec] if args.key?(:tcp_time_wait_timeout_sec)
34702
35355
  @tcp_transitory_idle_timeout_sec = args[:tcp_transitory_idle_timeout_sec] if args.key?(:tcp_transitory_idle_timeout_sec)
35356
+ @type = args[:type] if args.key?(:type)
34703
35357
  @udp_idle_timeout_sec = args[:udp_idle_timeout_sec] if args.key?(:udp_idle_timeout_sec)
34704
35358
  end
34705
35359
  end
@@ -34791,6 +35445,13 @@ module Google
34791
35445
  # @return [Array<String>]
34792
35446
  attr_accessor :source_nat_active_ips
34793
35447
 
35448
+ # A list of URLs of the subnetworks used as source ranges for this NAT Rule.
35449
+ # These subnetworks must have purpose set to PRIVATE_NAT. This field is used for
35450
+ # private NAT.
35451
+ # Corresponds to the JSON property `sourceNatActiveRanges`
35452
+ # @return [Array<String>]
35453
+ attr_accessor :source_nat_active_ranges
35454
+
34794
35455
  # A list of URLs of the IP resources to be drained. These IPs must be valid
34795
35456
  # static external IPs that have been assigned to the NAT. These IPs should be
34796
35457
  # used for updating/patching a NAT rule only. This field is used for public NAT.
@@ -34798,6 +35459,14 @@ module Google
34798
35459
  # @return [Array<String>]
34799
35460
  attr_accessor :source_nat_drain_ips
34800
35461
 
35462
+ # A list of URLs of subnetworks representing source ranges to be drained. This
35463
+ # is only supported on patch/update, and these subnetworks must have previously
35464
+ # been used as active ranges in this NAT Rule. This field is used for private
35465
+ # NAT.
35466
+ # Corresponds to the JSON property `sourceNatDrainRanges`
35467
+ # @return [Array<String>]
35468
+ attr_accessor :source_nat_drain_ranges
35469
+
34801
35470
  def initialize(**args)
34802
35471
  update!(**args)
34803
35472
  end
@@ -34805,7 +35474,9 @@ module Google
34805
35474
  # Update properties of this object
34806
35475
  def update!(**args)
34807
35476
  @source_nat_active_ips = args[:source_nat_active_ips] if args.key?(:source_nat_active_ips)
35477
+ @source_nat_active_ranges = args[:source_nat_active_ranges] if args.key?(:source_nat_active_ranges)
34808
35478
  @source_nat_drain_ips = args[:source_nat_drain_ips] if args.key?(:source_nat_drain_ips)
35479
+ @source_nat_drain_ranges = args[:source_nat_drain_ranges] if args.key?(:source_nat_drain_ranges)
34809
35480
  end
34810
35481
  end
34811
35482
 
@@ -36315,6 +36986,12 @@ module Google
36315
36986
  # @return [String]
36316
36987
  attr_accessor :rule_visibility
36317
36988
 
36989
+ # Configuration options for layer7 adaptive protection for various customizable
36990
+ # thresholds.
36991
+ # Corresponds to the JSON property `thresholdConfigs`
36992
+ # @return [Array<Google::Apis::ComputeBeta::SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig>]
36993
+ attr_accessor :threshold_configs
36994
+
36318
36995
  def initialize(**args)
36319
36996
  update!(**args)
36320
36997
  end
@@ -36323,6 +37000,51 @@ module Google
36323
37000
  def update!(**args)
36324
37001
  @enable = args[:enable] if args.key?(:enable)
36325
37002
  @rule_visibility = args[:rule_visibility] if args.key?(:rule_visibility)
37003
+ @threshold_configs = args[:threshold_configs] if args.key?(:threshold_configs)
37004
+ end
37005
+ end
37006
+
37007
+ #
37008
+ class SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig
37009
+ include Google::Apis::Core::Hashable
37010
+
37011
+ #
37012
+ # Corresponds to the JSON property `autoDeployConfidenceThreshold`
37013
+ # @return [Float]
37014
+ attr_accessor :auto_deploy_confidence_threshold
37015
+
37016
+ #
37017
+ # Corresponds to the JSON property `autoDeployExpirationSec`
37018
+ # @return [Fixnum]
37019
+ attr_accessor :auto_deploy_expiration_sec
37020
+
37021
+ #
37022
+ # Corresponds to the JSON property `autoDeployImpactedBaselineThreshold`
37023
+ # @return [Float]
37024
+ attr_accessor :auto_deploy_impacted_baseline_threshold
37025
+
37026
+ #
37027
+ # Corresponds to the JSON property `autoDeployLoadThreshold`
37028
+ # @return [Float]
37029
+ attr_accessor :auto_deploy_load_threshold
37030
+
37031
+ # The name must be 1-63 characters long, and comply with RFC1035. The name must
37032
+ # be unique within the security policy.
37033
+ # Corresponds to the JSON property `name`
37034
+ # @return [String]
37035
+ attr_accessor :name
37036
+
37037
+ def initialize(**args)
37038
+ update!(**args)
37039
+ end
37040
+
37041
+ # Update properties of this object
37042
+ def update!(**args)
37043
+ @auto_deploy_confidence_threshold = args[:auto_deploy_confidence_threshold] if args.key?(:auto_deploy_confidence_threshold)
37044
+ @auto_deploy_expiration_sec = args[:auto_deploy_expiration_sec] if args.key?(:auto_deploy_expiration_sec)
37045
+ @auto_deploy_impacted_baseline_threshold = args[:auto_deploy_impacted_baseline_threshold] if args.key?(:auto_deploy_impacted_baseline_threshold)
37046
+ @auto_deploy_load_threshold = args[:auto_deploy_load_threshold] if args.key?(:auto_deploy_load_threshold)
37047
+ @name = args[:name] if args.key?(:name)
36326
37048
  end
36327
37049
  end
36328
37050
 
@@ -38496,6 +39218,13 @@ module Google
38496
39218
  # @return [Fixnum]
38497
39219
  attr_accessor :download_bytes
38498
39220
 
39221
+ # Whether this snapshot is created from a confidential compute mode disk. [
39222
+ # Output Only]: This field is not set by user, but from source disk.
39223
+ # Corresponds to the JSON property `enableConfidentialCompute`
39224
+ # @return [Boolean]
39225
+ attr_accessor :enable_confidential_compute
39226
+ alias_method :enable_confidential_compute?, :enable_confidential_compute
39227
+
38499
39228
  # [Input Only] Whether to attempt an application consistent snapshot by
38500
39229
  # informing the OS to prepare for the snapshot process.
38501
39230
  # Corresponds to the JSON property `guestFlush`
@@ -38695,6 +39424,7 @@ module Google
38695
39424
  @description = args[:description] if args.key?(:description)
38696
39425
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
38697
39426
  @download_bytes = args[:download_bytes] if args.key?(:download_bytes)
39427
+ @enable_confidential_compute = args[:enable_confidential_compute] if args.key?(:enable_confidential_compute)
38698
39428
  @guest_flush = args[:guest_flush] if args.key?(:guest_flush)
38699
39429
  @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features)
38700
39430
  @id = args[:id] if args.key?(:id)