google-apis-compute_alpha 0.121.0 → 0.123.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.
@@ -663,6 +663,18 @@ module Google
663
663
  # @return [Fixnum]
664
664
  attr_accessor :id
665
665
 
666
+ # Reference to the source of external IPv4 addresses, like a
667
+ # PublicDelegatedPrefix (PDP) for BYOIP. The PDP must support enhanced IPv4
668
+ # allocations. Use one of the following formats to specify a PDP when reserving
669
+ # an external IPv4 address using BYOIP. - Full resource URL, as in https://www.
670
+ # googleapis.com/compute/v1/projects/projectId/regions/region /
671
+ # publicDelegatedPrefixes/pdp-name - Partial URL, as in - projects/projectId/
672
+ # regions/region/publicDelegatedPrefixes/pdp-name - regions/region/
673
+ # publicDelegatedPrefixes/pdp-name
674
+ # Corresponds to the JSON property `ipCollection`
675
+ # @return [String]
676
+ attr_accessor :ip_collection
677
+
666
678
  # The IP version that will be used by this address. Valid options are IPV4 or
667
679
  # IPV6.
668
680
  # Corresponds to the JSON property `ipVersion`
@@ -798,6 +810,7 @@ module Google
798
810
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
799
811
  @description = args[:description] if args.key?(:description)
800
812
  @id = args[:id] if args.key?(:id)
813
+ @ip_collection = args[:ip_collection] if args.key?(:ip_collection)
801
814
  @ip_version = args[:ip_version] if args.key?(:ip_version)
802
815
  @ipv6_endpoint_type = args[:ipv6_endpoint_type] if args.key?(:ipv6_endpoint_type)
803
816
  @kind = args[:kind] if args.key?(:kind)
@@ -3403,6 +3416,123 @@ module Google
3403
3416
  end
3404
3417
  end
3405
3418
 
3419
+ #
3420
+ class BackendBucketAggregatedList
3421
+ include Google::Apis::Core::Hashable
3422
+
3423
+ # [Output Only] Unique identifier for the resource; defined by the server.
3424
+ # Corresponds to the JSON property `id`
3425
+ # @return [String]
3426
+ attr_accessor :id
3427
+
3428
+ # A list of BackendBucketsScopedList resources.
3429
+ # Corresponds to the JSON property `items`
3430
+ # @return [Hash<String,Google::Apis::ComputeAlpha::BackendBucketsScopedList>]
3431
+ attr_accessor :items
3432
+
3433
+ # Type of resource.
3434
+ # Corresponds to the JSON property `kind`
3435
+ # @return [String]
3436
+ attr_accessor :kind
3437
+
3438
+ # [Output Only] This token allows you to get the next page of results for list
3439
+ # requests. If the number of results is larger than maxResults, use the
3440
+ # nextPageToken as a value for the query parameter pageToken in the next list
3441
+ # request. Subsequent list requests will have their own nextPageToken to
3442
+ # continue paging through the results.
3443
+ # Corresponds to the JSON property `nextPageToken`
3444
+ # @return [String]
3445
+ attr_accessor :next_page_token
3446
+
3447
+ # [Output Only] Server-defined URL for this resource.
3448
+ # Corresponds to the JSON property `selfLink`
3449
+ # @return [String]
3450
+ attr_accessor :self_link
3451
+
3452
+ # [Output Only] Informational warning message.
3453
+ # Corresponds to the JSON property `warning`
3454
+ # @return [Google::Apis::ComputeAlpha::BackendBucketAggregatedList::Warning]
3455
+ attr_accessor :warning
3456
+
3457
+ def initialize(**args)
3458
+ update!(**args)
3459
+ end
3460
+
3461
+ # Update properties of this object
3462
+ def update!(**args)
3463
+ @id = args[:id] if args.key?(:id)
3464
+ @items = args[:items] if args.key?(:items)
3465
+ @kind = args[:kind] if args.key?(:kind)
3466
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3467
+ @self_link = args[:self_link] if args.key?(:self_link)
3468
+ @warning = args[:warning] if args.key?(:warning)
3469
+ end
3470
+
3471
+ # [Output Only] Informational warning message.
3472
+ class Warning
3473
+ include Google::Apis::Core::Hashable
3474
+
3475
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
3476
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
3477
+ # Corresponds to the JSON property `code`
3478
+ # @return [String]
3479
+ attr_accessor :code
3480
+
3481
+ # [Output Only] Metadata about this warning in key: value format. For example: "
3482
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
3483
+ # Corresponds to the JSON property `data`
3484
+ # @return [Array<Google::Apis::ComputeAlpha::BackendBucketAggregatedList::Warning::Datum>]
3485
+ attr_accessor :data
3486
+
3487
+ # [Output Only] A human-readable description of the warning code.
3488
+ # Corresponds to the JSON property `message`
3489
+ # @return [String]
3490
+ attr_accessor :message
3491
+
3492
+ def initialize(**args)
3493
+ update!(**args)
3494
+ end
3495
+
3496
+ # Update properties of this object
3497
+ def update!(**args)
3498
+ @code = args[:code] if args.key?(:code)
3499
+ @data = args[:data] if args.key?(:data)
3500
+ @message = args[:message] if args.key?(:message)
3501
+ end
3502
+
3503
+ #
3504
+ class Datum
3505
+ include Google::Apis::Core::Hashable
3506
+
3507
+ # [Output Only] A key that provides more detail on the warning being returned.
3508
+ # For example, for warnings where there are no results in a list request for a
3509
+ # particular zone, this key might be scope and the key value might be the zone
3510
+ # name. Other examples might be a key indicating a deprecated resource and a
3511
+ # suggested replacement, or a warning about invalid network settings (for
3512
+ # example, if an instance attempts to perform IP forwarding but is not enabled
3513
+ # for IP forwarding).
3514
+ # Corresponds to the JSON property `key`
3515
+ # @return [String]
3516
+ attr_accessor :key
3517
+
3518
+ # [Output Only] A warning data value corresponding to the key.
3519
+ # Corresponds to the JSON property `value`
3520
+ # @return [String]
3521
+ attr_accessor :value
3522
+
3523
+ def initialize(**args)
3524
+ update!(**args)
3525
+ end
3526
+
3527
+ # Update properties of this object
3528
+ def update!(**args)
3529
+ @key = args[:key] if args.key?(:key)
3530
+ @value = args[:value] if args.key?(:value)
3531
+ end
3532
+ end
3533
+ end
3534
+ end
3535
+
3406
3536
  # Message containing Cloud CDN configuration for a backend bucket.
3407
3537
  class BackendBucketCdnPolicy
3408
3538
  include Google::Apis::Core::Hashable
@@ -3485,8 +3615,8 @@ module Google
3485
3615
  # CDN will apply the following default TTLs to these status codes: HTTP 300 (
3486
3616
  # Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found),
3487
3617
  # 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not
3488
- # Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults
3489
- # can be overridden in negative_caching_policy.
3618
+ # Found), 501 (Not Implemented): 60s. These defaults can be overridden in
3619
+ # negative_caching_policy.
3490
3620
  # Corresponds to the JSON property `negativeCaching`
3491
3621
  # @return [Boolean]
3492
3622
  attr_accessor :negative_caching
@@ -3918,6 +4048,97 @@ module Google
3918
4048
  end
3919
4049
  end
3920
4050
 
4051
+ #
4052
+ class BackendBucketsScopedList
4053
+ include Google::Apis::Core::Hashable
4054
+
4055
+ # A list of BackendBuckets contained in this scope.
4056
+ # Corresponds to the JSON property `backendBuckets`
4057
+ # @return [Array<Google::Apis::ComputeAlpha::BackendBucket>]
4058
+ attr_accessor :backend_buckets
4059
+
4060
+ # Informational warning which replaces the list of backend services when the
4061
+ # list is empty.
4062
+ # Corresponds to the JSON property `warning`
4063
+ # @return [Google::Apis::ComputeAlpha::BackendBucketsScopedList::Warning]
4064
+ attr_accessor :warning
4065
+
4066
+ def initialize(**args)
4067
+ update!(**args)
4068
+ end
4069
+
4070
+ # Update properties of this object
4071
+ def update!(**args)
4072
+ @backend_buckets = args[:backend_buckets] if args.key?(:backend_buckets)
4073
+ @warning = args[:warning] if args.key?(:warning)
4074
+ end
4075
+
4076
+ # Informational warning which replaces the list of backend services when the
4077
+ # list is empty.
4078
+ class Warning
4079
+ include Google::Apis::Core::Hashable
4080
+
4081
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
4082
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
4083
+ # Corresponds to the JSON property `code`
4084
+ # @return [String]
4085
+ attr_accessor :code
4086
+
4087
+ # [Output Only] Metadata about this warning in key: value format. For example: "
4088
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
4089
+ # Corresponds to the JSON property `data`
4090
+ # @return [Array<Google::Apis::ComputeAlpha::BackendBucketsScopedList::Warning::Datum>]
4091
+ attr_accessor :data
4092
+
4093
+ # [Output Only] A human-readable description of the warning code.
4094
+ # Corresponds to the JSON property `message`
4095
+ # @return [String]
4096
+ attr_accessor :message
4097
+
4098
+ def initialize(**args)
4099
+ update!(**args)
4100
+ end
4101
+
4102
+ # Update properties of this object
4103
+ def update!(**args)
4104
+ @code = args[:code] if args.key?(:code)
4105
+ @data = args[:data] if args.key?(:data)
4106
+ @message = args[:message] if args.key?(:message)
4107
+ end
4108
+
4109
+ #
4110
+ class Datum
4111
+ include Google::Apis::Core::Hashable
4112
+
4113
+ # [Output Only] A key that provides more detail on the warning being returned.
4114
+ # For example, for warnings where there are no results in a list request for a
4115
+ # particular zone, this key might be scope and the key value might be the zone
4116
+ # name. Other examples might be a key indicating a deprecated resource and a
4117
+ # suggested replacement, or a warning about invalid network settings (for
4118
+ # example, if an instance attempts to perform IP forwarding but is not enabled
4119
+ # for IP forwarding).
4120
+ # Corresponds to the JSON property `key`
4121
+ # @return [String]
4122
+ attr_accessor :key
4123
+
4124
+ # [Output Only] A warning data value corresponding to the key.
4125
+ # Corresponds to the JSON property `value`
4126
+ # @return [String]
4127
+ attr_accessor :value
4128
+
4129
+ def initialize(**args)
4130
+ update!(**args)
4131
+ end
4132
+
4133
+ # Update properties of this object
4134
+ def update!(**args)
4135
+ @key = args[:key] if args.key?(:key)
4136
+ @value = args[:value] if args.key?(:value)
4137
+ end
4138
+ end
4139
+ end
4140
+ end
4141
+
3921
4142
  # Custom Metrics are used for CUSTOM_METRICS balancing_mode.
3922
4143
  class BackendCustomMetric
3923
4144
  include Google::Apis::Core::Hashable
@@ -4704,8 +4925,8 @@ module Google
4704
4925
  # CDN will apply the following default TTLs to these status codes: HTTP 300 (
4705
4926
  # Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found),
4706
4927
  # 410 (Gone), 451 (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not
4707
- # Found), 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults
4708
- # can be overridden in negative_caching_policy.
4928
+ # Found), 501 (Not Implemented): 60s. These defaults can be overridden in
4929
+ # negative_caching_policy.
4709
4930
  # Corresponds to the JSON property `negativeCaching`
4710
4931
  # @return [Boolean]
4711
4932
  attr_accessor :negative_caching
@@ -7176,13 +7397,21 @@ module Google
7176
7397
  # @return [Float]
7177
7398
  attr_accessor :obtainability
7178
7399
 
7179
- # The preemption score indicates the likelihood that your Spot VMs is preempted.
7180
- # For more information about the preemption process, see Preemption of Spot VMs.
7181
- # The score range is 0.0 through 1.0. Higher is better.
7400
+ # [Deprecated] Use uptime_score field instead. The preemption score indicates
7401
+ # the likelihood that your Spot VMs is preempted. For more information about the
7402
+ # preemption process, see Preemption of Spot VMs. The score range is 0.0 through
7403
+ # 1.0. Higher is better.
7182
7404
  # Corresponds to the JSON property `spotPreemption`
7183
7405
  # @return [Float]
7184
7406
  attr_accessor :spot_preemption
7185
7407
 
7408
+ # The uptime score indicates the availability of your Spot VMs. For more
7409
+ # information about the preemption process, see Preemption of Spot VMs. The
7410
+ # score range is 0.0 through 1.0. Higher is better.
7411
+ # Corresponds to the JSON property `uptimeScore`
7412
+ # @return [Float]
7413
+ attr_accessor :uptime_score
7414
+
7186
7415
  def initialize(**args)
7187
7416
  update!(**args)
7188
7417
  end
@@ -7191,6 +7420,7 @@ module Google
7191
7420
  def update!(**args)
7192
7421
  @obtainability = args[:obtainability] if args.key?(:obtainability)
7193
7422
  @spot_preemption = args[:spot_preemption] if args.key?(:spot_preemption)
7423
+ @uptime_score = args[:uptime_score] if args.key?(:uptime_score)
7194
7424
  end
7195
7425
  end
7196
7426
 
@@ -12236,6 +12466,12 @@ module Google
12236
12466
  # @return [String]
12237
12467
  attr_accessor :parent
12238
12468
 
12469
+ # [Output Only] Source of this Firewall Policy. USER_DEFINED if created by a
12470
+ # Cloud user, or SYSTEM if created by managed services like GKE.
12471
+ # Corresponds to the JSON property `policySource`
12472
+ # @return [String]
12473
+ attr_accessor :policy_source
12474
+
12239
12475
  # The type of the firewall policy. This field can be either VPC_POLICY or
12240
12476
  # RDMA_ROCE_POLICY. Note: if not specified then VPC_POLICY will be used.
12241
12477
  # Corresponds to the JSON property `policyType`
@@ -12314,6 +12550,7 @@ module Google
12314
12550
  @name = args[:name] if args.key?(:name)
12315
12551
  @packet_mirroring_rules = args[:packet_mirroring_rules] if args.key?(:packet_mirroring_rules)
12316
12552
  @parent = args[:parent] if args.key?(:parent)
12553
+ @policy_source = args[:policy_source] if args.key?(:policy_source)
12317
12554
  @policy_type = args[:policy_type] if args.key?(:policy_type)
12318
12555
  @region = args[:region] if args.key?(:region)
12319
12556
  @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
@@ -13330,13 +13567,6 @@ module Google
13330
13567
  # @return [String]
13331
13568
  attr_accessor :target
13332
13569
 
13333
- # [PSC for VPC-hosted services only] Determines if clients are allowed to access
13334
- # the producer service via this PSC endpoint.
13335
- # Corresponds to the JSON property `trafficDisabled`
13336
- # @return [Boolean]
13337
- attr_accessor :traffic_disabled
13338
- alias_method :traffic_disabled?, :traffic_disabled
13339
-
13340
13570
  def initialize(**args)
13341
13571
  update!(**args)
13342
13572
  end
@@ -13382,7 +13612,6 @@ module Google
13382
13612
  @source_ip_ranges = args[:source_ip_ranges] if args.key?(:source_ip_ranges)
13383
13613
  @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
13384
13614
  @target = args[:target] if args.key?(:target)
13385
- @traffic_disabled = args[:traffic_disabled] if args.key?(:traffic_disabled)
13386
13615
  end
13387
13616
  end
13388
13617
 
@@ -15291,144 +15520,88 @@ module Google
15291
15520
  end
15292
15521
  end
15293
15522
 
15294
- # Maintenance Info for ReservationBlocks.
15295
- class GroupMaintenanceInfo
15523
+ # Message describing GlobalVmExtensionPolicy object.
15524
+ class GlobalVmExtensionPolicy
15296
15525
  include Google::Apis::Core::Hashable
15297
15526
 
15298
- # Describes number of instances that have ongoing maintenance.
15299
- # Corresponds to the JSON property `instanceMaintenanceOngoingCount`
15300
- # @return [Fixnum]
15301
- attr_accessor :instance_maintenance_ongoing_count
15302
-
15303
- # Describes number of instances that have pending maintenance.
15304
- # Corresponds to the JSON property `instanceMaintenancePendingCount`
15305
- # @return [Fixnum]
15306
- attr_accessor :instance_maintenance_pending_count
15307
-
15308
- # Progress for ongoing maintenance for this group of VMs/hosts. Describes number
15309
- # of hosts in the block that have ongoing maintenance.
15310
- # Corresponds to the JSON property `maintenanceOngoingCount`
15311
- # @return [Fixnum]
15312
- attr_accessor :maintenance_ongoing_count
15313
-
15314
- # Progress for ongoing maintenance for this group of VMs/hosts. Describes number
15315
- # of hosts in the block that have pending maintenance.
15316
- # Corresponds to the JSON property `maintenancePendingCount`
15317
- # @return [Fixnum]
15318
- attr_accessor :maintenance_pending_count
15319
-
15320
- # The type of maintenance for the reservation.
15321
- # Corresponds to the JSON property `schedulingType`
15527
+ # [Output Only] Creation timestamp in RFC3339 text format.
15528
+ # Corresponds to the JSON property `creationTimestamp`
15322
15529
  # @return [String]
15323
- attr_accessor :scheduling_type
15324
-
15325
- # Describes number of subblock Infrastructure that has ongoing maintenance. Here,
15326
- # Subblock Infrastructure Maintenance pertains to upstream hardware contained
15327
- # in the Subblock that is necessary for a VM Family(e.g. NVLink Domains). Not
15328
- # all VM Families will support this field.
15329
- # Corresponds to the JSON property `subblockInfraMaintenanceOngoingCount`
15330
- # @return [Fixnum]
15331
- attr_accessor :subblock_infra_maintenance_ongoing_count
15332
-
15333
- # Describes number of subblock Infrastructure that has pending maintenance. Here,
15334
- # Subblock Infrastructure Maintenance pertains to upstream hardware contained
15335
- # in the Subblock that is necessary for a VM Family (e.g. NVLink Domains). Not
15336
- # all VM Families will support this field.
15337
- # Corresponds to the JSON property `subblockInfraMaintenancePendingCount`
15338
- # @return [Fixnum]
15339
- attr_accessor :subblock_infra_maintenance_pending_count
15340
-
15341
- # Upcoming Maintenance notification information.
15342
- # Corresponds to the JSON property `upcomingGroupMaintenance`
15343
- # @return [Google::Apis::ComputeAlpha::UpcomingMaintenance]
15344
- attr_accessor :upcoming_group_maintenance
15345
-
15346
- def initialize(**args)
15347
- update!(**args)
15348
- end
15349
-
15350
- # Update properties of this object
15351
- def update!(**args)
15352
- @instance_maintenance_ongoing_count = args[:instance_maintenance_ongoing_count] if args.key?(:instance_maintenance_ongoing_count)
15353
- @instance_maintenance_pending_count = args[:instance_maintenance_pending_count] if args.key?(:instance_maintenance_pending_count)
15354
- @maintenance_ongoing_count = args[:maintenance_ongoing_count] if args.key?(:maintenance_ongoing_count)
15355
- @maintenance_pending_count = args[:maintenance_pending_count] if args.key?(:maintenance_pending_count)
15356
- @scheduling_type = args[:scheduling_type] if args.key?(:scheduling_type)
15357
- @subblock_infra_maintenance_ongoing_count = args[:subblock_infra_maintenance_ongoing_count] if args.key?(:subblock_infra_maintenance_ongoing_count)
15358
- @subblock_infra_maintenance_pending_count = args[:subblock_infra_maintenance_pending_count] if args.key?(:subblock_infra_maintenance_pending_count)
15359
- @upcoming_group_maintenance = args[:upcoming_group_maintenance] if args.key?(:upcoming_group_maintenance)
15360
- end
15361
- end
15362
-
15363
- # [Deprecated] gRPC config to access the SDS server. gRPC config to access the
15364
- # SDS server.
15365
- class GrpcServiceConfig
15366
- include Google::Apis::Core::Hashable
15367
-
15368
- # [Deprecated] gRPC call credentials to access the SDS server. gRPC call
15369
- # credentials to access the SDS server.
15370
- # Corresponds to the JSON property `callCredentials`
15371
- # @return [Google::Apis::ComputeAlpha::CallCredentials]
15372
- attr_accessor :call_credentials
15373
-
15374
- # [Deprecated] gRPC channel credentials to access the SDS server. gRPC channel
15375
- # credentials to access the SDS server.
15376
- # Corresponds to the JSON property `channelCredentials`
15377
- # @return [Google::Apis::ComputeAlpha::ChannelCredentials]
15378
- attr_accessor :channel_credentials
15530
+ attr_accessor :creation_timestamp
15379
15531
 
