google-apis-compute_beta 0.73.0 → 0.74.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)
@@ -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)