google-apis-compute_alpha 0.120.0 → 0.122.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.
@@ -3403,6 +3403,123 @@ module Google
3403
3403
  end
3404
3404
  end
3405
3405
 
3406
+ #
3407
+ class BackendBucketAggregatedList
3408
+ include Google::Apis::Core::Hashable
3409
+
3410
+ # [Output Only] Unique identifier for the resource; defined by the server.
3411
+ # Corresponds to the JSON property `id`
3412
+ # @return [String]
3413
+ attr_accessor :id
3414
+
3415
+ # A list of BackendBucketsScopedList resources.
3416
+ # Corresponds to the JSON property `items`
3417
+ # @return [Hash<String,Google::Apis::ComputeAlpha::BackendBucketsScopedList>]
3418
+ attr_accessor :items
3419
+
3420
+ # Type of resource.
3421
+ # Corresponds to the JSON property `kind`
3422
+ # @return [String]
3423
+ attr_accessor :kind
3424
+
3425
+ # [Output Only] This token allows you to get the next page of results for list
3426
+ # requests. If the number of results is larger than maxResults, use the
3427
+ # nextPageToken as a value for the query parameter pageToken in the next list
3428
+ # request. Subsequent list requests will have their own nextPageToken to
3429
+ # continue paging through the results.
3430
+ # Corresponds to the JSON property `nextPageToken`
3431
+ # @return [String]
3432
+ attr_accessor :next_page_token
3433
+
3434
+ # [Output Only] Server-defined URL for this resource.
3435
+ # Corresponds to the JSON property `selfLink`
3436
+ # @return [String]
3437
+ attr_accessor :self_link
3438
+
3439
+ # [Output Only] Informational warning message.
3440
+ # Corresponds to the JSON property `warning`
3441
+ # @return [Google::Apis::ComputeAlpha::BackendBucketAggregatedList::Warning]
3442
+ attr_accessor :warning
3443
+
3444
+ def initialize(**args)
3445
+ update!(**args)
3446
+ end
3447
+
3448
+ # Update properties of this object
3449
+ def update!(**args)
3450
+ @id = args[:id] if args.key?(:id)
3451
+ @items = args[:items] if args.key?(:items)
3452
+ @kind = args[:kind] if args.key?(:kind)
3453
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
3454
+ @self_link = args[:self_link] if args.key?(:self_link)
3455
+ @warning = args[:warning] if args.key?(:warning)
3456
+ end
3457
+
3458
+ # [Output Only] Informational warning message.
3459
+ class Warning
3460
+ include Google::Apis::Core::Hashable
3461
+
3462
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
3463
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
3464
+ # Corresponds to the JSON property `code`
3465
+ # @return [String]
3466
+ attr_accessor :code
3467
+
3468
+ # [Output Only] Metadata about this warning in key: value format. For example: "
3469
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
3470
+ # Corresponds to the JSON property `data`
3471
+ # @return [Array<Google::Apis::ComputeAlpha::BackendBucketAggregatedList::Warning::Datum>]
3472
+ attr_accessor :data
3473
+
3474
+ # [Output Only] A human-readable description of the warning code.
3475
+ # Corresponds to the JSON property `message`
3476
+ # @return [String]
3477
+ attr_accessor :message
3478
+
3479
+ def initialize(**args)
3480
+ update!(**args)
3481
+ end
3482
+
3483
+ # Update properties of this object
3484
+ def update!(**args)
3485
+ @code = args[:code] if args.key?(:code)
3486
+ @data = args[:data] if args.key?(:data)
3487
+ @message = args[:message] if args.key?(:message)
3488
+ end
3489
+
3490
+ #
3491
+ class Datum
3492
+ include Google::Apis::Core::Hashable
3493
+
3494
+ # [Output Only] A key that provides more detail on the warning being returned.
3495
+ # For example, for warnings where there are no results in a list request for a
3496
+ # particular zone, this key might be scope and the key value might be the zone
3497
+ # name. Other examples might be a key indicating a deprecated resource and a
3498
+ # suggested replacement, or a warning about invalid network settings (for
3499
+ # example, if an instance attempts to perform IP forwarding but is not enabled
3500
+ # for IP forwarding).
3501
+ # Corresponds to the JSON property `key`
3502
+ # @return [String]
3503
+ attr_accessor :key
3504
+
3505
+ # [Output Only] A warning data value corresponding to the key.
3506
+ # Corresponds to the JSON property `value`
3507
+ # @return [String]
3508
+ attr_accessor :value
3509
+
3510
+ def initialize(**args)
3511
+ update!(**args)
3512
+ end
3513
+
3514
+ # Update properties of this object
3515
+ def update!(**args)
3516
+ @key = args[:key] if args.key?(:key)
3517
+ @value = args[:value] if args.key?(:value)
3518
+ end
3519
+ end
3520
+ end
3521
+ end
3522
+
3406
3523
  # Message containing Cloud CDN configuration for a backend bucket.
3407
3524
  class BackendBucketCdnPolicy
3408
3525
  include Google::Apis::Core::Hashable
@@ -3485,8 +3602,8 @@ module Google
3485
3602
  # CDN will apply the following default TTLs to these status codes: HTTP 300 (
3486
3603
  # Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found),
3487
3604
  # 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.
3605
+ # Found), 501 (Not Implemented): 60s. These defaults can be overridden in
3606
+ # negative_caching_policy.
3490
3607
  # Corresponds to the JSON property `negativeCaching`
3491
3608
  # @return [Boolean]
3492
3609
  attr_accessor :negative_caching
@@ -3918,6 +4035,97 @@ module Google
3918
4035
  end
3919
4036
  end
3920
4037
 
4038
+ #
4039
+ class BackendBucketsScopedList
4040
+ include Google::Apis::Core::Hashable
4041
+
4042
+ # A list of BackendBuckets contained in this scope.
4043
+ # Corresponds to the JSON property `backendBuckets`
4044
+ # @return [Array<Google::Apis::ComputeAlpha::BackendBucket>]
4045
+ attr_accessor :backend_buckets
4046
+
4047
+ # Informational warning which replaces the list of backend services when the
4048
+ # list is empty.
4049
+ # Corresponds to the JSON property `warning`
4050
+ # @return [Google::Apis::ComputeAlpha::BackendBucketsScopedList::Warning]
4051
+ attr_accessor :warning
4052
+
4053
+ def initialize(**args)
4054
+ update!(**args)
4055
+ end
4056
+
4057
+ # Update properties of this object
4058
+ def update!(**args)
4059
+ @backend_buckets = args[:backend_buckets] if args.key?(:backend_buckets)
4060
+ @warning = args[:warning] if args.key?(:warning)
4061
+ end
4062
+
4063
+ # Informational warning which replaces the list of backend services when the
4064
+ # list is empty.
4065
+ class Warning
4066
+ include Google::Apis::Core::Hashable
4067
+
4068
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
4069
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
4070
+ # Corresponds to the JSON property `code`
4071
+ # @return [String]
4072
+ attr_accessor :code
4073
+
4074
+ # [Output Only] Metadata about this warning in key: value format. For example: "
4075
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
4076
+ # Corresponds to the JSON property `data`
4077
+ # @return [Array<Google::Apis::ComputeAlpha::BackendBucketsScopedList::Warning::Datum>]
4078
+ attr_accessor :data
4079
+
4080
+ # [Output Only] A human-readable description of the warning code.
4081
+ # Corresponds to the JSON property `message`
4082
+ # @return [String]
4083
+ attr_accessor :message
4084
+
4085
+ def initialize(**args)
4086
+ update!(**args)
4087
+ end
4088
+
4089
+ # Update properties of this object
4090
+ def update!(**args)
4091
+ @code = args[:code] if args.key?(:code)
4092
+ @data = args[:data] if args.key?(:data)
4093
+ @message = args[:message] if args.key?(:message)
4094
+ end
4095
+
4096
+ #
4097
+ class Datum
4098
+ include Google::Apis::Core::Hashable
4099
+
4100
+ # [Output Only] A key that provides more detail on the warning being returned.
4101
+ # For example, for warnings where there are no results in a list request for a
4102
+ # particular zone, this key might be scope and the key value might be the zone
4103
+ # name. Other examples might be a key indicating a deprecated resource and a
4104
+ # suggested replacement, or a warning about invalid network settings (for
4105
+ # example, if an instance attempts to perform IP forwarding but is not enabled
4106
+ # for IP forwarding).
4107
+ # Corresponds to the JSON property `key`
4108
+ # @return [String]
4109
+ attr_accessor :key
4110
+
4111
+ # [Output Only] A warning data value corresponding to the key.
4112
+ # Corresponds to the JSON property `value`
4113
+ # @return [String]
4114
+ attr_accessor :value
4115
+
4116
+ def initialize(**args)
4117
+ update!(**args)
4118
+ end
4119
+
4120
+ # Update properties of this object
4121
+ def update!(**args)
4122
+ @key = args[:key] if args.key?(:key)
4123
+ @value = args[:value] if args.key?(:value)
4124
+ end
4125
+ end
4126
+ end
4127
+ end
4128
+
3921
4129
  # Custom Metrics are used for CUSTOM_METRICS balancing_mode.
3922
4130
  class BackendCustomMetric
3923
4131
  include Google::Apis::Core::Hashable
@@ -4704,8 +4912,8 @@ module Google
4704
4912
  # CDN will apply the following default TTLs to these status codes: HTTP 300 (
4705
4913
  # Multiple Choice), 301, 308 (Permanent Redirects): 10m HTTP 404 (Not Found),
4706
4914
  # 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.
4915
+ # Found), 501 (Not Implemented): 60s. These defaults can be overridden in
4916
+ # negative_caching_policy.
4709
4917
  # Corresponds to the JSON property `negativeCaching`
4710
4918
  # @return [Boolean]
4711
4919
  attr_accessor :negative_caching
@@ -5803,6 +6011,27 @@ module Google
5803
6011
  # @return [String]
5804
6012
  attr_accessor :authentication_config
5805
6013
 
6014
+ # Assigns the Managed Identity for the RegionBackendService Workload. Use this
6015
+ # property to configure the load balancer back-end to use certificates and roots
6016
+ # of trust provisioned by the Managed Workload Identity system. The `
6017
+ # managedIdentity` property is the fully-specified SPIFFE ID to use in the SVID
6018
+ # presented by the Load Balancer Workload. The SPIFFE ID must be a resource
6019
+ # starting with the "spiffe" scheme identifier, followed by the "trustDomain"
6020
+ # property value, followed by the path to the Managed Workload Identity.
6021
+ # Supported SPIFFE ID format: - spiffe://<trust_domain>/ns/<namespace>/sa/<
6022
+ # subject> The Trust Domain within the Managed Identity must refer to a valid
6023
+ # Workload Identity Pool. The TrustConfig and CertificateIssuanceConfig will be
6024
+ # inherited from the Workload Identity Pool. Restrictions: - If you set the `
6025
+ # managedIdentity` property, you cannot manually set the following fields: -
6026
+ # tlsSettings.sni - tlsSettings.subjectAltNames - tlsSettings.
6027
+ # authenticationConfig When defining a `managedIdentity` for a
6028
+ # RegionBackendServices, the corresponding Workload Identity Pool must have a
6029
+ # ca_pool configured in the same region. The system will set up a read-only
6030
+ # tlsSettings.authenticationConfig for the Managed Identity.
6031
+ # Corresponds to the JSON property `identity`
6032
+ # @return [String]
6033
+ attr_accessor :identity
6034
+
5806
6035
  # Server Name Indication - see RFC3546 section 3.1. If set, the load balancer
5807
6036
  # sends this string as the SNI hostname in the TLS connection to the backend,
5808
6037
  # and requires that this string match a Subject Alternative Name (SAN) in the
@@ -5833,6 +6062,7 @@ module Google
5833
6062
  # Update properties of this object
5834
6063
  def update!(**args)
5835
6064
  @authentication_config = args[:authentication_config] if args.key?(:authentication_config)
6065
+ @identity = args[:identity] if args.key?(:identity)
5836
6066
  @sni = args[:sni] if args.key?(:sni)
5837
6067
  @subject_alt_names = args[:subject_alt_names] if args.key?(:subject_alt_names)
5838
6068
  end
@@ -7154,13 +7384,21 @@ module Google
7154
7384
  # @return [Float]
7155
7385
  attr_accessor :obtainability
7156
7386
 
7157
- # The preemption score indicates the likelihood that your Spot VMs is preempted.
7158
- # For more information about the preemption process, see Preemption of Spot VMs.
7159
- # The score range is 0.0 through 1.0. Higher is better.
7387
+ # [Deprecated] Use uptime_score field instead. The preemption score indicates
7388
+ # the likelihood that your Spot VMs is preempted. For more information about the
7389
+ # preemption process, see Preemption of Spot VMs. The score range is 0.0 through
7390
+ # 1.0. Higher is better.
7160
7391
  # Corresponds to the JSON property `spotPreemption`
7161
7392
  # @return [Float]
7162
7393
  attr_accessor :spot_preemption
7163
7394
 
7395
+ # The uptime score indicates the availability of your Spot VMs. For more
7396
+ # information about the preemption process, see Preemption of Spot VMs. The
7397
+ # score range is 0.0 through 1.0. Higher is better.
7398
+ # Corresponds to the JSON property `uptimeScore`
7399
+ # @return [Float]
7400
+ attr_accessor :uptime_score
7401
+
7164
7402
  def initialize(**args)
7165
7403
  update!(**args)
7166
7404
  end
@@ -7169,6 +7407,7 @@ module Google
7169
7407
  def update!(**args)
7170
7408
  @obtainability = args[:obtainability] if args.key?(:obtainability)
7171
7409
  @spot_preemption = args[:spot_preemption] if args.key?(:spot_preemption)
7410
+ @uptime_score = args[:uptime_score] if args.key?(:uptime_score)
7172
7411
  end
7173
7412
  end
7174
7413
 
@@ -12214,6 +12453,12 @@ module Google
12214
12453
  # @return [String]
12215
12454
  attr_accessor :parent
12216
12455
 
12456
+ # [Output Only] Source of this Firewall Policy. USER_DEFINED if created by a
12457
+ # Cloud user, or SYSTEM if created by managed services like GKE.
12458
+ # Corresponds to the JSON property `policySource`
12459
+ # @return [String]
12460
+ attr_accessor :policy_source
12461
+
12217
12462
  # The type of the firewall policy. This field can be either VPC_POLICY or
12218
12463
  # RDMA_ROCE_POLICY. Note: if not specified then VPC_POLICY will be used.
12219
12464
  # Corresponds to the JSON property `policyType`
@@ -12292,6 +12537,7 @@ module Google
12292
12537
  @name = args[:name] if args.key?(:name)
12293
12538
  @packet_mirroring_rules = args[:packet_mirroring_rules] if args.key?(:packet_mirroring_rules)
12294
12539
  @parent = args[:parent] if args.key?(:parent)
12540
+ @policy_source = args[:policy_source] if args.key?(:policy_source)
12295
12541
  @policy_type = args[:policy_type] if args.key?(:policy_type)
12296
12542
  @region = args[:region] if args.key?(:region)
12297
12543
  @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
@@ -15269,144 +15515,88 @@ module Google
15269
15515
  end
15270
15516
  end
15271
15517
 
15272
- # Maintenance Info for ReservationBlocks.
15273
- class GroupMaintenanceInfo
15518
+ # Message describing GlobalVmExtensionPolicy object.
15519
+ class GlobalVmExtensionPolicy
15274
15520
  include Google::Apis::Core::Hashable
15275
15521
 
15276
- # Describes number of instances that have ongoing maintenance.
15277
- # Corresponds to the JSON property `instanceMaintenanceOngoingCount`
15278
- # @return [Fixnum]
15279
- attr_accessor :instance_maintenance_ongoing_count
15280
-
15281
- # Describes number of instances that have pending maintenance.
15282
- # Corresponds to the JSON property `instanceMaintenancePendingCount`
15283
- # @return [Fixnum]
15284
- attr_accessor :instance_maintenance_pending_count
15285
-
15286
- # Progress for ongoing maintenance for this group of VMs/hosts. Describes number
15287
- # of hosts in the block that have ongoing maintenance.
15288
- # Corresponds to the JSON property `maintenanceOngoingCount`
15289
- # @return [Fixnum]
15290
- attr_accessor :maintenance_ongoing_count
15291
-
15292
- # Progress for ongoing maintenance for this group of VMs/hosts. Describes number
15293
- # of hosts in the block that have pending maintenance.
15294
- # Corresponds to the JSON property `maintenancePendingCount`
15295
- # @return [Fixnum]
15296
- attr_accessor :maintenance_pending_count
15297
-
15298
- # The type of maintenance for the reservation.
15299
- # Corresponds to the JSON property `schedulingType`
15522
+ # [Output Only] Creation timestamp in RFC3339 text format.
15523
+ # Corresponds to the JSON property `creationTimestamp`
15300
15524
  # @return [String]
15301
- attr_accessor :scheduling_type
15302
-
15303
- # Describes number of subblock Infrastructure that has ongoing maintenance. Here,
15304
- # Subblock Infrastructure Maintenance pertains to upstream hardware contained
15305
- # in the Subblock that is necessary for a VM Family(e.g. NVLink Domains). Not
15306
- # all VM Families will support this field.
15307
- # Corresponds to the JSON property `subblockInfraMaintenanceOngoingCount`
15308
- # @return [Fixnum]
15309
- attr_accessor :subblock_infra_maintenance_ongoing_count
15310
-
15311
- # Describes number of subblock Infrastructure that has pending maintenance. Here,
15312
- # Subblock Infrastructure Maintenance pertains to upstream hardware contained
15313
- # in the Subblock that is necessary for a VM Family (e.g. NVLink Domains). Not
15314
- # all VM Families will support this field.
15315
- # Corresponds to the JSON property `subblockInfraMaintenancePendingCount`
15316
- # @return [Fixnum]
15317
- attr_accessor :subblock_infra_maintenance_pending_count
15318
-
15319
- # Upcoming Maintenance notification information.
15320
- # Corresponds to the JSON property `upcomingGroupMaintenance`
15321
- # @return [Google::Apis::ComputeAlpha::UpcomingMaintenance]
15322
- attr_accessor :upcoming_group_maintenance
15323
-
15324
- def initialize(**args)
15325
- update!(**args)
15326
- end
15327
-
15328
- # Update properties of this object
15329
- def update!(**args)
15330
- @instance_maintenance_ongoing_count = args[:instance_maintenance_ongoing_count] if args.key?(:instance_maintenance_ongoing_count)
15331
- @instance_maintenance_pending_count = args[:instance_maintenance_pending_count] if args.key?(:instance_maintenance_pending_count)
15332
- @maintenance_ongoing_count = args[:maintenance_ongoing_count] if args.key?(:maintenance_ongoing_count)
15333
- @maintenance_pending_count = args[:maintenance_pending_count] if args.key?(:maintenance_pending_count)
15334
- @scheduling_type = args[:scheduling_type] if args.key?(:scheduling_type)
15335
- @subblock_infra_maintenance_ongoing_count = args[:subblock_infra_maintenance_ongoing_count] if args.key?(:subblock_infra_maintenance_ongoing_count)
15336
- @subblock_infra_maintenance_pending_count = args[:subblock_infra_maintenance_pending_count] if args.key?(:subblock_infra_maintenance_pending_count)
15337
- @upcoming_group_maintenance = args[:upcoming_group_maintenance] if args.key?(:upcoming_group_maintenance)
15338
- end
15339
- end
15340
-
15341
- # [Deprecated] gRPC config to access the SDS server. gRPC config to access the
15342
- # SDS server.
15343
- class GrpcServiceConfig
15344
- include Google::Apis::Core::Hashable
15345
-
15346
- # [Deprecated] gRPC call credentials to access the SDS server. gRPC call
15347
- # credentials to access the SDS server.
15348
- # Corresponds to the JSON property `callCredentials`
15349
- # @return [Google::Apis::ComputeAlpha::CallCredentials]
15350
- attr_accessor :call_credentials
15351
-
15352
- # [Deprecated] gRPC channel credentials to access the SDS server. gRPC channel
15353
- # credentials to access the SDS server.
15354
- # Corresponds to the JSON property `channelCredentials`
15355
- # @return [Google::Apis::ComputeAlpha::ChannelCredentials]
15356
- attr_accessor :channel_credentials
15525
+ attr_accessor :creation_timestamp
15357
15526
 
15358
- # The target URI of the SDS server.
15359
- # Corresponds to the JSON property `targetUri`
15527
+ # An optional description of this resource. Provide this property when you
15528
+ # create the resource.
15529
+ # Corresponds to the JSON property `description`
15360
15530
  # @return [String]
15361
- attr_accessor :target_uri
15531
+ attr_accessor :description
15362
15532
 
15363
- def initialize(**args)
15364
- update!(**args)
15365
- end
15533
+ # Required. Map from extension (eg: "cloudops") to its policy configuration. The
15534
+ # key is the name of the extension.
15535
+ # Corresponds to the JSON property `extensionPolicies`
15536
+ # @return [Hash<String,Google::Apis::ComputeAlpha::GlobalVmExtensionPolicyExtensionPolicy>]
15537
+ attr_accessor :extension_policies
15366
15538
 
15367
- # Update properties of this object
15368
- def update!(**args)
15369
- @call_credentials = args[:call_credentials] if args.key?(:call_credentials)
15370
- @channel_credentials = args[:channel_credentials] if args.key?(:channel_credentials)
15371
- @target_uri = args[:target_uri] if args.key?(:target_uri)
15372
- end
15373
- end
15539
+ # [Output Only] The unique identifier for the resource. This identifier is
15540
+ # defined by the server.
15541
+ # Corresponds to the JSON property `id`
15542
+ # @return [Fixnum]
15543
+ attr_accessor :id
15374
15544
 
15375
- # A guest attributes entry.
15376
- class GuestAttributes
15377
- include Google::Apis::Core::Hashable
15545
+ # Optional. Selector to target VMs for a policy. There is a logical "AND"
15546
+ # between instance_selectors.
15547
+ # Corresponds to the JSON property `instanceSelectors`
15548
+ # @return [Array<Google::Apis::ComputeAlpha::GlobalVmExtensionPolicyInstanceSelector>]
15549
+ attr_accessor :instance_selectors
15378
15550
 
15379
- # [Output Only] Type of the resource. Always compute#guestAttributes for guest
15380
- # attributes entry.
15551
+ # [Output Only] Type of the resource. Always compute#globalVmExtensionPolicy for
15552
+ # globalVmExtensionPolicies.
15381
15553
  # Corresponds to the JSON property `kind`
15382
15554
  # @return [String]
15383
15555
  attr_accessor :kind
15384
15556
 
15385
- # The path to be queried. This can be the default namespace ('') or a nested
15386
- # namespace ('\/') or a specified key ('\/\').
15387
- # Corresponds to the JSON property `queryPath`
15557
+ # Name of the resource. Provided by the client when the resource is created. The
15558
+ # name must be 1-63 characters long, and comply with RFC1035. Specifically, the
15559
+ # name must be 1-63 characters long and match the regular expression `[a-z]([-a-
15560
+ # z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter,
15561
+ # and all following characters must be a dash, lowercase letter, or digit,
15562
+ # except the last character, which cannot be a dash.
15563
+ # Corresponds to the JSON property `name`
15388
15564
  # @return [String]
15389
- attr_accessor :query_path
15565
+ attr_accessor :name
15390
15566
 
15391
- # Array of guest attribute namespace/key/value tuples.
15392
- # Corresponds to the JSON property `queryValue`
15393
- # @return [Google::Apis::ComputeAlpha::GuestAttributesValue]
15394
- attr_accessor :query_value
15567
+ # Optional. Used to resolve conflicts when multiple policies are active for the
15568
+ # same extension. Defaults to 0. Larger the number, higher the priority. When
15569
+ # the priority is the same, the policy with the newer create time has higher
15570
+ # priority.
15571
+ # Corresponds to the JSON property `priority`
15572
+ # @return [Fixnum]
15573
+ attr_accessor :priority
15395
15574
 
15396
- # [Output Only] Server-defined URL for this resource.
15575
+ # Represents the rollout operation
15576
+ # Corresponds to the JSON property `rolloutOperation`
15577
+ # @return [Google::Apis::ComputeAlpha::GlobalVmExtensionPolicyRolloutOperation]
15578
+ attr_accessor :rollout_operation
15579
+
15580
+ # [Output Only] The scoped resource status. It's only for tracking the purging
15581
+ # status of the policy.
15582
+ # Corresponds to the JSON property `scopedResourceStatus`
15583
+ # @return [String]
15584
+ attr_accessor :scoped_resource_status
15585
+
15586
+ # [Output Only] Server-defined fully-qualified URL for this resource.
15397
15587
  # Corresponds to the JSON property `selfLink`
15398
15588
  # @return [String]
15399
15589
  attr_accessor :self_link
15400
15590
 
15401
- # The key to search for.
15402
- # Corresponds to the JSON property `variableKey`
15591
+ # [Output Only] Server-defined URL for this resource's resource id.
15592
+ # Corresponds to the JSON property `selfLinkWithId`
15403
15593
  # @return [String]