15380
- # The target URI of the SDS server.
15381
- # Corresponds to the JSON property `targetUri`
15532
+ # An optional description of this resource. Provide this property when you
15533
+ # create the resource.
15534
+ # Corresponds to the JSON property `description`
15382
15535
  # @return [String]
15383
- attr_accessor :target_uri
15536
+ attr_accessor :description
15384
15537
 
15385
- def initialize(**args)
15386
- update!(**args)
15387
- end
15538
+ # Required. Map from extension (eg: "cloudops") to its policy configuration. The
15539
+ # key is the name of the extension.
15540
+ # Corresponds to the JSON property `extensionPolicies`
15541
+ # @return [Hash<String,Google::Apis::ComputeAlpha::GlobalVmExtensionPolicyExtensionPolicy>]
15542
+ attr_accessor :extension_policies
15388
15543
 
15389
- # Update properties of this object
15390
- def update!(**args)
15391
- @call_credentials = args[:call_credentials] if args.key?(:call_credentials)
15392
- @channel_credentials = args[:channel_credentials] if args.key?(:channel_credentials)
15393
- @target_uri = args[:target_uri] if args.key?(:target_uri)
15394
- end
15395
- end
15544
+ # [Output Only] The unique identifier for the resource. This identifier is
15545
+ # defined by the server.
15546
+ # Corresponds to the JSON property `id`
15547
+ # @return [Fixnum]
15548
+ attr_accessor :id
15396
15549
 
15397
- # A guest attributes entry.
15398
- class GuestAttributes
15399
- include Google::Apis::Core::Hashable
15550
+ # Optional. Selector to target VMs for a policy. There is a logical "AND"
15551
+ # between instance_selectors.
15552
+ # Corresponds to the JSON property `instanceSelectors`
15553
+ # @return [Array<Google::Apis::ComputeAlpha::GlobalVmExtensionPolicyInstanceSelector>]
15554
+ attr_accessor :instance_selectors
15400
15555
 
15401
- # [Output Only] Type of the resource. Always compute#guestAttributes for guest
15402
- # attributes entry.
15556
+ # [Output Only] Type of the resource. Always compute#globalVmExtensionPolicy for
15557
+ # globalVmExtensionPolicies.
15403
15558
  # Corresponds to the JSON property `kind`
15404
15559
  # @return [String]
15405
15560
  attr_accessor :kind
15406
15561
 
15407
- # The path to be queried. This can be the default namespace ('') or a nested
15408
- # namespace ('\/') or a specified key ('\/\').
15409
- # Corresponds to the JSON property `queryPath`
15562
+ # Name of the resource. Provided by the client when the resource is created. The
15563
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
15564
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
15565
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
15566
+ # and all following characters must be a dash, lowercase letter, or digit,
15567
+ # except the last character, which cannot be a dash.
15568
+ # Corresponds to the JSON property `name`
15410
15569
  # @return [String]
15411
- attr_accessor :query_path
15570
+ attr_accessor :name
15412
15571
 
15413
- # Array of guest attribute namespace/key/value tuples.
15414
- # Corresponds to the JSON property `queryValue`
15415
- # @return [Google::Apis::ComputeAlpha::GuestAttributesValue]
15416
- attr_accessor :query_value
15572
+ # Optional. Used to resolve conflicts when multiple policies are active for the
15573
+ # same extension. Defaults to 0. Larger the number, higher the priority. When
15574
+ # the priority is the same, the policy with the newer create time has higher
15575
+ # priority.
15576
+ # Corresponds to the JSON property `priority`
15577
+ # @return [Fixnum]
15578
+ attr_accessor :priority
15417
15579
 
15418
- # [Output Only] Server-defined URL for this resource.
15580
+ # Represents the rollout operation
15581
+ # Corresponds to the JSON property `rolloutOperation`
15582
+ # @return [Google::Apis::ComputeAlpha::GlobalVmExtensionPolicyRolloutOperation]
15583
+ attr_accessor :rollout_operation
15584
+
15585
+ # [Output Only] The scoped resource status. It's only for tracking the purging
15586
+ # status of the policy.
15587
+ # Corresponds to the JSON property `scopedResourceStatus`
15588
+ # @return [String]
15589
+ attr_accessor :scoped_resource_status
15590
+
15591
+ # [Output Only] Server-defined fully-qualified URL for this resource.
15419
15592
  # Corresponds to the JSON property `selfLink`
15420
15593
  # @return [String]
15421
15594
  attr_accessor :self_link
15422
15595
 
15423
- # The key to search for.
15424
- # Corresponds to the JSON property `variableKey`
15596
+ # [Output Only] Server-defined URL for this resource's resource id.
15597
+ # Corresponds to the JSON property `selfLinkWithId`
15425
15598
  # @return [String]
15426
- attr_accessor :variable_key
15599
+ attr_accessor :self_link_with_id
15427
15600
 
15428
- # [Output Only] The value found for the requested key.
15429
- # Corresponds to the JSON property `variableValue`
15601
+ # [Output Only] Update timestamp in RFC3339 text format.
15602
+ # Corresponds to the JSON property `updateTimestamp`
15430
15603
  # @return [String]
15431
- attr_accessor :variable_value
15604
+ attr_accessor :update_timestamp
15432
15605
 
15433
15606
  def initialize(**args)
15434
15607
  update!(**args)
@@ -15436,33 +15609,37 @@ module Google
15436
15609
 
15437
15610
  # Update properties of this object
15438
15611
  def update!(**args)
15612
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
15613
+ @description = args[:description] if args.key?(:description)
15614
+ @extension_policies = args[:extension_policies] if args.key?(:extension_policies)
15615
+ @id = args[:id] if args.key?(:id)
15616
+ @instance_selectors = args[:instance_selectors] if args.key?(:instance_selectors)
15439
15617
  @kind = args[:kind] if args.key?(:kind)
15440
- @query_path = args[:query_path] if args.key?(:query_path)
15441
- @query_value = args[:query_value] if args.key?(:query_value)
15618
+ @name = args[:name] if args.key?(:name)
15619
+ @priority = args[:priority] if args.key?(:priority)
15620
+ @rollout_operation = args[:rollout_operation] if args.key?(:rollout_operation)
15621
+ @scoped_resource_status = args[:scoped_resource_status] if args.key?(:scoped_resource_status)
15442
15622
  @self_link = args[:self_link] if args.key?(:self_link)
15443
- @variable_key = args[:variable_key] if args.key?(:variable_key)
15444
- @variable_value = args[:variable_value] if args.key?(:variable_value)
15623
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
15624
+ @update_timestamp = args[:update_timestamp] if args.key?(:update_timestamp)
15445
15625
  end
15446
15626
  end
15447
15627
 
15448
- # A guest attributes namespace/key/value entry.
15449
- class GuestAttributesEntry
15628
+ # Policy for a single extension.
15629
+ class GlobalVmExtensionPolicyExtensionPolicy
15450
15630
  include Google::Apis::Core::Hashable
15451
15631
 
15452
- # Key for the guest attribute entry.
15453
- # Corresponds to the JSON property `key`
15454
- # @return [String]
15455
- attr_accessor :key
15456
-
15457
- # Namespace for the guest attribute entry.
15458
- # Corresponds to the JSON property `namespace`
15632
+ # Optional. The version pinning for the extension. If empty, the extension will
15633
+ # be installed with the latest version released by the extension producer.
15634
+ # Corresponds to the JSON property `pinnedVersion`
15459
15635
  # @return [String]
15460
- attr_accessor :namespace
15636
+ attr_accessor :pinned_version
15461
15637
 
15462
- # Value for the guest attribute entry.
15463
- # Corresponds to the JSON property `value`
15638
+ # Optional. String configuration. Any string payload that the extension
15639
+ # understands.
15640
+ # Corresponds to the JSON property `stringConfig`
15464
15641
  # @return [String]
15465
- attr_accessor :value
15642
+ attr_accessor :string_config
15466
15643
 
15467
15644
  def initialize(**args)
15468
15645
  update!(**args)
@@ -15470,20 +15647,20 @@ module Google
15470
15647
 
15471
15648
  # Update properties of this object
15472
15649
  def update!(**args)
15473
- @key = args[:key] if args.key?(:key)
15474
- @namespace = args[:namespace] if args.key?(:namespace)
15475
- @value = args[:value] if args.key?(:value)
15650
+ @pinned_version = args[:pinned_version] if args.key?(:pinned_version)
15651
+ @string_config = args[:string_config] if args.key?(:string_config)
15476
15652
  end
15477
15653
  end
15478
15654
 
15479
- # Array of guest attribute namespace/key/value tuples.
15480
- class GuestAttributesValue
15655
+ # Selector to target VMs for a zone VM extension policy.
15656
+ class GlobalVmExtensionPolicyInstanceSelector
15481
15657
  include Google::Apis::Core::Hashable
15482
15658
 
15483
- #
15484
- # Corresponds to the JSON property `items`
15485
- # @return [Array<Google::Apis::ComputeAlpha::GuestAttributesEntry>]
15486
- attr_accessor :items
15659
+ # A LabelSelector is applicable for a VM only if it matches all labels in the
15660
+ # LabelSelector.
15661
+ # Corresponds to the JSON property `labelSelector`
15662
+ # @return [Google::Apis::ComputeAlpha::GlobalVmExtensionPolicyLabelSelector]
15663
+ attr_accessor :label_selector
15487
15664
 
15488
15665
  def initialize(**args)
15489
15666
  update!(**args)
@@ -15491,23 +15668,21 @@ module Google
15491
15668
 
15492
15669
  # Update properties of this object
15493
15670
  def update!(**args)
15494
- @items = args[:items] if args.key?(:items)
15671
+ @label_selector = args[:label_selector] if args.key?(:label_selector)
15495
15672
  end
15496
15673
  end
15497
15674
 
15498
- # Guest OS features.
15499
- class GuestOsFeature
15675
+ # A LabelSelector is applicable for a VM only if it matches all labels in the
15676
+ # LabelSelector.
15677
+ class GlobalVmExtensionPolicyLabelSelector
15500
15678
  include Google::Apis::Core::Hashable
15501
15679
 
15502
- # The ID of a supported feature. To add multiple values, use commas to separate
15503
- # values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE -
15504
- # WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE -
15505
- # SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE_V2 - SEV_SNP_CAPABLE -
15506
- # TDX_CAPABLE - IDPF - SNP_SVSM_CAPABLE For more information, see Enabling guest
15507
- # operating system features.
15508
- # Corresponds to the JSON property `type`
15509
- # @return [String]
15510
- attr_accessor :type
15680
+ # Optional. Labels as key value pairs. A VM should contain all the pairs
15681
+ # specified in this map to be selected; Labels within the LabelSelector are OR'
15682
+ # ed.
15683
+ # Corresponds to the JSON property `inclusionLabels`
15684
+ # @return [Hash<String,String>]
15685
+ attr_accessor :inclusion_labels
15511
15686
 
15512
15687
  def initialize(**args)
15513
15688
  update!(**args)
@@ -15515,81 +15690,571 @@ module Google
15515
15690
 
15516
15691
  # Update properties of this object
15517
15692
  def update!(**args)
15518
- @type = args[:type] if args.key?(:type)
15693
+ @inclusion_labels = args[:inclusion_labels] if args.key?(:inclusion_labels)
15519
15694
  end
15520
15695
  end
15521
15696
 
15522
- #
15523
- class Http2HealthCheck
15697
+ # Response to list global VM extension policy resources.
15698
+ class GlobalVmExtensionPolicyList
15524
15699
  include Google::Apis::Core::Hashable
15525
15700
 
15526
- # The value of the host header in the HTTP/2 health check request. If left empty
15527
- # (default value), the host header is set to the destination IP address to which
15528
- # health check packets are sent. The destination IP address depends on the type
15529
- # of load balancer. For details, see: https://cloud.google.com/load-balancing/
15530
- # docs/health-check-concepts#hc-packet-dest
15531
- # Corresponds to the JSON property `host`
15701
+ #
15702
+ # Corresponds to the JSON property `etag`
15532
15703
  # @return [String]
15533
- attr_accessor :host
15534
-
15535
- # The TCP port number to which the health check prober sends packets. The
15536
- # default value is 443. Valid values are 1 through 65535.
15537
- # Corresponds to the JSON property `port`
15538
- # @return [Fixnum]
15539
- attr_accessor :port
15704
+ attr_accessor :etag
15540
15705
 
15541
- # Not supported.
15542
- # Corresponds to the JSON property `portName`
15706
+ # [Output Only] Unique identifier for the resource; defined by the server.
15707
+ # Corresponds to the JSON property `id`
15543
15708
  # @return [String]
15544
- attr_accessor :port_name
15709
+ attr_accessor :id
15545
15710
 
15546
- # Specifies how a port is selected for health checking. Can be one of the
15547
- # following values: USE_FIXED_PORT: Specifies a port number explicitly using the
15548
- # port field in the health check. Supported by backend services for passthrough
15549
- # load balancers and backend services for proxy load balancers. Not supported by
15550
- # target pools. The health check supports all backends supported by the backend
15551
- # service provided the backend can be health checked. For example, GCE_VM_IP
15552
- # network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance
15553
- # group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an
15554
- # indirect method of specifying the health check port by referring to the
15555
- # backend service. Only supported by backend services for proxy load balancers.
15556
- # Not supported by target pools. Not supported by backend services for
15557
- # passthrough load balancers. Supports all backends that can be health checked;
15558
- # for example, GCE_VM_IP_PORT network endpoint groups and instance group
15559
- # backends. For GCE_VM_IP_PORT network endpoint group backends, the health check
15560
- # uses the port number specified for each endpoint in the network endpoint group.
15561
- # For instance group backends, the health check uses the port number determined
15562
- # by looking up the backend service's named port in the instance group's list of
15563
- # named ports.
15564
- # Corresponds to the JSON property `portSpecification`
15565
- # @return [String]
15566
- attr_accessor :port_specification
15711
+ # A list of GlobalVmExtensionPolicy resources.
15712
+ # Corresponds to the JSON property `items`
15713
+ # @return [Array<Google::Apis::ComputeAlpha::GlobalVmExtensionPolicy>]
15714
+ attr_accessor :items
15567
15715
 
15568
- # Specifies the type of proxy header to append before sending data to the
15569
- # backend, either NONE or PROXY_V1. The default is NONE.
15570
- # Corresponds to the JSON property `proxyHeader`
15716
+ # Type of resource.
15717
+ # Corresponds to the JSON property `kind`
15571
15718
  # @return [String]
15572
- attr_accessor :proxy_header
15719
+ attr_accessor :kind
15573
15720
 
15574
- # The request path of the HTTP/2 health check request. The default value is /.
15575
- # Must comply with RFC3986.
15576
- # Corresponds to the JSON property `requestPath`
15721
+ # [Output Only] This token allows you to get the next page of results for list
15722
+ # requests. If the number of results is larger than maxResults, use the
15723
+ # nextPageToken as a value for the query parameter pageToken in the next list
15724
+ # request. Subsequent list requests will have their own nextPageToken to
15725
+ # continue paging through the results.
15726
+ # Corresponds to the JSON property `nextPageToken`
15577
15727
  # @return [String]
15578
- attr_accessor :request_path
15728
+ attr_accessor :next_page_token
15579
15729
 
15580
- # Creates a content-based HTTP/2 health check. In addition to the required HTTP
15581
- # 200 (OK) status code, you can configure the health check to pass only when the
15582
- # backend sends this specific ASCII response string within the first 1024 bytes
15583
- # of the HTTP response body. For details, see: https://cloud.google.com/load-
15584
- # balancing/docs/health-check-concepts#criteria-protocol-http
15585
- # Corresponds to the JSON property `response`
15730
+ # [Output Only] Server-defined URL for this resource.
15731
+ # Corresponds to the JSON property `selfLink`
15586
15732
  # @return [String]
15587
- attr_accessor :response
15733
+ attr_accessor :self_link
15588
15734
 
