google-apis-compute_beta 0.72.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)
@@ -2846,6 +2853,16 @@ module Google
2846
2853
  # @return [Float]
2847
2854
  attr_accessor :max_utilization
2848
2855
 
2856
+ # This field indicates whether this backend should be fully utilized before
2857
+ # sending traffic to backends with default preference. The possible values are: -
2858
+ # PREFERRED: Backends with this preference level will be filled up to their
2859
+ # capacity limits first, based on RTT. - DEFAULT: If preferred backends don't
2860
+ # have enough capacity, backends in this layer would be used and traffic would
2861
+ # be assigned based on the load balancing algorithm you use. This is the default
2862
+ # Corresponds to the JSON property `preference`
2863
+ # @return [String]
2864
+ attr_accessor :preference
2865
+
2849
2866
  def initialize(**args)
2850
2867
  update!(**args)
2851
2868
  end
@@ -2864,6 +2881,7 @@ module Google
2864
2881
  @max_rate_per_endpoint = args[:max_rate_per_endpoint] if args.key?(:max_rate_per_endpoint)
2865
2882
  @max_rate_per_instance = args[:max_rate_per_instance] if args.key?(:max_rate_per_instance)
2866
2883
  @max_utilization = args[:max_utilization] if args.key?(:max_utilization)
2884
+ @preference = args[:preference] if args.key?(:preference)
2867
2885
  end
2868
2886
  end
2869
2887
 
@@ -3611,6 +3629,13 @@ module Google
3611
3629
  # @return [Array<String>]
3612
3630
  attr_accessor :service_bindings
3613
3631
 
3632
+ # URL to networkservices.ServiceLbPolicy resource. Can only be set if load
3633
+ # balancing scheme is EXTERNAL, EXTERNAL_MANAGED, INTERNAL_MANAGED or
3634
+ # INTERNAL_SELF_MANAGED and the scope is global.
3635
+ # Corresponds to the JSON property `serviceLbPolicy`
3636
+ # @return [String]
3637
+ attr_accessor :service_lb_policy
3638
+
3614
3639
  # Type of session affinity to use. The default is NONE. Only NONE and
3615
3640
  # HEADER_FIELD are supported when the backend service is referenced by a URL map
3616
3641
  # that is bound to target gRPC proxy that has validateForProxyless field set to
@@ -3682,6 +3707,7 @@ module Google
3682
3707
  @security_settings = args[:security_settings] if args.key?(:security_settings)
3683
3708
  @self_link = args[:self_link] if args.key?(:self_link)
3684
3709
  @service_bindings = args[:service_bindings] if args.key?(:service_bindings)
3710
+ @service_lb_policy = args[:service_lb_policy] if args.key?(:service_lb_policy)
3685
3711
  @session_affinity = args[:session_affinity] if args.key?(:session_affinity)
3686
3712
  @subsetting = args[:subsetting] if args.key?(:subsetting)
3687
3713
  @timeout_sec = args[:timeout_sec] if args.key?(:timeout_sec)
@@ -5037,6 +5063,50 @@ module Google
5037
5063
  end
5038
5064
  end
5039
5065
 