15404
- attr_accessor :variable_key
15594
+ attr_accessor :self_link_with_id
15405
15595
 
15406
- # [Output Only] The value found for the requested key.
15407
- # Corresponds to the JSON property `variableValue`
15596
+ # [Output Only] Update timestamp in RFC3339 text format.
15597
+ # Corresponds to the JSON property `updateTimestamp`
15408
15598
  # @return [String]
15409
- attr_accessor :variable_value
15599
+ attr_accessor :update_timestamp
15410
15600
 
15411
15601
  def initialize(**args)
15412
15602
  update!(**args)
@@ -15414,33 +15604,37 @@ module Google
15414
15604
 
15415
15605
  # Update properties of this object
15416
15606
  def update!(**args)
15607
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
15608
+ @description = args[:description] if args.key?(:description)
15609
+ @extension_policies = args[:extension_policies] if args.key?(:extension_policies)
15610
+ @id = args[:id] if args.key?(:id)
15611
+ @instance_selectors = args[:instance_selectors] if args.key?(:instance_selectors)
15417
15612
  @kind = args[:kind] if args.key?(:kind)
15418
- @query_path = args[:query_path] if args.key?(:query_path)
15419
- @query_value = args[:query_value] if args.key?(:query_value)
15613
+ @name = args[:name] if args.key?(:name)
15614
+ @priority = args[:priority] if args.key?(:priority)
15615
+ @rollout_operation = args[:rollout_operation] if args.key?(:rollout_operation)
15616
+ @scoped_resource_status = args[:scoped_resource_status] if args.key?(:scoped_resource_status)
15420
15617
  @self_link = args[:self_link] if args.key?(:self_link)
15421
- @variable_key = args[:variable_key] if args.key?(:variable_key)
15422
- @variable_value = args[:variable_value] if args.key?(:variable_value)
15618
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
15619
+ @update_timestamp = args[:update_timestamp] if args.key?(:update_timestamp)
15423
15620
  end
15424
15621
  end
15425
15622
 
15426
- # A guest attributes namespace/key/value entry.
15427
- class GuestAttributesEntry
15623
+ # Policy for a single extension.
15624
+ class GlobalVmExtensionPolicyExtensionPolicy
15428
15625
  include Google::Apis::Core::Hashable
15429
15626
 
15430
- # Key for the guest attribute entry.
15431
- # Corresponds to the JSON property `key`
15432
- # @return [String]
15433
- attr_accessor :key
15434
-
15435
- # Namespace for the guest attribute entry.
15436
- # Corresponds to the JSON property `namespace`
15627
+ # Optional. The version pinning for the extension. If empty, the extension will
15628
+ # be installed with the latest version released by the extension producer.
15629
+ # Corresponds to the JSON property `pinnedVersion`
15437
15630
  # @return [String]
15438
- attr_accessor :namespace
15631
+ attr_accessor :pinned_version
15439
15632
 
15440
- # Value for the guest attribute entry.
15441
- # Corresponds to the JSON property `value`
15633
+ # Optional. String configuration. Any string payload that the extension
15634
+ # understands.
15635
+ # Corresponds to the JSON property `stringConfig`
15442
15636
  # @return [String]
15443
- attr_accessor :value
15637
+ attr_accessor :string_config
15444
15638
 
15445
15639
  def initialize(**args)
15446
15640
  update!(**args)
@@ -15448,20 +15642,20 @@ module Google
15448
15642
 
15449
15643
  # Update properties of this object
15450
15644
  def update!(**args)
15451
- @key = args[:key] if args.key?(:key)
15452
- @namespace = args[:namespace] if args.key?(:namespace)
15453
- @value = args[:value] if args.key?(:value)
15645
+ @pinned_version = args[:pinned_version] if args.key?(:pinned_version)
15646
+ @string_config = args[:string_config] if args.key?(:string_config)
15454
15647
  end
15455
15648
  end
15456
15649
 
15457
- # Array of guest attribute namespace/key/value tuples.
15458
- class GuestAttributesValue
15650
+ # Selector to target VMs for a zone VM extension policy.
15651
+ class GlobalVmExtensionPolicyInstanceSelector
15459
15652
  include Google::Apis::Core::Hashable
15460
15653
 
15461
- #
15462
- # Corresponds to the JSON property `items`
15463
- # @return [Array<Google::Apis::ComputeAlpha::GuestAttributesEntry>]
15464
- attr_accessor :items
15654
+ # A LabelSelector is applicable for a VM only if it matches all labels in the
15655
+ # LabelSelector.
15656
+ # Corresponds to the JSON property `labelSelector`
15657
+ # @return [Google::Apis::ComputeAlpha::GlobalVmExtensionPolicyLabelSelector]
15658
+ attr_accessor :label_selector
15465
15659
 
15466
15660
  def initialize(**args)
15467
15661
  update!(**args)
@@ -15469,23 +15663,21 @@ module Google
15469
15663
 
15470
15664
  # Update properties of this object
15471
15665
  def update!(**args)
15472
- @items = args[:items] if args.key?(:items)
15666
+ @label_selector = args[:label_selector] if args.key?(:label_selector)
15473
15667
  end
15474
15668
  end
15475
15669
 
15476
- # Guest OS features.
15477
- class GuestOsFeature
15670
+ # A LabelSelector is applicable for a VM only if it matches all labels in the
15671
+ # LabelSelector.
15672
+ class GlobalVmExtensionPolicyLabelSelector
15478
15673
  include Google::Apis::Core::Hashable
15479
15674
 
15480
- # The ID of a supported feature. To add multiple values, use commas to separate
15481
- # values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE -
15482
- # WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE -
15483
- # SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE_V2 - SEV_SNP_CAPABLE -
15484
- # TDX_CAPABLE - IDPF - SNP_SVSM_CAPABLE For more information, see Enabling guest
15485
- # operating system features.
15486
- # Corresponds to the JSON property `type`
15487
- # @return [String]
15488
- attr_accessor :type
15675
+ # Optional. Labels as key value pairs. A VM should contain all the pairs
15676
+ # specified in this map to be selected; Labels within the LabelSelector are OR'
15677
+ # ed.
15678
+ # Corresponds to the JSON property `inclusionLabels`
15679
+ # @return [Hash<String,String>]
15680
+ attr_accessor :inclusion_labels
15489
15681
 
15490
15682
  def initialize(**args)
15491
15683
  update!(**args)
@@ -15493,81 +15685,57 @@ module Google
15493
15685
 
15494
15686
  # Update properties of this object
15495
15687
  def update!(**args)
15496
- @type = args[:type] if args.key?(:type)
15688
+ @inclusion_labels = args[:inclusion_labels] if args.key?(:inclusion_labels)
15497
15689
  end
15498
15690
  end
15499
15691
 
15500
- #
15501
- class Http2HealthCheck
15692
+ # Response to list global VM extension policy resources.
15693
+ class GlobalVmExtensionPolicyList
15502
15694
  include Google::Apis::Core::Hashable
15503
15695
 
15504
- # The value of the host header in the HTTP/2 health check request. If left empty
15505
- # (default value), the host header is set to the destination IP address to which
15506
- # health check packets are sent. The destination IP address depends on the type
15507
- # of load balancer. For details, see: https://cloud.google.com/load-balancing/
15508
- # docs/health-check-concepts#hc-packet-dest
15509
- # Corresponds to the JSON property `host`
15696
+ #
15697
+ # Corresponds to the JSON property `etag`
15510
15698
  # @return [String]
15511
- attr_accessor :host
15512
-
15513
- # The TCP port number to which the health check prober sends packets. The
15514
- # default value is 443. Valid values are 1 through 65535.
15515
- # Corresponds to the JSON property `port`
15516
- # @return [Fixnum]
15517
- attr_accessor :port
15699
+ attr_accessor :etag
15518
15700
 
15519
- # Not supported.
15520
- # Corresponds to the JSON property `portName`
15701
+ # [Output Only] Unique identifier for the resource; defined by the server.
15702
+ # Corresponds to the JSON property `id`
15521
15703
  # @return [String]
15522
- attr_accessor :port_name
15704
+ attr_accessor :id
15523
15705
 
15524
- # Specifies how a port is selected for health checking. Can be one of the
15525
- # following values: USE_FIXED_PORT: Specifies a port number explicitly using the
15526
- # port field in the health check. Supported by backend services for passthrough
15527
- # load balancers and backend services for proxy load balancers. Not supported by
15528
- # target pools. The health check supports all backends supported by the backend
15529
- # service provided the backend can be health checked. For example, GCE_VM_IP
15530
- # network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance
15531
- # group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an
15532
- # indirect method of specifying the health check port by referring to the
15533
- # backend service. Only supported by backend services for proxy load balancers.
15534
- # Not supported by target pools. Not supported by backend services for
15535
- # passthrough load balancers. Supports all backends that can be health checked;
15536
- # for example, GCE_VM_IP_PORT network endpoint groups and instance group
15537
- # backends. For GCE_VM_IP_PORT network endpoint group backends, the health check
15538
- # uses the port number specified for each endpoint in the network endpoint group.
15539
- # For instance group backends, the health check uses the port number determined
15540
- # by looking up the backend service's named port in the instance group's list of
15541
- # named ports.
15542
- # Corresponds to the JSON property `portSpecification`
15543
- # @return [String]
15544
- attr_accessor :port_specification
15706
+ # A list of GlobalVmExtensionPolicy resources.
15707
+ # Corresponds to the JSON property `items`
15708
+ # @return [Array<Google::Apis::ComputeAlpha::GlobalVmExtensionPolicy>]
15709
+ attr_accessor :items
15545
15710
 
15546
- # Specifies the type of proxy header to append before sending data to the
15547
- # backend, either NONE or PROXY_V1. The default is NONE.
15548
- # Corresponds to the JSON property `proxyHeader`
15711
+ # Type of resource.
15712
+ # Corresponds to the JSON property `kind`
15549
15713
  # @return [String]
15550
- attr_accessor :proxy_header
15714
+ attr_accessor :kind
15551
15715
 
15552
- # The request path of the HTTP/2 health check request. The default value is /.
15553
- # Must comply with RFC3986.
15554
- # Corresponds to the JSON property `requestPath`
15716
+ # [Output Only] This token allows you to get the next page of results for list
15717
+ # requests. If the number of results is larger than maxResults, use the
15718
+ # nextPageToken as a value for the query parameter pageToken in the next list
15719
+ # request. Subsequent list requests will have their own nextPageToken to
15720
+ # continue paging through the results.
15721
+ # Corresponds to the JSON property `nextPageToken`
15555
15722
  # @return [String]
15556
- attr_accessor :request_path
15723
+ attr_accessor :next_page_token
15557
15724
 
15558
- # Creates a content-based HTTP/2 health check. In addition to the required HTTP
15559
- # 200 (OK) status code, you can configure the health check to pass only when the
15560
- # backend sends this specific ASCII response string within the first 1024 bytes
15561
- # of the HTTP response body. For details, see: https://cloud.google.com/load-
15562
- # balancing/docs/health-check-concepts#criteria-protocol-http
15563
- # Corresponds to the JSON property `response`
15725
+ # [Output Only] Server-defined URL for this resource.
15726
+ # Corresponds to the JSON property `selfLink`
15564
15727
  # @return [String]
15565
- attr_accessor :response
15728
+ attr_accessor :self_link
15566
15729
 
15567
- # Weight report mode. used for weighted Load Balancing.
15568
- # Corresponds to the JSON property `weightReportMode`
15569
- # @return [String]
15570
- attr_accessor :weight_report_mode
15730
+ # [Output Only] Unreachable resources.
15731
+ # Corresponds to the JSON property `unreachables`
15732
+ # @return [Array<String>]
15733
+ attr_accessor :unreachables
15734
+
15735
+ # [Output Only] Informational warning message.
15736
+ # Corresponds to the JSON property `warning`
15737
+ # @return [Google::Apis::ComputeAlpha::GlobalVmExtensionPolicyList::Warning]
15738
+ attr_accessor :warning
15571
15739
 
15572
15740
  def initialize(**args)
15573
15741
  update!(**args)
@@ -15575,8 +15743,522 @@ module Google
15575
15743
 
15576
15744
  # Update properties of this object
15577
15745
  def update!(**args)
15578
- @host = args[:host] if args.key?(:host)
15579
- @port = args[:port] if args.key?(:port)
15746
+ @etag = args[:etag] if args.key?(:etag)
15747
+ @id = args[:id] if args.key?(:id)
15748
+ @items = args[:items] if args.key?(:items)
15749
+ @kind = args[:kind] if args.key?(:kind)
15750
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
15751
+ @self_link = args[:self_link] if args.key?(:self_link)
15752
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
15753
+ @warning = args[:warning] if args.key?(:warning)
15754
+ end
15755
+
15756
+ # [Output Only] Informational warning message.
15757
+ class Warning
15758
+ include Google::Apis::Core::Hashable
15759
+
15760
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
15761
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
15762
+ # Corresponds to the JSON property `code`
15763
+ # @return [String]
15764
+ attr_accessor :code
15765
+
15766
+ # [Output Only] Metadata about this warning in key: value format. For example: "
15767
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
15768
+ # Corresponds to the JSON property `data`
15769
+ # @return [Array<Google::Apis::ComputeAlpha::GlobalVmExtensionPolicyList::Warning::Datum>]
15770
+ attr_accessor :data
15771
+
15772
+ # [Output Only] A human-readable description of the warning code.
15773
+ # Corresponds to the JSON property `message`
15774
+ # @return [String]
15775
+ attr_accessor :message
15776
+
15777
+ def initialize(**args)
15778
+ update!(**args)
15779
+ end
15780
+
15781
+ # Update properties of this object
15782
+ def update!(**args)
15783
+ @code = args[:code] if args.key?(:code)
15784
+ @data = args[:data] if args.key?(:data)
15785
+ @message = args[:message] if args.key?(:message)
15786
+ end
15787
+
15788
+ #
15789
+ class Datum
15790
+ include Google::Apis::Core::Hashable
15791
+
15792
+ # [Output Only] A key that provides more detail on the warning being returned.
15793
+ # For example, for warnings where there are no results in a list request for a
15794
+ # particular zone, this key might be scope and the key value might be the zone
15795
+ # name. Other examples might be a key indicating a deprecated resource and a
15796
+ # suggested replacement, or a warning about invalid network settings (for
15797
+ # example, if an instance attempts to perform IP forwarding but is not enabled
15798
+ # for IP forwarding).
15799
+ # Corresponds to the JSON property `key`
15800
+ # @return [String]
15801
+ attr_accessor :key
15802
+
15803
+ # [Output Only] A warning data value corresponding to the key.
15804
+ # Corresponds to the JSON property `value`
15805
+ # @return [String]
15806
+ attr_accessor :value
15807
+
15808
+ def initialize(**args)
15809
+ update!(**args)
15810
+ end
15811
+
15812
+ # Update properties of this object
15813
+ def update!(**args)
15814
+ @key = args[:key] if args.key?(:key)
15815
+ @value = args[:value] if args.key?(:value)
15816
+ end
15817
+ end
15818
+ end
15819
+ end
15820
+
15821
+ # Represents the rollout operation
15822
+ class GlobalVmExtensionPolicyRolloutOperation
15823
+ include Google::Apis::Core::Hashable
15824
+
15825
+ # Required. The rollout input which defines the rollout plan.
15826
+ # Corresponds to the JSON property `rolloutInput`
15827
+ # @return [Google::Apis::ComputeAlpha::GlobalVmExtensionPolicyRolloutOperationRolloutInput]
15828
+ attr_accessor :rollout_input
15829
+
15830
+ # [Output Only] The rollout status of the policy.
15831
+ # Corresponds to the JSON property `rolloutStatus`
15832
+ # @return [Google::Apis::ComputeAlpha::GlobalVmExtensionPolicyRolloutOperationRolloutStatus]
15833
+ attr_accessor :rollout_status
15834
+
15835
+ def initialize(**args)
15836
+ update!(**args)
15837
+ end
15838
+
15839
+ # Update properties of this object
15840
+ def update!(**args)
15841
+ @rollout_input = args[:rollout_input] if args.key?(:rollout_input)
15842
+ @rollout_status = args[:rollout_status] if args.key?(:rollout_status)
15843
+ end
15844
+ end
15845
+
15846
+ #
15847
+ class GlobalVmExtensionPolicyRolloutOperationRolloutInput
15848
+ include Google::Apis::Core::Hashable
15849
+
15850
+ # Optional. [Optional] Specifies the behavior of the Rollout if a conflict is
15851
+ # detected in a project during a Rollout. It can be one of the following values:
15852
+ # 1) empty : don't overwrite the local value if conflict happens. This is the
15853
+ # default behavior. 2) "overwrite" : Overwrite the local value with the rollout
15854
+ # value. The concept of "conflict" applies to: 1) Insert action. If the zonal
15855
+ # policy already exists when Insert happens, it's a conflict. 2) Update action.
15856
+ # If the zonal policy was updated out of band by a zonal API, it's a conflict.
15857
+ # Corresponds to the JSON property `conflictBehavior`
15858
+ # @return [String]
15859
+ attr_accessor :conflict_behavior
15860
+
15861
+ # Optional. The name of the rollout plan. Ex. projects//locations/global/
15862
+ # rolloutPlans/.
15863
+ # Corresponds to the JSON property `name`
15864
+ # @return [String]
15865
+ attr_accessor :name
15866
+
15867
+ # Optional. Predefined rollout plan.
15868
+ # Corresponds to the JSON property `predefinedRolloutPlan`
15869
+ # @return [String]
15870
+ attr_accessor :predefined_rollout_plan
15871
+
15872
+ # Optional. The UUID of the retry action. Only set it if this is a retry for an
15873
+ # existing resource. This is for the user re-populate the resource without
15874
+ # changes. An error will be returned if the retry_uuid is set but the resource
15875
+ # get modified.
15876
+ # Corresponds to the JSON property `retryUuid`
15877
+ # @return [String]
15878
+ attr_accessor :retry_uuid
15879
+
15880
+ def initialize(**args)
15881
+ update!(**args)
15882
+ end
15883
+
15884
+ # Update properties of this object
15885
+ def update!(**args)
15886
+ @conflict_behavior = args[:conflict_behavior] if args.key?(:conflict_behavior)
15887
+ @name = args[:name] if args.key?(:name)
15888
+ @predefined_rollout_plan = args[:predefined_rollout_plan] if args.key?(:predefined_rollout_plan)
15889
+ @retry_uuid = args[:retry_uuid] if args.key?(:retry_uuid)
15890
+ end
15891
+ end
15892
+
15893
+ #
15894
+ class GlobalVmExtensionPolicyRolloutOperationRolloutStatus
15895
+ include Google::Apis::Core::Hashable
15896
+
15897
+ # [Output Only] The current rollouts for the latest version of the resource.
15898
+ # There should be only one current rollout, but for scalability, we make it
15899
+ # repeated.
15900
+ # Corresponds to the JSON property `currentRollouts`
15901
+ # @return [Array<Google::Apis::ComputeAlpha::GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata>]
15902
+ attr_accessor :current_rollouts
15903
+
15904
+ # [Output Only] The last completed rollout resource. This field will not be
15905
+ # populated until the first rollout is completed.
15906
+ # Corresponds to the JSON property `previousRollout`
15907
+ # @return [Google::Apis::ComputeAlpha::GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata]
15908
+ attr_accessor :previous_rollout
15909
+
15910
+ def initialize(**args)
15911
+ update!(**args)
15912
+ end
15913
+
15914
+ # Update properties of this object
15915
+ def update!(**args)
15916
+ @current_rollouts = args[:current_rollouts] if args.key?(:current_rollouts)
15917
+ @previous_rollout = args[:previous_rollout] if args.key?(:previous_rollout)
15918
+ end
15919
+ end
15920
+
15921
+ #
15922
+ class GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata
15923
+ include Google::Apis::Core::Hashable
15924
+
15925
+ # [Output Only] The name of the rollout. Ex. projects//locations/global/rollouts/
15926
+ # .
15927
+ # Corresponds to the JSON property `rollout`
15928
+ # @return [String]
15929
+ attr_accessor :rollout
15930
+
15931
+ # [Output Only] The name of the rollout plan. Ex. projects//locations/global/
15932
+ # rolloutPlans/.
15933
+ # Corresponds to the JSON property `rolloutPlan`
15934
+ # @return [String]
15935
+ attr_accessor :rollout_plan
15936
+
15937
+ # [Output Only] The overall state of the rollout.
15938
+ # Corresponds to the JSON property `state`
15939
+ # @return [String]
15940
+ attr_accessor :state
15941
+
15942
+ def initialize(**args)
15943
+ update!(**args)
15944
+ end
15945
+
15946
+ # Update properties of this object
15947
+ def update!(**args)
15948
+ @rollout = args[:rollout] if args.key?(:rollout)
15949
+ @rollout_plan = args[:rollout_plan] if args.key?(:rollout_plan)
15950
+ @state = args[:state] if args.key?(:state)
15951
+ end
15952
+ end
15953
+
15954
+ # Maintenance Info for ReservationBlocks.
15955
+ class GroupMaintenanceInfo
15956
+ include Google::Apis::Core::Hashable
15957
+
15958
+ # Describes number of instances that have ongoing maintenance.
15959
+ # Corresponds to the JSON property `instanceMaintenanceOngoingCount`
15960
+ # @return [Fixnum]
15961
+ attr_accessor :instance_maintenance_ongoing_count
15962
+
15963
+ # Describes number of instances that have pending maintenance.
15964
+ # Corresponds to the JSON property `instanceMaintenancePendingCount`
15965
+ # @return [Fixnum]
15966
+ attr_accessor :instance_maintenance_pending_count
15967
+
15968
+ # Progress for ongoing maintenance for this group of VMs/hosts. Describes number
15969
+ # of hosts in the block that have ongoing maintenance.
15970
+ # Corresponds to the JSON property `maintenanceOngoingCount`
15971
+ # @return [Fixnum]
15972
+ attr_accessor :maintenance_ongoing_count
15973
+
15974
+ # Progress for ongoing maintenance for this group of VMs/hosts. Describes number
15975
+ # of hosts in the block that have pending maintenance.
15976
+ # Corresponds to the JSON property `maintenancePendingCount`
15977
+ # @return [Fixnum]
15978
+ attr_accessor :maintenance_pending_count
15979
+
15980
+ # The type of maintenance for the reservation.
15981
+ # Corresponds to the JSON property `schedulingType`
15982
+ # @return [String]
15983
+ attr_accessor :scheduling_type
15984
+
15985
+ # Describes number of subblock Infrastructure that has ongoing maintenance. Here,
15986
+ # Subblock Infrastructure Maintenance pertains to upstream hardware contained
15987
+ # in the Subblock that is necessary for a VM Family(e.g. NVLink Domains). Not
15988
+ # all VM Families will support this field.
15989
+ # Corresponds to the JSON property `subblockInfraMaintenanceOngoingCount`
15990
+ # @return [Fixnum]
15991
+ attr_accessor :subblock_infra_maintenance_ongoing_count
15992
+
15993
+ # Describes number of subblock Infrastructure that has pending maintenance. Here,
15994
+ # Subblock Infrastructure Maintenance pertains to upstream hardware contained
15995
+ # in the Subblock that is necessary for a VM Family (e.g. NVLink Domains). Not
15996
+ # all VM Families will support this field.
15997
+ # Corresponds to the JSON property `subblockInfraMaintenancePendingCount`
15998
+ # @return [Fixnum]
15999
+ attr_accessor :subblock_infra_maintenance_pending_count
16000
+
16001
+ # Upcoming Maintenance notification information.
16002
+ # Corresponds to the JSON property `upcomingGroupMaintenance`
16003
+ # @return [Google::Apis::ComputeAlpha::UpcomingMaintenance]
16004
+ attr_accessor :upcoming_group_maintenance
16005
+
16006
+ def initialize(**args)
16007
+ update!(**args)
16008
+ end
16009
+
16010
+ # Update properties of this object
16011
+ def update!(**args)
16012
+ @instance_maintenance_ongoing_count = args[:instance_maintenance_ongoing_count] if args.key?(:instance_maintenance_ongoing_count)
16013
+ @instance_maintenance_pending_count = args[:instance_maintenance_pending_count] if args.key?(:instance_maintenance_pending_count)
16014
+ @maintenance_ongoing_count = args[:maintenance_ongoing_count] if args.key?(:maintenance_ongoing_count)
16015
+ @maintenance_pending_count = args[:maintenance_pending_count] if args.key?(:maintenance_pending_count)
16016
+ @scheduling_type = args[:scheduling_type] if args.key?(:scheduling_type)
16017
+ @subblock_infra_maintenance_ongoing_count = args[:subblock_infra_maintenance_ongoing_count] if args.key?(:subblock_infra_maintenance_ongoing_count)
16018
+ @subblock_infra_maintenance_pending_count = args[:subblock_infra_maintenance_pending_count] if args.key?(:subblock_infra_maintenance_pending_count)
16019
+ @upcoming_group_maintenance = args[:upcoming_group_maintenance] if args.key?(:upcoming_group_maintenance)
16020
+ end
16021
+ end
16022
+
16023
+ # [Deprecated] gRPC config to access the SDS server. gRPC config to access the
16024
+ # SDS server.
16025
+ class GrpcServiceConfig
16026
+ include Google::Apis::Core::Hashable
16027
+
16028
+ # [Deprecated] gRPC call credentials to access the SDS server. gRPC call
16029
+ # credentials to access the SDS server.
16030
+ # Corresponds to the JSON property `callCredentials`
16031
+ # @return [Google::Apis::ComputeAlpha::CallCredentials]
16032
+ attr_accessor :call_credentials
16033
+
16034
+ # [Deprecated] gRPC channel credentials to access the SDS server. gRPC channel
16035
+ # credentials to access the SDS server.
16036
+ # Corresponds to the JSON property `channelCredentials`
16037
+ # @return [Google::Apis::ComputeAlpha::ChannelCredentials]
16038
+ attr_accessor :channel_credentials
16039
+
16040
+ # The target URI of the SDS server.
16041
+ # Corresponds to the JSON property `targetUri`
16042
+ # @return [String]
16043
+ attr_accessor :target_uri
16044
+
16045
+ def initialize(**args)
16046
+ update!(**args)
16047
+ end
16048
+
16049
+ # Update properties of this object
16050
+ def update!(**args)
16051
+ @call_credentials = args[:call_credentials] if args.key?(:call_credentials)
16052
+ @channel_credentials = args[:channel_credentials] if args.key?(:channel_credentials)
16053
+ @target_uri = args[:target_uri] if args.key?(:target_uri)
16054
+ end
16055
+ end
16056
+
16057
+ # A guest attributes entry.
16058
+ class GuestAttributes
16059
+ include Google::Apis::Core::Hashable
16060
+
16061
+ # [Output Only] Type of the resource. Always compute#guestAttributes for guest
16062
+ # attributes entry.
16063
+ # Corresponds to the JSON property `kind`
16064
+ # @return [String]
16065
+ attr_accessor :kind
16066
+
16067
+ # The path to be queried. This can be the default namespace ('') or a nested
16068
+ # namespace ('\/') or a specified key ('\/\').
16069
+ # Corresponds to the JSON property `queryPath`
16070
+ # @return [String]
16071
+ attr_accessor :query_path
16072
+
16073
+ # Array of guest attribute namespace/key/value tuples.
16074
+ # Corresponds to the JSON property `queryValue`
16075
+ # @return [Google::Apis::ComputeAlpha::GuestAttributesValue]
16076
+ attr_accessor :query_value
16077
+
16078
+ # [Output Only] Server-defined URL for this resource.
16079
+ # Corresponds to the JSON property `selfLink`
16080
+ # @return [String]
16081
+ attr_accessor :self_link
16082
+
16083
+ # The key to search for.
16084
+ # Corresponds to the JSON property `variableKey`
16085
+ # @return [String]
16086
+ attr_accessor :variable_key
16087
+
16088
+ # [Output Only] The value found for the requested key.
16089
+ # Corresponds to the JSON property `variableValue`
16090
+ # @return [String]
16091
+ attr_accessor :variable_value
16092
+
16093
+ def initialize(**args)
16094
+ update!(**args)
16095
+ end
16096
+
16097
+ # Update properties of this object
16098
+ def update!(**args)
16099
+ @kind = args[:kind] if args.key?(:kind)
16100
+ @query_path = args[:query_path] if args.key?(:query_path)
16101
+ @query_value = args[:query_value] if args.key?(:query_value)
16102
+ @self_link = args[:self_link] if args.key?(:self_link)
16103
+ @variable_key = args[:variable_key] if args.key?(:variable_key)
16104
+ @variable_value = args[:variable_value] if args.key?(:variable_value)
16105
+ end
16106
+ end
16107
+
16108
+ # A guest attributes namespace/key/value entry.
16109
+ class GuestAttributesEntry
16110
+ include Google::Apis::Core::Hashable
16111
+
16112
+ # Key for the guest attribute entry.
16113
+ # Corresponds to the JSON property `key`
16114
+ # @return [String]
16115
+ attr_accessor :key
16116
+
16117
+ # Namespace for the guest attribute entry.
16118
+ # Corresponds to the JSON property `namespace`
16119
+ # @return [String]
16120
+ attr_accessor :namespace
16121
+
16122
+ # Value for the guest attribute entry.
16123
+ # Corresponds to the JSON property `value`
16124
+ # @return [String]
16125
+ attr_accessor :value
16126
+
16127
+ def initialize(**args)
16128
+ update!(**args)
16129
+ end
16130
+
16131
+ # Update properties of this object
16132
+ def update!(**args)
16133
+ @key = args[:key] if args.key?(:key)
16134
+ @namespace = args[:namespace] if args.key?(:namespace)
16135
+ @value = args[:value] if args.key?(:value)
16136
+ end
16137
+ end
16138
+
16139
+ # Array of guest attribute namespace/key/value tuples.
16140
+ class GuestAttributesValue
16141
+ include Google::Apis::Core::Hashable
16142
+
16143
+ #
16144
+ # Corresponds to the JSON property `items`
16145
+ # @return [Array<Google::Apis::ComputeAlpha::GuestAttributesEntry>]
16146
+ attr_accessor :items
16147
+
16148
+ def initialize(**args)
16149
+ update!(**args)
16150
+ end
16151
+
16152
+ # Update properties of this object
16153
+ def update!(**args)
16154
+ @items = args[:items] if args.key?(:items)
16155
+ end
16156
+ end
16157
+
16158
+ # Guest OS features.
16159
+ class GuestOsFeature
16160
+ include Google::Apis::Core::Hashable
16161
+
16162
+ # The ID of a supported feature. To add multiple values, use commas to separate
16163
+ # values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE -
16164
+ # WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE -
16165
+ # SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE_V2 - SEV_SNP_CAPABLE -
16166
+ # TDX_CAPABLE - IDPF - SNP_SVSM_CAPABLE For more information, see Enabling guest
16167
+ # operating system features.
16168
+ # Corresponds to the JSON property `type`
16169
+ # @return [String]
16170
+ attr_accessor :type
16171
+
16172
+ def initialize(**args)
16173
+ update!(**args)
16174
+ end
16175
+
16176
+ # Update properties of this object
16177
+ def update!(**args)
16178
+ @type = args[:type] if args.key?(:type)
16179
+ end
16180
+ end
16181
+
16182
+ #
16183
+ class Http2HealthCheck
16184
+ include Google::Apis::Core::Hashable
16185
+
16186
+ # The value of the host header in the HTTP/2 health check request. If left empty
16187
+ # (default value), the host header is set to the destination IP address to which
16188
+ # health check packets are sent. The destination IP address depends on the type
16189
+ # of load balancer. For details, see: https://cloud.google.com/load-balancing/
16190
+ # docs/health-check-concepts#hc-packet-dest
16191
+ # Corresponds to the JSON property `host`
16192
+ # @return [String]
16193
+ attr_accessor :host
16194
+
16195
+ # The TCP port number to which the health check prober sends packets. The
16196
+ # default value is 443. Valid values are 1 through 65535.
16197
+ # Corresponds to the JSON property `port`
16198
+ # @return [Fixnum]
16199
+ attr_accessor :port
16200
+
16201
+ # Not supported.
16202
+ # Corresponds to the JSON property `portName`
16203
+ # @return [String]
16204
+ attr_accessor :port_name
16205
+
16206
+ # Specifies how a port is selected for health checking. Can be one of the
16207
+ # following values: USE_FIXED_PORT: Specifies a port number explicitly using the
16208
+ # port field in the health check. Supported by backend services for passthrough
16209
+ # load balancers and backend services for proxy load balancers. Not supported by
16210
+ # target pools. The health check supports all backends supported by the backend
16211
+ # service provided the backend can be health checked. For example, GCE_VM_IP
16212
+ # network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance
16213
+ # group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an
16214
+ # indirect method of specifying the health check port by referring to the
16215
+ # backend service. Only supported by backend services for proxy load balancers.
16216
+ # Not supported by target pools. Not supported by backend services for
16217
+ # passthrough load balancers. Supports all backends that can be health checked;
16218
+ # for example, GCE_VM_IP_PORT network endpoint groups and instance group
16219
+ # backends. For GCE_VM_IP_PORT network endpoint group backends, the health check
16220
+ # uses the port number specified for each endpoint in the network endpoint group.
16221
+ # For instance group backends, the health check uses the port number determined
16222
+ # by looking up the backend service's named port in the instance group's list of
16223
+ # named ports.
16224
+ # Corresponds to the JSON property `portSpecification`
16225
+ # @return [String]
16226
+ attr_accessor :port_specification
16227
+
16228
+ # Specifies the type of proxy header to append before sending data to the
16229
+ # backend, either NONE or PROXY_V1. The default is NONE.
16230
+ # Corresponds to the JSON property `proxyHeader`
16231
+ # @return [String]
16232
+ attr_accessor :proxy_header
16233
+
16234
+ # The request path of the HTTP/2 health check request. The default value is /.
16235
+ # Must comply with RFC3986.
16236
+ # Corresponds to the JSON property `requestPath`
16237
+ # @return [String]
16238
+ attr_accessor :request_path
16239
+
16240
+ # Creates a content-based HTTP/2 health check. In addition to the required HTTP
16241
+ # 200 (OK) status code, you can configure the health check to pass only when the
16242
+ # backend sends this specific ASCII response string within the first 1024 bytes
16243
+ # of the HTTP response body. For details, see: https://cloud.google.com/load-
16244
+ # balancing/docs/health-check-concepts#criteria-protocol-http
16245
+ # Corresponds to the JSON property `response`
16246
+ # @return [String]
16247
+ attr_accessor :response
16248
+
16249
+ # Weight report mode. used for weighted Load Balancing.
16250
+ # Corresponds to the JSON property `weightReportMode`
16251
+ # @return [String]
16252
+ attr_accessor :weight_report_mode
16253
+
16254
+ def initialize(**args)
16255
+ update!(**args)
16256
+ end
16257
+
16258
+ # Update properties of this object
16259
+ def update!(**args)
16260
+ @host = args[:host] if args.key?(:host)
16261
+ @port = args[:port] if args.key?(:port)
15580
16262
  @port_name = args[:port_name] if args.key?(:port_name)