15589
- # Weight report mode. used for weighted Load Balancing.
15590
- # Corresponds to the JSON property `weightReportMode`
15591
- # @return [String]
15592
- attr_accessor :weight_report_mode
15735
+ # [Output Only] Unreachable resources.
15736
+ # Corresponds to the JSON property `unreachables`
15737
+ # @return [Array<String>]
15738
+ attr_accessor :unreachables
15739
+
15740
+ # [Output Only] Informational warning message.
15741
+ # Corresponds to the JSON property `warning`
15742
+ # @return [Google::Apis::ComputeAlpha::GlobalVmExtensionPolicyList::Warning]
15743
+ attr_accessor :warning
15744
+
15745
+ def initialize(**args)
15746
+ update!(**args)
15747
+ end
15748
+
15749
+ # Update properties of this object
15750
+ def update!(**args)
15751
+ @etag = args[:etag] if args.key?(:etag)
15752
+ @id = args[:id] if args.key?(:id)
15753
+ @items = args[:items] if args.key?(:items)
15754
+ @kind = args[:kind] if args.key?(:kind)
15755
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
15756
+ @self_link = args[:self_link] if args.key?(:self_link)
15757
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
15758
+ @warning = args[:warning] if args.key?(:warning)
15759
+ end
15760
+
15761
+ # [Output Only] Informational warning message.
15762
+ class Warning
15763
+ include Google::Apis::Core::Hashable
15764
+
15765
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
15766
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
15767
+ # Corresponds to the JSON property `code`
15768
+ # @return [String]
15769
+ attr_accessor :code
15770
+
15771
+ # [Output Only] Metadata about this warning in key: value format. For example: "
15772
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
15773
+ # Corresponds to the JSON property `data`
15774
+ # @return [Array<Google::Apis::ComputeAlpha::GlobalVmExtensionPolicyList::Warning::Datum>]
15775
+ attr_accessor :data
15776
+
15777
+ # [Output Only] A human-readable description of the warning code.
15778
+ # Corresponds to the JSON property `message`
15779
+ # @return [String]
15780
+ attr_accessor :message
15781
+
15782
+ def initialize(**args)
15783
+ update!(**args)
15784
+ end
15785
+
15786
+ # Update properties of this object
15787
+ def update!(**args)
15788
+ @code = args[:code] if args.key?(:code)
15789
+ @data = args[:data] if args.key?(:data)
15790
+ @message = args[:message] if args.key?(:message)
15791
+ end
15792
+
15793
+ #
15794
+ class Datum
15795
+ include Google::Apis::Core::Hashable
15796
+
15797
+ # [Output Only] A key that provides more detail on the warning being returned.
15798
+ # For example, for warnings where there are no results in a list request for a
15799
+ # particular zone, this key might be scope and the key value might be the zone
15800
+ # name. Other examples might be a key indicating a deprecated resource and a
15801
+ # suggested replacement, or a warning about invalid network settings (for
15802
+ # example, if an instance attempts to perform IP forwarding but is not enabled
15803
+ # for IP forwarding).
15804
+ # Corresponds to the JSON property `key`
15805
+ # @return [String]
15806
+ attr_accessor :key
15807
+
15808
+ # [Output Only] A warning data value corresponding to the key.
15809
+ # Corresponds to the JSON property `value`
15810
+ # @return [String]
15811
+ attr_accessor :value
15812
+
15813
+ def initialize(**args)
15814
+ update!(**args)
15815
+ end
15816
+
15817
+ # Update properties of this object
15818
+ def update!(**args)
15819
+ @key = args[:key] if args.key?(:key)
15820
+ @value = args[:value] if args.key?(:value)
15821
+ end
15822
+ end
15823
+ end
15824
+ end
15825
+
15826
+ # Represents the rollout operation
15827
+ class GlobalVmExtensionPolicyRolloutOperation
15828
+ include Google::Apis::Core::Hashable
15829
+
15830
+ # Required. The rollout input which defines the rollout plan.
15831
+ # Corresponds to the JSON property `rolloutInput`
15832
+ # @return [Google::Apis::ComputeAlpha::GlobalVmExtensionPolicyRolloutOperationRolloutInput]
15833
+ attr_accessor :rollout_input
15834
+
15835
+ # [Output Only] The rollout status of the policy.
15836
+ # Corresponds to the JSON property `rolloutStatus`
15837
+ # @return [Google::Apis::ComputeAlpha::GlobalVmExtensionPolicyRolloutOperationRolloutStatus]
15838
+ attr_accessor :rollout_status
15839
+
15840
+ def initialize(**args)
15841
+ update!(**args)
15842
+ end
15843
+
15844
+ # Update properties of this object
15845
+ def update!(**args)
15846
+ @rollout_input = args[:rollout_input] if args.key?(:rollout_input)
15847
+ @rollout_status = args[:rollout_status] if args.key?(:rollout_status)
15848
+ end
15849
+ end
15850
+
15851
+ #
15852
+ class GlobalVmExtensionPolicyRolloutOperationRolloutInput
15853
+ include Google::Apis::Core::Hashable
15854
+
15855
+ # Optional. [Optional] Specifies the behavior of the Rollout if a conflict is
15856
+ # detected in a project during a Rollout. It can be one of the following values:
15857
+ # 1) empty : don't overwrite the local value if conflict happens. This is the
15858
+ # default behavior. 2) "overwrite" : Overwrite the local value with the rollout
15859
+ # value. The concept of "conflict" applies to: 1) Insert action. If the zonal
15860
+ # policy already exists when Insert happens, it's a conflict. 2) Update action.
15861
+ # If the zonal policy was updated out of band by a zonal API, it's a conflict.
15862
+ # Corresponds to the JSON property `conflictBehavior`
15863
+ # @return [String]
15864
+ attr_accessor :conflict_behavior
15865
+
15866
+ # Optional. The name of the rollout plan. Ex. projects//locations/global/
15867
+ # rolloutPlans/.
15868
+ # Corresponds to the JSON property `name`
15869
+ # @return [String]
15870
+ attr_accessor :name
15871
+
15872
+ # Optional. Predefined rollout plan.
15873
+ # Corresponds to the JSON property `predefinedRolloutPlan`
15874
+ # @return [String]
15875
+ attr_accessor :predefined_rollout_plan
15876
+
15877
+ # Optional. The UUID of the retry action. Only set it if this is a retry for an
15878
+ # existing resource. This is for the user re-populate the resource without
15879
+ # changes. An error will be returned if the retry_uuid is set but the resource
15880
+ # get modified.
15881
+ # Corresponds to the JSON property `retryUuid`
15882
+ # @return [String]
15883
+ attr_accessor :retry_uuid
15884
+
15885
+ def initialize(**args)
15886
+ update!(**args)
15887
+ end
15888
+
15889
+ # Update properties of this object
15890
+ def update!(**args)
15891
+ @conflict_behavior = args[:conflict_behavior] if args.key?(:conflict_behavior)
15892
+ @name = args[:name] if args.key?(:name)
15893
+ @predefined_rollout_plan = args[:predefined_rollout_plan] if args.key?(:predefined_rollout_plan)
15894
+ @retry_uuid = args[:retry_uuid] if args.key?(:retry_uuid)
15895
+ end
15896
+ end
15897
+
15898
+ #
15899
+ class GlobalVmExtensionPolicyRolloutOperationRolloutStatus
15900
+ include Google::Apis::Core::Hashable
15901
+
15902
+ # [Output Only] The current rollouts for the latest version of the resource.
15903
+ # There should be only one current rollout, but for scalability, we make it
15904
+ # repeated.
15905
+ # Corresponds to the JSON property `currentRollouts`
15906
+ # @return [Array<Google::Apis::ComputeAlpha::GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata>]
15907
+ attr_accessor :current_rollouts
15908
+
15909
+ # [Output Only] The last completed rollout resource. This field will not be
15910
+ # populated until the first rollout is completed.
15911
+ # Corresponds to the JSON property `previousRollout`
15912
+ # @return [Google::Apis::ComputeAlpha::GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata]
15913
+ attr_accessor :previous_rollout
15914
+
15915
+ def initialize(**args)
15916
+ update!(**args)
15917
+ end
15918
+
15919
+ # Update properties of this object
15920
+ def update!(**args)
15921
+ @current_rollouts = args[:current_rollouts] if args.key?(:current_rollouts)
15922
+ @previous_rollout = args[:previous_rollout] if args.key?(:previous_rollout)
15923
+ end
15924
+ end
15925
+
15926
+ #
15927
+ class GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata
15928
+ include Google::Apis::Core::Hashable
15929
+
15930
+ # [Output Only] The name of the rollout. Ex. projects//locations/global/rollouts/
15931
+ # .
15932
+ # Corresponds to the JSON property `rollout`
15933
+ # @return [String]
15934
+ attr_accessor :rollout
15935
+
15936
+ # [Output Only] The name of the rollout plan. Ex. projects//locations/global/
15937
+ # rolloutPlans/.
15938
+ # Corresponds to the JSON property `rolloutPlan`
15939
+ # @return [String]
15940
+ attr_accessor :rollout_plan
15941
+
15942
+ # [Output Only] The overall state of the rollout.
15943
+ # Corresponds to the JSON property `state`
15944
+ # @return [String]
15945
+ attr_accessor :state
15946
+
15947
+ def initialize(**args)
15948
+ update!(**args)
15949
+ end
15950
+
15951
+ # Update properties of this object
15952
+ def update!(**args)
15953
+ @rollout = args[:rollout] if args.key?(:rollout)
15954
+ @rollout_plan = args[:rollout_plan] if args.key?(:rollout_plan)
15955
+ @state = args[:state] if args.key?(:state)
15956
+ end
15957
+ end
15958
+
15959
+ # Maintenance Info for ReservationBlocks.
15960
+ class GroupMaintenanceInfo
15961
+ include Google::Apis::Core::Hashable
15962
+
15963
+ # Describes number of instances that have ongoing maintenance.
15964
+ # Corresponds to the JSON property `instanceMaintenanceOngoingCount`
15965
+ # @return [Fixnum]
15966
+ attr_accessor :instance_maintenance_ongoing_count
15967
+
15968
+ # Describes number of instances that have pending maintenance.
15969
+ # Corresponds to the JSON property `instanceMaintenancePendingCount`
15970
+ # @return [Fixnum]
15971
+ attr_accessor :instance_maintenance_pending_count
15972
+
15973
+ # Progress for ongoing maintenance for this group of VMs/hosts. Describes number
15974
+ # of hosts in the block that have ongoing maintenance.
15975
+ # Corresponds to the JSON property `maintenanceOngoingCount`
15976
+ # @return [Fixnum]
15977
+ attr_accessor :maintenance_ongoing_count
15978
+
15979
+ # Progress for ongoing maintenance for this group of VMs/hosts. Describes number
15980
+ # of hosts in the block that have pending maintenance.
15981
+ # Corresponds to the JSON property `maintenancePendingCount`
15982
+ # @return [Fixnum]
15983
+ attr_accessor :maintenance_pending_count
15984
+
15985
+ # The type of maintenance for the reservation.
15986
+ # Corresponds to the JSON property `schedulingType`
15987
+ # @return [String]
15988
+ attr_accessor :scheduling_type
15989
+
15990
+ # Describes number of subblock Infrastructure that has ongoing maintenance. Here,
15991
+ # Subblock Infrastructure Maintenance pertains to upstream hardware contained
15992
+ # in the Subblock that is necessary for a VM Family(e.g. NVLink Domains). Not
15993
+ # all VM Families will support this field.
15994
+ # Corresponds to the JSON property `subblockInfraMaintenanceOngoingCount`
15995
+ # @return [Fixnum]
15996
+ attr_accessor :subblock_infra_maintenance_ongoing_count
15997
+
15998
+ # Describes number of subblock Infrastructure that has pending maintenance. Here,
15999
+ # Subblock Infrastructure Maintenance pertains to upstream hardware contained
16000
+ # in the Subblock that is necessary for a VM Family (e.g. NVLink Domains). Not
16001
+ # all VM Families will support this field.
16002
+ # Corresponds to the JSON property `subblockInfraMaintenancePendingCount`
16003
+ # @return [Fixnum]
16004
+ attr_accessor :subblock_infra_maintenance_pending_count
16005
+
16006
+ # Upcoming Maintenance notification information.
16007
+ # Corresponds to the JSON property `upcomingGroupMaintenance`
16008
+ # @return [Google::Apis::ComputeAlpha::UpcomingMaintenance]
16009
+ attr_accessor :upcoming_group_maintenance
16010
+
16011
+ def initialize(**args)
16012
+ update!(**args)
16013
+ end
16014
+
16015
+ # Update properties of this object
16016
+ def update!(**args)
16017
+ @instance_maintenance_ongoing_count = args[:instance_maintenance_ongoing_count] if args.key?(:instance_maintenance_ongoing_count)
16018
+ @instance_maintenance_pending_count = args[:instance_maintenance_pending_count] if args.key?(:instance_maintenance_pending_count)
16019
+ @maintenance_ongoing_count = args[:maintenance_ongoing_count] if args.key?(:maintenance_ongoing_count)
16020
+ @maintenance_pending_count = args[:maintenance_pending_count] if args.key?(:maintenance_pending_count)
16021
+ @scheduling_type = args[:scheduling_type] if args.key?(:scheduling_type)
16022
+ @subblock_infra_maintenance_ongoing_count = args[:subblock_infra_maintenance_ongoing_count] if args.key?(:subblock_infra_maintenance_ongoing_count)
16023
+ @subblock_infra_maintenance_pending_count = args[:subblock_infra_maintenance_pending_count] if args.key?(:subblock_infra_maintenance_pending_count)
16024
+ @upcoming_group_maintenance = args[:upcoming_group_maintenance] if args.key?(:upcoming_group_maintenance)
16025
+ end
16026
+ end
16027
+
16028
+ # [Deprecated] gRPC config to access the SDS server. gRPC config to access the
16029
+ # SDS server.
16030
+ class GrpcServiceConfig
16031
+ include Google::Apis::Core::Hashable
16032
+
16033
+ # [Deprecated] gRPC call credentials to access the SDS server. gRPC call
16034
+ # credentials to access the SDS server.
16035
+ # Corresponds to the JSON property `callCredentials`
16036
+ # @return [Google::Apis::ComputeAlpha::CallCredentials]
16037
+ attr_accessor :call_credentials
16038
+
16039
+ # [Deprecated] gRPC channel credentials to access the SDS server. gRPC channel
16040
+ # credentials to access the SDS server.
16041
+ # Corresponds to the JSON property `channelCredentials`
16042
+ # @return [Google::Apis::ComputeAlpha::ChannelCredentials]
16043
+ attr_accessor :channel_credentials
16044
+
16045
+ # The target URI of the SDS server.
16046
+ # Corresponds to the JSON property `targetUri`
16047
+ # @return [String]
16048
+ attr_accessor :target_uri
16049
+
16050
+ def initialize(**args)
16051
+ update!(**args)
16052
+ end
16053
+
16054
+ # Update properties of this object
16055
+ def update!(**args)
16056
+ @call_credentials = args[:call_credentials] if args.key?(:call_credentials)
16057
+ @channel_credentials = args[:channel_credentials] if args.key?(:channel_credentials)
16058
+ @target_uri = args[:target_uri] if args.key?(:target_uri)
16059
+ end
16060
+ end
16061
+
16062
+ # A guest attributes entry.
16063
+ class GuestAttributes
16064
+ include Google::Apis::Core::Hashable
16065
+
16066
+ # [Output Only] Type of the resource. Always compute#guestAttributes for guest
16067
+ # attributes entry.
16068
+ # Corresponds to the JSON property `kind`
16069
+ # @return [String]
16070
+ attr_accessor :kind
16071
+
16072
+ # The path to be queried. This can be the default namespace ('') or a nested
16073
+ # namespace ('\/') or a specified key ('\/\').
16074
+ # Corresponds to the JSON property `queryPath`
16075
+ # @return [String]
16076
+ attr_accessor :query_path
16077
+
16078
+ # Array of guest attribute namespace/key/value tuples.
16079
+ # Corresponds to the JSON property `queryValue`
16080
+ # @return [Google::Apis::ComputeAlpha::GuestAttributesValue]
16081
+ attr_accessor :query_value
16082
+
16083
+ # [Output Only] Server-defined URL for this resource.
16084
+ # Corresponds to the JSON property `selfLink`
16085
+ # @return [String]
16086
+ attr_accessor :self_link
16087
+
16088
+ # The key to search for.
16089
+ # Corresponds to the JSON property `variableKey`
16090
+ # @return [String]
16091
+ attr_accessor :variable_key
16092
+
16093
+ # [Output Only] The value found for the requested key.
16094
+ # Corresponds to the JSON property `variableValue`
16095
+ # @return [String]
16096
+ attr_accessor :variable_value
16097
+
16098
+ def initialize(**args)
16099
+ update!(**args)
16100
+ end
16101
+
16102
+ # Update properties of this object
16103
+ def update!(**args)
16104
+ @kind = args[:kind] if args.key?(:kind)
16105
+ @query_path = args[:query_path] if args.key?(:query_path)
16106
+ @query_value = args[:query_value] if args.key?(:query_value)
16107
+ @self_link = args[:self_link] if args.key?(:self_link)
16108
+ @variable_key = args[:variable_key] if args.key?(:variable_key)
16109
+ @variable_value = args[:variable_value] if args.key?(:variable_value)
16110
+ end
16111
+ end
16112
+
16113
+ # A guest attributes namespace/key/value entry.
16114
+ class GuestAttributesEntry
16115
+ include Google::Apis::Core::Hashable
16116
+
16117
+ # Key for the guest attribute entry.
16118
+ # Corresponds to the JSON property `key`
16119
+ # @return [String]
16120
+ attr_accessor :key
16121
+
16122
+ # Namespace for the guest attribute entry.
16123
+ # Corresponds to the JSON property `namespace`
16124
+ # @return [String]
16125
+ attr_accessor :namespace
16126
+
16127
+ # Value for the guest attribute entry.
16128
+ # Corresponds to the JSON property `value`
16129
+ # @return [String]
16130
+ attr_accessor :value
16131
+
16132
+ def initialize(**args)
16133
+ update!(**args)
16134
+ end
16135
+
16136
+ # Update properties of this object
16137
+ def update!(**args)
16138
+ @key = args[:key] if args.key?(:key)
16139
+ @namespace = args[:namespace] if args.key?(:namespace)
16140
+ @value = args[:value] if args.key?(:value)
16141
+ end
16142
+ end
16143
+
16144
+ # Array of guest attribute namespace/key/value tuples.
16145
+ class GuestAttributesValue
16146
+ include Google::Apis::Core::Hashable
16147
+
16148
+ #
16149
+ # Corresponds to the JSON property `items`
16150
+ # @return [Array<Google::Apis::ComputeAlpha::GuestAttributesEntry>]
16151
+ attr_accessor :items
16152
+
16153
+ def initialize(**args)
16154
+ update!(**args)
16155
+ end
16156
+
16157
+ # Update properties of this object
16158
+ def update!(**args)
16159
+ @items = args[:items] if args.key?(:items)
16160
+ end
16161
+ end
16162
+
16163
+ # Guest OS features.
16164
+ class GuestOsFeature
16165
+ include Google::Apis::Core::Hashable
16166
+
16167
+ # The ID of a supported feature. To add multiple values, use commas to separate
16168
+ # values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE -
16169
+ # WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE -
16170
+ # SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE_V2 - SEV_SNP_CAPABLE -
16171
+ # TDX_CAPABLE - IDPF - SNP_SVSM_CAPABLE For more information, see Enabling guest
16172
+ # operating system features.
16173
+ # Corresponds to the JSON property `type`
16174
+ # @return [String]
16175
+ attr_accessor :type
16176
+
16177
+ def initialize(**args)
16178
+ update!(**args)
16179
+ end
16180
+
16181
+ # Update properties of this object
16182
+ def update!(**args)
16183
+ @type = args[:type] if args.key?(:type)
16184
+ end
16185
+ end
16186
+
16187
+ #
16188
+ class Http2HealthCheck
16189
+ include Google::Apis::Core::Hashable
16190
+
16191
+ # The value of the host header in the HTTP/2 health check request. If left empty
16192
+ # (default value), the host header is set to the destination IP address to which
16193
+ # health check packets are sent. The destination IP address depends on the type
16194
+ # of load balancer. For details, see: https://cloud.google.com/load-balancing/
16195
+ # docs/health-check-concepts#hc-packet-dest
16196
+ # Corresponds to the JSON property `host`
16197
+ # @return [String]
16198
+ attr_accessor :host
16199
+
16200
+ # The TCP port number to which the health check prober sends packets. The
16201
+ # default value is 443. Valid values are 1 through 65535.
16202
+ # Corresponds to the JSON property `port`
16203
+ # @return [Fixnum]
16204
+ attr_accessor :port
16205
+
16206
+ # Not supported.
16207
+ # Corresponds to the JSON property `portName`
16208
+ # @return [String]
16209
+ attr_accessor :port_name
16210
+
16211
+ # Specifies how a port is selected for health checking. Can be one of the
16212
+ # following values: USE_FIXED_PORT: Specifies a port number explicitly using the
16213
+ # port field in the health check. Supported by backend services for passthrough
16214
+ # load balancers and backend services for proxy load balancers. Not supported by
16215
+ # target pools. The health check supports all backends supported by the backend
16216
+ # service provided the backend can be health checked. For example, GCE_VM_IP
16217
+ # network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance
16218
+ # group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an
16219
+ # indirect method of specifying the health check port by referring to the
16220
+ # backend service. Only supported by backend services for proxy load balancers.
16221
+ # Not supported by target pools. Not supported by backend services for
16222
+ # passthrough load balancers. Supports all backends that can be health checked;
16223
+ # for example, GCE_VM_IP_PORT network endpoint groups and instance group
16224
+ # backends. For GCE_VM_IP_PORT network endpoint group backends, the health check
16225
+ # uses the port number specified for each endpoint in the network endpoint group.
16226
+ # For instance group backends, the health check uses the port number determined
16227
+ # by looking up the backend service's named port in the instance group's list of
16228
+ # named ports.
16229
+ # Corresponds to the JSON property `portSpecification`
16230
+ # @return [String]
16231
+ attr_accessor :port_specification
16232
+
16233
+ # Specifies the type of proxy header to append before sending data to the
16234
+ # backend, either NONE or PROXY_V1. The default is NONE.
16235
+ # Corresponds to the JSON property `proxyHeader`
16236
+ # @return [String]
16237
+ attr_accessor :proxy_header
16238
+
16239
+ # The request path of the HTTP/2 health check request. The default value is /.
16240
+ # Must comply with RFC3986.
16241
+ # Corresponds to the JSON property `requestPath`
16242
+ # @return [String]
16243
+ attr_accessor :request_path
16244
+
16245
+ # Creates a content-based HTTP/2 health check. In addition to the required HTTP
16246
+ # 200 (OK) status code, you can configure the health check to pass only when the
16247
+ # backend sends this specific ASCII response string within the first 1024 bytes
16248
+ # of the HTTP response body. For details, see: https://cloud.google.com/load-
16249
+ # balancing/docs/health-check-concepts#criteria-protocol-http
16250
+ # Corresponds to the JSON property `response`
16251
+ # @return [String]
16252
+ attr_accessor :response
16253
+
16254
+ # Weight report mode. used for weighted Load Balancing.
16255
+ # Corresponds to the JSON property `weightReportMode`
16256
+ # @return [String]
16257
+ attr_accessor :weight_report_mode
15593
16258
 