5066
+ #
5067
+ class BulkInsertOperationStatus
5068
+ include Google::Apis::Core::Hashable
5069
+
5070
+ # [Output Only] Count of VMs successfully created so far.
5071
+ # Corresponds to the JSON property `createdVmCount`
5072
+ # @return [Fixnum]
5073
+ attr_accessor :created_vm_count
5074
+
5075
+ # [Output Only] Count of VMs that got deleted during rollback.
5076
+ # Corresponds to the JSON property `deletedVmCount`
5077
+ # @return [Fixnum]
5078
+ attr_accessor :deleted_vm_count
5079
+
5080
+ # [Output Only] Count of VMs that started creating but encountered an error.
5081
+ # Corresponds to the JSON property `failedToCreateVmCount`
5082
+ # @return [Fixnum]
5083
+ attr_accessor :failed_to_create_vm_count
5084
+
5085
+ # [Output Only] Creation status of BulkInsert operation - information if the
5086
+ # flow is rolling forward or rolling back.
5087
+ # Corresponds to the JSON property `status`
5088
+ # @return [String]
5089
+ attr_accessor :status
5090
+
5091
+ # [Output Only] Count of VMs originally planned to be created.
5092
+ # Corresponds to the JSON property `targetVmCount`
5093
+ # @return [Fixnum]
5094
+ attr_accessor :target_vm_count
5095
+
5096
+ def initialize(**args)
5097
+ update!(**args)
5098
+ end
5099
+
5100
+ # Update properties of this object
5101
+ def update!(**args)
5102
+ @created_vm_count = args[:created_vm_count] if args.key?(:created_vm_count)
5103
+ @deleted_vm_count = args[:deleted_vm_count] if args.key?(:deleted_vm_count)
5104
+ @failed_to_create_vm_count = args[:failed_to_create_vm_count] if args.key?(:failed_to_create_vm_count)
5105
+ @status = args[:status] if args.key?(:status)
5106
+ @target_vm_count = args[:target_vm_count] if args.key?(:target_vm_count)
5107
+ end
5108
+ end
5109
+
5040
5110
  #
5041
5111
  class BundledLocalSsds
5042
5112
  include Google::Apis::Core::Hashable
@@ -6246,6 +6316,12 @@ module Google
6246
6316
  # @return [Google::Apis::ComputeBeta::CustomerEncryptionKey]
6247
6317
  attr_accessor :disk_encryption_key
6248
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
+
6249
6325
  # Specifies whether the disk restored from a source snapshot should erase
6250
6326
  # Windows specific VSS signature.
6251
6327
  # Corresponds to the JSON property `eraseWindowsVssSignature`
@@ -6596,6 +6672,7 @@ module Google
6596
6672
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
6597
6673
  @description = args[:description] if args.key?(:description)
6598
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)
6599
6676
  @erase_windows_vss_signature = args[:erase_windows_vss_signature] if args.key?(:erase_windows_vss_signature)
6600
6677
  @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features)
6601
6678
  @id = args[:id] if args.key?(:id)
@@ -9498,9 +9575,12 @@ module Google
9498
9575
  alias_method :all_ports?, :all_ports
9499
9576
 
9500
9577
  # This field is used along with the backend_service field for internal load
9501
- # balancing or with the target field for internal TargetInstance. If the field
9502
- # is set to TRUE, clients can access ILB from all regions. Otherwise only allows
9503
- # access from clients in the same region as the internal load balancer.
9578
+ # balancing or with the target field for internal TargetInstance. If set to true,
9579
+ # clients can access the Internal TCP/UDP Load Balancer, Internal HTTP(S) and
9580
+ # TCP Proxy Load Balancer from all regions. If false, only allows access from
9581
+ # the local region the load balancer is located at. Note that for
9582
+ # INTERNAL_MANAGED forwarding rules, this field cannot be changed after the
9583
+ # forwarding rule is created.
9504
9584
  # Corresponds to the JSON property `allowGlobalAccess`
9505
9585
  # @return [Boolean]
9506
9586
  attr_accessor :allow_global_access
@@ -13142,6 +13222,13 @@ module Google
13142
13222
  # @return [Fixnum]
13143
13223
  attr_accessor :disk_size_gb
13144
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
+
13145
13232
  # The name of the image family to which this image belongs. The image family
13146
13233
  # name can be from a publicly managed image family provided by Compute Engine,
13147
13234
  # or from a custom image family you create. For example, centos-stream-9 is a
@@ -13375,6 +13462,7 @@ module Google
13375
13462
  @deprecated = args[:deprecated] if args.key?(:deprecated)
13376
13463
  @description = args[:description] if args.key?(:description)
13377
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)
13378
13466
  @family = args[:family] if args.key?(:family)
13379
13467
  @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features)