15581
16263
  @port_specification = args[:port_specification] if args.key?(:port_specification)
15582
16264
  @proxy_header = args[:proxy_header] if args.key?(:proxy_header)
@@ -15768,6 +16450,12 @@ module Google
15768
16450
  class HaController
15769
16451
  include Google::Apis::Core::Hashable
15770
16452
 
16453
+ # Advanced configuration option. If specified, these Backend Services need to be
16454
+ # pre-created and configured as managed.
16455
+ # Corresponds to the JSON property `backendServices`
16456
+ # @return [Array<String>]
16457
+ attr_accessor :backend_services
16458
+
15771
16459
  # [Output Only] Creation timestamp in RFC3339 text format.
15772
16460
  # Corresponds to the JSON property `creationTimestamp`
15773
16461
  # @return [String]
@@ -15817,6 +16505,12 @@ module Google
15817
16505
  # @return [String]
15818
16506
  attr_accessor :name
15819
16507
 
16508
+ # Basic networking configuration. Required backend services and forwarding rules
16509
+ # will be automatically created with default parameters.
16510
+ # Corresponds to the JSON property `networkingAutoConfiguration`
16511
+ # @return [Google::Apis::ComputeAlpha::HaControllerNetworkingAutoConfiguration]
16512
+ attr_accessor :networking_auto_configuration
16513
+
15820
16514
  # [Output Only] URL of the region where the resource resides. You must specify
15821
16515
  # this field as part of the HTTP request URL. It is not settable as a field in
15822
16516
  # the request body.
@@ -15855,6 +16549,7 @@ module Google
15855
16549
 
15856
16550
  # Update properties of this object
15857
16551
  def update!(**args)
16552
+ @backend_services = args[:backend_services] if args.key?(:backend_services)
15858
16553
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
15859
16554
  @description = args[:description] if args.key?(:description)
15860
16555
  @failover_initiation = args[:failover_initiation] if args.key?(:failover_initiation)
@@ -15862,6 +16557,7 @@ module Google
15862
16557
  @instance_name = args[:instance_name] if args.key?(:instance_name)
15863
16558
  @kind = args[:kind] if args.key?(:kind)
15864
16559
  @name = args[:name] if args.key?(:name)
16560
+ @networking_auto_configuration = args[:networking_auto_configuration] if args.key?(:networking_auto_configuration)
15865
16561
  @region = args[:region] if args.key?(:region)
15866
16562
  @secondary_zone_capacity = args[:secondary_zone_capacity] if args.key?(:secondary_zone_capacity)
15867
16563
  @self_link = args[:self_link] if args.key?(:self_link)
@@ -15871,47 +16567,15 @@ module Google
15871
16567
  end
15872
16568
  end
15873
16569
 
15874
- # Contains information about current status of the HaController.
15875
- class HaControllerStatus
16570
+ # Basic networking configuration. Required backend services and forwarding rules
16571
+ # will be automatically created with default parameters.
16572
+ class HaControllerNetworkingAutoConfiguration
15876
16573
  include Google::Apis::Core::Hashable
15877
16574
 
15878
- # Contains information about the current failover operation.
15879
- # Corresponds to the JSON property `failoverProgress`
15880
- # @return [Google::Apis::ComputeAlpha::HaControllerStatusFailoverProgress]
15881
- attr_accessor :failover_progress
15882
-
15883
- # [Output Only] Indicates if the failover is currently in-progress.
15884
- # Corresponds to the JSON property `ongoingFailover`
15885
- # @return [Boolean]
15886
- attr_accessor :ongoing_failover
15887
- alias_method :ongoing_failover?, :ongoing_failover
15888
-
15889
- # [Output Only] The URL to the instance that is intended to be primary at this
15890
- # moment. Primary instance will be changed at the very beginning of a failover
15891
- # operation.
15892
- # Corresponds to the JSON property `primaryInstance`
15893
- # @return [String]
15894
- attr_accessor :primary_instance
15895
-
15896
- # [Output Only] The name of the zone that is intended to be primary at this
15897
- # moment. Primary zone will be changed at the very beginning of a failover
15898
- # operation. The zone may not be operational in the middle of a failover
15899
- # operation.
15900
- # Corresponds to the JSON property `primaryZone`
15901
- # @return [String]
15902
- attr_accessor :primary_zone
15903
-
15904
- # [Output Only] Indicates if the resource is ready for initiating a failover to
15905
- # the secondary zone.
15906
- # Corresponds to the JSON property `readyForFailover`
15907
- # @return [Boolean]
15908
- attr_accessor :ready_for_failover
15909
- alias_method :ready_for_failover?, :ready_for_failover
15910
-
15911
- # [Output Only] Map of zone statuses. Key: name of the zone Value: ZoneStatus
15912
- # Corresponds to the JSON property `zoneStatus`
15913
- # @return [Hash<String,Google::Apis::ComputeAlpha::HaControllerStatusZoneStatus>]
15914
- attr_accessor :zone_status
16575
+ # Internal networking configuration
16576
+ # Corresponds to the JSON property `internal`
16577
+ # @return [Google::Apis::ComputeAlpha::HaControllerNetworkingAutoConfigurationInternal]
16578
+ attr_accessor :internal
15915
16579
 
15916
16580
  def initialize(**args)
15917
16581
  update!(**args)
@@ -15919,7 +16583,98 @@ module Google
15919
16583
 
15920
16584
  # Update properties of this object
15921
16585
  def update!(**args)
15922
- @failover_progress = args[:failover_progress] if args.key?(:failover_progress)
16586
+ @internal = args[:internal] if args.key?(:internal)
16587
+ end
16588
+ end
16589
+
16590
+ # Internal networking configuration
16591
+ class HaControllerNetworkingAutoConfigurationInternal
16592
+ include Google::Apis::Core::Hashable
16593
+
16594
+ # Optional. IP addresses will be automatically allocated according to StackType
16595
+ # if not provided.
16596
+ # Corresponds to the JSON property `ipAddress`
16597
+ # @return [String]
16598
+ attr_accessor :ip_address
16599
+
16600
+ #
16601
+ # Corresponds to the JSON property `ipv6Address`
16602
+ # @return [String]
16603
+ attr_accessor :ipv6_address
16604
+
16605
+ # Determine which IP addresses to automatically create. Field and option naming
16606
+ # consistent with NetworkInterface configuration on Instances.
16607
+ # Corresponds to the JSON property `stackType`
16608
+ # @return [String]
16609
+ attr_accessor :stack_type
16610
+
16611
+ def initialize(**args)
16612
+ update!(**args)
16613
+ end
16614
+
16615
+ # Update properties of this object
16616
+ def update!(**args)
16617
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
16618
+ @ipv6_address = args[:ipv6_address] if args.key?(:ipv6_address)
16619
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
16620
+ end
16621
+ end
16622
+
16623
+ # Contains information about current status of the HaController.
16624
+ class HaControllerStatus
16625
+ include Google::Apis::Core::Hashable
16626
+
16627
+ # Contains information about the current failover operation.
16628
+ # Corresponds to the JSON property `failoverProgress`
16629
+ # @return [Google::Apis::ComputeAlpha::HaControllerStatusFailoverProgress]
16630
+ attr_accessor :failover_progress
16631
+
16632
+ # Contains information about the current failover operation.
16633
+ # Corresponds to the JSON property `lastFailoverInfo`
16634
+ # @return [Google::Apis::ComputeAlpha::HaControllerStatusFailoverProgress]
16635
+ attr_accessor :last_failover_info
16636
+
16637
+ # [Output Only] Indicates if the failover is currently in-progress.
16638
+ # Corresponds to the JSON property `ongoingFailover`
16639
+ # @return [Boolean]
16640
+ attr_accessor :ongoing_failover
16641
+ alias_method :ongoing_failover?, :ongoing_failover
16642
+
16643
+ # [Output Only] The URL to the instance that is intended to be primary at this
16644
+ # moment. Primary instance will be changed at the very beginning of a failover
16645
+ # operation.
16646
+ # Corresponds to the JSON property `primaryInstance`
16647
+ # @return [String]
16648
+ attr_accessor :primary_instance
16649
+
16650
+ # [Output Only] The name of the zone that is intended to be primary at this
16651
+ # moment. Primary zone will be changed at the very beginning of a failover
16652
+ # operation. The zone may not be operational in the middle of a failover
16653
+ # operation.
16654
+ # Corresponds to the JSON property `primaryZone`
16655
+ # @return [String]
16656
+ attr_accessor :primary_zone
16657
+
16658
+ # [Output Only] Indicates if the resource is ready for initiating a failover to
16659
+ # the secondary zone.
16660
+ # Corresponds to the JSON property `readyForFailover`
16661
+ # @return [Boolean]
16662
+ attr_accessor :ready_for_failover
16663
+ alias_method :ready_for_failover?, :ready_for_failover
16664
+
16665
+ # [Output Only] Map of zone statuses. Key: name of the zone Value: ZoneStatus
16666
+ # Corresponds to the JSON property `zoneStatus`
16667
+ # @return [Hash<String,Google::Apis::ComputeAlpha::HaControllerStatusZoneStatus>]
16668
+ attr_accessor :zone_status
16669
+
16670
+ def initialize(**args)
16671
+ update!(**args)
16672
+ end
16673
+
16674
+ # Update properties of this object
16675
+ def update!(**args)
16676
+ @failover_progress = args[:failover_progress] if args.key?(:failover_progress)
16677
+ @last_failover_info = args[:last_failover_info] if args.key?(:last_failover_info)
15923
16678
  @ongoing_failover = args[:ongoing_failover] if args.key?(:ongoing_failover)
15924
16679
  @primary_instance = args[:primary_instance] if args.key?(:primary_instance)
15925
16680
  @primary_zone = args[:primary_zone] if args.key?(:primary_zone)
@@ -15932,6 +16687,12 @@ module Google
15932
16687
  class HaControllerStatusFailoverProgress
15933
16688
  include Google::Apis::Core::Hashable
15934
16689
 
16690
+ # [Output Only] Timestamp of the failover completion. Filled only if the
16691
+ # failover is completed, in lastFailoverInfo.
16692
+ # Corresponds to the JSON property `failoverCompleteTimestamp`
16693
+ # @return [String]
16694
+ attr_accessor :failover_complete_timestamp
16695
+
15935
16696
  # [Output Only] Indicates if failover has been triggered automatically or
15936
16697
  # manually.
15937
16698
  # Corresponds to the JSON property `failoverTrigger`
@@ -15955,6 +16716,7 @@ module Google
15955
16716
 
15956
16717
  # Update properties of this object
15957
16718
  def update!(**args)
16719
+ @failover_complete_timestamp = args[:failover_complete_timestamp] if args.key?(:failover_complete_timestamp)
15958
16720
  @failover_trigger = args[:failover_trigger] if args.key?(:failover_trigger)
15959
16721
  @failover_trigger_timestamp = args[:failover_trigger_timestamp] if args.key?(:failover_trigger_timestamp)
15960
16722
  @last_failover_attempt = args[:last_failover_attempt] if args.key?(:last_failover_attempt)
@@ -23739,6 +24501,50 @@ module Google
23739
24501
  end
23740
24502
  end
23741
24503
 
24504
+ #
24505
+ class InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse
24506
+ include Google::Apis::Core::Hashable
24507
+
24508
+ # The accelerator topology information returned per id of the topology location.
24509
+ # Corresponds to the JSON property `acceleratorTopologiesInfo`
24510
+ # @return [Hash<String,Google::Apis::ComputeAlpha::InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo>]
24511
+ attr_accessor :accelerator_topologies_info
24512
+
24513
+ def initialize(**args)
24514
+ update!(**args)
24515
+ end
24516
+
24517
+ # Update properties of this object
24518
+ def update!(**args)
24519
+ @accelerator_topologies_info = args[:accelerator_topologies_info] if args.key?(:accelerator_topologies_info)
24520
+ end
24521
+ end
24522
+
24523
+ #
24524
+ class InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo
24525
+ include Google::Apis::Core::Hashable
24526
+
24527
+ # Topology in the format of: "16x16", "4x4x4", etc.
24528
+ # Corresponds to the JSON property `acceleratorTopology`
24529
+ # @return [String]
24530
+ attr_accessor :accelerator_topology
24531
+
24532
+ #
24533
+ # Corresponds to the JSON property `acceleratorTopologyHealth`
24534
+ # @return [String]
24535
+ attr_accessor :accelerator_topology_health
24536
+
24537
+ def initialize(**args)
24538
+ update!(**args)
24539
+ end
24540
+
24541
+ # Update properties of this object
24542
+ def update!(**args)
24543
+ @accelerator_topology = args[:accelerator_topology] if args.key?(:accelerator_topology)
24544
+ @accelerator_topology_health = args[:accelerator_topology_health] if args.key?(:accelerator_topology_health)
24545
+ end
24546
+ end
24547
+
23742
24548
  #
23743
24549
  class InstanceGroupManagersListErrorsResponse
23744
24550
  include Google::Apis::Core::Hashable
@@ -27295,6 +28101,12 @@ module Google
27295
28101
  # @return [String]
27296
28102
  attr_accessor :state
27297
28103
 
28104
+ # Specific subzone in the InterconnectLocation that represents where this
28105
+ # connection is to be provisioned.
28106
+ # Corresponds to the JSON property `subzone`
28107
+ # @return [String]
28108
+ attr_accessor :subzone
28109
+
27298
28110
  # [Output Only] A list of the URLs of all CrossSiteNetwork WireGroups configured
27299
28111
  # to use this Interconnect. The Interconnect cannot be deleted if this list is
27300
28112
  # non-empty.
@@ -27342,6 +28154,7 @@ module Google
27342
28154
  @self_link = args[:self_link] if args.key?(:self_link)
27343
28155
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
27344
28156
  @state = args[:state] if args.key?(:state)
28157
+ @subzone = args[:subzone] if args.key?(:subzone)
27345
28158
  @wire_groups = args[:wire_groups] if args.key?(:wire_groups)
27346
28159
  end
27347
28160
  end
@@ -29002,9 +29815,7 @@ module Google
29002
29815
  # @return [String]
29003
29816
  attr_accessor :is_active
29004
29817
 
29005
- # Whether this Attachment is active, and if so, whether BGP is up. This is based
29006
- # on the statuses available in the Pantheon UI here: http://google3/java/com/
29007
- # google/cloud/boq/clientapi/gce/hybrid/api/interconnect_models.proto
29818
+ # Whether this Attachment is active, and if so, whether BGP is up.
29008
29819
  # Corresponds to the JSON property `status`
29009
29820
  # @return [String]
29010
29821
  attr_accessor :status
@@ -30683,6 +31494,13 @@ module Google
30683
31494
  # @return [String]
30684
31495
  attr_accessor :self_link_with_id
30685
31496
 