15594
16259
  def initialize(**args)
15595
16260
  update!(**args)
@@ -15790,6 +16455,12 @@ module Google
15790
16455
  class HaController
15791
16456
  include Google::Apis::Core::Hashable
15792
16457
 
16458
+ # Advanced configuration option. If specified, these Backend Services need to be
16459
+ # pre-created and configured as managed.
16460
+ # Corresponds to the JSON property `backendServices`
16461
+ # @return [Array<String>]
16462
+ attr_accessor :backend_services
16463
+
15793
16464
  # [Output Only] Creation timestamp in RFC3339 text format.
15794
16465
  # Corresponds to the JSON property `creationTimestamp`
15795
16466
  # @return [String]
@@ -15839,6 +16510,12 @@ module Google
15839
16510
  # @return [String]
15840
16511
  attr_accessor :name
15841
16512
 
16513
+ # Basic networking configuration. Required backend services and forwarding rules
16514
+ # will be automatically created with default parameters.
16515
+ # Corresponds to the JSON property `networkingAutoConfiguration`
16516
+ # @return [Google::Apis::ComputeAlpha::HaControllerNetworkingAutoConfiguration]
16517
+ attr_accessor :networking_auto_configuration
16518
+
15842
16519
  # [Output Only] URL of the region where the resource resides. You must specify
15843
16520
  # this field as part of the HTTP request URL. It is not settable as a field in
15844
16521
  # the request body.
@@ -15877,6 +16554,7 @@ module Google
15877
16554
 
15878
16555
  # Update properties of this object
15879
16556
  def update!(**args)
16557
+ @backend_services = args[:backend_services] if args.key?(:backend_services)
15880
16558
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
15881
16559
  @description = args[:description] if args.key?(:description)
15882
16560
  @failover_initiation = args[:failover_initiation] if args.key?(:failover_initiation)
@@ -15884,6 +16562,7 @@ module Google
15884
16562
  @instance_name = args[:instance_name] if args.key?(:instance_name)
15885
16563
  @kind = args[:kind] if args.key?(:kind)
15886
16564
  @name = args[:name] if args.key?(:name)
16565
+ @networking_auto_configuration = args[:networking_auto_configuration] if args.key?(:networking_auto_configuration)
15887
16566
  @region = args[:region] if args.key?(:region)
15888
16567
  @secondary_zone_capacity = args[:secondary_zone_capacity] if args.key?(:secondary_zone_capacity)
15889
16568
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -15893,6 +16572,59 @@ module Google
15893
16572
  end
15894
16573
  end
15895
16574
 
16575
+ # Basic networking configuration. Required backend services and forwarding rules
16576
+ # will be automatically created with default parameters.
16577
+ class HaControllerNetworkingAutoConfiguration
16578
+ include Google::Apis::Core::Hashable
16579
+
16580
+ # Internal networking configuration
16581
+ # Corresponds to the JSON property `internal`
16582
+ # @return [Google::Apis::ComputeAlpha::HaControllerNetworkingAutoConfigurationInternal]
16583
+ attr_accessor :internal
16584
+
16585
+ def initialize(**args)
16586
+ update!(**args)
16587
+ end
16588
+
16589
+ # Update properties of this object
16590
+ def update!(**args)
16591
+ @internal = args[:internal] if args.key?(:internal)
16592
+ end
16593
+ end
16594
+
16595
+ # Internal networking configuration
16596
+ class HaControllerNetworkingAutoConfigurationInternal
16597
+ include Google::Apis::Core::Hashable
16598
+
16599
+ # Optional. IP addresses will be automatically allocated according to StackType
16600
+ # if not provided.
16601
+ # Corresponds to the JSON property `ipAddress`
16602
+ # @return [String]
16603
+ attr_accessor :ip_address
16604
+
16605
+ #
16606
+ # Corresponds to the JSON property `ipv6Address`
16607
+ # @return [String]
16608
+ attr_accessor :ipv6_address
16609
+
16610
+ # Determine which IP addresses to automatically create. Field and option naming
16611
+ # consistent with NetworkInterface configuration on Instances.
16612
+ # Corresponds to the JSON property `stackType`
16613
+ # @return [String]
16614
+ attr_accessor :stack_type
16615
+
16616
+ def initialize(**args)
16617
+ update!(**args)
16618
+ end
16619
+
16620
+ # Update properties of this object
16621
+ def update!(**args)
16622
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
16623
+ @ipv6_address = args[:ipv6_address] if args.key?(:ipv6_address)
16624
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
16625
+ end
16626
+ end
16627
+
15896
16628
  # Contains information about current status of the HaController.
15897
16629
  class HaControllerStatus
15898
16630
  include Google::Apis::Core::Hashable
@@ -15902,6 +16634,11 @@ module Google
15902
16634
  # @return [Google::Apis::ComputeAlpha::HaControllerStatusFailoverProgress]
15903
16635
  attr_accessor :failover_progress
15904
16636
 
16637
+ # Contains information about the current failover operation.
16638
+ # Corresponds to the JSON property `lastFailoverInfo`
16639
+ # @return [Google::Apis::ComputeAlpha::HaControllerStatusFailoverProgress]
16640
+ attr_accessor :last_failover_info
16641
+
15905
16642
  # [Output Only] Indicates if the failover is currently in-progress.
15906
16643
  # Corresponds to the JSON property `ongoingFailover`
15907
16644
  # @return [Boolean]
@@ -15942,6 +16679,7 @@ module Google
15942
16679
  # Update properties of this object
15943
16680
  def update!(**args)
15944
16681
  @failover_progress = args[:failover_progress] if args.key?(:failover_progress)
16682
+ @last_failover_info = args[:last_failover_info] if args.key?(:last_failover_info)
15945
16683
  @ongoing_failover = args[:ongoing_failover] if args.key?(:ongoing_failover)
15946
16684
  @primary_instance = args[:primary_instance] if args.key?(:primary_instance)
15947
16685
  @primary_zone = args[:primary_zone] if args.key?(:primary_zone)
@@ -15954,6 +16692,12 @@ module Google
15954
16692
  class HaControllerStatusFailoverProgress
15955
16693
  include Google::Apis::Core::Hashable
15956
16694
 
16695
+ # [Output Only] Timestamp of the failover completion. Filled only if the
16696
+ # failover is completed, in lastFailoverInfo.
16697
+ # Corresponds to the JSON property `failoverCompleteTimestamp`
16698
+ # @return [String]
16699
+ attr_accessor :failover_complete_timestamp
16700
+
15957
16701
  # [Output Only] Indicates if failover has been triggered automatically or
15958
16702
  # manually.
15959
16703
  # Corresponds to the JSON property `failoverTrigger`
@@ -15977,6 +16721,7 @@ module Google
15977
16721
 
15978
16722
  # Update properties of this object
15979
16723
  def update!(**args)
16724
+ @failover_complete_timestamp = args[:failover_complete_timestamp] if args.key?(:failover_complete_timestamp)
15980
16725
  @failover_trigger = args[:failover_trigger] if args.key?(:failover_trigger)
15981
16726
  @failover_trigger_timestamp = args[:failover_trigger_timestamp] if args.key?(:failover_trigger_timestamp)
15982
16727
  @last_failover_attempt = args[:last_failover_attempt] if args.key?(:last_failover_attempt)
@@ -23761,6 +24506,50 @@ module Google
23761
24506
  end
23762
24507
  end
23763
24508
 
24509
+ #
24510
+ class InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse
24511
+ include Google::Apis::Core::Hashable
24512
+
24513
+ # The accelerator topology information returned per id of the topology location.
24514
+ # Corresponds to the JSON property `acceleratorTopologiesInfo`
24515
+ # @return [Hash<String,Google::Apis::ComputeAlpha::InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo>]
24516
+ attr_accessor :accelerator_topologies_info
24517
+
24518
+ def initialize(**args)
24519
+ update!(**args)
24520
+ end
24521
+
24522
+ # Update properties of this object
24523
+ def update!(**args)
24524
+ @accelerator_topologies_info = args[:accelerator_topologies_info] if args.key?(:accelerator_topologies_info)
24525
+ end
24526
+ end
24527
+
24528
+ #
24529
+ class InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo
24530
+ include Google::Apis::Core::Hashable
24531
+
24532
+ # Topology in the format of: "16x16", "4x4x4", etc.
24533
+ # Corresponds to the JSON property `acceleratorTopology`
24534
+ # @return [String]
24535
+ attr_accessor :accelerator_topology
24536
+
24537
+ #
24538
+ # Corresponds to the JSON property `acceleratorTopologyHealth`
24539
+ # @return [String]
24540
+ attr_accessor :accelerator_topology_health
24541
+
24542
+ def initialize(**args)
24543
+ update!(**args)
24544
+ end
24545
+
24546
+ # Update properties of this object
24547
+ def update!(**args)
24548
+ @accelerator_topology = args[:accelerator_topology] if args.key?(:accelerator_topology)
24549
+ @accelerator_topology_health = args[:accelerator_topology_health] if args.key?(:accelerator_topology_health)
24550
+ end
24551
+ end
24552
+
23764
24553
  #
23765
24554
  class InstanceGroupManagersListErrorsResponse
23766
24555
  include Google::Apis::Core::Hashable
@@ -29031,9 +29820,7 @@ module Google
29031
29820
  # @return [String]
29032
29821
  attr_accessor :is_active
29033
29822
 
29034
- # Whether this Attachment is active, and if so, whether BGP is up. This is based
29035
- # on the statuses available in the Pantheon UI here: http://google3/java/com/
29036
- # google/cloud/boq/clientapi/gce/hybrid/api/interconnect_models.proto
29823
+ # Whether this Attachment is active, and if so, whether BGP is up.
29037
29824
  # Corresponds to the JSON property `status`
29038
29825
  # @return [String]
29039
29826
  attr_accessor :status
@@ -31248,6 +32035,13 @@ module Google
31248
32035
  # @return [Fixnum]
31249
32036
  attr_accessor :max_lag_size10_gbps
31250
32037
 
32038
+ # [Output Only] The maximum number of 400 Gbps ports supported in a link
32039
+ # aggregation group (LAG). When linkType is 400 Gbps, requestedLinkCount cannot
32040
+ # exceed max_lag_size_400_gbps.
32041
+ # Corresponds to the JSON property `maxLagSize400Gbps`
32042
+ # @return [Fixnum]
32043
+ attr_accessor :max_lag_size400_gbps
32044
+
31251
32045
  # [Output Only] Name of the resource.
31252
32046
  # Corresponds to the JSON property `name`
31253
32047
  # @return [String]
@@ -31309,6 +32103,7 @@ module Google
31309
32103
  @lacp = args[:lacp] if args.key?(:lacp)
31310
32104
  @max_lag_size100_gbps = args[:max_lag_size100_gbps] if args.key?(:max_lag_size100_gbps)
31311
32105
  @max_lag_size10_gbps = args[:max_lag_size10_gbps] if args.key?(:max_lag_size10_gbps)
32106
+ @max_lag_size400_gbps = args[:max_lag_size400_gbps] if args.key?(:max_lag_size400_gbps)
31312
32107
  @name = args[:name] if args.key?(:name)
31313
32108
  @peeringdb_facility_id = args[:peeringdb_facility_id] if args.key?(:peeringdb_facility_id)
31314
32109
  @permitted_connections = args[:permitted_connections] if args.key?(:permitted_connections)
@@ -35041,6 +35836,11 @@ module Google
35041
35836
  class NamedSet
35042
35837
  include Google::Apis::Core::Hashable
35043
35838
 
35839
+ # An optional description of named set.
35840
+ # Corresponds to the JSON property `description`
35841
+ # @return [String]
35842
+ attr_accessor :description
35843
+
35044
35844
  # CEL expressions that are comparable to constructs of this set's type (see
35045
35845
  # Policy Language).
35046
35846
  # Corresponds to the JSON property `elements`
@@ -35075,6 +35875,7 @@ module Google
35075
35875
 
35076
35876
  # Update properties of this object
35077
35877
  def update!(**args)
35878
+ @description = args[:description] if args.key?(:description)
35078
35879
  @elements = args[:elements] if args.key?(:elements)
35079
35880
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
35080
35881
  @name = args[:name] if args.key?(:name)
@@ -37373,6 +38174,13 @@ module Google
37373
38174
  # @return [Array<Google::Apis::ComputeAlpha::AliasIpRange>]
37374
38175
  attr_accessor :alias_ip_ranges
37375
38176
 
38177
+ # Optional. If true, DNS resolution will be enabled over this interface. Only
38178
+ # valid with network_attachment.
38179
+ # Corresponds to the JSON property `enableVpcScopedDns`
38180
+ # @return [Boolean]
38181
+ attr_accessor :enable_vpc_scoped_dns
38182
+ alias_method :enable_vpc_scoped_dns?, :enable_vpc_scoped_dns
38183
+
37376
38184
  # Fingerprint hash of contents stored in this network interface. This field will
37377
38185
  # be ignored when inserting an Instance or adding a NetworkInterface. An up-to-
37378
38186
  # date fingerprint must be provided in order to update the NetworkInterface. The
@@ -37515,6 +38323,7 @@ module Google
37515
38323
  def update!(**args)
37516
38324
  @access_configs = args[:access_configs] if args.key?(:access_configs)
37517
38325
  @alias_ip_ranges = args[:alias_ip_ranges] if args.key?(:alias_ip_ranges)
38326
+ @enable_vpc_scoped_dns = args[:enable_vpc_scoped_dns] if args.key?(:enable_vpc_scoped_dns)
37518
38327
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
37519
38328
  @igmp_query = args[:igmp_query] if args.key?(:igmp_query)
37520
38329
  @internal_ipv6_prefix_length = args[:internal_ipv6_prefix_length] if args.key?(:internal_ipv6_prefix_length)
@@ -37698,147 +38507,825 @@ module Google
37698
38507
  end
37699
38508
  end
37700
38509
 