13380
13468
  @id = args[:id] if args.key?(:id)
@@ -15206,6 +15294,344 @@ module Google
15206
15294
  end
15207
15295
  end
15208
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
+
15209
15635
  #
15210
15636
  class InstanceGroupManagerStatus
15211
15637
  include Google::Apis::Core::Hashable
@@ -17448,6 +17874,26 @@ module Google
17448
17874
  end
17449
17875
  end
17450
17876
 
17877
+ #
17878
+ class InstancesBulkInsertOperationMetadata
17879
+ include Google::Apis::Core::Hashable
17880
+
17881
+ # Status information per location (location name is key). Example key: zones/us-
17882
+ # central1-a
17883
+ # Corresponds to the JSON property `perLocationStatus`
17884
+ # @return [Hash<String,Google::Apis::ComputeBeta::BulkInsertOperationStatus>]
17885
+ attr_accessor :per_location_status
17886
+
17887
+ def initialize(**args)
17888
+ update!(**args)
17889
+ end
17890
+
17891
+ # Update properties of this object
17892
+ def update!(**args)
17893
+ @per_location_status = args[:per_location_status] if args.key?(:per_location_status)
17894
+ end
17895
+ end
17896
+
17451
17897
  #
17452
17898
  class InstancesGetEffectiveFirewallsResponse
17453
17899
  include Google::Apis::Core::Hashable
@@ -18425,6 +18871,15 @@ module Google
18425
18871
  attr_accessor :admin_enabled
18426
18872
  alias_method :admin_enabled?, :admin_enabled
18427
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
+
18428
18883
  # [Output Only] A list of CircuitInfo objects, that describe the individual
18429
18884
  # circuits in this LAG.
18430
18885
  # Corresponds to the JSON property `circuitInfos`
@@ -18525,6 +18980,19 @@ module Google
18525
18980
  # @return [String]
18526
18981
  attr_accessor :location
18527
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
+
18528
18996
  # Name of the resource. Provided by the client when the resource is created. The
18529
18997
  # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
18530
18998
  # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
@@ -18573,6 +19041,16 @@ module Google
18573
19041
  # @return [String]
18574
19042
  attr_accessor :remote_location
18575
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
+
18576
19054
  # Target number of physical links in the link bundle, as requested by the
18577
19055
  # customer.
18578
19056
  # Corresponds to the JSON property `requestedLinkCount`
@@ -18608,6 +19086,7 @@ module Google
18608
19086
  # Update properties of this object
18609
19087
  def update!(**args)
18610
19088
  @admin_enabled = args[:admin_enabled] if args.key?(:admin_enabled)
19089
+ @available_features = args[:available_features] if args.key?(:available_features)
18611
19090
  @circuit_infos = args[:circuit_infos] if args.key?(:circuit_infos)
18612
19091
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
18613
19092
  @customer_name = args[:customer_name] if args.key?(:customer_name)
@@ -18623,12 +19102,15 @@ module Google
18623
19102
  @labels = args[:labels] if args.key?(:labels)
18624
19103
  @link_type = args[:link_type] if args.key?(:link_type)
18625
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)
18626
19107
  @name = args[:name] if args.key?(:name)
18627
19108
  @noc_contact_email = args[:noc_contact_email] if args.key?(:noc_contact_email)
18628
19109
  @operational_status = args[:operational_status] if args.key?(:operational_status)
18629
19110
  @peer_ip_address = args[:peer_ip_address] if args.key?(:peer_ip_address)
18630
19111
  @provisioned_link_count = args[:provisioned_link_count] if args.key?(:provisioned_link_count)
18631
19112
  @remote_location = args[:remote_location] if args.key?(:remote_location)
19113
+ @requested_features = args[:requested_features] if args.key?(:requested_features)
18632
19114
  @requested_link_count = args[:requested_link_count] if args.key?(:requested_link_count)
18633
19115
  @satisfies_pzs = args[:satisfies_pzs] if args.key?(:satisfies_pzs)