31497
+ # [Output Only] URLs of the other locations that can pair up with this location
31498
+ # to support Single-Region 99.99% SLA. E.g. iad-zone1-1 and iad-zone2-5467 are
31499
+ # Single-Region 99.99% peer locations of each other.
31500
+ # Corresponds to the JSON property `singleRegionProductionCriticalPeerLocations`
31501
+ # @return [Array<String>]
31502
+ attr_accessor :single_region_production_critical_peer_locations
31503
+
30686
31504
  # [Output Only] The status of this InterconnectLocation, which can take one of
30687
31505
  # the following values: - CLOSED: The InterconnectLocation is closed and is
30688
31506
  # unavailable for provisioning new Interconnects. - AVAILABLE: The
@@ -30721,6 +31539,7 @@ module Google
30721
31539
  @region_infos = args[:region_infos] if args.key?(:region_infos)
30722
31540
  @self_link = args[:self_link] if args.key?(:self_link)
30723
31541
  @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
31542
+ @single_region_production_critical_peer_locations = args[:single_region_production_critical_peer_locations] if args.key?(:single_region_production_critical_peer_locations)
30724
31543
  @status = args[:status] if args.key?(:status)
30725
31544
  @supports_pzs = args[:supports_pzs] if args.key?(:supports_pzs)
30726
31545
  end
@@ -31211,6 +32030,13 @@ module Google
31211
32030
  # @return [Fixnum]
31212
32031
  attr_accessor :max_lag_size10_gbps
31213
32032
 
32033
+ # [Output Only] The maximum number of 400 Gbps ports supported in a link
32034
+ # aggregation group (LAG). When linkType is 400 Gbps, requestedLinkCount cannot
32035
+ # exceed max_lag_size_400_gbps.
32036
+ # Corresponds to the JSON property `maxLagSize400Gbps`
32037
+ # @return [Fixnum]
32038
+ attr_accessor :max_lag_size400_gbps
32039
+
31214
32040
  # [Output Only] Name of the resource.
31215
32041
  # Corresponds to the JSON property `name`
31216
32042
  # @return [String]
@@ -31272,6 +32098,7 @@ module Google
31272
32098
  @lacp = args[:lacp] if args.key?(:lacp)
31273
32099
  @max_lag_size100_gbps = args[:max_lag_size100_gbps] if args.key?(:max_lag_size100_gbps)
31274
32100
  @max_lag_size10_gbps = args[:max_lag_size10_gbps] if args.key?(:max_lag_size10_gbps)
32101
+ @max_lag_size400_gbps = args[:max_lag_size400_gbps] if args.key?(:max_lag_size400_gbps)
31275
32102
  @name = args[:name] if args.key?(:name)
31276
32103
  @peeringdb_facility_id = args[:peeringdb_facility_id] if args.key?(:peeringdb_facility_id)
31277
32104
  @permitted_connections = args[:permitted_connections] if args.key?(:permitted_connections)
@@ -36960,44 +37787,1001 @@ module Google
36960
37787
 
36961
37788
  # Update properties of this object
36962
37789
  def update!(**args)
36963
- @network_endpoint = args[:network_endpoint] if args.key?(:network_endpoint)
37790
+ @network_endpoint = args[:network_endpoint] if args.key?(:network_endpoint)
37791
+ end
37792
+ end
37793
+
37794
+ #
37795
+ class NetworkEndpointGroupsListNetworkEndpoints
37796
+ include Google::Apis::Core::Hashable
37797
+
37798
+ # [Output Only] Unique identifier for the resource; defined by the server.
37799
+ # Corresponds to the JSON property `id`
37800
+ # @return [String]
37801
+ attr_accessor :id
37802
+
37803
+ # A list of NetworkEndpointWithHealthStatus resources.
37804
+ # Corresponds to the JSON property `items`
37805
+ # @return [Array<Google::Apis::ComputeAlpha::NetworkEndpointWithHealthStatus>]
37806
+ attr_accessor :items
37807
+
37808
+ # [Output Only] The resource type, which is always compute#
37809
+ # networkEndpointGroupsListNetworkEndpoints for the list of network endpoints in
37810
+ # the specified network endpoint group.
37811
+ # Corresponds to the JSON property `kind`
37812
+ # @return [String]
37813
+ attr_accessor :kind
37814
+
37815
+ # [Output Only] This token allows you to get the next page of results for list
37816
+ # requests. If the number of results is larger than maxResults, use the
37817
+ # nextPageToken as a value for the query parameter pageToken in the next list
37818
+ # request. Subsequent list requests will have their own nextPageToken to
37819
+ # continue paging through the results.
37820
+ # Corresponds to the JSON property `nextPageToken`
37821
+ # @return [String]
37822
+ attr_accessor :next_page_token
37823
+
37824
+ # [Output Only] Informational warning message.
37825
+ # Corresponds to the JSON property `warning`
37826
+ # @return [Google::Apis::ComputeAlpha::NetworkEndpointGroupsListNetworkEndpoints::Warning]
37827
+ attr_accessor :warning
37828
+
37829
+ def initialize(**args)
37830
+ update!(**args)
37831
+ end
37832
+
37833
+ # Update properties of this object
37834
+ def update!(**args)
37835
+ @id = args[:id] if args.key?(:id)
37836
+ @items = args[:items] if args.key?(:items)
37837
+ @kind = args[:kind] if args.key?(:kind)
37838
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
37839
+ @warning = args[:warning] if args.key?(:warning)
37840
+ end
37841
+
37842
+ # [Output Only] Informational warning message.
37843
+ class Warning
37844
+ include Google::Apis::Core::Hashable
37845
+
37846
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
37847
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
37848
+ # Corresponds to the JSON property `code`
37849
+ # @return [String]
37850
+ attr_accessor :code
37851
+
37852
+ # [Output Only] Metadata about this warning in key: value format. For example: "
37853
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
37854
+ # Corresponds to the JSON property `data`
37855
+ # @return [Array<Google::Apis::ComputeAlpha::NetworkEndpointGroupsListNetworkEndpoints::Warning::Datum>]
37856
+ attr_accessor :data
37857
+
37858
+ # [Output Only] A human-readable description of the warning code.
37859
+ # Corresponds to the JSON property `message`
37860
+ # @return [String]
37861
+ attr_accessor :message
37862
+
37863
+ def initialize(**args)
37864
+ update!(**args)
37865
+ end
37866
+
37867
+ # Update properties of this object
37868
+ def update!(**args)
37869
+ @code = args[:code] if args.key?(:code)
37870
+ @data = args[:data] if args.key?(:data)
37871
+ @message = args[:message] if args.key?(:message)
37872
+ end
37873
+
37874
+ #
37875
+ class Datum
37876
+ include Google::Apis::Core::Hashable
37877
+
37878
+ # [Output Only] A key that provides more detail on the warning being returned.
37879
+ # For example, for warnings where there are no results in a list request for a
37880
+ # particular zone, this key might be scope and the key value might be the zone
37881
+ # name. Other examples might be a key indicating a deprecated resource and a
37882
+ # suggested replacement, or a warning about invalid network settings (for
37883
+ # example, if an instance attempts to perform IP forwarding but is not enabled
37884
+ # for IP forwarding).
37885
+ # Corresponds to the JSON property `key`
37886
+ # @return [String]
37887
+ attr_accessor :key
37888
+
37889
+ # [Output Only] A warning data value corresponding to the key.
37890
+ # Corresponds to the JSON property `value`
37891
+ # @return [String]
37892
+ attr_accessor :value
37893
+
37894
+ def initialize(**args)
37895
+ update!(**args)
37896
+ end
37897
+
37898
+ # Update properties of this object
37899
+ def update!(**args)
37900
+ @key = args[:key] if args.key?(:key)
37901
+ @value = args[:value] if args.key?(:value)
37902
+ end
37903
+ end
37904
+ end
37905
+ end
37906
+
37907
+ #
37908
+ class NetworkEndpointGroupsScopedList
37909
+ include Google::Apis::Core::Hashable
37910
+
37911
+ # [Output Only] The list of network endpoint groups that are contained in this
37912
+ # scope.
37913
+ # Corresponds to the JSON property `networkEndpointGroups`
37914
+ # @return [Array<Google::Apis::ComputeAlpha::NetworkEndpointGroup>]
37915
+ attr_accessor :network_endpoint_groups
37916
+
37917
+ # [Output Only] An informational warning that replaces the list of network
37918
+ # endpoint groups when the list is empty.
37919
+ # Corresponds to the JSON property `warning`
37920
+ # @return [Google::Apis::ComputeAlpha::NetworkEndpointGroupsScopedList::Warning]
37921
+ attr_accessor :warning
37922
+
37923
+ def initialize(**args)
37924
+ update!(**args)
37925
+ end
37926
+
37927
+ # Update properties of this object
37928
+ def update!(**args)
37929
+ @network_endpoint_groups = args[:network_endpoint_groups] if args.key?(:network_endpoint_groups)
37930
+ @warning = args[:warning] if args.key?(:warning)
37931
+ end
37932
+
37933
+ # [Output Only] An informational warning that replaces the list of network
37934
+ # endpoint groups when the list is empty.
37935
+ class Warning
37936
+ include Google::Apis::Core::Hashable
37937
+
37938
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
37939
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
37940
+ # Corresponds to the JSON property `code`
37941
+ # @return [String]
37942
+ attr_accessor :code
37943
+
37944
+ # [Output Only] Metadata about this warning in key: value format. For example: "
37945
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
37946
+ # Corresponds to the JSON property `data`
37947
+ # @return [Array<Google::Apis::ComputeAlpha::NetworkEndpointGroupsScopedList::Warning::Datum>]
37948
+ attr_accessor :data
37949
+
37950
+ # [Output Only] A human-readable description of the warning code.
37951
+ # Corresponds to the JSON property `message`
37952
+ # @return [String]
37953
+ attr_accessor :message
37954
+
37955
+ def initialize(**args)
37956
+ update!(**args)
37957
+ end
37958
+
37959
+ # Update properties of this object
37960
+ def update!(**args)
37961
+ @code = args[:code] if args.key?(:code)
37962
+ @data = args[:data] if args.key?(:data)
37963
+ @message = args[:message] if args.key?(:message)
37964
+ end
37965
+
37966
+ #
37967
+ class Datum
37968
+ include Google::Apis::Core::Hashable
37969
+
37970
+ # [Output Only] A key that provides more detail on the warning being returned.
37971
+ # For example, for warnings where there are no results in a list request for a
37972
+ # particular zone, this key might be scope and the key value might be the zone
37973
+ # name. Other examples might be a key indicating a deprecated resource and a
37974
+ # suggested replacement, or a warning about invalid network settings (for
37975
+ # example, if an instance attempts to perform IP forwarding but is not enabled
37976
+ # for IP forwarding).
37977
+ # Corresponds to the JSON property `key`
37978
+ # @return [String]
37979
+ attr_accessor :key
37980
+
37981
+ # [Output Only] A warning data value corresponding to the key.
37982
+ # Corresponds to the JSON property `value`
37983
+ # @return [String]
37984
+ attr_accessor :value
37985
+
37986
+ def initialize(**args)
37987
+ update!(**args)
37988
+ end
37989
+
37990
+ # Update properties of this object
37991
+ def update!(**args)
37992
+ @key = args[:key] if args.key?(:key)
37993
+ @value = args[:value] if args.key?(:value)
37994
+ end
37995
+ end
37996
+ end
37997
+ end
37998
+
37999
+ #
38000
+ class NetworkEndpointWithHealthStatus
38001
+ include Google::Apis::Core::Hashable
38002
+
38003
+ # [Output only] The health status of network endpoint. Optional. Displayed only
38004
+ # if the network endpoint has centralized health checking configured.
38005
+ # Corresponds to the JSON property `healths`
38006
+ # @return [Array<Google::Apis::ComputeAlpha::HealthStatusForNetworkEndpoint>]
38007
+ attr_accessor :healths
38008
+
38009
+ # The network endpoint.
38010
+ # Corresponds to the JSON property `networkEndpoint`
38011
+ # @return [Google::Apis::ComputeAlpha::NetworkEndpoint]
38012
+ attr_accessor :network_endpoint
38013
+
38014
+ def initialize(**args)
38015
+ update!(**args)
38016
+ end
38017
+
38018
+ # Update properties of this object
38019
+ def update!(**args)
38020
+ @healths = args[:healths] if args.key?(:healths)
38021
+ @network_endpoint = args[:network_endpoint] if args.key?(:network_endpoint)
38022
+ end
38023
+ end
38024
+
38025
+ #
38026
+ class NetworkFirewallPolicyAggregatedList
38027
+ include Google::Apis::Core::Hashable
38028
+
38029
+ # [Output Only] Unique identifier for the resource; defined by the server.
38030
+ # Corresponds to the JSON property `id`
38031
+ # @return [String]
38032
+ attr_accessor :id
38033
+
38034
+ # A list of FirewallPoliciesScopedList resources.
38035
+ # Corresponds to the JSON property `items`
38036
+ # @return [Hash<String,Google::Apis::ComputeAlpha::FirewallPoliciesScopedList>]
38037
+ attr_accessor :items
38038
+
38039
+ # [Output Only] Type of resource. Always compute#
38040
+ # networkFirewallPoliciesAggregatedList for lists of network firewall policies.
38041
+ # Corresponds to the JSON property `kind`
38042
+ # @return [String]
38043
+ attr_accessor :kind
38044
+
38045
+ # [Output Only] This token allows you to get the next page of results for list
38046
+ # requests. If the number of results is larger than maxResults, use the
38047
+ # nextPageToken as a value for the query parameter pageToken in the next list
38048
+ # request. Subsequent list requests will have their own nextPageToken to
38049
+ # continue paging through the results.
38050
+ # Corresponds to the JSON property `nextPageToken`
38051
+ # @return [String]
38052
+ attr_accessor :next_page_token
38053
+
38054
+ # [Output Only] Server-defined URL for this resource.
38055
+ # Corresponds to the JSON property `selfLink`
38056
+ # @return [String]
38057
+ attr_accessor :self_link
38058
+
38059
+ # [Output Only] Unreachable resources.
38060
+ # Corresponds to the JSON property `unreachables`
38061
+ # @return [Array<String>]
38062
+ attr_accessor :unreachables
38063
+
38064
+ # [Output Only] Informational warning message.
38065
+ # Corresponds to the JSON property `warning`
38066
+ # @return [Google::Apis::ComputeAlpha::NetworkFirewallPolicyAggregatedList::Warning]
38067
+ attr_accessor :warning
38068
+
38069
+ def initialize(**args)
38070
+ update!(**args)
38071
+ end
38072
+
38073
+ # Update properties of this object
38074
+ def update!(**args)
38075
+ @id = args[:id] if args.key?(:id)
38076
+ @items = args[:items] if args.key?(:items)
38077
+ @kind = args[:kind] if args.key?(:kind)
38078
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
38079
+ @self_link = args[:self_link] if args.key?(:self_link)
38080
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
38081
+ @warning = args[:warning] if args.key?(:warning)
38082
+ end
38083
+
38084
+ # [Output Only] Informational warning message.
38085
+ class Warning
38086
+ include Google::Apis::Core::Hashable
38087
+
38088
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
38089
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
38090
+ # Corresponds to the JSON property `code`
38091
+ # @return [String]
38092
+ attr_accessor :code
38093
+
38094
+ # [Output Only] Metadata about this warning in key: value format. For example: "
38095
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
38096
+ # Corresponds to the JSON property `data`
38097
+ # @return [Array<Google::Apis::ComputeAlpha::NetworkFirewallPolicyAggregatedList::Warning::Datum>]
38098
+ attr_accessor :data
38099
+
38100
+ # [Output Only] A human-readable description of the warning code.
38101
+ # Corresponds to the JSON property `message`
38102
+ # @return [String]
38103
+ attr_accessor :message
38104
+
38105
+ def initialize(**args)
38106
+ update!(**args)
38107
+ end
38108
+
38109
+ # Update properties of this object
38110
+ def update!(**args)
38111
+ @code = args[:code] if args.key?(:code)
38112
+ @data = args[:data] if args.key?(:data)
38113
+ @message = args[:message] if args.key?(:message)
38114
+ end
38115
+
38116
+ #
38117
+ class Datum
38118
+ include Google::Apis::Core::Hashable
38119
+
38120
+ # [Output Only] A key that provides more detail on the warning being returned.
38121
+ # For example, for warnings where there are no results in a list request for a
38122
+ # particular zone, this key might be scope and the key value might be the zone
38123
+ # name. Other examples might be a key indicating a deprecated resource and a
38124
+ # suggested replacement, or a warning about invalid network settings (for
38125
+ # example, if an instance attempts to perform IP forwarding but is not enabled
38126
+ # for IP forwarding).
38127
+ # Corresponds to the JSON property `key`
38128
+ # @return [String]
38129
+ attr_accessor :key
38130
+
38131
+ # [Output Only] A warning data value corresponding to the key.
38132
+ # Corresponds to the JSON property `value`
38133
+ # @return [String]
38134
+ attr_accessor :value
38135
+
38136
+ def initialize(**args)
38137
+ update!(**args)
38138
+ end
38139
+
38140
+ # Update properties of this object
38141
+ def update!(**args)
38142
+ @key = args[:key] if args.key?(:key)
38143
+ @value = args[:value] if args.key?(:value)
38144
+ end
38145
+ end
38146
+ end
38147
+ end
38148
+
38149
+ # A network interface resource attached to an instance.
38150
+ class NetworkInterface
38151
+ include Google::Apis::Core::Hashable
38152
+
38153
+ # An array of configurations for this interface. Currently, only one access
38154
+ # config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified,
38155
+ # then this instance will have no external internet access.
38156
+ # Corresponds to the JSON property `accessConfigs`
38157
+ # @return [Array<Google::Apis::ComputeAlpha::AccessConfig>]
38158
+ attr_accessor :access_configs
38159
+
38160
+ # An array of alias IP ranges for this network interface. You can only specify
38161
+ # this field for network interfaces in VPC networks.
38162
+ # Corresponds to the JSON property `aliasIpRanges`
38163
+ # @return [Array<Google::Apis::ComputeAlpha::AliasIpRange>]
38164
+ attr_accessor :alias_ip_ranges
38165
+
38166
+ # Fingerprint hash of contents stored in this network interface. This field will
38167
+ # be ignored when inserting an Instance or adding a NetworkInterface. An up-to-
38168
+ # date fingerprint must be provided in order to update the NetworkInterface. The
38169
+ # request will fail with error 400 Bad Request if the fingerprint is not
38170
+ # provided, or 412 Precondition Failed if the fingerprint is out of date.
38171
+ # Corresponds to the JSON property `fingerprint`
38172
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
38173
+ # @return [String]
38174
+ attr_accessor :fingerprint
38175
+
38176
+ # Indicate whether igmp query is enabled on the network interface or not. If
38177
+ # enabled, also indicates the version of IGMP supported.
38178
+ # Corresponds to the JSON property `igmpQuery`
38179
+ # @return [String]
38180
+ attr_accessor :igmp_query
38181
+
38182
+ # The prefix length of the primary internal IPv6 range.
38183
+ # Corresponds to the JSON property `internalIpv6PrefixLength`
38184
+ # @return [Fixnum]
38185
+ attr_accessor :internal_ipv6_prefix_length
38186
+
38187
+ # An array of IPv6 access configurations for this interface. Currently, only one
38188
+ # IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig
38189
+ # specified, then this instance will have no external IPv6 Internet access.
38190
+ # Corresponds to the JSON property `ipv6AccessConfigs`
38191
+ # @return [Array<Google::Apis::ComputeAlpha::AccessConfig>]
38192
+ attr_accessor :ipv6_access_configs
38193
+
38194
+ # [Output Only] One of EXTERNAL, INTERNAL to indicate whether the IP can be
38195
+ # accessed from the Internet. This field is always inherited from its subnetwork.
38196
+ # Valid only if stackType is IPV4_IPV6.
38197
+ # Corresponds to the JSON property `ipv6AccessType`
38198
+ # @return [String]
38199
+ attr_accessor :ipv6_access_type
38200
+
38201
+ # An IPv6 internal network address for this network interface. To use a static
38202
+ # internal IP address, it must be unused and in the same region as the instance'
38203
+ # s zone. If not specified, Google Cloud will automatically assign an internal
38204
+ # IPv6 address from the instance's subnetwork.
38205
+ # Corresponds to the JSON property `ipv6Address`
38206
+ # @return [String]
38207
+ attr_accessor :ipv6_address
38208
+
38209
+ # [Output Only] Type of the resource. Always compute#networkInterface for
38210
+ # network interfaces.
38211
+ # Corresponds to the JSON property `kind`
38212
+ # @return [String]
38213
+ attr_accessor :kind
38214
+
38215
+ # [Output Only] The name of the network interface, which is generated by the
38216
+ # server. For a VM, the network interface uses the nicN naming format. Where N
38217
+ # is a value between 0 and 7. The default interface value is nic0.
38218
+ # Corresponds to the JSON property `name`
38219
+ # @return [String]
38220
+ attr_accessor :name
38221
+
38222
+ # URL of the VPC network resource for this instance. When creating an instance,
38223
+ # if neither the network nor the subnetwork is specified, the default network
38224
+ # global/networks/default is used. If the selected project doesn't have the
38225
+ # default network, you must specify a network or subnet. If the network is not
38226
+ # specified but the subnetwork is specified, the network is inferred. If you
38227
+ # specify this property, you can specify the network as a full or partial URL.
38228
+ # For example, the following are all valid URLs: - https://www.googleapis.com/
38229
+ # compute/v1/projects/project/global/networks/ network - projects/project/global/
38230
+ # networks/network - global/networks/default
38231
+ # Corresponds to the JSON property `network`
38232
+ # @return [String]
38233
+ attr_accessor :network
38234
+
38235
+ # The URL of the network attachment that this interface should connect to in the
38236
+ # following format: projects/`project_number`/regions/`region_name`/
38237
+ # networkAttachments/`network_attachment_name`.
38238
+ # Corresponds to the JSON property `networkAttachment`
38239
+ # @return [String]
38240
+ attr_accessor :network_attachment
38241
+
38242
+ # An IPv4 internal IP address to assign to the instance for this network
38243
+ # interface. If not specified by the user, an unused internal IP is assigned by
38244
+ # the system.
38245
+ # Corresponds to the JSON property `networkIP`
38246
+ # @return [String]
38247
+ attr_accessor :network_ip
38248
+
38249
+ # The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.
38250
+ # Corresponds to the JSON property `nicType`
38251
+ # @return [String]
38252
+ attr_accessor :nic_type
38253
+
38254
+ # Name of the parent network interface of a dynamic network interface.
38255
+ # Corresponds to the JSON property `parentNicName`
38256
+ # @return [String]
38257
+ attr_accessor :parent_nic_name
38258
+
38259
+ # The networking queue count that's specified by users for the network interface.
38260
+ # Both Rx and Tx queues will be set to this number. It'll be empty if not
38261
+ # specified by the users.
38262
+ # Corresponds to the JSON property `queueCount`
38263
+ # @return [Fixnum]
38264
+ attr_accessor :queue_count
38265
+
38266
+ # The stack type for this network interface. To assign only IPv4 addresses, use
38267
+ # IPV4_ONLY. To assign both IPv4 and IPv6 addresses, use IPV4_IPV6. If not
38268
+ # specified, IPV4_ONLY is used. This field can be both set at instance creation
38269
+ # and update network interface operations.
38270
+ # Corresponds to the JSON property `stackType`
38271
+ # @return [String]
38272
+ attr_accessor :stack_type
38273
+
38274
+ # SubInterfaces help enable L2 communication for the instance over subnetworks
38275
+ # that support L2. Every network interface will get a default untagged (vlan not
38276
+ # specified) subinterface. Users can specify additional tagged subinterfaces
38277
+ # which are sub-fields to the Network Interface.
38278
+ # Corresponds to the JSON property `subinterfaces`
38279
+ # @return [Array<Google::Apis::ComputeAlpha::NetworkInterfaceSubInterface>]
38280
+ attr_accessor :subinterfaces
38281
+
38282
+ # The URL of the Subnetwork resource for this instance. If the network resource
38283
+ # is in legacy mode, do not specify this field. If the network is in auto subnet
38284
+ # mode, specifying the subnetwork is optional. If the network is in custom
38285
+ # subnet mode, specifying the subnetwork is required. If you specify this field,
38286
+ # you can specify the subnetwork as a full or partial URL. For example, the
38287
+ # following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/
38288
+ # project/regions/region /subnetworks/subnetwork - regions/region/subnetworks/
38289
+ # subnetwork
38290
+ # Corresponds to the JSON property `subnetwork`
38291
+ # @return [String]
38292
+ attr_accessor :subnetwork
38293
+
38294
+ # VLAN tag of a dynamic network interface, must be an integer in the range from
38295
+ # 2 to 255 inclusively.
38296
+ # Corresponds to the JSON property `vlan`
38297
+ # @return [Fixnum]
38298
+ attr_accessor :vlan
38299
+
38300
+ def initialize(**args)
38301
+ update!(**args)
38302
+ end
38303
+
38304
+ # Update properties of this object
38305
+ def update!(**args)
38306
+ @access_configs = args[:access_configs] if args.key?(:access_configs)
38307
+ @alias_ip_ranges = args[:alias_ip_ranges] if args.key?(:alias_ip_ranges)
38308
+ @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
38309
+ @igmp_query = args[:igmp_query] if args.key?(:igmp_query)
38310
+ @internal_ipv6_prefix_length = args[:internal_ipv6_prefix_length] if args.key?(:internal_ipv6_prefix_length)
38311
+ @ipv6_access_configs = args[:ipv6_access_configs] if args.key?(:ipv6_access_configs)
38312
+ @ipv6_access_type = args[:ipv6_access_type] if args.key?(:ipv6_access_type)
38313
+ @ipv6_address = args[:ipv6_address] if args.key?(:ipv6_address)
38314
+ @kind = args[:kind] if args.key?(:kind)
38315
+ @name = args[:name] if args.key?(:name)
38316
+ @network = args[:network] if args.key?(:network)
38317
+ @network_attachment = args[:network_attachment] if args.key?(:network_attachment)
38318
+ @network_ip = args[:network_ip] if args.key?(:network_ip)
38319
+ @nic_type = args[:nic_type] if args.key?(:nic_type)
38320
+ @parent_nic_name = args[:parent_nic_name] if args.key?(:parent_nic_name)
38321
+ @queue_count = args[:queue_count] if args.key?(:queue_count)
38322
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
38323
+ @subinterfaces = args[:subinterfaces] if args.key?(:subinterfaces)
38324
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
38325
+ @vlan = args[:vlan] if args.key?(:vlan)
38326
+ end
38327
+ end
38328
+
38329
+ #
38330
+ class NetworkInterfaceSubInterface
38331
+ include Google::Apis::Core::Hashable
38332
+
38333
+ # An IPv4 internal IP address to assign to the instance for this subinterface.
38334
+ # If specified, ip_allocation_mode should be set to ALLOCATE_IP.
38335
+ # Corresponds to the JSON property `ipAddress`
38336
+ # @return [String]
38337
+ attr_accessor :ip_address
38338
+
38339
+ #
38340
+ # Corresponds to the JSON property `ipAllocationMode`
38341
+ # @return [String]
38342
+ attr_accessor :ip_allocation_mode
38343
+
38344
+ # If specified, this subnetwork must belong to the same network as that of the
38345
+ # network interface. If not specified the subnet of network interface will be
38346
+ # used. If you specify this property, you can specify the subnetwork as a full
38347
+ # or partial URL. For example, the following are all valid URLs: - https://www.
38348
+ # googleapis.com/compute/v1/projects/project/regions/region /subnetworks/
38349
+ # subnetwork - regions/region/subnetworks/subnetwork
38350
+ # Corresponds to the JSON property `subnetwork`
38351
+ # @return [String]
38352
+ attr_accessor :subnetwork
38353
+
38354
+ # VLAN tag. Should match the VLAN(s) supported by the subnetwork to which this
38355
+ # subinterface is connecting.
38356
+ # Corresponds to the JSON property `vlan`
38357
+ # @return [Fixnum]
38358
+ attr_accessor :vlan
38359
+
38360
+ def initialize(**args)
38361
+ update!(**args)
38362
+ end
38363
+
38364
+ # Update properties of this object
38365
+ def update!(**args)
38366
+ @ip_address = args[:ip_address] if args.key?(:ip_address)
38367
+ @ip_allocation_mode = args[:ip_allocation_mode] if args.key?(:ip_allocation_mode)
38368
+ @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
38369
+ @vlan = args[:vlan] if args.key?(:vlan)
38370
+ end
38371
+ end
38372
+
38373
+ # Contains a list of networks.
38374
+ class NetworkList
38375
+ include Google::Apis::Core::Hashable
38376
+
38377
+ # [Output Only] Unique identifier for the resource; defined by the server.
38378
+ # Corresponds to the JSON property `id`
38379
+ # @return [String]
38380
+ attr_accessor :id
38381
+
38382
+ # A list of Network resources.
38383
+ # Corresponds to the JSON property `items`
38384
+ # @return [Array<Google::Apis::ComputeAlpha::Network>]
38385
+ attr_accessor :items
38386
+
38387
+ # [Output Only] Type of resource. Always compute#networkList for lists of
38388
+ # networks.
38389
+ # Corresponds to the JSON property `kind`
38390
+ # @return [String]
38391
+ attr_accessor :kind
38392
+
38393
+ # [Output Only] This token allows you to get the next page of results for list
38394
+ # requests. If the number of results is larger than maxResults, use the
38395
+ # nextPageToken as a value for the query parameter pageToken in the next list
38396
+ # request. Subsequent list requests will have their own nextPageToken to
38397
+ # continue paging through the results.
38398
+ # Corresponds to the JSON property `nextPageToken`
38399
+ # @return [String]
38400
+ attr_accessor :next_page_token
38401
+
38402
+ # [Output Only] Server-defined URL for this resource.
38403
+ # Corresponds to the JSON property `selfLink`
38404
+ # @return [String]
38405
+ attr_accessor :self_link
38406
+
38407
+ # [Output Only] Informational warning message.
38408
+ # Corresponds to the JSON property `warning`
38409
+ # @return [Google::Apis::ComputeAlpha::NetworkList::Warning]
38410
+ attr_accessor :warning
38411
+
38412
+ def initialize(**args)
38413
+ update!(**args)
38414
+ end
38415
+
38416
+ # Update properties of this object
38417
+ def update!(**args)
38418
+ @id = args[:id] if args.key?(:id)
38419
+ @items = args[:items] if args.key?(:items)
38420
+ @kind = args[:kind] if args.key?(:kind)
38421
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
38422
+ @self_link = args[:self_link] if args.key?(:self_link)
38423
+ @warning = args[:warning] if args.key?(:warning)
38424
+ end
38425
+
38426
+ # [Output Only] Informational warning message.
38427
+ class Warning
38428
+ include Google::Apis::Core::Hashable
38429
+
38430
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
38431
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
38432
+ # Corresponds to the JSON property `code`
38433
+ # @return [String]
38434
+ attr_accessor :code
38435
+
38436
+ # [Output Only] Metadata about this warning in key: value format. For example: "
38437
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
38438
+ # Corresponds to the JSON property `data`
38439
+ # @return [Array<Google::Apis::ComputeAlpha::NetworkList::Warning::Datum>]
38440
+ attr_accessor :data
38441
+
38442
+ # [Output Only] A human-readable description of the warning code.
38443
+ # Corresponds to the JSON property `message`
38444
+ # @return [String]
38445
+ attr_accessor :message
38446
+
38447
+ def initialize(**args)
38448
+ update!(**args)
38449
+ end
38450
+
38451
+ # Update properties of this object
38452
+ def update!(**args)
38453
+ @code = args[:code] if args.key?(:code)
38454
+ @data = args[:data] if args.key?(:data)
38455
+ @message = args[:message] if args.key?(:message)
38456
+ end
38457
+
38458
+ #
38459
+ class Datum
38460
+ include Google::Apis::Core::Hashable
38461
+
38462
+ # [Output Only] A key that provides more detail on the warning being returned.
38463
+ # For example, for warnings where there are no results in a list request for a
38464
+ # particular zone, this key might be scope and the key value might be the zone
38465
+ # name. Other examples might be a key indicating a deprecated resource and a
38466
+ # suggested replacement, or a warning about invalid network settings (for
38467
+ # example, if an instance attempts to perform IP forwarding but is not enabled
38468
+ # for IP forwarding).
38469
+ # Corresponds to the JSON property `key`
38470
+ # @return [String]
38471
+ attr_accessor :key
38472
+
38473
+ # [Output Only] A warning data value corresponding to the key.
38474
+ # Corresponds to the JSON property `value`
38475
+ # @return [String]
38476
+ attr_accessor :value
38477
+
38478
+ def initialize(**args)
38479
+ update!(**args)
38480
+ end
38481
+
38482
+ # Update properties of this object
38483
+ def update!(**args)
38484
+ @key = args[:key] if args.key?(:key)
38485
+ @value = args[:value] if args.key?(:value)
38486
+ end
38487
+ end
38488
+ end
38489
+ end
38490
+
38491
+ # Additional network parameters.
38492
+ class NetworkParams
38493
+ include Google::Apis::Core::Hashable
38494
+
38495
+ # Tag keys/values directly bound to this resource. Tag keys and values have the
38496
+ # same definition as resource manager tags. The field is allowed for INSERT only.
38497
+ # The keys/values to set on the resource should be specified in either ID ` : `
38498
+ # or Namespaced format ` : `. For example the following are valid inputs: * `"
38499
+ # tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"` * `"123/
38500
+ # environment" : "production", "345/abc" : "xyz"` Note: * Invalid combinations
38501
+ # of ID & namespaced format is not supported. For instance: `"123/environment" :
38502
+ # "tagValues/444"` is invalid.
38503
+ # Corresponds to the JSON property `resourceManagerTags`
38504
+ # @return [Hash<String,String>]
38505
+ attr_accessor :resource_manager_tags
38506
+
38507
+ def initialize(**args)
38508
+ update!(**args)
38509
+ end
38510
+
38511
+ # Update properties of this object
38512
+ def update!(**args)
38513
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
38514
+ end
38515
+ end
38516
+
38517
+ # A network peering attached to a network resource. The message includes the
38518
+ # peering name, peer network, peering state, and a flag indicating whether
38519
+ # Google Compute Engine should automatically create routes for the peering.
38520
+ class NetworkPeering
38521
+ include Google::Apis::Core::Hashable
38522
+
38523
+ # Whether Cloud Routers in this network can automatically advertise subnets from
38524
+ # the peer network.
38525
+ # Corresponds to the JSON property `advertisePeerSubnetsViaRouters`
38526
+ # @return [Boolean]
38527
+ attr_accessor :advertise_peer_subnets_via_routers
38528
+ alias_method :advertise_peer_subnets_via_routers?, :advertise_peer_subnets_via_routers
38529
+
38530
+ # This field will be deprecated soon. Use the exchange_subnet_routes field
38531
+ # instead. Indicates whether full mesh connectivity is created and managed
38532
+ # automatically between peered networks. Currently this field should always be
38533
+ # true since Google Compute Engine will automatically create and manage
38534
+ # subnetwork routes between two networks when peering state is ACTIVE.
38535
+ # Corresponds to the JSON property `autoCreateRoutes`
38536
+ # @return [Boolean]
38537
+ attr_accessor :auto_create_routes
38538
+ alias_method :auto_create_routes?, :auto_create_routes
38539
+
38540
+ # [Output Only] Describes the state of a peering connection, not just the local
38541
+ # peering. This field provides information about the effective settings for the
38542
+ # connection as a whole, including pending delete/update requests for CONSENSUS
38543
+ # peerings.
38544
+ # Corresponds to the JSON property `connectionStatus`
38545
+ # @return [Google::Apis::ComputeAlpha::NetworkPeeringConnectionStatus]
38546
+ attr_accessor :connection_status
38547
+
38548
+ # Indicates whether full mesh connectivity is created and managed automatically
38549
+ # between peered networks. Currently this field should always be true since
38550
+ # Google Compute Engine will automatically create and manage subnetwork routes
38551
+ # between two networks when peering state is ACTIVE.
38552
+ # Corresponds to the JSON property `exchangeSubnetRoutes`
38553
+ # @return [Boolean]
38554
+ attr_accessor :exchange_subnet_routes
38555
+ alias_method :exchange_subnet_routes?, :exchange_subnet_routes
38556
+
38557
+ # Whether to export the custom routes to peer network. The default value is
38558
+ # false.
38559
+ # Corresponds to the JSON property `exportCustomRoutes`
38560
+ # @return [Boolean]
38561
+ attr_accessor :export_custom_routes
38562
+ alias_method :export_custom_routes?, :export_custom_routes
38563
+
38564
+ # Whether subnet routes with public IP range are exported. The default value is
38565
+ # true, all subnet routes are exported. IPv4 special-use ranges are always
38566
+ # exported to peers and are not controlled by this field.
38567
+ # Corresponds to the JSON property `exportSubnetRoutesWithPublicIp`
38568
+ # @return [Boolean]
38569
+ attr_accessor :export_subnet_routes_with_public_ip
38570
+ alias_method :export_subnet_routes_with_public_ip?, :export_subnet_routes_with_public_ip
38571
+
38572
+ # Whether to import the custom routes from peer network. The default value is
38573
+ # false.
38574
+ # Corresponds to the JSON property `importCustomRoutes`
38575
+ # @return [Boolean]
38576
+ attr_accessor :import_custom_routes
38577
+ alias_method :import_custom_routes?, :import_custom_routes
38578
+
38579
+ # Whether subnet routes with public IP range are imported. The default value is
38580
+ # false. IPv4 special-use ranges are always imported from peers and are not
38581
+ # controlled by this field.
38582
+ # Corresponds to the JSON property `importSubnetRoutesWithPublicIp`
38583
+ # @return [Boolean]
38584
+ attr_accessor :import_subnet_routes_with_public_ip
38585
+ alias_method :import_subnet_routes_with_public_ip?, :import_subnet_routes_with_public_ip
38586
+
38587
+ # Name of this peering. Provided by the client when the peering is created. The
38588
+ # name must comply with RFC1035. Specifically, the name must be 1-63 characters
38589
+ # long and match regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
38590
+ # character must be a lowercase letter, and all the following characters must be
38591
+ # a dash, lowercase letter, or digit, except the last character, which cannot be
38592
+ # a dash.
38593
+ # Corresponds to the JSON property `name`
38594
+ # @return [String]
38595
+ attr_accessor :name
38596
+
38597
+ # The URL of the peer network. It can be either full URL or partial URL. The
38598
+ # peer network may belong to a different project. If the partial URL does not
38599
+ # contain project, it is assumed that the peer network is in the same project as
38600
+ # the current network.
38601
+ # Corresponds to the JSON property `network`
38602
+ # @return [String]
38603
+ attr_accessor :network
38604
+
38605
+ # [Output Only] Maximum Transmission Unit in bytes of the peer network.
38606
+ # Corresponds to the JSON property `peerMtu`
38607
+ # @return [Fixnum]
38608
+ attr_accessor :peer_mtu
38609
+
38610
+ # Which IP version(s) of traffic and routes are allowed to be imported or
38611
+ # exported between peer networks. The default value is IPV4_ONLY.
38612
+ # Corresponds to the JSON property `stackType`
38613
+ # @return [String]
38614
+ attr_accessor :stack_type
38615
+
38616
+ # [Output Only] State for the peering, either `ACTIVE` or `INACTIVE`. The
38617
+ # peering is `ACTIVE` when there's a matching configuration in the peer network.
38618
+ # Corresponds to the JSON property `state`
38619
+ # @return [String]
38620
+ attr_accessor :state
38621
+
38622
+ # [Output Only] Details about the current state of the peering.
38623
+ # Corresponds to the JSON property `stateDetails`
38624
+ # @return [String]
38625
+ attr_accessor :state_details
38626
+
38627
+ # The update strategy determines the semantics for updates and deletes to the
38628
+ # peering connection configuration.
38629
+ # Corresponds to the JSON property `updateStrategy`
38630
+ # @return [String]
38631
+ attr_accessor :update_strategy
38632
+
38633
+ def initialize(**args)
38634
+ update!(**args)
38635
+ end
38636
+
38637
+ # Update properties of this object
38638
+ def update!(**args)
38639
+ @advertise_peer_subnets_via_routers = args[:advertise_peer_subnets_via_routers] if args.key?(:advertise_peer_subnets_via_routers)
38640
+ @auto_create_routes = args[:auto_create_routes] if args.key?(:auto_create_routes)
38641
+ @connection_status = args[:connection_status] if args.key?(:connection_status)
38642
+ @exchange_subnet_routes = args[:exchange_subnet_routes] if args.key?(:exchange_subnet_routes)
38643
+ @export_custom_routes = args[:export_custom_routes] if args.key?(:export_custom_routes)
38644
+ @export_subnet_routes_with_public_ip = args[:export_subnet_routes_with_public_ip] if args.key?(:export_subnet_routes_with_public_ip)
38645
+ @import_custom_routes = args[:import_custom_routes] if args.key?(:import_custom_routes)
38646
+ @import_subnet_routes_with_public_ip = args[:import_subnet_routes_with_public_ip] if args.key?(:import_subnet_routes_with_public_ip)
38647
+ @name = args[:name] if args.key?(:name)
38648
+ @network = args[:network] if args.key?(:network)
38649
+ @peer_mtu = args[:peer_mtu] if args.key?(:peer_mtu)
38650
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
38651
+ @state = args[:state] if args.key?(:state)
38652
+ @state_details = args[:state_details] if args.key?(:state_details)
38653
+ @update_strategy = args[:update_strategy] if args.key?(:update_strategy)
38654
+ end
38655
+ end
38656
+
38657
+ # [Output Only] Describes the state of a peering connection, not just the local
38658
+ # peering. This field provides information about the effective settings for the
38659
+ # connection as a whole, including pending delete/update requests for CONSENSUS
38660
+ # peerings.
38661
+ class NetworkPeeringConnectionStatus
38662
+ include Google::Apis::Core::Hashable
38663
+
38664
+ # The status of update/delete for a consensus peering connection. Only set when
38665
+ # connection_status.update_strategy is CONSENSUS or a network peering is
38666
+ # proposing to update the strategy to CONSENSUS.
38667
+ # Corresponds to the JSON property `consensusState`
38668
+ # @return [Google::Apis::ComputeAlpha::NetworkPeeringConnectionStatusConsensusState]
38669
+ attr_accessor :consensus_state
38670
+
38671
+ # The active connectivity settings for the peering connection based on the
38672
+ # settings of the network peerings.
38673
+ # Corresponds to the JSON property `trafficConfiguration`
38674
+ # @return [Google::Apis::ComputeAlpha::NetworkPeeringConnectionStatusTrafficConfiguration]
38675
+ attr_accessor :traffic_configuration
38676
+
38677
+ # The update strategy determines the update/delete semantics for this peering
38678
+ # connection.
38679
+ # Corresponds to the JSON property `updateStrategy`
38680
+ # @return [String]
38681
+ attr_accessor :update_strategy
38682
+
38683
+ def initialize(**args)
38684
+ update!(**args)
38685
+ end
38686
+
38687
+ # Update properties of this object
38688
+ def update!(**args)
38689
+ @consensus_state = args[:consensus_state] if args.key?(:consensus_state)
38690
+ @traffic_configuration = args[:traffic_configuration] if args.key?(:traffic_configuration)
38691
+ @update_strategy = args[:update_strategy] if args.key?(:update_strategy)
38692
+ end
38693
+ end
38694
+
38695
+ # The status of update/delete for a consensus peering connection. Only set when
38696
+ # connection_status.update_strategy is CONSENSUS or a network peering is
38697
+ # proposing to update the strategy to CONSENSUS.
38698
+ class NetworkPeeringConnectionStatusConsensusState
38699
+ include Google::Apis::Core::Hashable
38700
+
38701
+ # The status of the delete request.
38702
+ # Corresponds to the JSON property `deleteStatus`
38703
+ # @return [String]
38704
+ attr_accessor :delete_status
38705
+
38706
+ # The status of the update request.
38707
+ # Corresponds to the JSON property `updateStatus`
38708
+ # @return [String]
38709
+ attr_accessor :update_status
38710
+
38711
+ def initialize(**args)
38712
+ update!(**args)
38713
+ end
38714
+
38715
+ # Update properties of this object
38716
+ def update!(**args)
38717
+ @delete_status = args[:delete_status] if args.key?(:delete_status)
38718
+ @update_status = args[:update_status] if args.key?(:update_status)
38719
+ end
38720
+ end
38721
+
38722
+ #
38723
+ class NetworkPeeringConnectionStatusTrafficConfiguration
38724
+ include Google::Apis::Core::Hashable
38725
+
38726
+ # Whether custom routes are being exported to the peer network.
38727
+ # Corresponds to the JSON property `exportCustomRoutesToPeer`
38728
+ # @return [Boolean]
38729
+ attr_accessor :export_custom_routes_to_peer
38730
+ alias_method :export_custom_routes_to_peer?, :export_custom_routes_to_peer
38731
+
38732
+ # Whether subnet routes with public IP ranges are being exported to the peer
38733
+ # network.
38734
+ # Corresponds to the JSON property `exportSubnetRoutesWithPublicIpToPeer`
38735
+ # @return [Boolean]
38736
+ attr_accessor :export_subnet_routes_with_public_ip_to_peer
38737
+ alias_method :export_subnet_routes_with_public_ip_to_peer?, :export_subnet_routes_with_public_ip_to_peer
38738
+
38739
+ # Whether custom routes are being imported from the peer network.
38740
+ # Corresponds to the JSON property `importCustomRoutesFromPeer`
38741
+ # @return [Boolean]
38742
+ attr_accessor :import_custom_routes_from_peer
38743
+ alias_method :import_custom_routes_from_peer?, :import_custom_routes_from_peer
38744
+
38745
+ # Whether subnet routes with public IP ranges are being imported from the peer
38746
+ # network.
38747
+ # Corresponds to the JSON property `importSubnetRoutesWithPublicIpFromPeer`
38748
+ # @return [Boolean]
38749
+ attr_accessor :import_subnet_routes_with_public_ip_from_peer
38750
+ alias_method :import_subnet_routes_with_public_ip_from_peer?, :import_subnet_routes_with_public_ip_from_peer
38751
+
38752
+ # Which IP version(s) of traffic and routes are being imported or exported
38753
+ # between peer networks.
38754
+ # Corresponds to the JSON property `stackType`
38755
+ # @return [String]
38756
+ attr_accessor :stack_type
38757
+
38758
+ def initialize(**args)
38759
+ update!(**args)
38760
+ end
38761
+
38762
+ # Update properties of this object
38763
+ def update!(**args)
38764
+ @export_custom_routes_to_peer = args[:export_custom_routes_to_peer] if args.key?(:export_custom_routes_to_peer)
38765
+ @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)
38766
+ @import_custom_routes_from_peer = args[:import_custom_routes_from_peer] if args.key?(:import_custom_routes_from_peer)
38767
+ @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)
38768
+ @stack_type = args[:stack_type] if args.key?(:stack_type)
36964
38769
  end