37701
- # Additional network parameters.
37702
- class NetworkParams
38510
+ # Additional network parameters.
38511
+ class NetworkParams
38512
+ include Google::Apis::Core::Hashable
38513
+
38514
+ # Tag keys/values directly bound to this resource. Tag keys and values have the
38515
+ # same definition as resource manager tags. The field is allowed for INSERT only.
38516
+ # The keys/values to set on the resource should be specified in either ID ` : `
38517
+ # or Namespaced format ` : `. For example the following are valid inputs: * `"
38518
+ # tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"` * `"123/
38519
+ # environment" : "production", "345/abc" : "xyz"` Note: * Invalid combinations
38520
+ # of ID & namespaced format is not supported. For instance: `"123/environment" :
38521
+ # "tagValues/444"` is invalid.
38522
+ # Corresponds to the JSON property `resourceManagerTags`
38523
+ # @return [Hash<String,String>]
38524
+ attr_accessor :resource_manager_tags
38525
+
38526
+ def initialize(**args)
38527
+ update!(**args)
38528
+ end
38529
+
38530
+ # Update properties of this object
38531
+ def update!(**args)
38532
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
38533
+ end
38534
+ end
38535
+
38536
+ # A network peering attached to a network resource. The message includes the
38537
+ # peering name, peer network, peering state, and a flag indicating whether
38538
+ # Google Compute Engine should automatically create routes for the peering.
38539
+ class NetworkPeering
38540
+ include Google::Apis::Core::Hashable
38541
+
38542
+ # Whether Cloud Routers in this network can automatically advertise subnets from
38543
+ # the peer network.
38544
+ # Corresponds to the JSON property `advertisePeerSubnetsViaRouters`
38545
+ # @return [Boolean]
38546
+ attr_accessor :advertise_peer_subnets_via_routers
38547
+ alias_method :advertise_peer_subnets_via_routers?, :advertise_peer_subnets_via_routers
38548
+
38549
+ # This field will be deprecated soon. Use the exchange_subnet_routes field
38550
+ # instead. Indicates whether full mesh connectivity is created and managed
38551
+ # automatically between peered networks. Currently this field should always be
38552
+ # true since Google Compute Engine will automatically create and manage
38553
+ # subnetwork routes between two networks when peering state is ACTIVE.
38554
+ # Corresponds to the JSON property `autoCreateRoutes`
38555
+ # @return [Boolean]
38556
+ attr_accessor :auto_create_routes
38557
+ alias_method :auto_create_routes?, :auto_create_routes
38558
+
38559
+ # [Output Only] Describes the state of a peering connection, not just the local
38560
+ # peering. This field provides information about the effective settings for the
38561
+ # connection as a whole, including pending delete/update requests for CONSENSUS
38562
+ # peerings.
38563
+ # Corresponds to the JSON property `connectionStatus`
38564
+ # @return [Google::Apis::ComputeAlpha::NetworkPeeringConnectionStatus]
38565
+ attr_accessor :connection_status
38566
+
38567
+ # Indicates whether full mesh connectivity is created and managed automatically
38568
+ # between peered networks. Currently this field should always be true since
38569
+ # Google Compute Engine will automatically create and manage subnetwork routes
38570
+ # between two networks when peering state is ACTIVE.
38571
+ # Corresponds to the JSON property `exchangeSubnetRoutes`
38572
+ # @return [Boolean]
38573
+ attr_accessor :exchange_subnet_routes
38574
+ alias_method :exchange_subnet_routes?, :exchange_subnet_routes
38575
+
38576
+ # Whether to export the custom routes to peer network. The default value is
38577
+ # false.
38578
+ # Corresponds to the JSON property `exportCustomRoutes`
38579
+ # @return [Boolean]
38580
+ attr_accessor :export_custom_routes
38581
+ alias_method :export_custom_routes?, :export_custom_routes
38582
+
38583
+ # Whether subnet routes with public IP range are exported. The default value is
38584
+ # true, all subnet routes are exported. IPv4 special-use ranges are always
38585
+ # exported to peers and are not controlled by this field.
38586
+ # Corresponds to the JSON property `exportSubnetRoutesWithPublicIp`
38587
+ # @return [Boolean]
38588
+ attr_accessor :export_subnet_routes_with_public_ip
38589
+ alias_method :export_subnet_routes_with_public_ip?, :export_subnet_routes_with_public_ip
38590
+
38591
+ # Whether to import the custom routes from peer network. The default value is
38592
+ # false.
38593
+ # Corresponds to the JSON property `importCustomRoutes`
38594
+ # @return [Boolean]
38595
+ attr_accessor :import_custom_routes
38596
+ alias_method :import_custom_routes?, :import_custom_routes
38597
+
38598
+ # Whether subnet routes with public IP range are imported. The default value is
38599
+ # false. IPv4 special-use ranges are always imported from peers and are not
38600
+ # controlled by this field.
38601
+ # Corresponds to the JSON property `importSubnetRoutesWithPublicIp`
38602
+ # @return [Boolean]
38603
+ attr_accessor :import_subnet_routes_with_public_ip
38604
+ alias_method :import_subnet_routes_with_public_ip?, :import_subnet_routes_with_public_ip
38605
+
38606
+ # Name of this peering. Provided by the client when the peering is created. The
38607
+ # name must comply with RFC1035. Specifically, the name must be 1-63 characters
38608
+ # long and match regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
38609
+ # character must be a lowercase letter, and all the following characters must be
38610
+ # a dash, lowercase letter, or digit, except the last character, which cannot be
38611
+ # a dash.
38612
+ # Corresponds to the JSON property `name`
38613
+ # @return [String]
38614
+ attr_accessor :name
38615
+
38616
+ # The URL of the peer network. It can be either full URL or partial URL. The
38617
+ # peer network may belong to a different project. If the partial URL does not
38618
+ # contain project, it is assumed that the peer network is in the same project as
38619
+ # the current network.
38620
+ # Corresponds to the JSON property `network`
38621
+ # @return [String]
38622
+ attr_accessor :network
38623
+
38624
+ # [Output Only] Maximum Transmission Unit in bytes of the peer network.
38625
+ # Corresponds to the JSON property `peerMtu`
38626
+ # @return [Fixnum]
38627
+ attr_accessor :peer_mtu
38628
+
38629
+ # Which IP version(s) of traffic and routes are allowed to be imported or
38630
+ # exported between peer networks. The default value is IPV4_ONLY.
38631
+ # Corresponds to the JSON property `stackType`
38632
+ # @return [String]
38633
+ attr_accessor :stack_type
38634
+
38635
+ # [Output Only] State for the peering, either `ACTIVE` or `INACTIVE`. The
38636
+ # peering is `ACTIVE` when there's a matching configuration in the peer network.
38637
+ # Corresponds to the JSON property `state`
38638
+ # @return [String]
38639
+ attr_accessor :state
38640
+
38641
+ # [Output Only] Details about the current state of the peering.
38642
+ # Corresponds to the JSON property `stateDetails`
38643
+ # @return [String]
38644
+ attr_accessor :state_details
38645
+
38646
+ # The update strategy determines the semantics for updates and deletes to the
38647
+ # peering connection configuration.
38648
+ # Corresponds to the JSON property `updateStrategy`
38649
+ # @return [String]
38650
+ attr_accessor :update_strategy
38651
+
38652
+ def initialize(**args)
38653
+ update!(**args)
38654
+ end
38655
+
38656
+ # Update properties of this object
38657
+ def update!(**args)
38658
+ @advertise_peer_subnets_via_routers = args[:advertise_peer_subnets_via_routers] if args.key?(:advertise_peer_subnets_via_routers)
38659
+ @auto_create_routes = args[:auto_create_routes] if args.key?(:auto_create_routes)
38660
+ @connection_status = args[:connection_status] if args.key?(:connection_status)
38661
+ @exchange_subnet_routes = args[:exchange_subnet_routes] if args.key?(:exchange_subnet_routes)
38662
+ @export_custom_routes = args[:export_custom_routes] if args.key?(:export_custom_routes)
38663
+ @export_subnet_routes_with_public_ip = args[:export_subnet_routes_with_public_ip] if args.key?(:export_subnet_routes_with_public_ip)
38664
+ @import_custom_routes = args[:import_custom_routes] if args.key?(:import_custom_routes)
38665
+ @import_subnet_routes_with_public_ip = args[:import_subnet_routes_with_public_ip] if args.key?(:import_subnet_routes_with_public_ip)
38666
+ @name = args[:name] if args.key?(:name)
38667
+ @network = args[:network] if args.key?(:network)
38668
+ @peer_mtu = args[:peer_mtu] if args.key?(:peer_mtu)
38669
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
38670
+ @state = args[:state] if args.key?(:state)
38671
+ @state_details = args[:state_details] if args.key?(:state_details)
38672
+ @update_strategy = args[:update_strategy] if args.key?(:update_strategy)
38673
+ end
38674
+ end
38675
+
38676
+ # [Output Only] Describes the state of a peering connection, not just the local
38677
+ # peering. This field provides information about the effective settings for the
38678
+ # connection as a whole, including pending delete/update requests for CONSENSUS
38679
+ # peerings.
38680
+ class NetworkPeeringConnectionStatus
38681
+ include Google::Apis::Core::Hashable
38682
+
38683
+ # The status of update/delete for a consensus peering connection. Only set when
38684
+ # connection_status.update_strategy is CONSENSUS or a network peering is
38685
+ # proposing to update the strategy to CONSENSUS.
38686
+ # Corresponds to the JSON property `consensusState`
38687
+ # @return [Google::Apis::ComputeAlpha::NetworkPeeringConnectionStatusConsensusState]
38688
+ attr_accessor :consensus_state
38689
+
38690
+ # The active connectivity settings for the peering connection based on the
38691
+ # settings of the network peerings.
38692
+ # Corresponds to the JSON property `trafficConfiguration`
38693
+ # @return [Google::Apis::ComputeAlpha::NetworkPeeringConnectionStatusTrafficConfiguration]
38694
+ attr_accessor :traffic_configuration
38695
+
38696
+ # The update strategy determines the update/delete semantics for this peering
38697
+ # connection.
38698
+ # Corresponds to the JSON property `updateStrategy`
38699
+ # @return [String]
38700
+ attr_accessor :update_strategy
38701
+
38702
+ def initialize(**args)
38703
+ update!(**args)
38704
+ end
38705
+
38706
+ # Update properties of this object
38707
+ def update!(**args)
38708
+ @consensus_state = args[:consensus_state] if args.key?(:consensus_state)
38709
+ @traffic_configuration = args[:traffic_configuration] if args.key?(:traffic_configuration)
38710
+ @update_strategy = args[:update_strategy] if args.key?(:update_strategy)
38711
+ end
38712
+ end
38713
+
38714
+ # The status of update/delete for a consensus peering connection. Only set when
38715
+ # connection_status.update_strategy is CONSENSUS or a network peering is
38716
+ # proposing to update the strategy to CONSENSUS.
38717
+ class NetworkPeeringConnectionStatusConsensusState
38718
+ include Google::Apis::Core::Hashable
38719
+
38720
+ # The status of the delete request.
38721
+ # Corresponds to the JSON property `deleteStatus`
38722
+ # @return [String]
38723
+ attr_accessor :delete_status
38724
+
38725
+ # The status of the update request.
38726
+ # Corresponds to the JSON property `updateStatus`
38727
+ # @return [String]
38728
+ attr_accessor :update_status
38729
+
38730
+ def initialize(**args)
38731
+ update!(**args)
38732
+ end
38733
+
38734
+ # Update properties of this object
38735
+ def update!(**args)
38736
+ @delete_status = args[:delete_status] if args.key?(:delete_status)
38737
+ @update_status = args[:update_status] if args.key?(:update_status)
38738
+ end
38739
+ end
38740
+
38741
+ #
38742
+ class NetworkPeeringConnectionStatusTrafficConfiguration
38743
+ include Google::Apis::Core::Hashable
38744
+
38745
+ # Whether custom routes are being exported to the peer network.
38746
+ # Corresponds to the JSON property `exportCustomRoutesToPeer`
38747
+ # @return [Boolean]
38748
+ attr_accessor :export_custom_routes_to_peer
38749
+ alias_method :export_custom_routes_to_peer?, :export_custom_routes_to_peer
38750
+
38751
+ # Whether subnet routes with public IP ranges are being exported to the peer
38752
+ # network.
38753
+ # Corresponds to the JSON property `exportSubnetRoutesWithPublicIpToPeer`
38754
+ # @return [Boolean]
38755
+ attr_accessor :export_subnet_routes_with_public_ip_to_peer
38756
+ alias_method :export_subnet_routes_with_public_ip_to_peer?, :export_subnet_routes_with_public_ip_to_peer
38757
+
38758
+ # Whether custom routes are being imported from the peer network.
38759
+ # Corresponds to the JSON property `importCustomRoutesFromPeer`
38760
+ # @return [Boolean]
38761
+ attr_accessor :import_custom_routes_from_peer
38762
+ alias_method :import_custom_routes_from_peer?, :import_custom_routes_from_peer
38763
+
38764
+ # Whether subnet routes with public IP ranges are being imported from the peer
38765
+ # network.
38766
+ # Corresponds to the JSON property `importSubnetRoutesWithPublicIpFromPeer`
38767
+ # @return [Boolean]
38768
+ attr_accessor :import_subnet_routes_with_public_ip_from_peer
38769
+ alias_method :import_subnet_routes_with_public_ip_from_peer?, :import_subnet_routes_with_public_ip_from_peer
38770
+
38771
+ # Which IP version(s) of traffic and routes are being imported or exported
38772
+ # between peer networks.
38773
+ # Corresponds to the JSON property `stackType`
38774
+ # @return [String]
38775
+ attr_accessor :stack_type
38776
+
38777
+ def initialize(**args)
38778
+ update!(**args)
38779
+ end
38780
+
38781
+ # Update properties of this object
38782
+ def update!(**args)
38783
+ @export_custom_routes_to_peer = args[:export_custom_routes_to_peer] if args.key?(:export_custom_routes_to_peer)
38784
+ @export_subnet_routes_with_public_ip_to_peer = args[:export_subnet_routes_with_public_ip_to_peer] if args.key?(:export_subnet_routes_with_public_ip_to_peer)
38785
+ @import_custom_routes_from_peer = args[:import_custom_routes_from_peer] if args.key?(:import_custom_routes_from_peer)
38786
+ @import_subnet_routes_with_public_ip_from_peer = args[:import_subnet_routes_with_public_ip_from_peer] if args.key?(:import_subnet_routes_with_public_ip_from_peer)
38787
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
38788
+ end
38789
+ end
38790
+
38791
+ #
38792
+ class NetworkPerformanceConfig
38793
+ include Google::Apis::Core::Hashable
38794
+
38795
+ #
38796
+ # Corresponds to the JSON property `externalIpEgressBandwidthTier`
38797
+ # @return [String]
38798
+ attr_accessor :external_ip_egress_bandwidth_tier
38799
+
38800
+ #
38801
+ # Corresponds to the JSON property `totalEgressBandwidthTier`
38802
+ # @return [String]
38803
+ attr_accessor :total_egress_bandwidth_tier
38804
+
38805
+ def initialize(**args)
38806
+ update!(**args)
38807
+ end
38808
+
38809
+ # Update properties of this object
38810
+ def update!(**args)
38811
+ @external_ip_egress_bandwidth_tier = args[:external_ip_egress_bandwidth_tier] if args.key?(:external_ip_egress_bandwidth_tier)
38812
+ @total_egress_bandwidth_tier = args[:total_egress_bandwidth_tier] if args.key?(:total_egress_bandwidth_tier)
38813
+ end
38814
+ end
38815
+
38816
+ #
38817
+ class NetworkPoliciesScopedList
38818
+ include Google::Apis::Core::Hashable
38819
+
38820
+ # A list of network policies contained in this scope.
38821
+ # Corresponds to the JSON property `networkPolicies`
38822
+ # @return [Array<Google::Apis::ComputeAlpha::NetworkPolicy>]
38823
+ attr_accessor :network_policies
38824
+
38825
+ # Informational warning which replaces the list of network policies when the
38826
+ # list is empty.
38827
+ # Corresponds to the JSON property `warning`
38828
+ # @return [Google::Apis::ComputeAlpha::NetworkPoliciesScopedList::Warning]
38829
+ attr_accessor :warning
38830
+
38831
+ def initialize(**args)
38832
+ update!(**args)
38833
+ end
38834
+
38835
+ # Update properties of this object
38836
+ def update!(**args)
38837
+ @network_policies = args[:network_policies] if args.key?(:network_policies)
38838
+ @warning = args[:warning] if args.key?(:warning)
38839
+ end
38840
+
38841
+ # Informational warning which replaces the list of network policies when the
38842
+ # list is empty.
38843
+ class Warning
38844
+ include Google::Apis::Core::Hashable
38845
+
38846
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
38847
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
38848
+ # Corresponds to the JSON property `code`
38849
+ # @return [String]
38850
+ attr_accessor :code
38851
+
38852
+ # [Output Only] Metadata about this warning in key: value format. For example: "
38853
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
38854
+ # Corresponds to the JSON property `data`
38855
+ # @return [Array<Google::Apis::ComputeAlpha::NetworkPoliciesScopedList::Warning::Datum>]
38856
+ attr_accessor :data
38857
+
38858
+ # [Output Only] A human-readable description of the warning code.
38859
+ # Corresponds to the JSON property `message`
38860
+ # @return [String]
38861
+ attr_accessor :message
38862
+
38863
+ def initialize(**args)
38864
+ update!(**args)
38865
+ end
38866
+
38867
+ # Update properties of this object
38868
+ def update!(**args)
38869
+ @code = args[:code] if args.key?(:code)
38870
+ @data = args[:data] if args.key?(:data)
38871
+ @message = args[:message] if args.key?(:message)
38872
+ end
38873
+
38874
+ #
38875
+ class Datum
38876
+ include Google::Apis::Core::Hashable
38877
+
38878
+ # [Output Only] A key that provides more detail on the warning being returned.
38879
+ # For example, for warnings where there are no results in a list request for a
38880
+ # particular zone, this key might be scope and the key value might be the zone
38881
+ # name. Other examples might be a key indicating a deprecated resource and a
38882
+ # suggested replacement, or a warning about invalid network settings (for
38883
+ # example, if an instance attempts to perform IP forwarding but is not enabled
38884
+ # for IP forwarding).
38885
+ # Corresponds to the JSON property `key`
38886
+ # @return [String]
38887
+ attr_accessor :key
38888
+
38889
+ # [Output Only] A warning data value corresponding to the key.
38890
+ # Corresponds to the JSON property `value`
38891
+ # @return [String]
38892
+ attr_accessor :value
38893
+
38894
+ def initialize(**args)
38895
+ update!(**args)
38896
+ end
38897
+
38898
+ # Update properties of this object
38899
+ def update!(**args)
38900
+ @key = args[:key] if args.key?(:key)
38901
+ @value = args[:value] if args.key?(:value)
38902
+ end
38903
+ end
38904
+ end
38905
+ end
38906
+
38907
+ # Represents a Network Policy resource.
38908
+ class NetworkPolicy
38909
+ include Google::Apis::Core::Hashable
38910
+
38911
+ # [Output Only] A list of associations that belong to this network policy.
38912
+ # Corresponds to the JSON property `associations`
38913
+ # @return [Array<Google::Apis::ComputeAlpha::NetworkPolicyAssociation>]
38914
+ attr_accessor :associations
38915
+
38916
+ # [Output Only] Creation timestamp in RFC3339 text format.
38917
+ # Corresponds to the JSON property `creationTimestamp`
38918
+ # @return [String]
38919
+ attr_accessor :creation_timestamp
38920
+
38921
+ # An optional description of this resource. Provide this property when you
38922
+ # create the resource.
38923
+ # Corresponds to the JSON property `description`
38924
+ # @return [String]
38925
+ attr_accessor :description
38926
+
38927
+ # [Output Only] The unique identifier for the resource. This identifier is
38928
+ # defined by the server.
38929
+ # Corresponds to the JSON property `id`
38930
+ # @return [Fixnum]
38931
+ attr_accessor :id
38932
+
38933
+ # [Output only] Type of the resource. Always compute#networkPolicy for network
38934
+ # policies
38935
+ # Corresponds to the JSON property `kind`
38936
+ # @return [String]
38937
+ attr_accessor :kind
38938
+
38939
+ # Name of the resource.
38940
+ # Corresponds to the JSON property `name`
38941
+ # @return [String]
38942
+ attr_accessor :name
38943
+
38944
+ # [Output Only] URL of the region where the regional network policy resides. You
38945
+ # must specify this field as part of the HTTP request URL. It is not settable as
38946
+ # a field in the request body.
38947
+ # Corresponds to the JSON property `region`
38948
+ # @return [String]
38949
+ attr_accessor :region
38950
+
38951
+ # [Output Only] Total count of all network policy rule tuples. A network policy
38952
+ # can not exceed a set number of tuples.
38953
+ # Corresponds to the JSON property `ruleTupleCount`
38954
+ # @return [Fixnum]
38955
+ attr_accessor :rule_tuple_count
38956
+
38957
+ # [Output Only] Server-defined URL for the resource.
38958
+ # Corresponds to the JSON property `selfLink`
38959
+ # @return [String]
38960
+ attr_accessor :self_link
38961
+
38962
+ # [Output Only] Server-defined URL for this resource with the resource id.
38963
+ # Corresponds to the JSON property `selfLinkWithId`
38964
+ # @return [String]
38965
+ attr_accessor :self_link_with_id
38966
+
38967
+ # [Output Only] A list of traffic classification rules that belong to this
38968
+ # policy.
38969
+ # Corresponds to the JSON property `trafficClassificationRules`
38970
+ # @return [Array<Google::Apis::ComputeAlpha::NetworkPolicyTrafficClassificationRule>]
38971
+ attr_accessor :traffic_classification_rules
38972
+
38973
+ def initialize(**args)
38974
+ update!(**args)
38975
+ end
38976
+
38977
+ # Update properties of this object
38978
+ def update!(**args)
38979
+ @associations = args[:associations] if args.key?(:associations)
38980
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
38981
+ @description = args[:description] if args.key?(:description)
38982
+ @id = args[:id] if args.key?(:id)
38983
+ @kind = args[:kind] if args.key?(:kind)
38984
+ @name = args[:name] if args.key?(:name)
38985
+ @region = args[:region] if args.key?(:region)
38986
+ @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
38987
+ @self_link = args[:self_link] if args.key?(:self_link)
38988
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
38989
+ @traffic_classification_rules = args[:traffic_classification_rules] if args.key?(:traffic_classification_rules)
38990
+ end
38991
+ end
38992
+
38993
+ #
38994
+ class NetworkPolicyAggregatedList
38995
+ include Google::Apis::Core::Hashable
38996
+
38997
+ # [Output Only] Unique identifier for the resource; defined by the server.
38998
+ # Corresponds to the JSON property `id`
38999
+ # @return [String]
39000
+ attr_accessor :id
39001
+
39002
+ # A list of NetworkPoliciesScopedList resources.
39003
+ # Corresponds to the JSON property `items`
39004
+ # @return [Hash<String,Google::Apis::ComputeAlpha::NetworkPoliciesScopedList>]
39005
+ attr_accessor :items
39006
+
39007
+ # [Output Only] Type of resource. Always compute#networkPolicyAggregatedList for
39008
+ # lists of network policies.
39009
+ # Corresponds to the JSON property `kind`
39010
+ # @return [String]
39011
+ attr_accessor :kind
39012
+
39013
+ # [Output Only] This token allows you to get the next page of results for list
39014
+ # requests. If the number of results is larger than maxResults, use the
39015
+ # nextPageToken as a value for the query parameter pageToken in the next list
39016
+ # request. Subsequent list requests will have their own nextPageToken to
39017
+ # continue paging through the results.
39018
+ # Corresponds to the JSON property `nextPageToken`
39019
+ # @return [String]
39020
+ attr_accessor :next_page_token
39021
+
39022
+ # [Output Only] Server-defined URL for this resource.
39023
+ # Corresponds to the JSON property `selfLink`
39024
+ # @return [String]
39025
+ attr_accessor :self_link
39026
+
39027
+ # [Output Only] Unreachable resources.
39028
+ # Corresponds to the JSON property `unreachables`
39029
+ # @return [Array<String>]
39030
+ attr_accessor :unreachables
39031
+
39032
+ # [Output Only] Informational warning message.
39033
+ # Corresponds to the JSON property `warning`
39034
+ # @return [Google::Apis::ComputeAlpha::NetworkPolicyAggregatedList::Warning]
39035
+ attr_accessor :warning
39036
+
39037
+ def initialize(**args)
39038
+ update!(**args)
39039
+ end
39040
+
39041
+ # Update properties of this object
39042
+ def update!(**args)
39043
+ @id = args[:id] if args.key?(:id)
39044
+ @items = args[:items] if args.key?(:items)
39045
+ @kind = args[:kind] if args.key?(:kind)
39046
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
39047
+ @self_link = args[:self_link] if args.key?(:self_link)
39048
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
39049
+ @warning = args[:warning] if args.key?(:warning)
39050
+ end
39051
+
39052
+ # [Output Only] Informational warning message.
39053
+ class Warning
39054
+ include Google::Apis::Core::Hashable
39055
+
39056
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
39057
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
39058
+ # Corresponds to the JSON property `code`
39059
+ # @return [String]
39060
+ attr_accessor :code
39061
+
39062
+ # [Output Only] Metadata about this warning in key: value format. For example: "
39063
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
39064
+ # Corresponds to the JSON property `data`
39065
+ # @return [Array<Google::Apis::ComputeAlpha::NetworkPolicyAggregatedList::Warning::Datum>]
39066
+ attr_accessor :data
39067
+
39068
+ # [Output Only] A human-readable description of the warning code.
39069
+ # Corresponds to the JSON property `message`
39070
+ # @return [String]
39071
+ attr_accessor :message
39072
+
39073
+ def initialize(**args)
39074
+ update!(**args)
39075
+ end
39076
+
39077
+ # Update properties of this object
39078
+ def update!(**args)
39079
+ @code = args[:code] if args.key?(:code)
39080
+ @data = args[:data] if args.key?(:data)
39081
+ @message = args[:message] if args.key?(:message)
39082
+ end
39083
+
39084
+ #
39085
+ class Datum
39086
+ include Google::Apis::Core::Hashable
39087
+
39088
+ # [Output Only] A key that provides more detail on the warning being returned.
39089
+ # For example, for warnings where there are no results in a list request for a
39090
+ # particular zone, this key might be scope and the key value might be the zone
39091
+ # name. Other examples might be a key indicating a deprecated resource and a
39092
+ # suggested replacement, or a warning about invalid network settings (for
39093
+ # example, if an instance attempts to perform IP forwarding but is not enabled
39094
+ # for IP forwarding).
39095
+ # Corresponds to the JSON property `key`
39096
+ # @return [String]
39097
+ attr_accessor :key
39098
+
39099
+ # [Output Only] A warning data value corresponding to the key.
39100
+ # Corresponds to the JSON property `value`
39101
+ # @return [String]
39102
+ attr_accessor :value
39103
+
39104
+ def initialize(**args)
39105
+ update!(**args)
39106
+ end
39107
+
39108
+ # Update properties of this object
39109
+ def update!(**args)
39110
+ @key = args[:key] if args.key?(:key)
39111
+ @value = args[:value] if args.key?(:value)
39112
+ end
39113
+ end
39114
+ end
39115
+ end
39116
+
39117
+ #
39118
+ class NetworkPolicyAssociation
39119
+ include Google::Apis::Core::Hashable
39120
+
39121
+ # The target that the network policy is attached to.
39122
+ # Corresponds to the JSON property `attachmentTarget`
39123
+ # @return [String]
39124
+ attr_accessor :attachment_target
39125
+
39126
+ # The name for an association.
39127
+ # Corresponds to the JSON property `name`
39128
+ # @return [String]
39129
+ attr_accessor :name
39130
+
39131
+ def initialize(**args)
39132
+ update!(**args)
39133
+ end
39134
+
39135
+ # Update properties of this object
39136
+ def update!(**args)
39137
+ @attachment_target = args[:attachment_target] if args.key?(:attachment_target)
39138
+ @name = args[:name] if args.key?(:name)
39139
+ end
39140
+ end
39141
+
39142
+ #
39143
+ class NetworkPolicyList
39144
+ include Google::Apis::Core::Hashable
39145
+
39146
+ # [Output Only] Unique identifier for the resource; defined by the server.
39147
+ # Corresponds to the JSON property `id`
39148
+ # @return [String]
39149
+ attr_accessor :id
39150
+
39151
+ # A list of NetworkPolicy resources.
39152
+ # Corresponds to the JSON property `items`
39153
+ # @return [Array<Google::Apis::ComputeAlpha::NetworkPolicy>]
39154
+ attr_accessor :items
39155
+
39156
+ # [Output Only] Type of resource. Always compute#networkPolicyList for lists of
39157
+ # network policies.
39158
+ # Corresponds to the JSON property `kind`
39159
+ # @return [String]
39160
+ attr_accessor :kind
39161
+
39162
+ # [Output Only] This token allows you to get the next page of results for list
39163
+ # requests. If the number of results is larger than maxResults, use the
39164
+ # nextPageToken as a value for the query parameter pageToken in the next list
39165
+ # request. Subsequent list requests will have their own nextPageToken to
39166
+ # continue paging through the results.
39167
+ # Corresponds to the JSON property `nextPageToken`
39168
+ # @return [String]
39169
+ attr_accessor :next_page_token
39170
+
39171
+ # [Output Only] Informational warning message.
39172
+ # Corresponds to the JSON property `warning`
39173
+ # @return [Google::Apis::ComputeAlpha::NetworkPolicyList::Warning]
39174
+ attr_accessor :warning
39175
+
39176
+ def initialize(**args)
39177
+ update!(**args)
39178
+ end
39179
+
39180
+ # Update properties of this object
39181
+ def update!(**args)
39182
+ @id = args[:id] if args.key?(:id)
39183
+ @items = args[:items] if args.key?(:items)
39184
+ @kind = args[:kind] if args.key?(:kind)
39185
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
39186
+ @warning = args[:warning] if args.key?(:warning)
39187
+ end
39188
+
39189
+ # [Output Only] Informational warning message.
39190
+ class Warning
39191
+ include Google::Apis::Core::Hashable
39192
+
39193
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
39194
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
39195
+ # Corresponds to the JSON property `code`
39196
+ # @return [String]
39197
+ attr_accessor :code
39198
+
39199
+ # [Output Only] Metadata about this warning in key: value format. For example: "
39200
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
39201
+ # Corresponds to the JSON property `data`
39202
+ # @return [Array<Google::Apis::ComputeAlpha::NetworkPolicyList::Warning::Datum>]
39203
+ attr_accessor :data
39204
+
39205
+ # [Output Only] A human-readable description of the warning code.
39206
+ # Corresponds to the JSON property `message`
39207
+ # @return [String]
39208
+ attr_accessor :message
39209
+
39210
+ def initialize(**args)
39211
+ update!(**args)
39212
+ end
39213
+
39214
+ # Update properties of this object
39215
+ def update!(**args)
39216
+ @code = args[:code] if args.key?(:code)
39217
+ @data = args[:data] if args.key?(:data)
39218
+ @message = args[:message] if args.key?(:message)
39219
+ end
39220
+
39221
+ #
39222
+ class Datum
39223
+ include Google::Apis::Core::Hashable
39224
+
39225
+ # [Output Only] A key that provides more detail on the warning being returned.
39226
+ # For example, for warnings where there are no results in a list request for a
39227
+ # particular zone, this key might be scope and the key value might be the zone
39228
+ # name. Other examples might be a key indicating a deprecated resource and a
39229
+ # suggested replacement, or a warning about invalid network settings (for
39230
+ # example, if an instance attempts to perform IP forwarding but is not enabled
39231
+ # for IP forwarding).
39232
+ # Corresponds to the JSON property `key`
39233
+ # @return [String]
39234
+ attr_accessor :key
39235
+
39236
+ # [Output Only] A warning data value corresponding to the key.
39237
+ # Corresponds to the JSON property `value`
39238
+ # @return [String]
39239
+ attr_accessor :value
39240
+
39241
+ def initialize(**args)
39242
+ update!(**args)
39243
+ end
39244
+
39245
+ # Update properties of this object
39246
+ def update!(**args)
39247
+ @key = args[:key] if args.key?(:key)
39248
+ @value = args[:value] if args.key?(:value)
39249
+ end
39250
+ end
39251
+ end
39252
+ end
39253
+
39254
+ # Represents a traffic classification rule that describes one or more match
39255
+ # conditions along with the action to be taken when traffic matches this
39256
+ # condition.
39257
+ class NetworkPolicyTrafficClassificationRule
37703
39258
  include Google::Apis::Core::Hashable