18634
19116
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -19501,8 +19983,9 @@ module Google
19501
19983
  end
19502
19984
  end
19503
19985
 
19504
- # Diagnostics information about interconnect, contains detailed and current
19505
- # 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.
19506
19989
  class InterconnectDiagnostics
19507
19990
  include Google::Apis::Core::Hashable
19508
19991
 
@@ -19666,6 +20149,11 @@ module Google
19666
20149
  # @return [Google::Apis::ComputeBeta::InterconnectDiagnosticsLinkLacpStatus]
19667
20150
  attr_accessor :lacp_status
19668
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
+
19669
20157
  # The operational status of the link.
19670
20158
  # Corresponds to the JSON property `operationalStatus`
19671
20159
  # @return [String]
@@ -19693,12 +20181,40 @@ module Google
19693
20181
  @circuit_id = args[:circuit_id] if args.key?(:circuit_id)
19694
20182
  @google_demarc = args[:google_demarc] if args.key?(:google_demarc)
19695
20183
  @lacp_status = args[:lacp_status] if args.key?(:lacp_status)
20184
+ @macsec = args[:macsec] if args.key?(:macsec)
19696
20185
  @operational_status = args[:operational_status] if args.key?(:operational_status)
19697
20186
  @receiving_optical_power = args[:receiving_optical_power] if args.key?(:receiving_optical_power)
19698
20187
  @transmitting_optical_power = args[:transmitting_optical_power] if args.key?(:transmitting_optical_power)
19699
20188
  end
19700
20189
  end
19701
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
+
19702
20218
  # Response to the list request, and contains a list of interconnects.
19703
20219
  class InterconnectList
19704
20220
  include Google::Apis::Core::Hashable
@@ -19837,6 +20353,19 @@ module Google
19837
20353
  # @return [String]
19838
20354
  attr_accessor :availability_zone
19839
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
+
19840
20369
  # [Output Only] Metropolitan area designator that indicates which city an
19841
20370
  # interconnect is located. For example: "Chicago, IL", "Amsterdam, Netherlands".
19842
20371
  # Corresponds to the JSON property `city`
@@ -19927,6 +20456,8 @@ module Google
19927
20456
  def update!(**args)
19928
20457
  @address = args[:address] if args.key?(:address)
19929
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)
19930
20461
  @city = args[:city] if args.key?(:city)
19931
20462
  @continent = args[:continent] if args.key?(:continent)
19932
20463
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
@@ -20095,6 +20626,137 @@ module Google
20095
20626
  end
20096
20627
  end
20097
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
+
20098
20760
  # Description of a planned outage on this Interconnect.
20099
20761
  class InterconnectOutageNotification
20100
20762
  include Google::Apis::Core::Hashable
@@ -20539,8 +21201,9 @@ module Google
20539
21201
  class InterconnectsGetDiagnosticsResponse
20540
21202
  include Google::Apis::Core::Hashable
20541
21203
 
20542
- # Diagnostics information about interconnect, contains detailed and current
20543
- # 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.
20544
21207
  # Corresponds to the JSON property `result`
20545
21208
  # @return [Google::Apis::ComputeBeta::InterconnectDiagnostics]
20546
21209
  attr_accessor :result
@@ -20555,6 +21218,33 @@ module Google
20555
21218
  end
20556
21219
  end
20557
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
+
20558
21248
  # Represents a License resource. A License represents billing and aggregate
20559
21249
  # usage data for public and marketplace images. *Caution* This resource is
20560
21250
  # intended for use only by third-party partners who are creating Cloud
@@ -21967,6 +22657,12 @@ module Google
21967
22657
  # @return [Google::Apis::ComputeBeta::ManagedInstanceLastAttempt]
21968
22658
  attr_accessor :last_attempt
21969
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
+
21970
22666
  # Preserved state for a given instance.
21971
22667
  # Corresponds to the JSON property `preservedStateFromConfig`
