google-apis-compute_beta 0.72.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)
@@ -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)