37704
39259
 
37705
- # Tag keys/values directly bound to this resource. Tag keys and values have the
37706
- # same definition as resource manager tags. The field is allowed for INSERT only.
37707
- # The keys/values to set on the resource should be specified in either ID ` : `
37708
- # or Namespaced format ` : `. For example the following are valid inputs: * `"
37709
- # tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"` * `"123/
37710
- # environment" : "production", "345/abc" : "xyz"` Note: * Invalid combinations
37711
- # of ID & namespaced format is not supported. For instance: `"123/environment" :
37712
- # "tagValues/444"` is invalid.
37713
- # Corresponds to the JSON property `resourceManagerTags`
37714
- # @return [Hash<String,String>]
37715
- attr_accessor :resource_manager_tags
37716
-
37717
- def initialize(**args)
37718
- update!(**args)
37719
- end
37720
-
37721
- # Update properties of this object
37722
- def update!(**args)
37723
- @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
37724
- end
37725
- end
37726
-
37727
- # A network peering attached to a network resource. The message includes the
37728
- # peering name, peer network, peering state, and a flag indicating whether
37729
- # Google Compute Engine should automatically create routes for the peering.
37730
- class NetworkPeering
37731
- include Google::Apis::Core::Hashable
37732
-
37733
- # Whether Cloud Routers in this network can automatically advertise subnets from
37734
- # the peer network.
37735
- # Corresponds to the JSON property `advertisePeerSubnetsViaRouters`
37736
- # @return [Boolean]
37737
- attr_accessor :advertise_peer_subnets_via_routers
37738
- alias_method :advertise_peer_subnets_via_routers?, :advertise_peer_subnets_via_routers
37739
-
37740
- # This field will be deprecated soon. Use the exchange_subnet_routes field
37741
- # instead. Indicates whether full mesh connectivity is created and managed
37742
- # automatically between peered networks. Currently this field should always be
37743
- # true since Google Compute Engine will automatically create and manage
37744
- # subnetwork routes between two networks when peering state is ACTIVE.
37745
- # Corresponds to the JSON property `autoCreateRoutes`
37746
- # @return [Boolean]
37747
- attr_accessor :auto_create_routes
37748
- alias_method :auto_create_routes?, :auto_create_routes
37749
-
37750
- # [Output Only] Describes the state of a peering connection, not just the local
37751
- # peering. This field provides information about the effective settings for the
37752
- # connection as a whole, including pending delete/update requests for CONSENSUS
37753
- # peerings.
37754
- # Corresponds to the JSON property `connectionStatus`
37755
- # @return [Google::Apis::ComputeAlpha::NetworkPeeringConnectionStatus]
37756
- attr_accessor :connection_status
37757
-
37758
- # Indicates whether full mesh connectivity is created and managed automatically
37759
- # between peered networks. Currently this field should always be true since
37760
- # Google Compute Engine will automatically create and manage subnetwork routes
37761
- # between two networks when peering state is ACTIVE.
37762
- # Corresponds to the JSON property `exchangeSubnetRoutes`
37763
- # @return [Boolean]
37764
- attr_accessor :exchange_subnet_routes
37765
- alias_method :exchange_subnet_routes?, :exchange_subnet_routes
37766
-
37767
- # Whether to export the custom routes to peer network. The default value is
37768
- # false.
37769
- # Corresponds to the JSON property `exportCustomRoutes`
37770
- # @return [Boolean]
37771
- attr_accessor :export_custom_routes
37772
- alias_method :export_custom_routes?, :export_custom_routes
37773
-
37774
- # Whether subnet routes with public IP range are exported. The default value is
37775
- # true, all subnet routes are exported. IPv4 special-use ranges are always
37776
- # exported to peers and are not controlled by this field.
37777
- # Corresponds to the JSON property `exportSubnetRoutesWithPublicIp`
37778
- # @return [Boolean]
37779
- attr_accessor :export_subnet_routes_with_public_ip
37780
- alias_method :export_subnet_routes_with_public_ip?, :export_subnet_routes_with_public_ip
39260
+ # The Action to perform when the client connection triggers the rule.
39261
+ # Corresponds to the JSON property `action`
39262
+ # @return [Google::Apis::ComputeAlpha::NetworkPolicyTrafficClassificationRuleAction]
39263
+ attr_accessor :action
37781
39264
 
37782
- # Whether to import the custom routes from peer network. The default value is
37783
- # false.
37784
- # Corresponds to the JSON property `importCustomRoutes`
37785
- # @return [Boolean]
37786
- attr_accessor :import_custom_routes
37787
- alias_method :import_custom_routes?, :import_custom_routes
39265
+ # An optional description for this resource.
39266
+ # Corresponds to the JSON property `description`
39267
+ # @return [String]
39268
+ attr_accessor :description
37788
39269
 
37789
- # Whether subnet routes with public IP range are imported. The default value is
37790
- # false. IPv4 special-use ranges are always imported from peers and are not
37791
- # controlled by this field.
37792
- # Corresponds to the JSON property `importSubnetRoutesWithPublicIp`
39270
+ # Denotes whether the network policy rule is disabled. When set to true, the
39271
+ # network policy rule is not enforced and traffic behaves as if it did not exist.
39272
+ # If this is unspecified, the network policy rule will be enabled.
39273
+ # Corresponds to the JSON property `disabled`
37793
39274
  # @return [Boolean]
37794
- attr_accessor :import_subnet_routes_with_public_ip
37795
- alias_method :import_subnet_routes_with_public_ip?, :import_subnet_routes_with_public_ip
39275
+ attr_accessor :disabled
39276
+ alias_method :disabled?, :disabled
37796
39277
 
37797
- # Name of this peering. Provided by the client when the peering is created. The
37798
- # name must comply with RFC1035. Specifically, the name must be 1-63 characters
37799
- # long and match regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
37800
- # character must be a lowercase letter, and all the following characters must be
37801
- # a dash, lowercase letter, or digit, except the last character, which cannot be
37802
- # a dash.
37803
- # Corresponds to the JSON property `name`
39278
+ # [Output only] Type of the resource. Always compute#
39279
+ # networkPolicyTrafficClassificationRule for network policy traffic
39280
+ # classification rules
39281
+ # Corresponds to the JSON property `kind`
37804
39282
  # @return [String]
37805
- attr_accessor :name
39283
+ attr_accessor :kind
37806
39284
 
37807
- # The URL of the peer network. It can be either full URL or partial URL. The
37808
- # peer network may belong to a different project. If the partial URL does not
37809
- # contain project, it is assumed that the peer network is in the same project as
37810
- # the current network.
37811
- # Corresponds to the JSON property `network`
37812
- # @return [String]
37813
- attr_accessor :network
39285
+ # Represents a match condition that incoming traffic is evaluated against.
39286
+ # Exactly one field must be specified.
39287
+ # Corresponds to the JSON property `match`
39288
+ # @return [Google::Apis::ComputeAlpha::NetworkPolicyTrafficClassificationRuleMatcher]
39289
+ attr_accessor :match
37814
39290
 
37815
- # [Output Only] Maximum Transmission Unit in bytes of the peer network.
37816
- # Corresponds to the JSON property `peerMtu`
39291
+ # An integer indicating the priority of a rule in the list. The priority must be
39292
+ # a positive value between 1 and 2147482647. The priority values from 2147482648
39293
+ # to 2147483647 (1000) are reserved for system default network policy rules.
39294
+ # Rules are evaluated from highest to lowest priority where 1 is the highest
39295
+ # priority and 2147483647 is the lowest priority.
39296
+ # Corresponds to the JSON property `priority`
37817
39297
  # @return [Fixnum]
37818
- attr_accessor :peer_mtu
39298
+ attr_accessor :priority
37819
39299
 
37820
- # Which IP version(s) of traffic and routes are allowed to be imported or
37821
- # exported between peer networks. The default value is IPV4_ONLY.
37822
- # Corresponds to the JSON property `stackType`
39300
+ # An optional name for the rule. This field is not a unique identifier and can
39301
+ # be updated.
39302
+ # Corresponds to the JSON property `ruleName`
37823
39303
  # @return [String]
37824
- attr_accessor :stack_type
39304
+ attr_accessor :rule_name
37825
39305
 
37826
- # [Output Only] State for the peering, either `ACTIVE` or `INACTIVE`. The
37827
- # peering is `ACTIVE` when there's a matching configuration in the peer network.
37828
- # Corresponds to the JSON property `state`
37829
- # @return [String]
37830
- attr_accessor :state
39306
+ # [Output Only] Calculation of the complexity of a single network policy rule.
39307
+ # Corresponds to the JSON property `ruleTupleCount`
39308
+ # @return [Fixnum]
39309
+ attr_accessor :rule_tuple_count
37831
39310
 
37832
- # [Output Only] Details about the current state of the peering.
37833
- # Corresponds to the JSON property `stateDetails`
37834
- # @return [String]
37835
- attr_accessor :state_details
39311
+ # A list of secure tags that controls which instances the traffic classification
39312
+ # rule applies to. If targetSecureTag are specified, then the traffic
39313
+ # classification rule applies only to instances in the VPC network that have one
39314
+ # of those EFFECTIVE secure tags, if all the targetSecureTag are in INEFFECTIVE
39315
+ # state, then this rule will be ignored. targetSecureTag may not be set at the
39316
+ # same time as targetServiceAccounts. If neither targetServiceAccounts nor
39317
+ # targetSecureTag are specified, the traffic classification rule applies to all
39318
+ # instances on the specified network. Maximum number of target label tags
39319
+ # allowed is 256.
39320
+ # Corresponds to the JSON property `targetSecureTags`
39321
+ # @return [Array<Google::Apis::ComputeAlpha::NetworkPolicyTrafficClassificationRuleSecureTag>]
39322
+ attr_accessor :target_secure_tags
37836
39323
 
37837
- # The update strategy determines the semantics for updates and deletes to the
37838
- # peering connection configuration.
37839
- # Corresponds to the JSON property `updateStrategy`
37840
- # @return [String]
37841
- attr_accessor :update_strategy
39324
+ # A list of service accounts indicating the sets of instances that are applied
39325
+ # with this rule.
39326
+ # Corresponds to the JSON property `targetServiceAccounts`
39327
+ # @return [Array<String>]
39328
+ attr_accessor :target_service_accounts
37842
39329
 
37843
39330
  def initialize(**args)
37844
39331
  update!(**args)
@@ -37846,49 +39333,52 @@ module Google
37846
39333
 
37847
39334
  # Update properties of this object
37848
39335
  def update!(**args)
37849
- @advertise_peer_subnets_via_routers = args[:advertise_peer_subnets_via_routers] if args.key?(:advertise_peer_subnets_via_routers)
37850
- @auto_create_routes = args[:auto_create_routes] if args.key?(:auto_create_routes)
37851
- @connection_status = args[:connection_status] if args.key?(:connection_status)
37852
- @exchange_subnet_routes = args[:exchange_subnet_routes] if args.key?(:exchange_subnet_routes)
37853
- @export_custom_routes = args[:export_custom_routes] if args.key?(:export_custom_routes)
37854
- @export_subnet_routes_with_public_ip = args[:export_subnet_routes_with_public_ip] if args.key?(:export_subnet_routes_with_public_ip)
37855
- @import_custom_routes = args[:import_custom_routes] if args.key?(:import_custom_routes)
37856
- @import_subnet_routes_with_public_ip = args[:import_subnet_routes_with_public_ip] if args.key?(:import_subnet_routes_with_public_ip)
37857
- @name = args[:name] if args.key?(:name)
37858
- @network = args[:network] if args.key?(:network)
37859
- @peer_mtu = args[:peer_mtu] if args.key?(:peer_mtu)
37860
- @stack_type = args[:stack_type] if args.key?(:stack_type)
37861
- @state = args[:state] if args.key?(:state)
37862
- @state_details = args[:state_details] if args.key?(:state_details)
37863
- @update_strategy = args[:update_strategy] if args.key?(:update_strategy)
39336
+ @action = args[:action] if args.key?(:action)
39337
+ @description = args[:description] if args.key?(:description)
39338
+ @disabled = args[:disabled] if args.key?(:disabled)
39339
+ @kind = args[:kind] if args.key?(:kind)
39340
+ @match = args[:match] if args.key?(:match)
39341
+ @priority = args[:priority] if args.key?(:priority)
39342
+ @rule_name = args[:rule_name] if args.key?(:rule_name)
39343
+ @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
39344
+ @target_secure_tags = args[:target_secure_tags] if args.key?(:target_secure_tags)
39345
+ @target_service_accounts = args[:target_service_accounts] if args.key?(:target_service_accounts)
37864
39346
  end