21972
22668
  # @return [Google::Apis::ComputeBeta::PreservedState]
@@ -21995,6 +22691,7 @@ module Google
21995
22691
  @instance_health = args[:instance_health] if args.key?(:instance_health)
21996
22692
  @instance_status = args[:instance_status] if args.key?(:instance_status)
21997
22693
  @last_attempt = args[:last_attempt] if args.key?(:last_attempt)
22694
+ @name = args[:name] if args.key?(:name)
21998
22695
  @preserved_state_from_config = args[:preserved_state_from_config] if args.key?(:preserved_state_from_config)
21999
22696
  @preserved_state_from_policy = args[:preserved_state_from_policy] if args.key?(:preserved_state_from_policy)
22000
22697
  @version = args[:version] if args.key?(:version)
@@ -27018,6 +27715,11 @@ module Google
27018
27715
  # @return [String]
27019
27716
  attr_accessor :insert_time
27020
27717
 
27718
+ #
27719
+ # Corresponds to the JSON property `instancesBulkInsertOperationMetadata`
27720
+ # @return [Google::Apis::ComputeBeta::InstancesBulkInsertOperationMetadata]
27721
+ attr_accessor :instances_bulk_insert_operation_metadata
27722
+
27021
27723
  # [Output Only] Type of the resource. Always `compute#operation` for Operation
27022
27724
  # resources.
27023
27725
  # Corresponds to the JSON property `kind`
@@ -27124,6 +27826,7 @@ module Google
27124
27826
  @http_error_status_code = args[:http_error_status_code] if args.key?(:http_error_status_code)
27125
27827
  @id = args[:id] if args.key?(:id)
27126
27828
  @insert_time = args[:insert_time] if args.key?(:insert_time)
27829
+ @instances_bulk_insert_operation_metadata = args[:instances_bulk_insert_operation_metadata] if args.key?(:instances_bulk_insert_operation_metadata)
27127
27830
  @kind = args[:kind] if args.key?(:kind)
27128
27831
  @name = args[:name] if args.key?(:name)
27129
27832
  @operation_group_id = args[:operation_group_id] if args.key?(:operation_group_id)
@@ -27690,45 +28393,38 @@ module Google
27690
28393
  # @return [Google::Apis::ComputeBeta::Duration]
27691
28394
  attr_accessor :base_ejection_time
27692
28395
 
27693
- # Number of errors before a host is ejected from the connection pool. When the
27694
- # backend host is accessed over HTTP, a 5xx return code qualifies as an error.
27695
- # Defaults to 5. Not supported when the backend service is referenced by a URL
27696
- # map that is bound to target gRPC proxy that has validateForProxyless field set
27697
- # 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.
27698
28399
  # Corresponds to the JSON property `consecutiveErrors`
27699
28400
  # @return [Fixnum]
27700
28401
  attr_accessor :consecutive_errors
27701
28402
 
27702
28403
  # The number of consecutive gateway failures (502, 503, 504 status or connection
27703
28404
  # errors that are mapped to one of those status codes) before a consecutive
27704
- # gateway failure ejection occurs. Defaults to 3. Not supported when the backend
27705
- # service is referenced by a URL map that is bound to target gRPC proxy that has
27706
- # validateForProxyless field set to true.
28405
+ # gateway failure ejection occurs. Defaults to 3.
27707
28406
  # Corresponds to the JSON property `consecutiveGatewayFailure`
27708
28407
  # @return [Fixnum]
27709
28408
  attr_accessor :consecutive_gateway_failure
27710
28409
 
27711
- # 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
27712
28411
  # status is detected through consecutive 5xx. This setting can be used to
27713
- # disable ejection or to ramp it up slowly. Defaults to 0. Not supported when
27714
- # the backend service is referenced by a URL map that is bound to target gRPC
27715
- # proxy that has validateForProxyless field set to true.
28412
+ # disable ejection or to ramp it up slowly. Defaults to 0.
27716
28413
  # Corresponds to the JSON property `enforcingConsecutiveErrors`