36965
38770
  end
36966
38771
 
36967
38772
  #
36968
- class NetworkEndpointGroupsListNetworkEndpoints
38773
+ class NetworkPerformanceConfig
36969
38774
  include Google::Apis::Core::Hashable
36970
38775
 
36971
- # [Output Only] Unique identifier for the resource; defined by the server.
36972
- # Corresponds to the JSON property `id`
36973
- # @return [String]
36974
- attr_accessor :id
36975
-
36976
- # A list of NetworkEndpointWithHealthStatus resources.
36977
- # Corresponds to the JSON property `items`
36978
- # @return [Array<Google::Apis::ComputeAlpha::NetworkEndpointWithHealthStatus>]
36979
- attr_accessor :items
36980
-
36981
- # [Output Only] The resource type, which is always compute#
36982
- # networkEndpointGroupsListNetworkEndpoints for the list of network endpoints in
36983
- # the specified network endpoint group.
36984
- # Corresponds to the JSON property `kind`
38776
+ #
38777
+ # Corresponds to the JSON property `externalIpEgressBandwidthTier`
36985
38778
  # @return [String]
36986
- attr_accessor :kind
38779
+ attr_accessor :external_ip_egress_bandwidth_tier
36987
38780
 
36988
- # [Output Only] This token allows you to get the next page of results for list
36989
- # requests. If the number of results is larger than maxResults, use the
36990
- # nextPageToken as a value for the query parameter pageToken in the next list
36991
- # request. Subsequent list requests will have their own nextPageToken to
36992
- # continue paging through the results.
36993
- # Corresponds to the JSON property `nextPageToken`
38781
+ #
38782
+ # Corresponds to the JSON property `totalEgressBandwidthTier`
36994
38783
  # @return [String]
36995
- attr_accessor :next_page_token
36996
-
36997
- # [Output Only] Informational warning message.
36998
- # Corresponds to the JSON property `warning`
36999
- # @return [Google::Apis::ComputeAlpha::NetworkEndpointGroupsListNetworkEndpoints::Warning]
37000
- attr_accessor :warning
38784
+ attr_accessor :total_egress_bandwidth_tier
37001
38785
 
37002
38786
  def initialize(**args)
37003
38787
  update!(**args)
@@ -37005,92 +38789,24 @@ module Google
37005
38789
 
37006
38790
  # Update properties of this object
37007
38791
  def update!(**args)