37865
39347
  end
37866
39348
 
37867
- # [Output Only] Describes the state of a peering connection, not just the local
37868
- # peering. This field provides information about the effective settings for the
37869
- # connection as a whole, including pending delete/update requests for CONSENSUS
37870
- # peerings.
37871
- class NetworkPeeringConnectionStatus
39349
+ #
39350
+ class NetworkPolicyTrafficClassificationRuleAction
37872
39351
  include Google::Apis::Core::Hashable
37873
39352
 
37874
- # The status of update/delete for a consensus peering connection. Only set when
37875
- # connection_status.update_strategy is CONSENSUS or a network peering is
37876
- # proposing to update the strategy to CONSENSUS.
37877
- # Corresponds to the JSON property `consensusState`
37878
- # @return [Google::Apis::ComputeAlpha::NetworkPeeringConnectionStatusConsensusState]
37879
- attr_accessor :consensus_state
39353
+ # The traffic class that should be applied to the matching packet.
39354
+ # Corresponds to the JSON property `dscpMode`
39355
+ # @return [String]
39356
+ attr_accessor :dscp_mode
37880
39357
 
37881
- # The active connectivity settings for the peering connection based on the
37882
- # settings of the network peerings.
37883
- # Corresponds to the JSON property `trafficConfiguration`
37884
- # @return [Google::Apis::ComputeAlpha::NetworkPeeringConnectionStatusTrafficConfiguration]
37885
- attr_accessor :traffic_configuration
39358
+ # Custom DSCP value from 0-63 range.
39359
+ # Corresponds to the JSON property `dscpValue`
39360
+ # @return [Fixnum]
39361
+ attr_accessor :dscp_value
37886
39362
 
37887
- # The update strategy determines the update/delete semantics for this peering
37888
- # connection.
37889
- # Corresponds to the JSON property `updateStrategy`
39363
+ # The field type could be one of: TRAFFIC_CLASS or DSCP.
39364
+ # Corresponds to the JSON property `fieldType`
37890
39365
  # @return [String]
37891
- attr_accessor :update_strategy
39366
+ attr_accessor :field_type
39367
+
39368
+ # For field_type = TRAFFIC_CLASS: 1 to 6. For field_type = DSCP: 0 to 63.
39369
+ # Corresponds to the JSON property `fieldValue`
39370
+ # @return [Fixnum]
39371
+ attr_accessor :field_value
39372
+
39373
+ # The traffic class that should be applied to the matching packet.
39374
+ # Corresponds to the JSON property `trafficClass`
39375
+ # @return [String]
39376
+ attr_accessor :traffic_class
39377
+
39378
+ # Always "apply_traffic_classification" for traffic classification rules.
39379
+ # Corresponds to the JSON property `type`
39380
+ # @return [String]
39381
+ attr_accessor :type
37892
39382
 
37893
39383
  def initialize(**args)
37894
39384
  update!(**args)
@@ -37896,27 +39386,35 @@ module Google
37896
39386
 
37897
39387
  # Update properties of this object
37898
39388
  def update!(**args)
37899
- @consensus_state = args[:consensus_state] if args.key?(:consensus_state)
37900
- @traffic_configuration = args[:traffic_configuration] if args.key?(:traffic_configuration)
37901
- @update_strategy = args[:update_strategy] if args.key?(:update_strategy)
39389
+ @dscp_mode = args[:dscp_mode] if args.key?(:dscp_mode)
39390
+ @dscp_value = args[:dscp_value] if args.key?(:dscp_value)
39391
+ @field_type = args[:field_type] if args.key?(:field_type)
39392
+ @field_value = args[:field_value] if args.key?(:field_value)
39393
+ @traffic_class = args[:traffic_class] if args.key?(:traffic_class)
39394
+ @type = args[:type] if args.key?(:type)
37902
39395
  end
37903
39396
  end
37904
39397
 
37905
- # The status of update/delete for a consensus peering connection. Only set when
37906
- # connection_status.update_strategy is CONSENSUS or a network peering is
37907
- # proposing to update the strategy to CONSENSUS.
37908
- class NetworkPeeringConnectionStatusConsensusState
39398
+ # Represents a match condition that incoming traffic is evaluated against.
39399
+ # Exactly one field must be specified.
39400
+ class NetworkPolicyTrafficClassificationRuleMatcher
37909
39401
  include Google::Apis::Core::Hashable
37910
39402
 
37911
- # The status of the delete request.
37912
- # Corresponds to the JSON property `deleteStatus`
37913
- # @return [String]
37914
- attr_accessor :delete_status
39403
+ # CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is
39404
+ # 5000.
39405
+ # Corresponds to the JSON property `destIpRanges`
39406
+ # @return [Array<String>]
39407
+ attr_accessor :dest_ip_ranges
37915
39408
 
37916
- # The status of the update request.
37917
- # Corresponds to the JSON property `updateStatus`
37918
- # @return [String]
37919
- attr_accessor :update_status
39409
+ # Pairs of IP protocols and ports that the rule should match.
39410
+ # Corresponds to the JSON property `layer4Configs`
39411
+ # @return [Array<Google::Apis::ComputeAlpha::NetworkPolicyTrafficClassificationRuleMatcherLayer4Config>]
39412
+ attr_accessor :layer4_configs
39413
+
39414
+ # CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000.
39415
+ # Corresponds to the JSON property `srcIpRanges`
39416
+ # @return [Array<String>]
39417
+ attr_accessor :src_ip_ranges
37920
39418
 
37921
39419
  def initialize(**args)
37922
39420
  update!(**args)
@@ -37924,46 +39422,31 @@ module Google
37924
39422
 
37925
39423
  # Update properties of this object
37926
39424
  def update!(**args)
37927
- @delete_status = args[:delete_status] if args.key?(:delete_status)
37928
- @update_status = args[:update_status] if args.key?(:update_status)
39425
+ @dest_ip_ranges = args[:dest_ip_ranges] if args.key?(:dest_ip_ranges)
39426
+ @layer4_configs = args[:layer4_configs] if args.key?(:layer4_configs)
39427
+ @src_ip_ranges = args[:src_ip_ranges] if args.key?(:src_ip_ranges)
37929
39428
  end
37930
39429
  end
37931
39430
 
37932
39431
  #
37933
- class NetworkPeeringConnectionStatusTrafficConfiguration
39432
+ class NetworkPolicyTrafficClassificationRuleMatcherLayer4Config
37934
39433
  include Google::Apis::Core::Hashable
37935
39434
 
37936
- # Whether custom routes are being exported to the peer network.
37937
- # Corresponds to the JSON property `exportCustomRoutesToPeer`
37938
- # @return [Boolean]
37939
- attr_accessor :export_custom_routes_to_peer
37940
- alias_method :export_custom_routes_to_peer?, :export_custom_routes_to_peer
37941
-
37942
- # Whether subnet routes with public IP ranges are being exported to the peer
37943
- # network.
37944
- # Corresponds to the JSON property `exportSubnetRoutesWithPublicIpToPeer`
37945
- # @return [Boolean]
37946
- attr_accessor :export_subnet_routes_with_public_ip_to_peer
37947
- alias_method :export_subnet_routes_with_public_ip_to_peer?, :export_subnet_routes_with_public_ip_to_peer
37948
-
37949
- # Whether custom routes are being imported from the peer network.
37950
- # Corresponds to the JSON property `importCustomRoutesFromPeer`
37951
- # @return [Boolean]
37952
- attr_accessor :import_custom_routes_from_peer
37953
- alias_method :import_custom_routes_from_peer?, :import_custom_routes_from_peer
37954
-
37955
- # Whether subnet routes with public IP ranges are being imported from the peer
37956
- # network.
37957
- # Corresponds to the JSON property `importSubnetRoutesWithPublicIpFromPeer`
37958
- # @return [Boolean]
37959
- attr_accessor :import_subnet_routes_with_public_ip_from_peer
37960
- alias_method :import_subnet_routes_with_public_ip_from_peer?, :import_subnet_routes_with_public_ip_from_peer
37961
-
37962
- # Which IP version(s) of traffic and routes are being imported or exported
37963
- # between peer networks.
37964
- # Corresponds to the JSON property `stackType`
39435
+ # The IP protocol to which this rule applies. The protocol type is required when
39436
+ # creating a traffic classification rule. This value can either be one of the
39437
+ # following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
39438
+ # or the IP protocol number.
39439
+ # Corresponds to the JSON property `ipProtocol`
37965
39440
  # @return [String]
37966
- attr_accessor :stack_type
39441
+ attr_accessor :ip_protocol
39442
+
39443
+ # An optional list of ports to which this rule applies. This field is only
39444
+ # applicable for UDP or TCP protocol. Each entry must be either an integer or a
39445
+ # range. If not specified, this rule applies to connections through any port.
39446
+ # Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
39447
+ # Corresponds to the JSON property `ports`
39448
+ # @return [Array<String>]
39449
+ attr_accessor :ports
37967
39450
 
37968
39451
  def initialize(**args)
37969
39452
  update!(**args)
@@ -37971,27 +39454,25 @@ module Google
37971
39454
 
37972
39455
  # Update properties of this object
37973
39456
  def update!(**args)
37974
- @export_custom_routes_to_peer = args[:export_custom_routes_to_peer] if args.key?(:export_custom_routes_to_peer)
37975
- @export_subnet_routes_with_public_ip_to_peer = args[:export_subnet_routes_with_public_ip_to_peer] if args.key?(:export_subnet_routes_with_public_ip_to_peer)
37976
- @import_custom_routes_from_peer = args[:import_custom_routes_from_peer] if args.key?(:import_custom_routes_from_peer)
37977
- @import_subnet_routes_with_public_ip_from_peer = args[:import_subnet_routes_with_public_ip_from_peer] if args.key?(:import_subnet_routes_with_public_ip_from_peer)
37978
- @stack_type = args[:stack_type] if args.key?(:stack_type)
39457
+ @ip_protocol = args[:ip_protocol] if args.key?(:ip_protocol)
39458
+ @ports = args[:ports] if args.key?(:ports)
37979
39459
  end
37980
39460
  end
37981
39461
 
37982
39462
  #
37983
- class NetworkPerformanceConfig
39463
+ class NetworkPolicyTrafficClassificationRuleSecureTag
37984
39464
  include Google::Apis::Core::Hashable
37985
39465
 
37986
- #
37987
- # Corresponds to the JSON property `externalIpEgressBandwidthTier`
39466
+ # Name of the secure tag, created with TagManager's TagValue API.
39467
+ # Corresponds to the JSON property `name`
37988
39468
  # @return [String]
37989
- attr_accessor :external_ip_egress_bandwidth_tier
39469
+ attr_accessor :name
37990
39470
 
37991
- #
37992
- # Corresponds to the JSON property `totalEgressBandwidthTier`
39471
+ # [Output Only] State of the secure tag, either `EFFECTIVE` or `INEFFECTIVE`. A
39472
+ # secure tag is `INEFFECTIVE` when it is deleted or its network is deleted.
39473
+ # Corresponds to the JSON property `state`
37993
39474
  # @return [String]
37994
- attr_accessor :total_egress_bandwidth_tier
39475
+ attr_accessor :state
37995
39476
 
37996
39477
  def initialize(**args)
37997
39478
  update!(**args)
@@ -37999,8 +39480,8 @@ module Google
37999
39480
 
38000
39481
  # Update properties of this object
38001
39482
  def update!(**args)
38002
- @external_ip_egress_bandwidth_tier = args[:external_ip_egress_bandwidth_tier] if args.key?(:external_ip_egress_bandwidth_tier)
38003
- @total_egress_bandwidth_tier = args[:total_egress_bandwidth_tier] if args.key?(:total_egress_bandwidth_tier)
39483
+ @name = args[:name] if args.key?(:name)
39484
+ @state = args[:state] if args.key?(:state)
38004
39485
  end
38005
39486
  end
38006
39487
 
@@ -38598,6 +40079,25 @@ module Google
38598
40079
  end
38599
40080
  end
38600
40081
 
40082
+ #
40083
+ class NetworksCancelRequestRemovePeeringRequest
40084
+ include Google::Apis::Core::Hashable
40085
+
40086
+ # Name of the peering, which should conform to RFC1035.
40087
+ # Corresponds to the JSON property `name`
40088
+ # @return [String]
40089
+ attr_accessor :name
40090
+
40091
+ def initialize(**args)
40092
+ update!(**args)
40093
+ end
40094
+
40095
+ # Update properties of this object
40096
+ def update!(**args)
40097
+ @name = args[:name] if args.key?(:name)
40098
+ end
40099
+ end
40100
+
38601
40101
  #
38602
40102
  class NetworksGetEffectiveFirewallsResponse
38603
40103
  include Google::Apis::Core::Hashable
@@ -44204,6 +45704,13 @@ module Google
44204
45704
  # @return [String]
44205
45705
  attr_accessor :description
44206
45706
 
45707
+ # [Output Only] Whether this PDP supports enhanced IPv4 allocations. Applicable
45708
+ # for IPv4 PDPs only.
45709
+ # Corresponds to the JSON property `enableEnhancedIpv4Allocation`
45710
+ # @return [Boolean]
45711
+ attr_accessor :enable_enhanced_ipv4_allocation
45712
+ alias_method :enable_enhanced_ipv4_allocation?, :enable_enhanced_ipv4_allocation
45713
+
44207
45714
  # Fingerprint of this resource. A hash of the contents stored in this object.
44208
45715
  # This field is used in optimistic locking. This field will be ignored when
44209
45716
  # inserting a new PublicDelegatedPrefix. An up-to-date fingerprint must be
@@ -44328,6 +45835,7 @@ module Google
44328
45835
  @byoip_api_version = args[:byoip_api_version] if args.key?(:byoip_api_version)
44329
45836
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
44330
45837
  @description = args[:description] if args.key?(:description)
45838
+ @enable_enhanced_ipv4_allocation = args[:enable_enhanced_ipv4_allocation] if args.key?(:enable_enhanced_ipv4_allocation)
44331
45839
  @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
44332
45840
  @id = args[:id] if args.key?(:id)
44333
45841
  @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range)
@@ -44609,6 +46117,13 @@ module Google
44609
46117
  # @return [String]
44610
46118
  attr_accessor :description
44611
46119
 
46120
+ # [Output Only] Whether this PDP supports enhanced IPv4 allocations. Applicable
46121
+ # for IPv4 PDPs only.
46122
+ # Corresponds to the JSON property `enableEnhancedIpv4Allocation`
46123
+ # @return [Boolean]
46124
+ attr_accessor :enable_enhanced_ipv4_allocation
46125
+ alias_method :enable_enhanced_ipv4_allocation?, :enable_enhanced_ipv4_allocation
46126
+
44612
46127
  # The IP address range, in CIDR format, represented by this sub public delegated
44613
46128
  # prefix.
44614
46129
  # Corresponds to the JSON property `ipCidrRange`
@@ -44664,6 +46179,7 @@ module Google
44664
46179
  @allocatable_prefix_length = args[:allocatable_prefix_length] if args.key?(:allocatable_prefix_length)
44665
46180
  @delegatee_project = args[:delegatee_project] if args.key?(:delegatee_project)
44666
46181
  @description = args[:description] if args.key?(:description)
46182
+ @enable_enhanced_ipv4_allocation = args[:enable_enhanced_ipv4_allocation] if args.key?(:enable_enhanced_ipv4_allocation)
44667
46183
  @ip_cidr_range = args[:ip_cidr_range] if args.key?(:ip_cidr_range)
44668
46184
  @ipv6_access_type = args[:ipv6_access_type] if args.key?(:ipv6_access_type)
44669
46185
  @is_address = args[:is_address] if args.key?(:is_address)
@@ -51191,6 +52707,11 @@ module Google
51191
52707
  # @return [Google::Apis::ComputeAlpha::ResourceStatusPhysicalHostTopology]
51192
52708
  attr_accessor :physical_host_topology
51193
52709
 
52710
+ # [Output Only] Reservation information that the instance is consuming from.
52711
+ # Corresponds to the JSON property `reservationConsumptionInfo`
52712
+ # @return [Google::Apis::ComputeAlpha::ResourceStatusReservationConsumptionInfo]
52713
+ attr_accessor :reservation_consumption_info
52714
+
51194
52715
  #
51195
52716
  # Corresponds to the JSON property `scheduling`
51196
52717
  # @return [Google::Apis::ComputeAlpha::ResourceStatusScheduling]
@@ -51226,6 +52747,7 @@ module Google
51226
52747
  @last_instance_termination_details = args[:last_instance_termination_details] if args.key?(:last_instance_termination_details)
51227
52748
  @physical_host = args[:physical_host] if args.key?(:physical_host)
51228
52749
  @physical_host_topology = args[:physical_host_topology] if args.key?(:physical_host_topology)
52750
+ @reservation_consumption_info = args[:reservation_consumption_info] if args.key?(:reservation_consumption_info)
51229
52751
  @scheduling = args[:scheduling] if args.key?(:scheduling)
51230
52752
  @service_integration_statuses = args[:service_integration_statuses] if args.key?(:service_integration_statuses)
51231
52753
  @shutdown_details = args[:shutdown_details] if args.key?(:shutdown_details)
@@ -51470,6 +52992,39 @@ module Google
51470
52992
  end
51471
52993
  end
51472
52994
 
52995
+ #
52996
+ class ResourceStatusReservationConsumptionInfo
52997
+ include Google::Apis::Core::Hashable
52998
+
52999
+ # The full resource name of the reservation that this instance is consuming from.
53000
+ # Corresponds to the JSON property `consumedReservation`
53001
+ # @return [String]
53002
+ attr_accessor :consumed_reservation
53003
+
53004
+ # The full resource name of the reservation block that this instance is
53005
+ # consuming from.
53006
+ # Corresponds to the JSON property `consumedReservationBlock`
53007
+ # @return [String]
53008
+ attr_accessor :consumed_reservation_block
53009
+
53010
+ # The full resource name of the reservation sub-block that this instance is
53011
+ # consuming from.
53012
+ # Corresponds to the JSON property `consumedReservationSubBlock`
53013
+ # @return [String]
53014
+ attr_accessor :consumed_reservation_sub_block
53015
+
53016
+ def initialize(**args)
53017
+ update!(**args)
53018
+ end
53019
+
53020
+ # Update properties of this object
53021
+ def update!(**args)
53022
+ @consumed_reservation = args[:consumed_reservation] if args.key?(:consumed_reservation)
53023
+ @consumed_reservation_block = args[:consumed_reservation_block] if args.key?(:consumed_reservation_block)
53024
+ @consumed_reservation_sub_block = args[:consumed_reservation_sub_block] if args.key?(:consumed_reservation_sub_block)
53025
+ end
53026
+ end
53027
+
51473
53028
  #
51474
53029
  class ResourceStatusScheduling
51475
53030
  include Google::Apis::Core::Hashable
@@ -52766,6 +54321,14 @@ module Google
52766
54321
  # @return [String]
52767
54322
  attr_accessor :ipv6_nexthop_address
52768
54323
 
54324
+ # The linked custom hardware resource. The URI of the custom hardware link
54325
+ # attachment is where you will establish the BGP session from the Cloud Router.
54326
+ # This link attachment must reside in the same subnetwork as the associated
54327
+ # router interface.
54328
+ # Corresponds to the JSON property `linkedCustomHardware`
54329
+ # @return [String]
54330
+ attr_accessor :linked_custom_hardware
54331
+
52769
54332
  # [Output Only] The resource that configures and manages this BGP peer. -