27717
28414
  # @return [Fixnum]
27718
28415
  attr_accessor :enforcing_consecutive_errors
27719
28416
 
27720
- # 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
27721
28418
  # status is detected through consecutive gateway failures. This setting can be
27722
- # used to disable ejection or to ramp it up slowly. Defaults to 100. Not
27723
- # supported when the backend service is referenced by a URL map that is bound to
27724
- # target gRPC proxy that has validateForProxyless field set to true.
28419
+ # used to disable ejection or to ramp it up slowly. Defaults to 100.
27725
28420
  # Corresponds to the JSON property `enforcingConsecutiveGatewayFailure`
27726
28421
  # @return [Fixnum]
27727
28422
  attr_accessor :enforcing_consecutive_gateway_failure
27728
28423
 
27729
- # 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
27730
28425
  # status is detected through success rate statistics. This setting can be used
27731
- # 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.
27732
28428
  # Corresponds to the JSON property `enforcingSuccessRate`
27733
28429
  # @return [Fixnum]
27734
28430
  attr_accessor :enforcing_success_rate
@@ -27741,25 +28437,29 @@ module Google
27741
28437
  # @return [Google::Apis::ComputeBeta::Duration]
27742
28438
  attr_accessor :interval
27743
28439
 
27744
- # Maximum percentage of hosts in the load balancing pool for the backend service
27745
- # 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%.
27746
28443
  # Corresponds to the JSON property `maxEjectionPercent`
27747
28444
  # @return [Fixnum]
27748
28445
  attr_accessor :max_ejection_percent
27749
28446
 
27750
- # The number of hosts in a cluster that must have enough request volume to
27751
- # detect success rate outliers. If the number of hosts is less than this setting,
27752
- # outlier detection via success rate statistics is not performed for any host
27753
- # 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.
27754
28453
  # Corresponds to the JSON property `successRateMinimumHosts`
27755
28454
  # @return [Fixnum]
27756
28455
  attr_accessor :success_rate_minimum_hosts
27757
28456
 
27758
28457
  # The minimum number of total requests that must be collected in one interval (
27759
- # as defined by the interval duration above) to include this host in success
27760
- # rate based outlier detection. If the volume is lower than this setting,
27761
- # outlier detection via success rate statistics is not performed for that host.
27762
- # 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.
27763
28463
  # Corresponds to the JSON property `successRateRequestVolume`
27764
28464
  # @return [Fixnum]
27765
28465
  attr_accessor :success_rate_request_volume
@@ -27767,9 +28467,10 @@ module Google
27767
28467
  # This factor is used to determine the ejection threshold for success rate
27768
28468
  # outlier ejection. The ejection threshold is the difference between the mean
27769
28469
  # success rate, and the product of this factor and the standard deviation of the
27770
- # mean success rate: mean - (stdev * success_rate_stdev_factor). This factor is
28470
+ # mean success rate: mean - (stdev * successRateStdevFactor). This factor is
27771
28471
  # divided by a thousand to get a double. That is, if the desired factor is 1.9,
27772
- # 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.
27773
28474
  # Corresponds to the JSON property `successRateStdevFactor`
27774
28475
  # @return [Fixnum]
27775
28476
  attr_accessor :success_rate_stdev_factor
@@ -29458,7 +30159,7 @@ module Google
29458
30159
  # @return [Fixnum]
29459
30160
  attr_accessor :id
29460
30161
 
29461
- # The IPv4 address range, in CIDR format, represented by this public delegated
30162
+ # The IP address range, in CIDR format, represented by this public delegated
29462
30163
  # prefix.
29463
30164
  # Corresponds to the JSON property `ipCidrRange`
29464
30165
  # @return [String]
@@ -29801,8 +30502,8 @@ module Google
29801
30502
  # @return [String]
29802
30503
  attr_accessor :description
29803
30504
 