37008
- @id = args[:id] if args.key?(:id)
37009
- @items = args[:items] if args.key?(:items)
37010
- @kind = args[:kind] if args.key?(:kind)
37011
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
37012
- @warning = args[:warning] if args.key?(:warning)
37013
- end
37014
-
37015
- # [Output Only] Informational warning message.
37016
- class Warning
37017
- include Google::Apis::Core::Hashable
37018
-
37019
- # [Output Only] A warning code, if applicable. For example, Compute Engine
37020
- # returns NO_RESULTS_ON_PAGE if there are no results in the response.
37021
- # Corresponds to the JSON property `code`
37022
- # @return [String]
37023
- attr_accessor :code
37024
-
37025
- # [Output Only] Metadata about this warning in key: value format. For example: "
37026
- # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
37027
- # Corresponds to the JSON property `data`
37028
- # @return [Array<Google::Apis::ComputeAlpha::NetworkEndpointGroupsListNetworkEndpoints::Warning::Datum>]
37029
- attr_accessor :data
37030
-
37031
- # [Output Only] A human-readable description of the warning code.
37032
- # Corresponds to the JSON property `message`
37033
- # @return [String]
37034
- attr_accessor :message
37035
-
37036
- def initialize(**args)
37037
- update!(**args)
37038
- end
37039
-
37040
- # Update properties of this object
37041
- def update!(**args)
37042
- @code = args[:code] if args.key?(:code)
37043
- @data = args[:data] if args.key?(:data)
37044
- @message = args[:message] if args.key?(:message)
37045
- end
37046
-
37047
- #
37048
- class Datum
37049
- include Google::Apis::Core::Hashable
37050
-
37051
- # [Output Only] A key that provides more detail on the warning being returned.
37052
- # For example, for warnings where there are no results in a list request for a
37053
- # particular zone, this key might be scope and the key value might be the zone
37054
- # name. Other examples might be a key indicating a deprecated resource and a
37055
- # suggested replacement, or a warning about invalid network settings (for
37056
- # example, if an instance attempts to perform IP forwarding but is not enabled
37057
- # for IP forwarding).
37058
- # Corresponds to the JSON property `key`
37059
- # @return [String]
37060
- attr_accessor :key
37061
-
37062
- # [Output Only] A warning data value corresponding to the key.
37063
- # Corresponds to the JSON property `value`
37064
- # @return [String]
37065
- attr_accessor :value
37066
-
37067
- def initialize(**args)
37068
- update!(**args)
37069
- end
37070
-
37071
- # Update properties of this object
37072
- def update!(**args)
37073
- @key = args[:key] if args.key?(:key)
37074
- @value = args[:value] if args.key?(:value)
37075
- end
37076
- end
38792
+ @external_ip_egress_bandwidth_tier = args[:external_ip_egress_bandwidth_tier] if args.key?(:external_ip_egress_bandwidth_tier)
38793
+ @total_egress_bandwidth_tier = args[:total_egress_bandwidth_tier] if args.key?(:total_egress_bandwidth_tier)
37077
38794
  end
37078
38795
  end
37079
38796
 
37080
38797
  #
37081
- class NetworkEndpointGroupsScopedList
38798
+ class NetworkPoliciesScopedList
37082
38799
  include Google::Apis::Core::Hashable
37083
38800
 
37084
- # [Output Only] The list of network endpoint groups that are contained in this
37085
- # scope.
37086
- # Corresponds to the JSON property `networkEndpointGroups`
37087
- # @return [Array<Google::Apis::ComputeAlpha::NetworkEndpointGroup>]
37088
- attr_accessor :network_endpoint_groups
38801
+ # A list of network policies contained in this scope.
38802
+ # Corresponds to the JSON property `networkPolicies`
38803
+ # @return [Array<Google::Apis::ComputeAlpha::NetworkPolicy>]
38804
+ attr_accessor :network_policies
37089
38805
 
37090
- # [Output Only] An informational warning that replaces the list of network
37091
- # endpoint groups when the list is empty.
38806
+ # Informational warning which replaces the list of network policies when the
38807
+ # list is empty.
37092
38808
  # Corresponds to the JSON property `warning`
37093
- # @return [Google::Apis::ComputeAlpha::NetworkEndpointGroupsScopedList::Warning]
38809
+ # @return [Google::Apis::ComputeAlpha::NetworkPoliciesScopedList::Warning]
37094
38810
  attr_accessor :warning
37095
38811
 
37096
38812
  def initialize(**args)
@@ -37099,12 +38815,12 @@ module Google
37099
38815
 
37100
38816
  # Update properties of this object
37101
38817
  def update!(**args)
37102
- @network_endpoint_groups = args[:network_endpoint_groups] if args.key?(:network_endpoint_groups)
38818
+ @network_policies = args[:network_policies] if args.key?(:network_policies)
37103
38819
  @warning = args[:warning] if args.key?(:warning)
37104
38820
  end
37105
38821
 
37106
- # [Output Only] An informational warning that replaces the list of network
37107
- # endpoint groups when the list is empty.
38822
+ # Informational warning which replaces the list of network policies when the
38823
+ # list is empty.
37108
38824
  class Warning
37109
38825
  include Google::Apis::Core::Hashable
37110
38826
 
@@ -37117,7 +38833,7 @@ module Google
37117
38833
  # [Output Only] Metadata about this warning in key: value format. For example: "
37118
38834
  # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
37119
38835
  # Corresponds to the JSON property `data`
37120
- # @return [Array<Google::Apis::ComputeAlpha::NetworkEndpointGroupsScopedList::Warning::Datum>]
38836
+ # @return [Array<Google::Apis::ComputeAlpha::NetworkPoliciesScopedList::Warning::Datum>]
37121
38837
  attr_accessor :data
37122
38838
 
37123
38839
  # [Output Only] A human-readable description of the warning code.
@@ -37169,20 +38885,71 @@ module Google
37169
38885
  end
37170
38886
  end
37171
38887
 
37172
- #
37173
- class NetworkEndpointWithHealthStatus
38888
+ # Represents a Network Policy resource.
38889
+ class NetworkPolicy
37174
38890
  include Google::Apis::Core::Hashable
37175
38891
 
37176
- # [Output only] The health status of network endpoint. Optional. Displayed only
37177
- # if the network endpoint has centralized health checking configured.
37178
- # Corresponds to the JSON property `healths`
37179
- # @return [Array<Google::Apis::ComputeAlpha::HealthStatusForNetworkEndpoint>]
37180
- attr_accessor :healths
38892
+ # [Output Only] A list of associations that belong to this network policy.
38893
+ # Corresponds to the JSON property `associations`
38894
+ # @return [Array<Google::Apis::ComputeAlpha::NetworkPolicyAssociation>]
38895
+ attr_accessor :associations
37181
38896
 
37182
- # The network endpoint.
37183
- # Corresponds to the JSON property `networkEndpoint`
37184
- # @return [Google::Apis::ComputeAlpha::NetworkEndpoint]
37185
- attr_accessor :network_endpoint
38897
+ # [Output Only] Creation timestamp in RFC3339 text format.
38898
+ # Corresponds to the JSON property `creationTimestamp`
38899
+ # @return [String]
38900
+ attr_accessor :creation_timestamp
38901
+
38902
+ # An optional description of this resource. Provide this property when you
38903
+ # create the resource.
38904
+ # Corresponds to the JSON property `description`
38905
+ # @return [String]
38906
+ attr_accessor :description
38907
+
38908
+ # [Output Only] The unique identifier for the resource. This identifier is
38909
+ # defined by the server.
38910
+ # Corresponds to the JSON property `id`
38911
+ # @return [Fixnum]
38912
+ attr_accessor :id
38913
+
38914
+ # [Output only] Type of the resource. Always compute#networkPolicy for network
38915
+ # policies
38916
+ # Corresponds to the JSON property `kind`
38917
+ # @return [String]
38918
+ attr_accessor :kind
38919
+
38920
+ # Name of the resource.
38921
+ # Corresponds to the JSON property `name`
38922
+ # @return [String]
38923
+ attr_accessor :name
38924
+
38925
+ # [Output Only] URL of the region where the regional network policy resides. You
38926
+ # must specify this field as part of the HTTP request URL. It is not settable as
38927
+ # a field in the request body.
38928
+ # Corresponds to the JSON property `region`
38929
+ # @return [String]
38930
+ attr_accessor :region
38931
+
38932
+ # [Output Only] Total count of all network policy rule tuples. A network policy
38933
+ # can not exceed a set number of tuples.
38934
+ # Corresponds to the JSON property `ruleTupleCount`
38935
+ # @return [Fixnum]
38936
+ attr_accessor :rule_tuple_count
38937
+
38938
+ # [Output Only] Server-defined URL for the resource.
38939
+ # Corresponds to the JSON property `selfLink`
38940
+ # @return [String]
38941
+ attr_accessor :self_link
38942
+
38943
+ # [Output Only] Server-defined URL for this resource with the resource id.
38944
+ # Corresponds to the JSON property `selfLinkWithId`
38945
+ # @return [String]
38946
+ attr_accessor :self_link_with_id
38947
+
38948
+ # [Output Only] A list of traffic classification rules that belong to this
38949
+ # policy.
38950
+ # Corresponds to the JSON property `trafficClassificationRules`
38951
+ # @return [Array<Google::Apis::ComputeAlpha::NetworkPolicyTrafficClassificationRule>]
38952
+ attr_accessor :traffic_classification_rules
37186
38953
 
37187
38954
  def initialize(**args)
37188
38955
  update!(**args)
@@ -37190,13 +38957,22 @@ module Google
37190
38957
 
37191
38958
  # Update properties of this object
37192
38959
  def update!(**args)
37193
- @healths = args[:healths] if args.key?(:healths)
37194
- @network_endpoint = args[:network_endpoint] if args.key?(:network_endpoint)
38960
+ @associations = args[:associations] if args.key?(:associations)
38961
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
38962
+ @description = args[:description] if args.key?(:description)
38963
+ @id = args[:id] if args.key?(:id)
38964
+ @kind = args[:kind] if args.key?(:kind)
38965
+ @name = args[:name] if args.key?(:name)
38966
+ @region = args[:region] if args.key?(:region)
38967
+ @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
38968
+ @self_link = args[:self_link] if args.key?(:self_link)
38969
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
38970
+ @traffic_classification_rules = args[:traffic_classification_rules] if args.key?(:traffic_classification_rules)
37195
38971
  end
37196
38972
  end
37197
38973
 
37198
38974
  #
37199
- class NetworkFirewallPolicyAggregatedList
38975
+ class NetworkPolicyAggregatedList
37200
38976
  include Google::Apis::Core::Hashable
37201
38977
 
37202
38978
  # [Output Only] Unique identifier for the resource; defined by the server.
@@ -37204,13 +38980,13 @@ module Google
37204
38980
  # @return [String]
37205
38981
  attr_accessor :id
37206
38982
 
37207
- # A list of FirewallPoliciesScopedList resources.
38983
+ # A list of NetworkPoliciesScopedList resources.
37208
38984
  # Corresponds to the JSON property `items`
37209
- # @return [Hash<String,Google::Apis::ComputeAlpha::FirewallPoliciesScopedList>]
38985
+ # @return [Hash<String,Google::Apis::ComputeAlpha::NetworkPoliciesScopedList>]
37210
38986
  attr_accessor :items
37211
38987
 
37212
- # [Output Only] Type of resource. Always compute#
37213
- # networkFirewallPoliciesAggregatedList for lists of network firewall policies.
38988
+ # [Output Only] Type of resource. Always compute#networkPolicyAggregatedList for
38989
+ # lists of network policies.
37214
38990
  # Corresponds to the JSON property `kind`
37215
38991
  # @return [String]
37216
38992
  attr_accessor :kind
@@ -37236,7 +39012,7 @@ module Google
37236
39012
 
37237
39013
  # [Output Only] Informational warning message.
37238
39014
  # Corresponds to the JSON property `warning`
37239
- # @return [Google::Apis::ComputeAlpha::NetworkFirewallPolicyAggregatedList::Warning]
39015
+ # @return [Google::Apis::ComputeAlpha::NetworkPolicyAggregatedList::Warning]
37240
39016
  attr_accessor :warning
37241
39017
 
37242
39018
  def initialize(**args)
@@ -37267,7 +39043,7 @@ module Google
37267
39043
  # [Output Only] Metadata about this warning in key: value format. For example: "
37268
39044
  # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
37269
39045
  # Corresponds to the JSON property `data`
37270
- # @return [Array<Google::Apis::ComputeAlpha::NetworkFirewallPolicyAggregatedList::Warning::Datum>]
39046
+ # @return [Array<Google::Apis::ComputeAlpha::NetworkPolicyAggregatedList::Warning::Datum>]
37271
39047
  attr_accessor :data
37272
39048
 
37273
39049
  # [Output Only] A human-readable description of the warning code.
@@ -37319,232 +39095,33 @@ module Google
37319
39095
  end
37320
39096
  end
37321
39097
 
37322
- # A network interface resource attached to an instance.
37323
- class NetworkInterface
39098
+ #
39099
+ class NetworkPolicyAssociation
37324
39100
  include Google::Apis::Core::Hashable
37325
39101
 
37326
- # An array of configurations for this interface. Currently, only one access
37327
- # config, ONE_TO_ONE_NAT, is supported. If there are no accessConfigs specified,
37328
- # then this instance will have no external internet access.
37329
- # Corresponds to the JSON property `accessConfigs`
37330
- # @return [Array<Google::Apis::ComputeAlpha::AccessConfig>]
37331
- attr_accessor :access_configs
37332
-
37333
- # An array of alias IP ranges for this network interface. You can only specify
37334
- # this field for network interfaces in VPC networks.
37335
- # Corresponds to the JSON property `aliasIpRanges`
37336
- # @return [Array<Google::Apis::ComputeAlpha::AliasIpRange>]
37337
- attr_accessor :alias_ip_ranges
37338
-
37339
- # Fingerprint hash of contents stored in this network interface. This field will
37340
- # be ignored when inserting an Instance or adding a NetworkInterface. An up-to-
37341
- # date fingerprint must be provided in order to update the NetworkInterface. The
37342
- # request will fail with error 400 Bad Request if the fingerprint is not
37343
- # provided, or 412 Precondition Failed if the fingerprint is out of date.
37344
- # Corresponds to the JSON property `fingerprint`
37345
- # NOTE: Values are automatically base64 encoded/decoded in the client library.
37346
- # @return [String]
37347
- attr_accessor :fingerprint
37348
-
37349
- # Indicate whether igmp query is enabled on the network interface or not. If
37350
- # enabled, also indicates the version of IGMP supported.
37351
- # Corresponds to the JSON property `igmpQuery`
37352
- # @return [String]
37353
- attr_accessor :igmp_query
37354
-
37355
- # The prefix length of the primary internal IPv6 range.
37356
- # Corresponds to the JSON property `internalIpv6PrefixLength`
37357
- # @return [Fixnum]
37358
- attr_accessor :internal_ipv6_prefix_length
37359
-
37360
- # An array of IPv6 access configurations for this interface. Currently, only one
37361
- # IPv6 access config, DIRECT_IPV6, is supported. If there is no ipv6AccessConfig
37362
- # specified, then this instance will have no external IPv6 Internet access.
37363
- # Corresponds to the JSON property `ipv6AccessConfigs`
37364
- # @return [Array<Google::Apis::ComputeAlpha::AccessConfig>]
37365
- attr_accessor :ipv6_access_configs
37366
-
37367
- # [Output Only] One of EXTERNAL, INTERNAL to indicate whether the IP can be
37368
- # accessed from the Internet. This field is always inherited from its subnetwork.
37369
- # Valid only if stackType is IPV4_IPV6.
37370
- # Corresponds to the JSON property `ipv6AccessType`
37371
- # @return [String]
37372
- attr_accessor :ipv6_access_type
37373
-
37374
- # An IPv6 internal network address for this network interface. To use a static
37375
- # internal IP address, it must be unused and in the same region as the instance'
37376
- # s zone. If not specified, Google Cloud will automatically assign an internal
37377
- # IPv6 address from the instance's subnetwork.
37378
- # Corresponds to the JSON property `ipv6Address`
37379
- # @return [String]
37380
- attr_accessor :ipv6_address
37381
-
37382
- # [Output Only] Type of the resource. Always compute#networkInterface for
37383
- # network interfaces.
37384
- # Corresponds to the JSON property `kind`
39102
+ # The target that the network policy is attached to.
39103
+ # Corresponds to the JSON property `attachmentTarget`
37385
39104
  # @return [String]
37386
- attr_accessor :kind
39105
+ attr_accessor :attachment_target
37387
39106
 
37388
- # [Output Only] The name of the network interface, which is generated by the
37389
- # server. For a VM, the network interface uses the nicN naming format. Where N
37390
- # is a value between 0 and 7. The default interface value is nic0.
39107
+ # The name for an association.
37391
39108
  # Corresponds to the JSON property `name`
37392
39109
  # @return [String]
37393
39110
  attr_accessor :name
37394
39111
 
37395
- # URL of the VPC network resource for this instance. When creating an instance,
37396
- # if neither the network nor the subnetwork is specified, the default network
37397
- # global/networks/default is used. If the selected project doesn't have the
37398
- # default network, you must specify a network or subnet. If the network is not
37399
- # specified but the subnetwork is specified, the network is inferred. If you
37400
- # specify this property, you can specify the network as a full or partial URL.
37401
- # For example, the following are all valid URLs: - https://www.googleapis.com/
37402
- # compute/v1/projects/project/global/networks/ network - projects/project/global/
37403
- # networks/network - global/networks/default
37404
- # Corresponds to the JSON property `network`
37405
- # @return [String]
37406
- attr_accessor :network
37407
-
37408
- # The URL of the network attachment that this interface should connect to in the
37409
- # following format: projects/`project_number`/regions/`region_name`/
37410
- # networkAttachments/`network_attachment_name`.
37411
- # Corresponds to the JSON property `networkAttachment`
37412
- # @return [String]
37413
- attr_accessor :network_attachment
37414
-
37415
- # An IPv4 internal IP address to assign to the instance for this network
37416
- # interface. If not specified by the user, an unused internal IP is assigned by
37417
- # the system.
37418
- # Corresponds to the JSON property `networkIP`
37419
- # @return [String]
37420
- attr_accessor :network_ip
37421
-
37422
- # The type of vNIC to be used on this interface. This may be gVNIC or VirtioNet.
37423
- # Corresponds to the JSON property `nicType`
37424
- # @return [String]
37425
- attr_accessor :nic_type
37426
-
37427
- # Name of the parent network interface of a dynamic network interface.
37428
- # Corresponds to the JSON property `parentNicName`
37429
- # @return [String]
37430
- attr_accessor :parent_nic_name
37431
-
37432
- # The networking queue count that's specified by users for the network interface.
37433
- # Both Rx and Tx queues will be set to this number. It'll be empty if not
37434
- # specified by the users.
37435
- # Corresponds to the JSON property `queueCount`
37436
- # @return [Fixnum]
37437
- attr_accessor :queue_count
37438
-
37439
- # The stack type for this network interface. To assign only IPv4 addresses, use
37440
- # IPV4_ONLY. To assign both IPv4 and IPv6 addresses, use IPV4_IPV6. If not
37441
- # specified, IPV4_ONLY is used. This field can be both set at instance creation
37442
- # and update network interface operations.
37443
- # Corresponds to the JSON property `stackType`
37444
- # @return [String]
37445
- attr_accessor :stack_type
37446
-
37447
- # SubInterfaces help enable L2 communication for the instance over subnetworks
37448
- # that support L2. Every network interface will get a default untagged (vlan not
37449
- # specified) subinterface. Users can specify additional tagged subinterfaces
37450
- # which are sub-fields to the Network Interface.
37451
- # Corresponds to the JSON property `subinterfaces`
37452
- # @return [Array<Google::Apis::ComputeAlpha::NetworkInterfaceSubInterface>]
37453
- attr_accessor :subinterfaces
37454
-
37455
- # The URL of the Subnetwork resource for this instance. If the network resource
37456
- # is in legacy mode, do not specify this field. If the network is in auto subnet
37457
- # mode, specifying the subnetwork is optional. If the network is in custom
37458
- # subnet mode, specifying the subnetwork is required. If you specify this field,
37459
- # you can specify the subnetwork as a full or partial URL. For example, the
37460
- # following are all valid URLs: - https://www.googleapis.com/compute/v1/projects/
37461
- # project/regions/region /subnetworks/subnetwork - regions/region/subnetworks/
37462
- # subnetwork
37463
- # Corresponds to the JSON property `subnetwork`
37464
- # @return [String]
37465
- attr_accessor :subnetwork
37466
-
37467
- # VLAN tag of a dynamic network interface, must be an integer in the range from
37468
- # 2 to 255 inclusively.
37469
- # Corresponds to the JSON property `vlan`
37470
- # @return [Fixnum]
37471
- attr_accessor :vlan
37472
-
37473
39112
  def initialize(**args)
37474
39113
  update!(**args)
37475
39114
  end
37476
39115
 
37477
39116
  # Update properties of this object
37478
39117
  def update!(**args)
37479
- @access_configs = args[:access_configs] if args.key?(:access_configs)
37480
- @alias_ip_ranges = args[:alias_ip_ranges] if args.key?(:alias_ip_ranges)
37481
- @fingerprint = args[:fingerprint] if args.key?(:fingerprint)
37482
- @igmp_query = args[:igmp_query] if args.key?(:igmp_query)
37483
- @internal_ipv6_prefix_length = args[:internal_ipv6_prefix_length] if args.key?(:internal_ipv6_prefix_length)
37484
- @ipv6_access_configs = args[:ipv6_access_configs] if args.key?(:ipv6_access_configs)
37485
- @ipv6_access_type = args[:ipv6_access_type] if args.key?(:ipv6_access_type)
37486
- @ipv6_address = args[:ipv6_address] if args.key?(:ipv6_address)
37487
- @kind = args[:kind] if args.key?(:kind)
39118
+ @attachment_target = args[:attachment_target] if args.key?(:attachment_target)
37488
39119
  @name = args[:name] if args.key?(:name)
37489
- @network = args[:network] if args.key?(:network)
37490
- @network_attachment = args[:network_attachment] if args.key?(:network_attachment)
37491
- @network_ip = args[:network_ip] if args.key?(:network_ip)
37492
- @nic_type = args[:nic_type] if args.key?(:nic_type)
37493
- @parent_nic_name = args[:parent_nic_name] if args.key?(:parent_nic_name)
37494
- @queue_count = args[:queue_count] if args.key?(:queue_count)
37495
- @stack_type = args[:stack_type] if args.key?(:stack_type)
37496
- @subinterfaces = args[:subinterfaces] if args.key?(:subinterfaces)
37497
- @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
37498
- @vlan = args[:vlan] if args.key?(:vlan)
37499
39120
  end
37500
39121
  end
37501
39122
 
37502
39123
  #
37503
- class NetworkInterfaceSubInterface
37504
- include Google::Apis::Core::Hashable
37505
-
37506
- # An IPv4 internal IP address to assign to the instance for this subinterface.
37507
- # If specified, ip_allocation_mode should be set to ALLOCATE_IP.
37508
- # Corresponds to the JSON property `ipAddress`
37509
- # @return [String]
37510
- attr_accessor :ip_address
37511
-
37512
- #
37513
- # Corresponds to the JSON property `ipAllocationMode`
37514
- # @return [String]
37515
- attr_accessor :ip_allocation_mode
37516
-
37517
- # If specified, this subnetwork must belong to the same network as that of the
37518
- # network interface. If not specified the subnet of network interface will be
37519
- # used. If you specify this property, you can specify the subnetwork as a full
37520
- # or partial URL. For example, the following are all valid URLs: - https://www.
37521
- # googleapis.com/compute/v1/projects/project/regions/region /subnetworks/
37522
- # subnetwork - regions/region/subnetworks/subnetwork
37523
- # Corresponds to the JSON property `subnetwork`
37524
- # @return [String]
37525
- attr_accessor :subnetwork
37526
-
37527
- # VLAN tag. Should match the VLAN(s) supported by the subnetwork to which this
37528
- # subinterface is connecting.
37529
- # Corresponds to the JSON property `vlan`
37530
- # @return [Fixnum]
37531
- attr_accessor :vlan
37532
-
37533
- def initialize(**args)
37534
- update!(**args)
37535
- end
37536
-
37537
- # Update properties of this object
37538
- def update!(**args)
37539
- @ip_address = args[:ip_address] if args.key?(:ip_address)
37540
- @ip_allocation_mode = args[:ip_allocation_mode] if args.key?(:ip_allocation_mode)
37541
- @subnetwork = args[:subnetwork] if args.key?(:subnetwork)
37542
- @vlan = args[:vlan] if args.key?(:vlan)
37543
- end
37544
- end
37545
-
37546
- # Contains a list of networks.
37547
- class NetworkList
39124
+ class NetworkPolicyList
37548
39125
  include Google::Apis::Core::Hashable
37549
39126
 
37550
39127
  # [Output Only] Unique identifier for the resource; defined by the server.
@@ -37552,13 +39129,13 @@ module Google
37552
39129
  # @return [String]
37553
39130
  attr_accessor :id
37554
39131
 
37555
- # A list of Network resources.
39132
+ # A list of NetworkPolicy resources.
37556
39133
  # Corresponds to the JSON property `items`
37557
- # @return [Array<Google::Apis::ComputeAlpha::Network>]
39134
+ # @return [Array<Google::Apis::ComputeAlpha::NetworkPolicy>]
37558
39135
  attr_accessor :items
37559
39136
 
37560
- # [Output Only] Type of resource. Always compute#networkList for lists of
37561
- # networks.
39137
+ # [Output Only] Type of resource. Always compute#networkPolicyList for lists of
39138
+ # network policies.
37562
39139
  # Corresponds to the JSON property `kind`