52770
54333
  # MANAGED_BY_USER is the default value and can be managed by you or other users -
52771
54334
  # MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed by Cloud
@@ -52844,6 +54407,7 @@ module Google
52844
54407
  @ip_address = args[:ip_address] if args.key?(:ip_address)
52845
54408
  @ipv4_nexthop_address = args[:ipv4_nexthop_address] if args.key?(:ipv4_nexthop_address)
52846
54409
  @ipv6_nexthop_address = args[:ipv6_nexthop_address] if args.key?(:ipv6_nexthop_address)
54410
+ @linked_custom_hardware = args[:linked_custom_hardware] if args.key?(:linked_custom_hardware)
52847
54411
  @management_type = args[:management_type] if args.key?(:management_type)
52848
54412
  @md5_authentication_key_name = args[:md5_authentication_key_name] if args.key?(:md5_authentication_key_name)
52849
54413
  @name = args[:name] if args.key?(:name)
@@ -53589,15 +55153,15 @@ module Google
53589
55153
  class RouterParams
53590
55154
  include Google::Apis::Core::Hashable
53591
55155
 
53592
- # Tag keys/values directly bound to this resource. Tag keys and values have the
53593
- # same definition as resource manager tags. The field is allowed for INSERT only.
53594
- # The keys/values to set on the resource should be specified in either ID ` : `
53595
- # or Namespaced format ` : `. For example the following are valid inputs: * `"
53596
- # tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"` * `"123/
53597
- # environment" : "production", "345/abc" : "xyz"` Note: * Invalid combinations
53598
- # of ID & namespaced format is not supported. For instance: `"123/environment" :
53599
- # "tagValues/444"` is invalid. * Inconsistent format is not supported. For
53600
- # instance: `"tagKeys/333" : "tagValues/444", "123/env" : "prod"` is invalid.
55156
+ # Tag keys/values directly bound to this resource. The field is allowed for
55157
+ # INSERT only. The keys/values to set on the resource should be specified in
55158
+ # either ID ` : ` or Namespaced format ` : `. For example the following are
55159
+ # valid inputs: * `"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/
55160
+ # 456"` * `"123/environment" : "production", "345/abc" : "xyz"` Note: * Invalid
55161
+ # combinations of ID & namespaced format is not supported. For instance: `"123/
55162
+ # environment" : "tagValues/444"` is invalid. * Inconsistent format is not
55163
+ # supported. For instance: `"tagKeys/333" : "tagValues/444", "123/env" : "prod"`
55164
+ # is invalid.
53601
55165
  # Corresponds to the JSON property `resourceManagerTags`
53602
55166
  # @return [Hash<String,String>]
53603
55167
  attr_accessor :resource_manager_tags
@@ -53711,6 +55275,13 @@ module Google
53711
55275
  # @return [String]
53712
55276
  attr_accessor :ipv6_nexthop_address
53713
55277
 
55278
+ # The URI of the linked custom hardware resource, CustomHardwareLinkAttachment.
55279
+ # This CustomHardwareLinkAttachment resource is the one that will establish the
55280
+ # BGP session from the Cloud Router.
55281
+ # Corresponds to the JSON property `linkedCustomHardware`
55282
+ # @return [String]
55283
+ attr_accessor :linked_custom_hardware
55284
+
53714
55285
  # URL of the VPN tunnel that this BGP peer controls.
53715
55286
  # Corresponds to the JSON property `linkedVpnTunnel`
53716
55287
  # @return [String]
@@ -53794,6 +55365,7 @@ module Google
53794
55365
  @ip_address = args[:ip_address] if args.key?(:ip_address)
53795
55366
  @ipv4_nexthop_address = args[:ipv4_nexthop_address] if args.key?(:ipv4_nexthop_address)
53796
55367
  @ipv6_nexthop_address = args[:ipv6_nexthop_address] if args.key?(:ipv6_nexthop_address)
55368
+ @linked_custom_hardware = args[:linked_custom_hardware] if args.key?(:linked_custom_hardware)
53797
55369
  @linked_vpn_tunnel = args[:linked_vpn_tunnel] if args.key?(:linked_vpn_tunnel)
53798
55370
  @md5_auth_enabled = args[:md5_auth_enabled] if args.key?(:md5_auth_enabled)
53799
55371
  @name = args[:name] if args.key?(:name)
@@ -54912,6 +56484,14 @@ module Google
54912
56484
  attr_accessor :preemptible
54913
56485
  alias_method :preemptible?, :preemptible
54914
56486
 
56487
+ # A Duration represents a fixed-length span of time represented as a count of
56488
+ # seconds and fractions of seconds at nanosecond resolution. It is independent
56489
+ # of any calendar and concepts like "day" or "month". Range is approximately 10,
56490
+ # 000 years.
56491
+ # Corresponds to the JSON property `preemptionNoticeDuration`
56492
+ # @return [Google::Apis::ComputeAlpha::Duration]
56493
+ attr_accessor :preemption_notice_duration
56494
+
54915
56495
  # Specifies the provisioning model of the instance.
54916
56496
  # Corresponds to the JSON property `provisioningModel`
54917
56497
  # @return [String]
@@ -54969,6 +56549,7 @@ module Google
54969
56549
  @on_host_maintenance = args[:on_host_maintenance] if args.key?(:on_host_maintenance)
54970
56550
  @on_instance_stop_action = args[:on_instance_stop_action] if args.key?(:on_instance_stop_action)
54971
56551
  @preemptible = args[:preemptible] if args.key?(:preemptible)
56552
+ @preemption_notice_duration = args[:preemption_notice_duration] if args.key?(:preemption_notice_duration)
54972
56553
  @provisioning_model = args[:provisioning_model] if args.key?(:provisioning_model)
54973
56554
  @shutdown_timeout = args[:shutdown_timeout] if args.key?(:shutdown_timeout)
54974
56555
  @skip_guest_os_shutdown = args[:skip_guest_os_shutdown] if args.key?(:skip_guest_os_shutdown)
@@ -56253,7 +57834,7 @@ module Google
56253
57834
  # @return [String]
56254
57835
  attr_accessor :redirect_target
56255
57836
 
56256
- # [Output Only] The minimum managed protection tier required for this rule. [
57837
+ # [Output Only] The minimum Cloud Armor subscription required for this rule. [
56257
57838
  # Deprecated] Use requiredManagedProtectionTiers instead.
56258
57839
  # Corresponds to the JSON property `ruleManagedProtectionTier`
56259
57840
  # @return [String]
@@ -57618,6 +59199,11 @@ module Google
57618
59199
  # @return [String]
57619
59200
  attr_accessor :endpoint
57620
59201
 
59202
+ # The url of a connected endpoint with resource id.
59203
+ # Corresponds to the JSON property `endpointWithId`
59204
+ # @return [String]
59205
+ attr_accessor :endpoint_with_id
59206
+
57621
59207
  # NAT IPs of the connected PSC endpoint and those of other endpoints propagated
57622
59208
  # from it.
57623
59209
  # Corresponds to the JSON property `natIps`
@@ -57648,6 +59234,7 @@ module Google
57648
59234
  def update!(**args)
57649
59235
  @consumer_network = args[:consumer_network] if args.key?(:consumer_network)
57650
59236
  @endpoint = args[:endpoint] if args.key?(:endpoint)
59237
+ @endpoint_with_id = args[:endpoint_with_id] if args.key?(:endpoint_with_id)
57651
59238
  @nat_ips = args[:nat_ips] if args.key?(:nat_ips)
57652
59239
  @propagated_connection_count = args[:propagated_connection_count] if args.key?(:propagated_connection_count)
57653
59240
  @psc_connection_id = args[:psc_connection_id] if args.key?(:psc_connection_id)
@@ -57665,6 +59252,11 @@ module Google
57665
59252
  # @return [Fixnum]
57666
59253
  attr_accessor :connection_limit
57667
59254
 
59255
+ # The URL for the PSC endpoint to accept
59256
+ # Corresponds to the JSON property `endpointUrl`
59257
+ # @return [String]
59258
+ attr_accessor :endpoint_url
59259
+
57668
59260
  # The network URL for the network to set the limit for.
57669
59261
  # Corresponds to the JSON property `networkUrl`
57670
59262
  # @return [String]
@@ -57682,6 +59274,7 @@ module Google
57682
59274
  # Update properties of this object
57683
59275
  def update!(**args)
57684
59276
  @connection_limit = args[:connection_limit] if args.key?(:connection_limit)
59277
+ @endpoint_url = args[:endpoint_url] if args.key?(:endpoint_url)
57685
59278
  @network_url = args[:network_url] if args.key?(:network_url)
57686
59279
  @project_id_or_num = args[:project_id_or_num] if args.key?(:project_id_or_num)
57687
59280
  end
@@ -58379,7 +59972,7 @@ module Google
58379
59972
 
58380
59973
  # Represents a Persistent Disk Snapshot resource. You can use snapshots to back
58381
59974
  # up data on a regular interval. For more information, read Creating persistent
58382
- # disk snapshots. LINT.IfChange
59975
+ # disk snapshots.
58383
59976
  class Snapshot
58384
59977
  include Google::Apis::Core::Hashable
58385
59978
 
@@ -68721,6 +70314,97 @@ module Google
68721
70314
  end
68722
70315
  end
68723
70316
 
70317
+ #
70318
+ class VmExtensionPoliciesScopedList
70319
+ include Google::Apis::Core::Hashable
70320
+
70321
+ # List of VmExtensionPolicy resources contained in this scope.
70322
+ # Corresponds to the JSON property `vmExtensionPolicies`
70323
+ # @return [Array<Google::Apis::ComputeAlpha::VmExtensionPolicy>]
70324
+ attr_accessor :vm_extension_policies
70325
+
70326
+ # Informational warning which replaces the list of backend services when the
70327
+ # list is empty.
70328
+ # Corresponds to the JSON property `warning`
70329
+ # @return [Google::Apis::ComputeAlpha::VmExtensionPoliciesScopedList::Warning]
70330
+ attr_accessor :warning
70331
+
70332
+ def initialize(**args)
70333
+ update!(**args)
70334
+ end
70335
+
70336
+ # Update properties of this object
70337
+ def update!(**args)
70338
+ @vm_extension_policies = args[:vm_extension_policies] if args.key?(:vm_extension_policies)
70339
+ @warning = args[:warning] if args.key?(:warning)
70340
+ end
70341
+
70342
+ # Informational warning which replaces the list of backend services when the
70343
+ # list is empty.
70344
+ class Warning
70345
+ include Google::Apis::Core::Hashable
70346
+
70347
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
70348
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
70349
+ # Corresponds to the JSON property `code`
70350
+ # @return [String]
70351
+ attr_accessor :code
70352
+
70353
+ # [Output Only] Metadata about this warning in key: value format. For example: "
70354
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
70355
+ # Corresponds to the JSON property `data`
70356
+ # @return [Array<Google::Apis::ComputeAlpha::VmExtensionPoliciesScopedList::Warning::Datum>]
70357
+ attr_accessor :data
70358
+
70359
+ # [Output Only] A human-readable description of the warning code.
70360
+ # Corresponds to the JSON property `message`
70361
+ # @return [String]
70362
+ attr_accessor :message
70363
+
70364
+ def initialize(**args)
70365
+ update!(**args)
70366
+ end
70367
+
70368
+ # Update properties of this object
70369
+ def update!(**args)
70370
+ @code = args[:code] if args.key?(:code)
70371
+ @data = args[:data] if args.key?(:data)
70372
+ @message = args[:message] if args.key?(:message)
70373
+ end
70374
+
70375
+ #
70376
+ class Datum
70377
+ include Google::Apis::Core::Hashable
70378
+
70379
+ # [Output Only] A key that provides more detail on the warning being returned.
70380
+ # For example, for warnings where there are no results in a list request for a
70381
+ # particular zone, this key might be scope and the key value might be the zone
70382
+ # name. Other examples might be a key indicating a deprecated resource and a
70383
+ # suggested replacement, or a warning about invalid network settings (for
70384
+ # example, if an instance attempts to perform IP forwarding but is not enabled
70385
+ # for IP forwarding).
70386
+ # Corresponds to the JSON property `key`
70387
+ # @return [String]
70388
+ attr_accessor :key
70389
+
70390
+ # [Output Only] A warning data value corresponding to the key.
70391
+ # Corresponds to the JSON property `value`
70392
+ # @return [String]
70393
+ attr_accessor :value
70394
+
70395
+ def initialize(**args)
70396
+ update!(**args)
70397
+ end
70398
+
70399
+ # Update properties of this object
70400
+ def update!(**args)
70401
+ @key = args[:key] if args.key?(:key)
70402
+ @value = args[:value] if args.key?(:value)
70403
+ end
70404
+ end
70405
+ end
70406
+ end
70407
+
68724
70408
  # Represents a VM extension policy.
68725
70409
  class VmExtensionPolicy
68726
70410
  include Google::Apis::Core::Hashable
@@ -68834,6 +70518,136 @@ module Google
68834
70518
  end
68835
70519
  end
68836
70520
 
70521
+ # Response for the aggregated list of VM extension policies.
70522
+ class VmExtensionPolicyAggregatedListResponse
70523
+ include Google::Apis::Core::Hashable
70524
+
70525
+ #
70526
+ # Corresponds to the JSON property `etag`
70527
+ # @return [String]
70528
+ attr_accessor :etag
70529
+
70530
+ # [Output Only] Unique identifier for the resource; defined by the server.
70531
+ # Corresponds to the JSON property `id`
70532
+ # @return [String]
70533
+ attr_accessor :id
70534
+
70535
+ # A list of VmExtensionPoliciesScopedList resources.
70536
+ # Corresponds to the JSON property `items`
70537
+ # @return [Hash<String,Google::Apis::ComputeAlpha::VmExtensionPoliciesScopedList>]
70538
+ attr_accessor :items
70539
+
70540
+ # [Output Only] Type of resource. Always compute#VmExtensionPolicyAggregatedList
70541
+ # for lists of VmExtensionPolicies.
70542
+ # Corresponds to the JSON property `kind`
70543
+ # @return [String]
70544
+ attr_accessor :kind
70545
+
70546
+ # [Output Only] This token allows you to get the next page of results for list
70547
+ # requests. If the number of results is larger than maxResults, use the
70548
+ # nextPageToken as a value for the query parameter pageToken in the next list
70549
+ # request. Subsequent list requests will have their own nextPageToken to
70550
+ # continue paging through the results.
70551
+ # Corresponds to the JSON property `nextPageToken`
70552
+ # @return [String]
70553
+ attr_accessor :next_page_token
70554
+
70555
+ # [Output Only] Server-defined URL for this resource.
70556
+ # Corresponds to the JSON property `selfLink`
70557
+ # @return [String]
70558
+ attr_accessor :self_link
70559
+
70560
+ # [Output Only] Unreachable resources.
70561
+ # Corresponds to the JSON property `unreachables`
70562
+ # @return [Array<String>]
70563
+ attr_accessor :unreachables
70564
+
70565
+ # [Output Only] Informational warning message.
70566
+ # Corresponds to the JSON property `warning`
70567
+ # @return [Google::Apis::ComputeAlpha::VmExtensionPolicyAggregatedListResponse::Warning]
70568
+ attr_accessor :warning
70569
+
70570
+ def initialize(**args)
70571
+ update!(**args)
70572
+ end
70573
+
70574
+ # Update properties of this object
70575
+ def update!(**args)
70576
+ @etag = args[:etag] if args.key?(:etag)
70577
+ @id = args[:id] if args.key?(:id)
70578
+ @items = args[:items] if args.key?(:items)
70579
+ @kind = args[:kind] if args.key?(:kind)
70580
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
70581
+ @self_link = args[:self_link] if args.key?(:self_link)
70582
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
70583
+ @warning = args[:warning] if args.key?(:warning)
70584
+ end
70585
+
70586
+ # [Output Only] Informational warning message.
70587
+ class Warning
70588
+ include Google::Apis::Core::Hashable
70589
+
70590
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
70591
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
70592
+ # Corresponds to the JSON property `code`
70593
+ # @return [String]
70594
+ attr_accessor :code
70595
+
70596
+ # [Output Only] Metadata about this warning in key: value format. For example: "
70597
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
70598
+ # Corresponds to the JSON property `data`
70599
+ # @return [Array<Google::Apis::ComputeAlpha::VmExtensionPolicyAggregatedListResponse::Warning::Datum>]
70600
+ attr_accessor :data
70601
+
70602
+ # [Output Only] A human-readable description of the warning code.
70603
+ # Corresponds to the JSON property `message`
70604
+ # @return [String]
70605
+ attr_accessor :message
70606
+
70607
+ def initialize(**args)
70608
+ update!(**args)
70609
+ end
70610
+
70611
+ # Update properties of this object
70612
+ def update!(**args)
70613
+ @code = args[:code] if args.key?(:code)
70614
+ @data = args[:data] if args.key?(:data)
70615
+ @message = args[:message] if args.key?(:message)
70616
+ end
70617
+
70618
+ #
70619
+ class Datum
70620
+ include Google::Apis::Core::Hashable
70621
+
70622
+ # [Output Only] A key that provides more detail on the warning being returned.
70623
+ # For example, for warnings where there are no results in a list request for a
70624
+ # particular zone, this key might be scope and the key value might be the zone
70625
+ # name. Other examples might be a key indicating a deprecated resource and a
70626
+ # suggested replacement, or a warning about invalid network settings (for
70627
+ # example, if an instance attempts to perform IP forwarding but is not enabled
70628
+ # for IP forwarding).
70629
+ # Corresponds to the JSON property `key`
70630
+ # @return [String]
70631
+ attr_accessor :key
70632
+
70633
+ # [Output Only] A warning data value corresponding to the key.
70634
+ # Corresponds to the JSON property `value`
70635
+ # @return [String]
70636
+ attr_accessor :value
70637
+
70638
+ def initialize(**args)
70639
+ update!(**args)
70640
+ end
70641
+
70642
+ # Update properties of this object
70643
+ def update!(**args)
70644
+ @key = args[:key] if args.key?(:key)
70645
+ @value = args[:value] if args.key?(:value)
70646
+ end
70647
+ end
70648
+ end
70649
+ end
70650
+
68837
70651
  # Configuration for a specific VM extension.
68838
70652
  class VmExtensionPolicyExtensionPolicy
68839
70653
  include Google::Apis::Core::Hashable
@@ -71045,13 +72859,11 @@ module Google
71045
72859
 
71046
72860
  # The configuration of the bandwidth allocation, one of the following: -
71047
72861
  # ALLOCATE_PER_WIRE: configures a separate unmetered bandwidth allocation (and
71048
- # associated charges) for each wire in the group. - SHARED_WITH_WIRE_GROUP:
71049
- # configures one unmetered bandwidth allocation for the wire group. The
71050
- # unmetered bandwidth is divided equally across each wire in the group, but
71051
- # dynamic throttling reallocates unused unmetered bandwidth from unused or
71052
- # underused wires to other wires in the group. For example, with a four-wire box-
71053
- # and-cross group, when one Interconnect connection is down, the unmetered
71054
- # bandwidth of the two down wires is reallocated to the remaining up wires.
72862
+ # associated charges) for each wire in the group. - SHARED_WITH_WIRE_GROUP: this
72863
+ # is the default behavior, which configures one unmetered bandwidth allocation
72864
+ # for the wire group. The unmetered bandwidth is divided equally across each
72865
+ # wire in the group, but dynamic throttling reallocates unused unmetered
72866
+ # bandwidth from unused or underused wires to other wires in the group.
71055
72867
  # Corresponds to the JSON property `bandwidthAllocation`
71056
72868
  # @return [String]
71057
72869
  attr_accessor :bandwidth_allocation