29804
- # The IPv4 address range, in CIDR format, represented by this sub public
29805
- # delegated prefix.
30505
+ # The IP address range, in CIDR format, represented by this sub public delegated
30506
+ # prefix.
29806
30507
  # Corresponds to the JSON property `ipCidrRange`
29807
30508
  # @return [String]
29808
30509
  attr_accessor :ip_cidr_range
@@ -31501,6 +32202,44 @@ module Google
31501
32202
  end
31502
32203
  end
31503
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
+
31504
32243
  #
31505
32244
  class RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse
31506
32245
  include Google::Apis::Core::Hashable
@@ -34579,6 +35318,12 @@ module Google
34579
35318
  # @return [Fixnum]
34580
35319
  attr_accessor :tcp_transitory_idle_timeout_sec
34581
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
+
34582
35327
  # Timeout (in seconds) for UDP connections. Defaults to 30s if not set.
34583
35328
  # Corresponds to the JSON property `udpIdleTimeoutSec`
34584
35329
  # @return [Fixnum]
@@ -34608,6 +35353,7 @@ module Google
34608
35353
  @tcp_established_idle_timeout_sec = args[:tcp_established_idle_timeout_sec] if args.key?(:tcp_established_idle_timeout_sec)
34609
35354
  @tcp_time_wait_timeout_sec = args[:tcp_time_wait_timeout_sec] if args.key?(:tcp_time_wait_timeout_sec)
34610
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)
34611
35357
  @udp_idle_timeout_sec = args[:udp_idle_timeout_sec] if args.key?(:udp_idle_timeout_sec)
34612
35358
  end
34613
35359
  end
@@ -34699,6 +35445,13 @@ module Google
34699
35445
  # @return [Array<String>]
34700
35446
  attr_accessor :source_nat_active_ips
34701
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
+
34702
35455
  # A list of URLs of the IP resources to be drained. These IPs must be valid
34703
35456
  # static external IPs that have been assigned to the NAT. These IPs should be
34704
35457
  # used for updating/patching a NAT rule only. This field is used for public NAT.
@@ -34706,6 +35459,14 @@ module Google
34706
35459
  # @return [Array<String>]
34707
35460
  attr_accessor :source_nat_drain_ips
34708
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
+
34709
35470
  def initialize(**args)
34710
35471
  update!(**args)
34711
35472
  end
@@ -34713,7 +35474,9 @@ module Google
34713
35474
  # Update properties of this object
34714
35475
  def update!(**args)
34715
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)
34716
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)
34717
35480
  end
34718
35481
  end
34719
35482
 
@@ -36223,6 +36986,12 @@ module Google
36223
36986
  # @return [String]
36224
36987
  attr_accessor :rule_visibility
36225
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
+
36226
36995
  def initialize(**args)
36227
36996
  update!(**args)
36228
36997
  end
@@ -36231,6 +37000,51 @@ module Google
36231
37000
  def update!(**args)
36232
37001
  @enable = args[:enable] if args.key?(:enable)
36233
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)
36234
37048
  end
36235
37049
  end
36236
37050
 
@@ -38404,6 +39218,13 @@ module Google
38404
39218
  # @return [Fixnum]
38405
39219
  attr_accessor :download_bytes
38406
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
+
38407
39228
  # [Input Only] Whether to attempt an application consistent snapshot by
38408
39229
  # informing the OS to prepare for the snapshot process.
38409
39230
  # Corresponds to the JSON property `guestFlush`
@@ -38603,6 +39424,7 @@ module Google
38603
39424
  @description = args[:description] if args.key?(:description)
38604
39425
  @disk_size_gb = args[:disk_size_gb] if args.key?(:disk_size_gb)
38605
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)
38606
39428
  @guest_flush = args[:guest_flush] if args.key?(:guest_flush)
38607
39429
  @guest_os_features = args[:guest_os_features] if args.key?(:guest_os_features)
38608
39430
  @id = args[:id] if args.key?(:id)