37563
39140
  # @return [String]
37564
39141
  attr_accessor :kind
@@ -37572,14 +39149,9 @@ module Google
37572
39149
  # @return [String]
37573
39150
  attr_accessor :next_page_token
37574
39151
 
37575
- # [Output Only] Server-defined URL for this resource.
37576
- # Corresponds to the JSON property `selfLink`
37577
- # @return [String]
37578
- attr_accessor :self_link
37579
-
37580
39152
  # [Output Only] Informational warning message.
37581
39153
  # Corresponds to the JSON property `warning`
37582
- # @return [Google::Apis::ComputeAlpha::NetworkList::Warning]
39154
+ # @return [Google::Apis::ComputeAlpha::NetworkPolicyList::Warning]
37583
39155
  attr_accessor :warning
37584
39156
 
37585
39157
  def initialize(**args)
@@ -37592,7 +39164,6 @@ module Google
37592
39164
  @items = args[:items] if args.key?(:items)
37593
39165
  @kind = args[:kind] if args.key?(:kind)
37594
39166
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
37595
- @self_link = args[:self_link] if args.key?(:self_link)
37596
39167
  @warning = args[:warning] if args.key?(:warning)
37597
39168
  end
37598
39169
 
@@ -37609,7 +39180,7 @@ module Google
37609
39180
  # [Output Only] Metadata about this warning in key: value format. For example: "
37610
39181
  # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
37611
39182
  # Corresponds to the JSON property `data`
37612
- # @return [Array<Google::Apis::ComputeAlpha::NetworkList::Warning::Datum>]
39183
+ # @return [Array<Google::Apis::ComputeAlpha::NetworkPolicyList::Warning::Datum>]
37613
39184
  attr_accessor :data
37614
39185
 
37615
39186
  # [Output Only] A human-readable description of the warning code.
@@ -37648,160 +39219,94 @@ module Google
37648
39219
  # @return [String]
37649
39220
  attr_accessor :value
37650
39221
 
37651
- def initialize(**args)
37652
- update!(**args)
37653
- end
37654
-
37655
- # Update properties of this object
37656
- def update!(**args)
37657
- @key = args[:key] if args.key?(:key)
37658
- @value = args[:value] if args.key?(:value)
37659
- end
37660
- end
37661
- end
37662
- end
37663
-
37664
- # Additional network parameters.
37665
- class NetworkParams
37666
- include Google::Apis::Core::Hashable
37667
-
37668
- # Tag keys/values directly bound to this resource. Tag keys and values have the
37669
- # same definition as resource manager tags. The field is allowed for INSERT only.
37670
- # The keys/values to set on the resource should be specified in either ID ` : `
37671
- # or Namespaced format ` : `. For example the following are valid inputs: * `"
37672
- # tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"` * `"123/
37673
- # environment" : "production", "345/abc" : "xyz"` Note: * Invalid combinations
37674
- # of ID & namespaced format is not supported. For instance: `"123/environment" :
37675
- # "tagValues/444"` is invalid.
37676
- # Corresponds to the JSON property `resourceManagerTags`
37677
- # @return [Hash<String,String>]
37678
- attr_accessor :resource_manager_tags
37679
-
37680
- def initialize(**args)
37681
- update!(**args)
37682
- end
37683
-
37684
- # Update properties of this object
37685
- def update!(**args)
37686
- @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
37687
- end
37688
- end
37689
-
37690
- # A network peering attached to a network resource. The message includes the
37691
- # peering name, peer network, peering state, and a flag indicating whether
37692
- # Google Compute Engine should automatically create routes for the peering.
37693
- class NetworkPeering
37694
- include Google::Apis::Core::Hashable
37695
-
37696
- # Whether Cloud Routers in this network can automatically advertise subnets from
37697
- # the peer network.
37698
- # Corresponds to the JSON property `advertisePeerSubnetsViaRouters`
37699
- # @return [Boolean]
37700
- attr_accessor :advertise_peer_subnets_via_routers
37701
- alias_method :advertise_peer_subnets_via_routers?, :advertise_peer_subnets_via_routers
37702
-
37703
- # This field will be deprecated soon. Use the exchange_subnet_routes field
37704
- # instead. Indicates whether full mesh connectivity is created and managed
37705
- # automatically between peered networks. Currently this field should always be
37706
- # true since Google Compute Engine will automatically create and manage
37707
- # subnetwork routes between two networks when peering state is ACTIVE.
37708
- # Corresponds to the JSON property `autoCreateRoutes`
37709
- # @return [Boolean]
37710
- attr_accessor :auto_create_routes
37711
- alias_method :auto_create_routes?, :auto_create_routes
37712
-
37713
- # [Output Only] Describes the state of a peering connection, not just the local
37714
- # peering. This field provides information about the effective settings for the
37715
- # connection as a whole, including pending delete/update requests for CONSENSUS
37716
- # peerings.
37717
- # Corresponds to the JSON property `connectionStatus`
37718
- # @return [Google::Apis::ComputeAlpha::NetworkPeeringConnectionStatus]
37719
- attr_accessor :connection_status
37720
-
37721
- # Indicates whether full mesh connectivity is created and managed automatically
37722
- # between peered networks. Currently this field should always be true since
37723
- # Google Compute Engine will automatically create and manage subnetwork routes
37724
- # between two networks when peering state is ACTIVE.
37725
- # Corresponds to the JSON property `exchangeSubnetRoutes`
37726
- # @return [Boolean]
37727
- attr_accessor :exchange_subnet_routes
37728
- alias_method :exchange_subnet_routes?, :exchange_subnet_routes
39222
+ def initialize(**args)
39223
+ update!(**args)
39224
+ end
39225
+
39226
+ # Update properties of this object
39227
+ def update!(**args)
39228
+ @key = args[:key] if args.key?(:key)
39229
+ @value = args[:value] if args.key?(:value)
39230
+ end
39231
+ end
39232
+ end
39233
+ end
37729
39234
 
37730
- # Whether to export the custom routes to peer network. The default value is
37731
- # false.
37732
- # Corresponds to the JSON property `exportCustomRoutes`
37733
- # @return [Boolean]
37734
- attr_accessor :export_custom_routes
37735
- alias_method :export_custom_routes?, :export_custom_routes
39235
+ # Represents a traffic classification rule that describes one or more match
39236
+ # conditions along with the action to be taken when traffic matches this
39237
+ # condition.
39238
+ class NetworkPolicyTrafficClassificationRule
39239
+ include Google::Apis::Core::Hashable
37736
39240
 
37737
- # Whether subnet routes with public IP range are exported. The default value is
37738
- # true, all subnet routes are exported. IPv4 special-use ranges are always
37739
- # exported to peers and are not controlled by this field.
37740
- # Corresponds to the JSON property `exportSubnetRoutesWithPublicIp`
37741
- # @return [Boolean]
37742
- attr_accessor :export_subnet_routes_with_public_ip
37743
- alias_method :export_subnet_routes_with_public_ip?, :export_subnet_routes_with_public_ip
39241
+ # The Action to perform when the client connection triggers the rule.
39242
+ # Corresponds to the JSON property `action`
39243
+ # @return [Google::Apis::ComputeAlpha::NetworkPolicyTrafficClassificationRuleAction]
39244
+ attr_accessor :action
37744
39245
 
37745
- # Whether to import the custom routes from peer network. The default value is
37746
- # false.
37747
- # Corresponds to the JSON property `importCustomRoutes`
37748
- # @return [Boolean]
37749
- attr_accessor :import_custom_routes
37750
- alias_method :import_custom_routes?, :import_custom_routes
39246
+ # An optional description for this resource.
39247
+ # Corresponds to the JSON property `description`
39248
+ # @return [String]
39249
+ attr_accessor :description
37751
39250
 
37752
- # Whether subnet routes with public IP range are imported. The default value is
37753
- # false. IPv4 special-use ranges are always imported from peers and are not
37754
- # controlled by this field.
37755
- # Corresponds to the JSON property `importSubnetRoutesWithPublicIp`
39251
+ # Denotes whether the network policy rule is disabled. When set to true, the
39252
+ # network policy rule is not enforced and traffic behaves as if it did not exist.
39253
+ # If this is unspecified, the network policy rule will be enabled.
39254
+ # Corresponds to the JSON property `disabled`
37756
39255
  # @return [Boolean]
37757
- attr_accessor :import_subnet_routes_with_public_ip
37758
- alias_method :import_subnet_routes_with_public_ip?, :import_subnet_routes_with_public_ip
39256
+ attr_accessor :disabled
39257
+ alias_method :disabled?, :disabled
37759
39258
 
37760
- # Name of this peering. Provided by the client when the peering is created. The
37761
- # name must comply with RFC1035. Specifically, the name must be 1-63 characters
37762
- # long and match regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
37763
- # character must be a lowercase letter, and all the following characters must be
37764
- # a dash, lowercase letter, or digit, except the last character, which cannot be
37765
- # a dash.
37766
- # Corresponds to the JSON property `name`
39259
+ # [Output only] Type of the resource. Always compute#
39260
+ # networkPolicyTrafficClassificationRule for network policy traffic
39261
+ # classification rules
39262
+ # Corresponds to the JSON property `kind`
37767
39263
  # @return [String]
37768
- attr_accessor :name
39264
+ attr_accessor :kind
37769
39265
 
37770
- # The URL of the peer network. It can be either full URL or partial URL. The
37771
- # peer network may belong to a different project. If the partial URL does not
37772
- # contain project, it is assumed that the peer network is in the same project as
37773
- # the current network.
37774
- # Corresponds to the JSON property `network`
37775
- # @return [String]
37776
- attr_accessor :network
39266
+ # Represents a match condition that incoming traffic is evaluated against.
39267
+ # Exactly one field must be specified.
39268
+ # Corresponds to the JSON property `match`
39269
+ # @return [Google::Apis::ComputeAlpha::NetworkPolicyTrafficClassificationRuleMatcher]
39270
+ attr_accessor :match
37777
39271
 
37778
- # [Output Only] Maximum Transmission Unit in bytes of the peer network.
37779
- # Corresponds to the JSON property `peerMtu`
39272
+ # An integer indicating the priority of a rule in the list. The priority must be
39273
+ # a positive value between 1 and 2147482647. The priority values from 2147482648
39274
+ # to 2147483647 (1000) are reserved for system default network policy rules.
39275
+ # Rules are evaluated from highest to lowest priority where 1 is the highest
39276
+ # priority and 2147483647 is the lowest priority.
39277
+ # Corresponds to the JSON property `priority`
37780
39278
  # @return [Fixnum]
37781
- attr_accessor :peer_mtu
39279
+ attr_accessor :priority
37782
39280
 
37783
- # Which IP version(s) of traffic and routes are allowed to be imported or
37784
- # exported between peer networks. The default value is IPV4_ONLY.
37785
- # Corresponds to the JSON property `stackType`
39281
+ # An optional name for the rule. This field is not a unique identifier and can
39282
+ # be updated.
39283
+ # Corresponds to the JSON property `ruleName`
37786
39284
  # @return [String]
37787
- attr_accessor :stack_type
39285
+ attr_accessor :rule_name
37788
39286
 
37789
- # [Output Only] State for the peering, either `ACTIVE` or `INACTIVE`. The
37790
- # peering is `ACTIVE` when there's a matching configuration in the peer network.
37791
- # Corresponds to the JSON property `state`
37792
- # @return [String]
37793
- attr_accessor :state
39287
+ # [Output Only] Calculation of the complexity of a single network policy rule.
39288
+ # Corresponds to the JSON property `ruleTupleCount`
39289
+ # @return [Fixnum]
39290
+ attr_accessor :rule_tuple_count
37794
39291
 
37795
- # [Output Only] Details about the current state of the peering.
37796
- # Corresponds to the JSON property `stateDetails`
37797
- # @return [String]
37798
- attr_accessor :state_details
39292
+ # A list of secure tags that controls which instances the traffic classification
39293
+ # rule applies to. If targetSecureTag are specified, then the traffic
39294
+ # classification rule applies only to instances in the VPC network that have one
39295
+ # of those EFFECTIVE secure tags, if all the targetSecureTag are in INEFFECTIVE
39296
+ # state, then this rule will be ignored. targetSecureTag may not be set at the
39297
+ # same time as targetServiceAccounts. If neither targetServiceAccounts nor
39298
+ # targetSecureTag are specified, the traffic classification rule applies to all
39299
+ # instances on the specified network. Maximum number of target label tags
39300
+ # allowed is 256.
39301
+ # Corresponds to the JSON property `targetSecureTags`
39302
+ # @return [Array<Google::Apis::ComputeAlpha::NetworkPolicyTrafficClassificationRuleSecureTag>]
39303
+ attr_accessor :target_secure_tags
37799
39304
 
37800
- # The update strategy determines the semantics for updates and deletes to the
37801
- # peering connection configuration.
37802
- # Corresponds to the JSON property `updateStrategy`
37803
- # @return [String]
37804
- attr_accessor :update_strategy
39305
+ # A list of service accounts indicating the sets of instances that are applied
39306
+ # with this rule.
39307
+ # Corresponds to the JSON property `targetServiceAccounts`
39308
+ # @return [Array<String>]
39309
+ attr_accessor :target_service_accounts
37805
39310
 
37806
39311
  def initialize(**args)
37807
39312
  update!(**args)
@@ -37809,49 +39314,37 @@ module Google
37809
39314
 
37810
39315
  # Update properties of this object
37811
39316
  def update!(**args)
37812
- @advertise_peer_subnets_via_routers = args[:advertise_peer_subnets_via_routers] if args.key?(:advertise_peer_subnets_via_routers)
37813
- @auto_create_routes = args[:auto_create_routes] if args.key?(:auto_create_routes)
37814
- @connection_status = args[:connection_status] if args.key?(:connection_status)
37815
- @exchange_subnet_routes = args[:exchange_subnet_routes] if args.key?(:exchange_subnet_routes)
37816
- @export_custom_routes = args[:export_custom_routes] if args.key?(:export_custom_routes)
37817
- @export_subnet_routes_with_public_ip = args[:export_subnet_routes_with_public_ip] if args.key?(:export_subnet_routes_with_public_ip)
37818
- @import_custom_routes = args[:import_custom_routes] if args.key?(:import_custom_routes)
37819
- @import_subnet_routes_with_public_ip = args[:import_subnet_routes_with_public_ip] if args.key?(:import_subnet_routes_with_public_ip)
37820
- @name = args[:name] if args.key?(:name)
37821
- @network = args[:network] if args.key?(:network)
37822
- @peer_mtu = args[:peer_mtu] if args.key?(:peer_mtu)
37823
- @stack_type = args[:stack_type] if args.key?(:stack_type)
37824
- @state = args[:state] if args.key?(:state)
37825
- @state_details = args[:state_details] if args.key?(:state_details)
37826
- @update_strategy = args[:update_strategy] if args.key?(:update_strategy)
39317
+ @action = args[:action] if args.key?(:action)
39318
+ @description = args[:description] if args.key?(:description)
39319
+ @disabled = args[:disabled] if args.key?(:disabled)
39320
+ @kind = args[:kind] if args.key?(:kind)
39321
+ @match = args[:match] if args.key?(:match)
39322
+ @priority = args[:priority] if args.key?(:priority)
39323
+ @rule_name = args[:rule_name] if args.key?(:rule_name)
39324
+ @rule_tuple_count = args[:rule_tuple_count] if args.key?(:rule_tuple_count)
39325
+ @target_secure_tags = args[:target_secure_tags] if args.key?(:target_secure_tags)
39326
+ @target_service_accounts = args[:target_service_accounts] if args.key?(:target_service_accounts)
37827
39327
  end
37828
39328
  end
37829
39329
 
37830
- # [Output Only] Describes the state of a peering connection, not just the local
37831
- # peering. This field provides information about the effective settings for the
37832
- # connection as a whole, including pending delete/update requests for CONSENSUS
37833
- # peerings.
37834
- class NetworkPeeringConnectionStatus
39330
+ #
39331
+ class NetworkPolicyTrafficClassificationRuleAction
37835
39332
  include Google::Apis::Core::Hashable
37836
39333
 
37837
- # The status of update/delete for a consensus peering connection. Only set when
37838
- # connection_status.update_strategy is CONSENSUS or a network peering is
37839
- # proposing to update the strategy to CONSENSUS.
37840
- # Corresponds to the JSON property `consensusState`
37841
- # @return [Google::Apis::ComputeAlpha::NetworkPeeringConnectionStatusConsensusState]
37842
- attr_accessor :consensus_state
39334
+ # The field type could be one of: TRAFFIC_CLASS or DSCP.
39335
+ # Corresponds to the JSON property `fieldType`
39336
+ # @return [String]
39337
+ attr_accessor :field_type
37843
39338
 
37844
- # The active connectivity settings for the peering connection based on the
37845
- # settings of the network peerings.
37846
- # Corresponds to the JSON property `trafficConfiguration`
37847
- # @return [Google::Apis::ComputeAlpha::NetworkPeeringConnectionStatusTrafficConfiguration]
37848
- attr_accessor :traffic_configuration
39339
+ # For field_type = TRAFFIC_CLASS: 1 to 6. For field_type = DSCP: 0 to 63.
39340
+ # Corresponds to the JSON property `fieldValue`
39341
+ # @return [Fixnum]
39342
+ attr_accessor :field_value
37849
39343
 
37850
- # The update strategy determines the update/delete semantics for this peering
37851
- # connection.
37852
- # Corresponds to the JSON property `updateStrategy`
39344
+ # Always "apply_traffic_classification" for traffic classification rules.
39345
+ # Corresponds to the JSON property `type`
37853
39346
  # @return [String]
37854
- attr_accessor :update_strategy
39347
+ attr_accessor :type
37855
39348
 
37856
39349
  def initialize(**args)
37857
39350
  update!(**args)
@@ -37859,27 +39352,32 @@ module Google
37859
39352
 
37860
39353
  # Update properties of this object
37861
39354
  def update!(**args)
37862
- @consensus_state = args[:consensus_state] if args.key?(:consensus_state)
37863
- @traffic_configuration = args[:traffic_configuration] if args.key?(:traffic_configuration)
37864
- @update_strategy = args[:update_strategy] if args.key?(:update_strategy)
39355
+ @field_type = args[:field_type] if args.key?(:field_type)
39356
+ @field_value = args[:field_value] if args.key?(:field_value)
39357
+ @type = args[:type] if args.key?(:type)
37865
39358
  end
37866
39359
  end
37867
39360
 
37868
- # The status of update/delete for a consensus peering connection. Only set when
37869
- # connection_status.update_strategy is CONSENSUS or a network peering is
37870
- # proposing to update the strategy to CONSENSUS.
37871
- class NetworkPeeringConnectionStatusConsensusState
39361
+ # Represents a match condition that incoming traffic is evaluated against.
39362
+ # Exactly one field must be specified.
39363
+ class NetworkPolicyTrafficClassificationRuleMatcher
37872
39364
  include Google::Apis::Core::Hashable
37873
39365
 
37874
- # The status of the delete request.
37875
- # Corresponds to the JSON property `deleteStatus`
37876
- # @return [String]
37877
- attr_accessor :delete_status
39366
+ # CIDR IP address range. Maximum number of destination CIDR IP ranges allowed is
39367
+ # 5000.
39368
+ # Corresponds to the JSON property `destIpRanges`
39369
+ # @return [Array<String>]
39370
+ attr_accessor :dest_ip_ranges
37878
39371
 
37879
- # The status of the update request.
37880
- # Corresponds to the JSON property `updateStatus`
37881
- # @return [String]
37882
- attr_accessor :update_status
39372
+ # Pairs of IP protocols and ports that the rule should match.
39373
+ # Corresponds to the JSON property `layer4Configs`
39374
+ # @return [Array<Google::Apis::ComputeAlpha::NetworkPolicyTrafficClassificationRuleMatcherLayer4Config>]
39375
+ attr_accessor :layer4_configs
39376
+
39377
+ # CIDR IP address range. Maximum number of source CIDR IP ranges allowed is 5000.
39378
+ # Corresponds to the JSON property `srcIpRanges`
39379
+ # @return [Array<String>]
39380
+ attr_accessor :src_ip_ranges
37883
39381
 
37884
39382
  def initialize(**args)
37885
39383
  update!(**args)
@@ -37887,46 +39385,31 @@ module Google
37887
39385
 
37888
39386
  # Update properties of this object
37889
39387
  def update!(**args)
37890
- @delete_status = args[:delete_status] if args.key?(:delete_status)
37891
- @update_status = args[:update_status] if args.key?(:update_status)
39388
+ @dest_ip_ranges = args[:dest_ip_ranges] if args.key?(:dest_ip_ranges)
39389
+ @layer4_configs = args[:layer4_configs] if args.key?(:layer4_configs)
39390
+ @src_ip_ranges = args[:src_ip_ranges] if args.key?(:src_ip_ranges)
37892
39391
  end
37893
39392
  end
37894
39393
 
37895
39394
  #
37896
- class NetworkPeeringConnectionStatusTrafficConfiguration
39395
+ class NetworkPolicyTrafficClassificationRuleMatcherLayer4Config
37897
39396
  include Google::Apis::Core::Hashable
37898
39397
 
37899
- # Whether custom routes are being exported to the peer network.
37900
- # Corresponds to the JSON property `exportCustomRoutesToPeer`
37901
- # @return [Boolean]
37902
- attr_accessor :export_custom_routes_to_peer
37903
- alias_method :export_custom_routes_to_peer?, :export_custom_routes_to_peer
37904
-
37905
- # Whether subnet routes with public IP ranges are being exported to the peer
37906
- # network.
37907
- # Corresponds to the JSON property `exportSubnetRoutesWithPublicIpToPeer`
37908
- # @return [Boolean]
37909
- attr_accessor :export_subnet_routes_with_public_ip_to_peer
37910
- alias_method :export_subnet_routes_with_public_ip_to_peer?, :export_subnet_routes_with_public_ip_to_peer
37911
-
37912
- # Whether custom routes are being imported from the peer network.
37913
- # Corresponds to the JSON property `importCustomRoutesFromPeer`
37914
- # @return [Boolean]
37915
- attr_accessor :import_custom_routes_from_peer
37916
- alias_method :import_custom_routes_from_peer?, :import_custom_routes_from_peer
37917
-
37918
- # Whether subnet routes with public IP ranges are being imported from the peer
37919
- # network.
37920
- # Corresponds to the JSON property `importSubnetRoutesWithPublicIpFromPeer`
37921
- # @return [Boolean]
37922
- attr_accessor :import_subnet_routes_with_public_ip_from_peer
37923
- alias_method :import_subnet_routes_with_public_ip_from_peer?, :import_subnet_routes_with_public_ip_from_peer
37924
-
37925
- # Which IP version(s) of traffic and routes are being imported or exported
37926
- # between peer networks.
37927
- # Corresponds to the JSON property `stackType`
39398
+ # The IP protocol to which this rule applies. The protocol type is required when
39399
+ # creating a traffic classification rule. This value can either be one of the
39400
+ # following well known protocol strings (tcp, udp, icmp, esp, ah, ipip, sctp),
39401
+ # or the IP protocol number.
39402
+ # Corresponds to the JSON property `ipProtocol`
37928
39403
  # @return [String]
37929
- attr_accessor :stack_type
39404
+ attr_accessor :ip_protocol
39405
+
39406
+ # An optional list of ports to which this rule applies. This field is only
39407
+ # applicable for UDP or TCP protocol. Each entry must be either an integer or a
39408
+ # range. If not specified, this rule applies to connections through any port.
39409
+ # Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
39410
+ # Corresponds to the JSON property `ports`
39411
+ # @return [Array<String>]
39412
+ attr_accessor :ports
37930
39413
 
37931
39414
  def initialize(**args)
37932
39415
  update!(**args)
@@ -37934,27 +39417,25 @@ module Google
37934
39417
 
37935
39418
  # Update properties of this object
37936
39419
  def update!(**args)
37937
- @export_custom_routes_to_peer = args[:export_custom_routes_to_peer] if args.key?(:export_custom_routes_to_peer)
37938
- @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)
37939
- @import_custom_routes_from_peer = args[:import_custom_routes_from_peer] if args.key?(:import_custom_routes_from_peer)
37940
- @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)
37941
- @stack_type = args[:stack_type] if args.key?(:stack_type)
39420
+ @ip_protocol = args[:ip_protocol] if args.key?(:ip_protocol)
39421
+ @ports = args[:ports] if args.key?(:ports)
37942
39422
  end
37943
39423
  end
37944
39424
 
37945
39425
  #
37946
- class NetworkPerformanceConfig
39426
+ class NetworkPolicyTrafficClassificationRuleSecureTag
37947
39427
  include Google::Apis::Core::Hashable
37948
39428
 
37949
- #
37950
- # Corresponds to the JSON property `externalIpEgressBandwidthTier`
39429
+ # Name of the secure tag, created with TagManager's TagValue API.
39430
+ # Corresponds to the JSON property `name`
37951
39431
  # @return [String]
37952
- attr_accessor :external_ip_egress_bandwidth_tier
39432
+ attr_accessor :name
37953
39433
 
37954
- #
37955
- # Corresponds to the JSON property `totalEgressBandwidthTier`
39434
+ # [Output Only] State of the secure tag, either `EFFECTIVE` or `INEFFECTIVE`. A
39435
+ # secure tag is `INEFFECTIVE` when it is deleted or its network is deleted.
39436
+ # Corresponds to the JSON property `state`
37956
39437
  # @return [String]
37957
- attr_accessor :total_egress_bandwidth_tier
39438
+ attr_accessor :state
37958
39439
 
37959
39440
  def initialize(**args)
37960
39441
  update!(**args)
@@ -37962,8 +39443,8 @@ module Google
37962
39443
 
37963
39444
  # Update properties of this object
37964
39445
  def update!(**args)
37965
- @external_ip_egress_bandwidth_tier = args[:external_ip_egress_bandwidth_tier] if args.key?(:external_ip_egress_bandwidth_tier)
37966
- @total_egress_bandwidth_tier = args[:total_egress_bandwidth_tier] if args.key?(:total_egress_bandwidth_tier)
39446
+ @name = args[:name] if args.key?(:name)
39447
+ @state = args[:state] if args.key?(:state)
37967
39448
  end
37968
39449
  end
37969
39450
 
@@ -51154,6 +52635,11 @@ module Google
51154
52635
  # @return [Google::Apis::ComputeAlpha::ResourceStatusPhysicalHostTopology]
51155
52636
  attr_accessor :physical_host_topology
51156
52637
 
52638
+ # [Output Only] Reservation information that the instance is consuming from.
52639
+ # Corresponds to the JSON property `reservationConsumptionInfo`
52640
+ # @return [Google::Apis::ComputeAlpha::ResourceStatusReservationConsumptionInfo]
52641
+ attr_accessor :reservation_consumption_info
52642
+
51157
52643
  #
51158
52644
  # Corresponds to the JSON property `scheduling`
51159
52645
  # @return [Google::Apis::ComputeAlpha::ResourceStatusScheduling]
@@ -51189,6 +52675,7 @@ module Google
51189
52675
  @last_instance_termination_details = args[:last_instance_termination_details] if args.key?(:last_instance_termination_details)
51190
52676
  @physical_host = args[:physical_host] if args.key?(:physical_host)
51191
52677
  @physical_host_topology = args[:physical_host_topology] if args.key?(:physical_host_topology)
52678
+ @reservation_consumption_info = args[:reservation_consumption_info] if args.key?(:reservation_consumption_info)
51192
52679
  @scheduling = args[:scheduling] if args.key?(:scheduling)
51193
52680
  @service_integration_statuses = args[:service_integration_statuses] if args.key?(:service_integration_statuses)
51194
52681
  @shutdown_details = args[:shutdown_details] if args.key?(:shutdown_details)
@@ -51433,6 +52920,39 @@ module Google
51433
52920
  end
51434
52921
  end
51435
52922
 
52923
+ #
52924
+ class ResourceStatusReservationConsumptionInfo
52925
+ include Google::Apis::Core::Hashable
52926
+
52927
+ # The full resource name of the reservation that this instance is consuming from.
52928
+ # Corresponds to the JSON property `consumedReservation`
52929
+ # @return [String]
52930
+ attr_accessor :consumed_reservation
52931
+
52932
+ # The full resource name of the reservation block that this instance is
52933
+ # consuming from.
52934
+ # Corresponds to the JSON property `consumedReservationBlock`
52935
+ # @return [String]
52936
+ attr_accessor :consumed_reservation_block
52937
+
52938
+ # The full resource name of the reservation sub-block that this instance is
52939
+ # consuming from.
52940
+ # Corresponds to the JSON property `consumedReservationSubBlock`
52941
+ # @return [String]
52942
+ attr_accessor :consumed_reservation_sub_block
52943
+
52944
+ def initialize(**args)
52945
+ update!(**args)
52946
+ end
52947
+
52948
+ # Update properties of this object
52949
+ def update!(**args)
52950
+ @consumed_reservation = args[:consumed_reservation] if args.key?(:consumed_reservation)
52951
+ @consumed_reservation_block = args[:consumed_reservation_block] if args.key?(:consumed_reservation_block)
52952
+ @consumed_reservation_sub_block = args[:consumed_reservation_sub_block] if args.key?(:consumed_reservation_sub_block)
52953
+ end
52954
+ end
52955
+
51436
52956
  #
51437
52957
  class ResourceStatusScheduling
51438
52958
  include Google::Apis::Core::Hashable
@@ -53552,15 +55072,15 @@ module Google
53552
55072
  class RouterParams
53553
55073
  include Google::Apis::Core::Hashable
53554
55074
 
53555
- # Tag keys/values directly bound to this resource. Tag keys and values have the
53556
- # same definition as resource manager tags. The field is allowed for INSERT only.
53557
- # The keys/values to set on the resource should be specified in either ID ` : `
53558
- # or Namespaced format ` : `. For example the following are valid inputs: * `"
53559
- # tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"` * `"123/
53560
- # environment" : "production", "345/abc" : "xyz"` Note: * Invalid combinations
53561
- # of ID & namespaced format is not supported. For instance: `"123/environment" :
53562
- # "tagValues/444"` is invalid. * Inconsistent format is not supported. For
53563
- # instance: `"tagKeys/333" : "tagValues/444", "123/env" : "prod"` is invalid.
55075
+ # Tag keys/values directly bound to this resource. The field is allowed for
55076
+ # INSERT only. The keys/values to set on the resource should be specified in
55077
+ # either ID ` : ` or Namespaced format ` : `. For example the following are
55078
+ # valid inputs: * `"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/
55079
+ # 456"` * `"123/environment" : "production", "345/abc" : "xyz"` Note: * Invalid
55080
+ # combinations of ID & namespaced format is not supported. For instance: `"123/
55081
+ # environment" : "tagValues/444"` is invalid. * Inconsistent format is not
55082
+ # supported. For instance: `"tagKeys/333" : "tagValues/444", "123/env" : "prod"`
55083
+ # is invalid.
53564
55084
  # Corresponds to the JSON property `resourceManagerTags`
53565
55085
  # @return [Hash<String,String>]
53566
55086
  attr_accessor :resource_manager_tags
@@ -54875,6 +56395,14 @@ module Google
54875
56395
  attr_accessor :preemptible
54876
56396
  alias_method :preemptible?, :preemptible
54877
56397
 
56398
+ # A Duration represents a fixed-length span of time represented as a count of
56399
+ # seconds and fractions of seconds at nanosecond resolution. It is independent
56400
+ # of any calendar and concepts like "day" or "month". Range is approximately 10,
56401
+ # 000 years.
56402
+ # Corresponds to the JSON property `preemptionNoticeDuration`
56403
+ # @return [Google::Apis::ComputeAlpha::Duration]
56404
+ attr_accessor :preemption_notice_duration
56405
+
54878
56406
  # Specifies the provisioning model of the instance.
54879
56407
  # Corresponds to the JSON property `provisioningModel`
54880
56408
  # @return [String]
@@ -54932,6 +56460,7 @@ module Google
54932
56460
  @on_host_maintenance = args[:on_host_maintenance] if args.key?(:on_host_maintenance)
54933
56461
  @on_instance_stop_action = args[:on_instance_stop_action] if args.key?(:on_instance_stop_action)
54934
56462
  @preemptible = args[:preemptible] if args.key?(:preemptible)
56463
+ @preemption_notice_duration = args[:preemption_notice_duration] if args.key?(:preemption_notice_duration)
54935
56464
  @provisioning_model = args[:provisioning_model] if args.key?(:provisioning_model)
54936
56465
  @shutdown_timeout = args[:shutdown_timeout] if args.key?(:shutdown_timeout)
54937
56466
  @skip_guest_os_shutdown = args[:skip_guest_os_shutdown] if args.key?(:skip_guest_os_shutdown)
@@ -55497,14 +57026,14 @@ module Google
55497
57026
  # be configured to filter incoming HTTP requests targeting backend services (
55498
57027
  # including Cloud CDN-enabled) as well as backend buckets (Cloud Storage). They
55499
57028
  # filter requests before the request is served from Google's cache. -
55500
- # CLOUD_ARMOR_INTERNAL_SERVICE: Cloud Armor internal service policies can be
55501
- # configured to filter HTTP requests targeting services managed by Traffic
55502
- # Director in a service mesh. They filter requests before the request is served
55503
- # from the application. - CLOUD_ARMOR_NETWORK: Cloud Armor network policies can
55504
- # be configured to filter packets targeting network load balancing resources
55505
- # such as backend services, target pools, target instances, and instances with
55506
- # external IPs. They filter requests before the request is served from the
55507
- # application. This field can be set only at resource creation time.
57029
+ # CLOUD_ARMOR_INTERNAL_SERVICE (preview only): Cloud Armor internal service
57030
+ # policies can be configured to filter HTTP requests targeting services managed
57031
+ # by Traffic Director in a service mesh. They filter requests before the request
57032
+ # is served from the application. - CLOUD_ARMOR_NETWORK: Cloud Armor network
57033
+ # policies can be configured to filter packets targeting network load balancing
57034
+ # resources such as backend services, target pools, target instances, and
57035
+ # instances with external IPs. They filter requests before the request is served
57036
+ # from the application. This field can be set only at resource creation time.
55508
57037
  # Corresponds to the JSON property `type`
55509
57038
  # @return [String]
55510
57039
  attr_accessor :type
@@ -56122,7 +57651,10 @@ module Google
56122
57651
  # redirectOptions. This action is only supported in Global Security Policies of
56123
57652
  # type CLOUD_ARMOR. - throttle: limit client traffic to the configured threshold.
56124
57653
  # Configure parameters for this action in rateLimitOptions. Requires
56125
- # rate_limit_options to be set for this.
57654
+ # rate_limit_options to be set for this. - fairshare (preview only): when
57655
+ # traffic reaches the threshold limit, requests from the clients matching this
57656
+ # rule begin to be rate-limited using the Fair Share algorithm. This action is
57657
+ # only allowed in security policies of type `CLOUD_ARMOR_INTERNAL_SERVICE`.
56126
57658
  # Corresponds to the JSON property `action`
56127
57659
  # @return [String]
56128
57660
  attr_accessor :action
@@ -56194,8 +57726,8 @@ module Google
56194
57726
  # @return [Fixnum]
56195
57727
  attr_accessor :priority
56196
57728
 
56197
- # Must be specified if the action is "rate_based_ban" or "throttle". Cannot be
56198
- # specified for any other actions.
57729
+ # Must be specified if the action is "rate_based_ban" or "throttle" or "
57730
+ # fairshare". Cannot be specified for any other actions.
56199
57731
  # Corresponds to the JSON property `rateLimitOptions`
56200
57732
  # @return [Google::Apis::ComputeAlpha::SecurityPolicyRuleRateLimitOptions]
56201
57733
  attr_accessor :rate_limit_options
@@ -56213,7 +57745,7 @@ module Google
56213
57745
  # @return [String]
56214
57746
  attr_accessor :redirect_target
56215
57747
 
56216
- # [Output Only] The minimum managed protection tier required for this rule. [
57748
+ # [Output Only] The minimum Cloud Armor subscription required for this rule. [
56217
57749
  # Deprecated] Use requiredManagedProtectionTiers instead.
56218
57750
  # Corresponds to the JSON property `ruleManagedProtectionTier`
56219
57751
  # @return [String]
@@ -56777,7 +58309,8 @@ module Google
56777
58309
  # configuration or an IP address cannot be resolved from it, the key type
56778
58310
  # defaults to IP. - TLS_JA4_FINGERPRINT: JA4 TLS/SSL fingerprint if the client
56779
58311
  # connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type
56780
- # defaults to ALL.
58312
+ # defaults to ALL. For "fairshare" action, this value is limited to ALL i.e. a
58313
+ # single rate limit threshold is enforced for all the requests matching the rule.
56781
58314
  # Corresponds to the JSON property `enforceOnKey`
56782
58315
  # @return [String]
56783
58316
  attr_accessor :enforce_on_key
@@ -57577,6 +59110,11 @@ module Google
57577
59110
  # @return [String]
57578
59111
  attr_accessor :endpoint
57579
59112
 
59113
+ # The url of a connected endpoint with resource id.
59114
+ # Corresponds to the JSON property `endpointWithId`
59115
+ # @return [String]
59116
+ attr_accessor :endpoint_with_id
59117
+
57580
59118
  # NAT IPs of the connected PSC endpoint and those of other endpoints propagated
57581
59119
  # from it.
57582
59120
  # Corresponds to the JSON property `natIps`
@@ -57607,6 +59145,7 @@ module Google
57607
59145
  def update!(**args)
57608
59146
  @consumer_network = args[:consumer_network] if args.key?(:consumer_network)
57609
59147
  @endpoint = args[:endpoint] if args.key?(:endpoint)
59148
+ @endpoint_with_id = args[:endpoint_with_id] if args.key?(:endpoint_with_id)
57610
59149
  @nat_ips = args[:nat_ips] if args.key?(:nat_ips)
57611
59150
  @propagated_connection_count = args[:propagated_connection_count] if args.key?(:propagated_connection_count)
57612
59151
  @psc_connection_id = args[:psc_connection_id] if args.key?(:psc_connection_id)
@@ -57624,6 +59163,11 @@ module Google
57624
59163
  # @return [Fixnum]
57625
59164
  attr_accessor :connection_limit
57626
59165
 
59166
+ # The URL for the PSC endpoint to accept
59167
+ # Corresponds to the JSON property `endpointUrl`
59168
+ # @return [String]
59169
+ attr_accessor :endpoint_url
59170
+
57627
59171
  # The network URL for the network to set the limit for.
57628
59172
  # Corresponds to the JSON property `networkUrl`
57629
59173
  # @return [String]
@@ -57641,6 +59185,7 @@ module Google
57641
59185
  # Update properties of this object
57642
59186
  def update!(**args)
57643
59187
  @connection_limit = args[:connection_limit] if args.key?(:connection_limit)
59188
+ @endpoint_url = args[:endpoint_url] if args.key?(:endpoint_url)
57644
59189
  @network_url = args[:network_url] if args.key?(:network_url)
57645
59190
  @project_id_or_num = args[:project_id_or_num] if args.key?(:project_id_or_num)
57646
59191
  end
@@ -68680,6 +70225,97 @@ module Google
68680
70225
  end
68681
70226
  end
68682
70227
 
70228
+ #
70229
+ class VmExtensionPoliciesScopedList
70230
+ include Google::Apis::Core::Hashable
70231
+
70232
+ # List of VmExtensionPolicy resources contained in this scope.
70233
+ # Corresponds to the JSON property `vmExtensionPolicies`
70234
+ # @return [Array<Google::Apis::ComputeAlpha::VmExtensionPolicy>]
70235
+ attr_accessor :vm_extension_policies
70236
+
70237
+ # Informational warning which replaces the list of backend services when the
70238
+ # list is empty.
70239
+ # Corresponds to the JSON property `warning`
70240
+ # @return [Google::Apis::ComputeAlpha::VmExtensionPoliciesScopedList::Warning]
70241
+ attr_accessor :warning
70242
+
70243
+ def initialize(**args)
70244
+ update!(**args)
70245
+ end
70246
+
70247
+ # Update properties of this object
70248
+ def update!(**args)
70249
+ @vm_extension_policies = args[:vm_extension_policies] if args.key?(:vm_extension_policies)
70250
+ @warning = args[:warning] if args.key?(:warning)
70251
+ end
70252
+
70253
+ # Informational warning which replaces the list of backend services when the
70254
+ # list is empty.
70255
+ class Warning
70256
+ include Google::Apis::Core::Hashable
70257
+
70258
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
70259
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
70260
+ # Corresponds to the JSON property `code`
70261
+ # @return [String]
70262
+ attr_accessor :code
70263
+
70264
+ # [Output Only] Metadata about this warning in key: value format. For example: "
70265
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
70266
+ # Corresponds to the JSON property `data`
70267
+ # @return [Array<Google::Apis::ComputeAlpha::VmExtensionPoliciesScopedList::Warning::Datum>]
70268
+ attr_accessor :data
70269
+
70270
+ # [Output Only] A human-readable description of the warning code.
70271
+ # Corresponds to the JSON property `message`
70272
+ # @return [String]
70273
+ attr_accessor :message
70274
+
70275
+ def initialize(**args)
70276
+ update!(**args)
70277
+ end
70278
+
70279
+ # Update properties of this object
70280
+ def update!(**args)
70281
+ @code = args[:code] if args.key?(:code)
70282
+ @data = args[:data] if args.key?(:data)
70283
+ @message = args[:message] if args.key?(:message)
70284
+ end
70285
+
70286
+ #
70287
+ class Datum
70288
+ include Google::Apis::Core::Hashable
70289
+
70290
+ # [Output Only] A key that provides more detail on the warning being returned.
70291
+ # For example, for warnings where there are no results in a list request for a
70292
+ # particular zone, this key might be scope and the key value might be the zone
70293
+ # name. Other examples might be a key indicating a deprecated resource and a
70294
+ # suggested replacement, or a warning about invalid network settings (for
70295
+ # example, if an instance attempts to perform IP forwarding but is not enabled
70296
+ # for IP forwarding).
70297
+ # Corresponds to the JSON property `key`
70298
+ # @return [String]
70299
+ attr_accessor :key
70300
+
70301
+ # [Output Only] A warning data value corresponding to the key.
70302
+ # Corresponds to the JSON property `value`
70303
+ # @return [String]
70304
+ attr_accessor :value
70305
+
70306
+ def initialize(**args)
70307
+ update!(**args)
70308
+ end
70309
+
70310
+ # Update properties of this object
70311
+ def update!(**args)
70312
+ @key = args[:key] if args.key?(:key)
70313
+ @value = args[:value] if args.key?(:value)
70314
+ end
70315
+ end
70316
+ end
70317
+ end
70318
+
68683
70319
  # Represents a VM extension policy.
68684
70320
  class VmExtensionPolicy
68685
70321
  include Google::Apis::Core::Hashable
@@ -68793,6 +70429,136 @@ module Google
68793
70429
  end
68794
70430
  end
68795
70431
 
70432
+ # Response for the aggregated list of VM extension policies.
70433
+ class VmExtensionPolicyAggregatedListResponse
70434
+ include Google::Apis::Core::Hashable
70435
+
70436
+ #
70437
+ # Corresponds to the JSON property `etag`
70438
+ # @return [String]
70439
+ attr_accessor :etag
70440
+
70441
+ # [Output Only] Unique identifier for the resource; defined by the server.
70442
+ # Corresponds to the JSON property `id`
70443
+ # @return [String]
70444
+ attr_accessor :id
70445
+
70446
+ # A list of VmExtensionPoliciesScopedList resources.
70447
+ # Corresponds to the JSON property `items`
70448
+ # @return [Hash<String,Google::Apis::ComputeAlpha::VmExtensionPoliciesScopedList>]
70449
+ attr_accessor :items
70450
+
70451
+ # [Output Only] Type of resource. Always compute#VmExtensionPolicyAggregatedList
70452
+ # for lists of VmExtensionPolicies.
70453
+ # Corresponds to the JSON property `kind`
70454
+ # @return [String]
70455
+ attr_accessor :kind
70456
+
70457
+ # [Output Only] This token allows you to get the next page of results for list
70458
+ # requests. If the number of results is larger than maxResults, use the
70459
+ # nextPageToken as a value for the query parameter pageToken in the next list
70460
+ # request. Subsequent list requests will have their own nextPageToken to
70461
+ # continue paging through the results.
70462
+ # Corresponds to the JSON property `nextPageToken`
70463
+ # @return [String]
70464
+ attr_accessor :next_page_token
70465
+
70466
+ # [Output Only] Server-defined URL for this resource.
70467
+ # Corresponds to the JSON property `selfLink`
70468
+ # @return [String]
70469
+ attr_accessor :self_link
70470
+
70471
+ # [Output Only] Unreachable resources.
70472
+ # Corresponds to the JSON property `unreachables`
70473
+ # @return [Array<String>]
70474
+ attr_accessor :unreachables
70475
+
70476
+ # [Output Only] Informational warning message.
70477
+ # Corresponds to the JSON property `warning`
70478
+ # @return [Google::Apis::ComputeAlpha::VmExtensionPolicyAggregatedListResponse::Warning]
70479
+ attr_accessor :warning
70480
+
70481
+ def initialize(**args)
70482
+ update!(**args)
70483
+ end
70484
+
70485
+ # Update properties of this object
70486
+ def update!(**args)
70487
+ @etag = args[:etag] if args.key?(:etag)
70488
+ @id = args[:id] if args.key?(:id)
70489
+ @items = args[:items] if args.key?(:items)
70490
+ @kind = args[:kind] if args.key?(:kind)
70491
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
70492
+ @self_link = args[:self_link] if args.key?(:self_link)
70493
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
70494
+ @warning = args[:warning] if args.key?(:warning)
70495
+ end
70496
+
70497
+ # [Output Only] Informational warning message.
70498
+ class Warning
70499
+ include Google::Apis::Core::Hashable
70500
+
70501
+ # [Output Only] A warning code, if applicable. For example, Compute Engine
70502
+ # returns NO_RESULTS_ON_PAGE if there are no results in the response.
70503
+ # Corresponds to the JSON property `code`
70504
+ # @return [String]
70505
+ attr_accessor :code
70506
+
70507
+ # [Output Only] Metadata about this warning in key: value format. For example: "
70508
+ # data": [ ` "key": "scope", "value": "zones/us-east1-d" `
70509
+ # Corresponds to the JSON property `data`
70510
+ # @return [Array<Google::Apis::ComputeAlpha::VmExtensionPolicyAggregatedListResponse::Warning::Datum>]
70511
+ attr_accessor :data
70512
+
70513
+ # [Output Only] A human-readable description of the warning code.
70514
+ # Corresponds to the JSON property `message`
70515
+ # @return [String]
70516
+ attr_accessor :message
70517
+
70518
+ def initialize(**args)
70519
+ update!(**args)
70520
+ end
70521
+
70522
+ # Update properties of this object
70523
+ def update!(**args)
70524
+ @code = args[:code] if args.key?(:code)
70525
+ @data = args[:data] if args.key?(:data)
70526
+ @message = args[:message] if args.key?(:message)
70527
+ end
70528
+
70529
+ #
70530
+ class Datum
70531
+ include Google::Apis::Core::Hashable
70532
+
70533
+ # [Output Only] A key that provides more detail on the warning being returned.
70534
+ # For example, for warnings where there are no results in a list request for a
70535
+ # particular zone, this key might be scope and the key value might be the zone
70536
+ # name. Other examples might be a key indicating a deprecated resource and a
70537
+ # suggested replacement, or a warning about invalid network settings (for
70538
+ # example, if an instance attempts to perform IP forwarding but is not enabled
70539
+ # for IP forwarding).
70540
+ # Corresponds to the JSON property `key`
70541
+ # @return [String]
70542
+ attr_accessor :key
70543
+
70544
+ # [Output Only] A warning data value corresponding to the key.
70545
+ # Corresponds to the JSON property `value`
70546
+ # @return [String]
70547
+ attr_accessor :value
70548
+
70549
+ def initialize(**args)
70550
+ update!(**args)
70551
+ end
70552
+
70553
+ # Update properties of this object
70554
+ def update!(**args)
70555
+ @key = args[:key] if args.key?(:key)
70556
+ @value = args[:value] if args.key?(:value)
70557
+ end
70558
+ end
70559
+ end
70560
+ end
70561
+
68796
70562
  # Configuration for a specific VM extension.
68797
70563
  class VmExtensionPolicyExtensionPolicy
68798
70564
  include Google::Apis::Core::Hashable
@@ -71004,13 +72770,11 @@ module Google
71004
72770
 
71005
72771
  # The configuration of the bandwidth allocation, one of the following: -
71006
72772
  # ALLOCATE_PER_WIRE: configures a separate unmetered bandwidth allocation (and
71007
- # associated charges) for each wire in the group. - SHARED_WITH_WIRE_GROUP:
71008
- # configures one unmetered bandwidth allocation for the wire group. The
71009
- # unmetered bandwidth is divided equally across each wire in the group, but
71010
- # dynamic throttling reallocates unused unmetered bandwidth from unused or
71011
- # underused wires to other wires in the group. For example, with a four-wire box-
71012
- # and-cross group, when one Interconnect connection is down, the unmetered
71013
- # bandwidth of the two down wires is reallocated to the remaining up wires.
72773
+ # associated charges) for each wire in the group. - SHARED_WITH_WIRE_GROUP: this
72774
+ # is the default behavior, which configures one unmetered bandwidth allocation
72775
+ # for the wire group. The unmetered bandwidth is divided equally across each
72776
+ # wire in the group, but dynamic throttling reallocates unused unmetered
72777
+ # bandwidth from unused or underused wires to other wires in the group.
71014
72778
  # Corresponds to the JSON property `bandwidthAllocation`
71015
72779
  # @return [String]
71016
72780
  attr_accessor :bandwidth_allocation