google-apis-compute_beta 0.125.0 → 0.126.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.
@@ -101,6 +101,75 @@ module Google
101
101
  end
102
102
  end
103
103
 
104
+ # Info for accelerator topologies within a densely packed reservation.
105
+ class AcceleratorTopologiesInfo
106
+ include Google::Apis::Core::Hashable
107
+
108
+ # Info for each accelerator topology.
109
+ # Corresponds to the JSON property `acceleratorTopologyInfos`
110
+ # @return [Array<Google::Apis::ComputeBeta::AcceleratorTopologiesInfoAcceleratorTopologyInfo>]
111
+ attr_accessor :accelerator_topology_infos
112
+
113
+ def initialize(**args)
114
+ update!(**args)
115
+ end
116
+
117
+ # Update properties of this object
118
+ def update!(**args)
119
+ @accelerator_topology_infos = args[:accelerator_topology_infos] if args.key?(:accelerator_topology_infos)
120
+ end
121
+ end
122
+
123
+ # Info for a slice of a given topology.
124
+ class AcceleratorTopologiesInfoAcceleratorTopologyInfo
125
+ include Google::Apis::Core::Hashable
126
+
127
+ # The accelerator topology.
128
+ # Corresponds to the JSON property `acceleratorTopology`
129
+ # @return [String]
130
+ attr_accessor :accelerator_topology
131
+
132
+ # Info for each topology state.
133
+ # Corresponds to the JSON property `infoPerTopologyStates`
134
+ # @return [Array<Google::Apis::ComputeBeta::AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState>]
135
+ attr_accessor :info_per_topology_states
136
+
137
+ def initialize(**args)
138
+ update!(**args)
139
+ end
140
+
141
+ # Update properties of this object
142
+ def update!(**args)
143
+ @accelerator_topology = args[:accelerator_topology] if args.key?(:accelerator_topology)
144
+ @info_per_topology_states = args[:info_per_topology_states] if args.key?(:info_per_topology_states)
145
+ end
146
+ end
147
+
148
+ # Info for each topology state.
149
+ class AcceleratorTopologiesInfoAcceleratorTopologyInfoInfoPerTopologyState
150
+ include Google::Apis::Core::Hashable
151
+
152
+ # The number of accelerator topologies in this state.
153
+ # Corresponds to the JSON property `count`
154
+ # @return [Fixnum]
155
+ attr_accessor :count
156
+
157
+ # The state of the accelerator topology.
158
+ # Corresponds to the JSON property `state`
159
+ # @return [String]
160
+ attr_accessor :state
161
+
162
+ def initialize(**args)
163
+ update!(**args)
164
+ end
165
+
166
+ # Update properties of this object
167
+ def update!(**args)
168
+ @count = args[:count] if args.key?(:count)
169
+ @state = args[:state] if args.key?(:state)
170
+ end
171
+ end
172
+
104
173
  # Represents an Accelerator Type resource.
105
174
  # Google Cloud Platform provides graphics processing units (accelerators) that
106
175
  # you can add to VM instances to improve or accelerate performance when working
@@ -3496,6 +3565,14 @@ module Google
3496
3565
  # @return [Google::Apis::ComputeBeta::BackendBucketParams]
3497
3566
  attr_accessor :params
3498
3567
 
3568
+ # [Output Only] URL of the region where the regional backend bucket
3569
+ # resides. This field is not applicable to global backend buckets.
3570
+ # You must specify this field as part of the HTTP request URL. It is
3571
+ # not settable as a field in the request body.
3572
+ # Corresponds to the JSON property `region`
3573
+ # @return [String]
3574
+ attr_accessor :region
3575
+
3499
3576
  # [Output Only] Server-defined URL for the resource.
3500
3577
  # Corresponds to the JSON property `selfLink`
3501
3578
  # @return [String]
@@ -3525,6 +3602,7 @@ module Google
3525
3602
  @load_balancing_scheme = args[:load_balancing_scheme] if args.key?(:load_balancing_scheme)
3526
3603
  @name = args[:name] if args.key?(:name)
3527
3604
  @params = args[:params] if args.key?(:params)
3605
+ @region = args[:region] if args.key?(:region)
3528
3606
  @self_link = args[:self_link] if args.key?(:self_link)
3529
3607
  @used_by = args[:used_by] if args.key?(:used_by)
3530
3608
  end
@@ -3883,7 +3961,7 @@ module Google
3883
3961
  include Google::Apis::Core::Hashable
3884
3962
 
3885
3963
  # The HTTP status code to define a TTL against. Only HTTP status codes
3886
- # 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be
3964
+ # 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 can be
3887
3965
  # specified as values, and you cannot specify a status code more than
3888
3966
  # once.
3889
3967
  # Corresponds to the JSON property `code`
@@ -4325,8 +4403,8 @@ module Google
4325
4403
  attr_accessor :max_utilization
4326
4404
 
4327
4405
  # Name of a custom utilization signal. The name must be 1-64 characters
4328
- # long and match the regular expression[a-z]([-_.a-z0-9]*[a-z0-9])? which means
4329
- # that the
4406
+ # long and match the regular expression
4407
+ # `[a-z]([-_.a-z0-9]*[a-z0-9])?` which means that the
4330
4408
  # first character must be a lowercase letter, and all following
4331
4409
  # characters must be a dash, period, underscore, lowercase letter, or
4332
4410
  # digit, except the last character, which cannot be a dash, period, or
@@ -5268,7 +5346,7 @@ module Google
5268
5346
  include Google::Apis::Core::Hashable
5269
5347
 
5270
5348
  # The HTTP status code to define a TTL against. Only HTTP status codes
5271
- # 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are can be
5349
+ # 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 can be
5272
5350
  # specified as values, and you cannot specify a status code more than
5273
5351
  # once.
5274
5352
  # Corresponds to the JSON property `code`
@@ -5390,8 +5468,8 @@ module Google
5390
5468
  alias_method :dry_run?, :dry_run
5391
5469
 
5392
5470
  # Name of a custom utilization signal. The name must be 1-64 characters
5393
- # long and match the regular expression[a-z]([-_.a-z0-9]*[a-z0-9])? which means
5394
- # that the
5471
+ # long and match the regular expression
5472
+ # `[a-z]([-_.a-z0-9]*[a-z0-9])?` which means that the
5395
5473
  # first character must be a lowercase letter, and all following
5396
5474
  # characters must be a dash, period, underscore, lowercase letter, or
5397
5475
  # digit, except the last character, which cannot be a dash, period, or
@@ -6315,6 +6393,39 @@ module Google
6315
6393
  # @return [String]
6316
6394
  attr_accessor :authentication_config
6317
6395
 
6396
+ # Assigns the Managed Identity for the BackendService Workload.
6397
+ # Use this property to configure the load balancer back-end to use
6398
+ # certificates and roots of trust provisioned by the Managed Workload
6399
+ # Identity system.
6400
+ # The `identity` property is the
6401
+ # fully-specified SPIFFE ID to use in the SVID presented by the Load
6402
+ # Balancer Workload.
6403
+ # The SPIFFE ID must be a resource starting with the
6404
+ # `trustDomain` property value, followed by the path to the Managed
6405
+ # Workload Identity.
6406
+ # Supported SPIFFE ID format:
6407
+ #
6408
+ # - //<trust_domain>/ns/<namespace>/sa/<subject>
6409
+ # The Trust Domain within the Managed Identity must refer to a valid
6410
+ # Workload Identity Pool. The TrustConfig and CertificateIssuanceConfig
6411
+ # will be inherited from the Workload Identity Pool.
6412
+ # Restrictions:
6413
+ #
6414
+ # - If you set the `identity` property, you cannot manually set
6415
+ # the following fields:
6416
+ # - tlsSettings.sni
6417
+ # - tlsSettings.subjectAltNames
6418
+ # - tlsSettings.authenticationConfig
6419
+ #
6420
+ # When defining a `identity` for a RegionBackendServices, the
6421
+ # corresponding Workload Identity Pool must have a ca_pool
6422
+ # configured in the same region.
6423
+ # The system will set up a read-onlytlsSettings.authenticationConfig for the
6424
+ # Managed Identity.
6425
+ # Corresponds to the JSON property `identity`
6426
+ # @return [String]
6427
+ attr_accessor :identity
6428
+
6318
6429
  # Server Name Indication - see RFC3546 section 3.1. If set, the load
6319
6430
  # balancer sends this string as the SNI hostname in the TLS connection to
6320
6431
  # the backend, and requires that this string match a Subject Alternative
@@ -6346,6 +6457,7 @@ module Google
6346
6457
  # Update properties of this object
6347
6458
  def update!(**args)
6348
6459
  @authentication_config = args[:authentication_config] if args.key?(:authentication_config)
6460
+ @identity = args[:identity] if args.key?(:identity)
6349
6461
  @sni = args[:sni] if args.key?(:sni)
6350
6462
  @subject_alt_names = args[:subject_alt_names] if args.key?(:subject_alt_names)
6351
6463
  end
@@ -8253,6 +8365,11 @@ module Google
8253
8365
  # @return [String]
8254
8366
  attr_accessor :self_link
8255
8367
 
8368
+ # [Output Only] Unreachable resources.
8369
+ # Corresponds to the JSON property `unreachables`
8370
+ # @return [Array<String>]
8371
+ attr_accessor :unreachables
8372
+
8256
8373
  # [Output Only] Informational warning message.
8257
8374
  # Corresponds to the JSON property `warning`
8258
8375
  # @return [Google::Apis::ComputeBeta::CompositeHealthCheckAggregatedList::Warning]
@@ -8269,6 +8386,7 @@ module Google
8269
8386
  @kind = args[:kind] if args.key?(:kind)
8270
8387
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
8271
8388
  @self_link = args[:self_link] if args.key?(:self_link)
8389
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
8272
8390
  @warning = args[:warning] if args.key?(:warning)
8273
8391
  end
8274
8392
 
@@ -15758,6 +15876,324 @@ module Google
15758
15876
  end
15759
15877
  end
15760
15878
 
15879
+ # Message describing GlobalVmExtensionPolicy object.
15880
+ class GlobalVmExtensionPolicy
15881
+ include Google::Apis::Core::Hashable
15882
+
15883
+ # [Output Only] Creation timestamp inRFC3339
15884
+ # text format.
15885
+ # Corresponds to the JSON property `creationTimestamp`
15886
+ # @return [String]
15887
+ attr_accessor :creation_timestamp
15888
+
15889
+ # An optional description of this resource. Provide this property when you
15890
+ # create the resource.
15891
+ # Corresponds to the JSON property `description`
15892
+ # @return [String]
15893
+ attr_accessor :description
15894
+
15895
+ # Required. Map from extension (eg: "cloudops") to its policy configuration.
15896
+ # The key is the name of the extension.
15897
+ # Corresponds to the JSON property `extensionPolicies`
15898
+ # @return [Hash<String,Google::Apis::ComputeBeta::GlobalVmExtensionPolicyExtensionPolicy>]
15899
+ attr_accessor :extension_policies
15900
+
15901
+ # [Output Only] The unique identifier for the resource. This identifier is
15902
+ # defined by the server.
15903
+ # Corresponds to the JSON property `id`
15904
+ # @return [Fixnum]
15905
+ attr_accessor :id
15906
+
15907
+ # Optional. Selector to target VMs for a policy.
15908
+ # There is a logical "AND" between instance_selectors.
15909
+ # Corresponds to the JSON property `instanceSelectors`
15910
+ # @return [Array<Google::Apis::ComputeBeta::GlobalVmExtensionPolicyInstanceSelector>]
15911
+ attr_accessor :instance_selectors
15912
+
15913
+ # [Output Only] Type of the resource. Alwayscompute#globalVmExtensionPolicy for
15914
+ # globalVmExtensionPolicies.
15915
+ # Corresponds to the JSON property `kind`
15916
+ # @return [String]
15917
+ attr_accessor :kind
15918
+
15919
+ # Name of the resource. Provided by the client when the resource is created.
15920
+ # The name must be 1-63 characters long, and comply withRFC1035.
15921
+ # Specifically, the name must be 1-63 characters long and match the regular
15922
+ # expression `[a-z]([-a-z0-9]*[a-z0-9])?`
15923
+ # which means the first character must be a lowercase letter, and all
15924
+ # following characters must be a dash, lowercase letter, or digit, except
15925
+ # the last character, which cannot be a dash.
15926
+ # Corresponds to the JSON property `name`
15927
+ # @return [String]
15928
+ attr_accessor :name
15929
+
15930
+ # Optional. Used to resolve conflicts when multiple policies are active for the
15931
+ # same
15932
+ # extension. Defaults to 0.
15933
+ # Larger the number, higher the priority. When the priority is the same,
15934
+ # the policy with the newer create time has higher priority.
15935
+ # Corresponds to the JSON property `priority`
15936
+ # @return [Fixnum]
15937
+ attr_accessor :priority
15938
+
15939
+ # Represents the rollout operation
15940
+ # Corresponds to the JSON property `rolloutOperation`
15941
+ # @return [Google::Apis::ComputeBeta::GlobalVmExtensionPolicyRolloutOperation]
15942
+ attr_accessor :rollout_operation
15943
+
15944
+ # [Output Only] The scoped resource status. It's only for tracking the
15945
+ # purging status of the policy.
15946
+ # Corresponds to the JSON property `scopedResourceStatus`
15947
+ # @return [String]
15948
+ attr_accessor :scoped_resource_status
15949
+
15950
+ # [Output Only] Server-defined fully-qualified URL for this resource.
15951
+ # Corresponds to the JSON property `selfLink`
15952
+ # @return [String]
15953
+ attr_accessor :self_link
15954
+
15955
+ # [Output Only] Server-defined URL for this resource's resource id.
15956
+ # Corresponds to the JSON property `selfLinkWithId`
15957
+ # @return [String]
15958
+ attr_accessor :self_link_with_id
15959
+
15960
+ # [Output Only] Update timestamp inRFC3339
15961
+ # text format.
15962
+ # Corresponds to the JSON property `updateTimestamp`
15963
+ # @return [String]
15964
+ attr_accessor :update_timestamp
15965
+
15966
+ def initialize(**args)
15967
+ update!(**args)
15968
+ end
15969
+
15970
+ # Update properties of this object
15971
+ def update!(**args)
15972
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
15973
+ @description = args[:description] if args.key?(:description)
15974
+ @extension_policies = args[:extension_policies] if args.key?(:extension_policies)
15975
+ @id = args[:id] if args.key?(:id)
15976
+ @instance_selectors = args[:instance_selectors] if args.key?(:instance_selectors)
15977
+ @kind = args[:kind] if args.key?(:kind)
15978
+ @name = args[:name] if args.key?(:name)
15979
+ @priority = args[:priority] if args.key?(:priority)
15980
+ @rollout_operation = args[:rollout_operation] if args.key?(:rollout_operation)
15981
+ @scoped_resource_status = args[:scoped_resource_status] if args.key?(:scoped_resource_status)
15982
+ @self_link = args[:self_link] if args.key?(:self_link)
15983
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
15984
+ @update_timestamp = args[:update_timestamp] if args.key?(:update_timestamp)
15985
+ end
15986
+ end
15987
+
15988
+ # Policy for a single extension.
15989
+ class GlobalVmExtensionPolicyExtensionPolicy
15990
+ include Google::Apis::Core::Hashable
15991
+
15992
+ # Optional. The version pinning for the extension.
15993
+ # If empty, the extension will be installed with the latest version
15994
+ # released by the extension producer.
15995
+ # Corresponds to the JSON property `pinnedVersion`
15996
+ # @return [String]
15997
+ attr_accessor :pinned_version
15998
+
15999
+ # Optional. String configuration. Any string payload that the extension
16000
+ # understands.
16001
+ # Corresponds to the JSON property `stringConfig`
16002
+ # @return [String]
16003
+ attr_accessor :string_config
16004
+
16005
+ def initialize(**args)
16006
+ update!(**args)
16007
+ end
16008
+
16009
+ # Update properties of this object
16010
+ def update!(**args)
16011
+ @pinned_version = args[:pinned_version] if args.key?(:pinned_version)
16012
+ @string_config = args[:string_config] if args.key?(:string_config)
16013
+ end
16014
+ end
16015
+
16016
+ # Selector to target VMs for a zone VM extension policy.
16017
+ class GlobalVmExtensionPolicyInstanceSelector
16018
+ include Google::Apis::Core::Hashable
16019
+
16020
+ # A LabelSelector is applicable for a VM only if it matches all labels in
16021
+ # the LabelSelector.
16022
+ # Corresponds to the JSON property `labelSelector`
16023
+ # @return [Google::Apis::ComputeBeta::GlobalVmExtensionPolicyLabelSelector]
16024
+ attr_accessor :label_selector
16025
+
16026
+ def initialize(**args)
16027
+ update!(**args)
16028
+ end
16029
+
16030
+ # Update properties of this object
16031
+ def update!(**args)
16032
+ @label_selector = args[:label_selector] if args.key?(:label_selector)
16033
+ end
16034
+ end
16035
+
16036
+ # A LabelSelector is applicable for a VM only if it matches all labels in
16037
+ # the LabelSelector.
16038
+ class GlobalVmExtensionPolicyLabelSelector
16039
+ include Google::Apis::Core::Hashable
16040
+
16041
+ # Optional. Labels as key value pairs.
16042
+ # A VM should contain all the pairs specified in this map to be selected;
16043
+ # Labels within the LabelSelector are OR'ed.
16044
+ # Corresponds to the JSON property `inclusionLabels`
16045
+ # @return [Hash<String,String>]
16046
+ attr_accessor :inclusion_labels
16047
+
16048
+ def initialize(**args)
16049
+ update!(**args)
16050
+ end
16051
+
16052
+ # Update properties of this object
16053
+ def update!(**args)
16054
+ @inclusion_labels = args[:inclusion_labels] if args.key?(:inclusion_labels)
16055
+ end
16056
+ end
16057
+
16058
+ # Represents the rollout operation
16059
+ class GlobalVmExtensionPolicyRolloutOperation
16060
+ include Google::Apis::Core::Hashable
16061
+
16062
+ # Required. The rollout input which defines the rollout plan.
16063
+ # Corresponds to the JSON property `rolloutInput`
16064
+ # @return [Google::Apis::ComputeBeta::GlobalVmExtensionPolicyRolloutOperationRolloutInput]
16065
+ attr_accessor :rollout_input
16066
+
16067
+ # [Output Only] The rollout status of the policy.
16068
+ # Corresponds to the JSON property `rolloutStatus`
16069
+ # @return [Google::Apis::ComputeBeta::GlobalVmExtensionPolicyRolloutOperationRolloutStatus]
16070
+ attr_accessor :rollout_status
16071
+
16072
+ def initialize(**args)
16073
+ update!(**args)
16074
+ end
16075
+
16076
+ # Update properties of this object
16077
+ def update!(**args)
16078
+ @rollout_input = args[:rollout_input] if args.key?(:rollout_input)
16079
+ @rollout_status = args[:rollout_status] if args.key?(:rollout_status)
16080
+ end
16081
+ end
16082
+
16083
+ #
16084
+ class GlobalVmExtensionPolicyRolloutOperationRolloutInput
16085
+ include Google::Apis::Core::Hashable
16086
+
16087
+ # Optional. [Optional] Specifies the behavior of the Rollout if a conflict is
16088
+ # detected in a project during a Rollout. It can be one of the following
16089
+ # values:
16090
+ # 1) empty : don't overwrite the local value if conflict happens. This is
16091
+ # the default behavior.
16092
+ # 2) "overwrite" : Overwrite the local value with the rollout value.
16093
+ # The concept of "conflict" applies to:
16094
+ # 1) Insert action. If the zonal policy already exists when Insert
16095
+ # happens, it's a conflict.
16096
+ # 2) Update action. If the zonal policy was updated out of band by a
16097
+ # zonal API, it's a conflict.
16098
+ # Corresponds to the JSON property `conflictBehavior`
16099
+ # @return [String]
16100
+ attr_accessor :conflict_behavior
16101
+
16102
+ # Optional. The name of the rollout plan.
16103
+ # Ex.
16104
+ # projects//locations/global/rolloutPlans/.
16105
+ # Corresponds to the JSON property `name`
16106
+ # @return [String]
16107
+ attr_accessor :name
16108
+
16109
+ # Optional. Predefined rollout plan.
16110
+ # Corresponds to the JSON property `predefinedRolloutPlan`
16111
+ # @return [String]
16112
+ attr_accessor :predefined_rollout_plan
16113
+
16114
+ # Optional. The UUID of the retry action. Only set it if this is a retry
16115
+ # for an existing resource. This is for the user re-populate the resource
16116
+ # without changes. An error will be returned if the retry_uuid is set but
16117
+ # the resource get modified.
16118
+ # Corresponds to the JSON property `retryUuid`
16119
+ # @return [String]
16120
+ attr_accessor :retry_uuid
16121
+
16122
+ def initialize(**args)
16123
+ update!(**args)
16124
+ end
16125
+
16126
+ # Update properties of this object
16127
+ def update!(**args)
16128
+ @conflict_behavior = args[:conflict_behavior] if args.key?(:conflict_behavior)
16129
+ @name = args[:name] if args.key?(:name)
16130
+ @predefined_rollout_plan = args[:predefined_rollout_plan] if args.key?(:predefined_rollout_plan)
16131
+ @retry_uuid = args[:retry_uuid] if args.key?(:retry_uuid)
16132
+ end
16133
+ end
16134
+
16135
+ #
16136
+ class GlobalVmExtensionPolicyRolloutOperationRolloutStatus
16137
+ include Google::Apis::Core::Hashable
16138
+
16139
+ # [Output Only] The current rollouts for the latest version of the
16140
+ # resource. There should be only one current rollout, but for
16141
+ # scalability, we make it repeated.
16142
+ # Corresponds to the JSON property `currentRollouts`
16143
+ # @return [Array<Google::Apis::ComputeBeta::GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata>]
16144
+ attr_accessor :current_rollouts
16145
+
16146
+ # [Output Only] The last completed rollout resource. This field will not
16147
+ # be populated until the first rollout is completed.
16148
+ # Corresponds to the JSON property `previousRollout`
16149
+ # @return [Google::Apis::ComputeBeta::GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata]
16150
+ attr_accessor :previous_rollout
16151
+
16152
+ def initialize(**args)
16153
+ update!(**args)
16154
+ end
16155
+
16156
+ # Update properties of this object
16157
+ def update!(**args)
16158
+ @current_rollouts = args[:current_rollouts] if args.key?(:current_rollouts)
16159
+ @previous_rollout = args[:previous_rollout] if args.key?(:previous_rollout)
16160
+ end
16161
+ end
16162
+
16163
+ #
16164
+ class GlobalVmExtensionPolicyRolloutOperationRolloutStatusRolloutMetadata
16165
+ include Google::Apis::Core::Hashable
16166
+
16167
+ # [Output Only] The name of the rollout.
16168
+ # Ex. projects//locations/global/rollouts/.
16169
+ # Corresponds to the JSON property `rollout`
16170
+ # @return [String]
16171
+ attr_accessor :rollout
16172
+
16173
+ # [Output Only] The name of the rollout plan.
16174
+ # Ex.
16175
+ # projects//locations/global/rolloutPlans/.
16176
+ # Corresponds to the JSON property `rolloutPlan`
16177
+ # @return [String]
16178
+ attr_accessor :rollout_plan
16179
+
16180
+ # [Output Only] The overall state of the rollout.
16181
+ # Corresponds to the JSON property `state`
16182
+ # @return [String]
16183
+ attr_accessor :state
16184
+
16185
+ def initialize(**args)
16186
+ update!(**args)
16187
+ end
16188
+
16189
+ # Update properties of this object
16190
+ def update!(**args)
16191
+ @rollout = args[:rollout] if args.key?(:rollout)
16192
+ @rollout_plan = args[:rollout_plan] if args.key?(:rollout_plan)
16193
+ @state = args[:state] if args.key?(:state)
16194
+ end
16195
+ end
16196
+
15761
16197
  # Maintenance Info for ReservationBlocks.
15762
16198
  class GroupMaintenanceInfo
15763
16199
  include Google::Apis::Core::Hashable
@@ -17771,6 +18207,11 @@ module Google
17771
18207
  # @return [String]
17772
18208
  attr_accessor :self_link
17773
18209
 
18210
+ # [Output Only] Unreachable resources.
18211
+ # Corresponds to the JSON property `unreachables`
18212
+ # @return [Array<String>]
18213
+ attr_accessor :unreachables
18214
+
17774
18215
  # [Output Only] Informational warning message.
17775
18216
  # Corresponds to the JSON property `warning`
17776
18217
  # @return [Google::Apis::ComputeBeta::HealthSourceAggregatedList::Warning]
@@ -17787,6 +18228,7 @@ module Google
17787
18228
  @kind = args[:kind] if args.key?(:kind)
17788
18229
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
17789
18230
  @self_link = args[:self_link] if args.key?(:self_link)
18231
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
17790
18232
  @warning = args[:warning] if args.key?(:warning)
17791
18233
  end
17792
18234
 
@@ -22034,6 +22476,12 @@ module Google
22034
22476
  include Google::Apis::Core::Hashable
22035
22477
 
22036
22478
  # Specifies whether the MIG can change a VM's zone during a repair.
22479
+ # Valid values are:
22480
+ #
22481
+ # - NO (default): MIG cannot change a VM's zone during a
22482
+ # repair.
22483
+ # - YES: MIG can select a different zone for the VM during
22484
+ # a repair.
22037
22485
  # Corresponds to the JSON property `allowChangingZone`
22038
22486
  # @return [String]
22039
22487
  attr_accessor :allow_changing_zone
@@ -23471,6 +23919,51 @@ module Google
23471
23919
  end
23472
23920
  end
23473
23921
 
23922
+ #
23923
+ class InstanceGroupManagersGetAvailableAcceleratorTopologiesResponse
23924
+ include Google::Apis::Core::Hashable
23925
+
23926
+ # The accelerator topology information returned per id of the topology
23927
+ # location.
23928
+ # Corresponds to the JSON property `acceleratorTopologiesInfo`
23929
+ # @return [Hash<String,Google::Apis::ComputeBeta::InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo>]
23930
+ attr_accessor :accelerator_topologies_info
23931
+
23932
+ def initialize(**args)
23933
+ update!(**args)
23934
+ end
23935
+
23936
+ # Update properties of this object
23937
+ def update!(**args)
23938
+ @accelerator_topologies_info = args[:accelerator_topologies_info] if args.key?(:accelerator_topologies_info)
23939
+ end
23940
+ end
23941
+
23942
+ #
23943
+ class InstanceGroupManagersGetAvailableAcceleratorTopologiesResponseAcceleratorTopologyInfo
23944
+ include Google::Apis::Core::Hashable
23945
+
23946
+ # Topology in the format of: "16x16", "4x4x4", etc.
23947
+ # Corresponds to the JSON property `acceleratorTopology`
23948
+ # @return [String]
23949
+ attr_accessor :accelerator_topology
23950
+
23951
+ #
23952
+ # Corresponds to the JSON property `acceleratorTopologyHealth`
23953
+ # @return [String]
23954
+ attr_accessor :accelerator_topology_health
23955
+
23956
+ def initialize(**args)
23957
+ update!(**args)
23958
+ end
23959
+
23960
+ # Update properties of this object
23961
+ def update!(**args)
23962
+ @accelerator_topology = args[:accelerator_topology] if args.key?(:accelerator_topology)
23963
+ @accelerator_topology_health = args[:accelerator_topology_health] if args.key?(:accelerator_topology_health)
23964
+ end
23965
+ end
23966
+
23474
23967
  #
23475
23968
  class InstanceGroupManagersListErrorsResponse
23476
23969
  include Google::Apis::Core::Hashable
@@ -27347,6 +27840,11 @@ module Google
27347
27840
  # @return [String]
27348
27841
  attr_accessor :kind
27349
27842
 
27843
+ # L2 Interconnect Attachment related configuration.
27844
+ # Corresponds to the JSON property `l2Forwarding`
27845
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentL2Forwarding]
27846
+ attr_accessor :l2_forwarding
27847
+
27350
27848
  # A fingerprint for the labels being applied to this InterconnectAttachment,
27351
27849
  # which is essentially a hash of the labels set used for optimistic locking.
27352
27850
  # The fingerprint is initially generated by Compute Engine and changes after
@@ -27530,6 +28028,7 @@ module Google
27530
28028
  # customer.
27531
28029
  # - PARTNER_PROVIDER: an attachment to a Partner Interconnect, created by
27532
28030
  # the partner.
28031
+ # - L2_DEDICATED: a L2 attachment to a Dedicated Interconnect.
27533
28032
  # Corresponds to the JSON property `type`
27534
28033
  # @return [String]
27535
28034
  attr_accessor :type
@@ -27572,6 +28071,7 @@ module Google
27572
28071
  @interconnect = args[:interconnect] if args.key?(:interconnect)
27573
28072
  @ipsec_internal_addresses = args[:ipsec_internal_addresses] if args.key?(:ipsec_internal_addresses)
27574
28073
  @kind = args[:kind] if args.key?(:kind)
28074
+ @l2_forwarding = args[:l2_forwarding] if args.key?(:l2_forwarding)
27575
28075
  @label_fingerprint = args[:label_fingerprint] if args.key?(:label_fingerprint)
27576
28076
  @labels = args[:labels] if args.key?(:labels)
27577
28077
  @mtu = args[:mtu] if args.key?(:mtu)
@@ -28435,47 +28935,47 @@ module Google
28435
28935
  end
28436
28936
  end
28437
28937
 
28438
- # Response to the list request, and contains a list of interconnect
28439
- # attachments.
28440
- class InterconnectAttachmentList
28938
+ # L2 Interconnect Attachment related configuration.
28939
+ class InterconnectAttachmentL2Forwarding
28441
28940
  include Google::Apis::Core::Hashable
28442
28941
 
28443
- # [Output Only] Unique identifier for the resource; defined by the server.
28444
- # Corresponds to the JSON property `id`
28445
- # @return [String]
28446
- attr_accessor :id
28447
-
28448
- # A list of InterconnectAttachment resources.
28449
- # Corresponds to the JSON property `items`
28450
- # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachment>]
28451
- attr_accessor :items
28942
+ # Optional. A map of VLAN tags to appliances and optional inner mapping
28943
+ # rules. If VLANs are not explicitly mapped to any appliance, the
28944
+ # defaultApplianceIpAddress is used.
28945
+ # Each VLAN tag can be a single number or a range of numbers in the range
28946
+ # of 1 to 4094, e.g., "1" or "4001-4094". Non-empty and non-overlapping
28947
+ # VLAN tag ranges are enforced, and violating operations will be rejected.
28948
+ # The VLAN tags in the Ethernet header must use an ethertype value of
28949
+ # 0x88A8 or 0x8100.
28950
+ # Corresponds to the JSON property `applianceMappings`
28951
+ # @return [Hash<String,Google::Apis::ComputeBeta::InterconnectAttachmentL2ForwardingApplianceMapping>]
28952
+ attr_accessor :appliance_mappings
28452
28953
 
28453
- # [Output Only] Type of resource. Alwayscompute#interconnectAttachmentList for
28454
- # lists of interconnect
28455
- # attachments.
28456
- # Corresponds to the JSON property `kind`
28954
+ # Optional. A single IPv4 or IPv6 address used as the default destination
28955
+ # IP when there is no VLAN mapping result found.
28956
+ # Unset field (null-value) indicates the unmatched packet should be
28957
+ # dropped.
28958
+ # Corresponds to the JSON property `defaultApplianceIpAddress`
28457
28959
  # @return [String]
28458
- attr_accessor :kind
28960
+ attr_accessor :default_appliance_ip_address
28459
28961
 
28460
- # [Output Only] This token allows you to get the next page of results for
28461
- # list requests. If the number of results is larger thanmaxResults, use the
28462
- # nextPageToken as a value for
28463
- # the query parameter pageToken in the next list request.
28464
- # Subsequent list requests will have their own nextPageToken to
28465
- # continue paging through the results.
28466
- # Corresponds to the JSON property `nextPageToken`
28467
- # @return [String]
28468
- attr_accessor :next_page_token
28962
+ # GeneveHeader related configurations.
28963
+ # Corresponds to the JSON property `geneveHeader`
28964
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentL2ForwardingGeneveHeader]
28965
+ attr_accessor :geneve_header
28469
28966
 
28470
- # [Output Only] Server-defined URL for this resource.
28471
- # Corresponds to the JSON property `selfLink`
28967
+ # Required. Resource URL of the network to which this attachment belongs.
28968
+ # Corresponds to the JSON property `network`
28472
28969
  # @return [String]
28473
- attr_accessor :self_link
28970
+ attr_accessor :network
28474
28971
 
28475
- # [Output Only] Informational warning message.
28476
- # Corresponds to the JSON property `warning`
28477
- # @return [Google::Apis::ComputeBeta::InterconnectAttachmentList::Warning]
28478
- attr_accessor :warning
28972
+ # Required. A single IPv4 or IPv6 address. This address will be used as the
28973
+ # source IP address for packets sent to the appliances, and must be used as
28974
+ # the destination IP address for packets that should be sent out through
28975
+ # this attachment.
28976
+ # Corresponds to the JSON property `tunnelEndpointIpAddress`
28977
+ # @return [String]
28978
+ attr_accessor :tunnel_endpoint_ip_address
28479
28979
 
28480
28980
  def initialize(**args)
28481
28981
  update!(**args)
@@ -28483,106 +28983,40 @@ module Google
28483
28983
 
28484
28984
  # Update properties of this object
28485
28985
  def update!(**args)
28486
- @id = args[:id] if args.key?(:id)
28487
- @items = args[:items] if args.key?(:items)
28488
- @kind = args[:kind] if args.key?(:kind)
28489
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
28490
- @self_link = args[:self_link] if args.key?(:self_link)
28491
- @warning = args[:warning] if args.key?(:warning)
28492
- end
28493
-
28494
- # [Output Only] Informational warning message.
28495
- class Warning
28496
- include Google::Apis::Core::Hashable
28497
-
28498
- # [Output Only] A warning code, if applicable. For example, Compute
28499
- # Engine returns NO_RESULTS_ON_PAGE if there
28500
- # are no results in the response.
28501
- # Corresponds to the JSON property `code`
28502
- # @return [String]
28503
- attr_accessor :code
28504
-
28505
- # [Output Only] Metadata about this warning in key:
28506
- # value format. For example:
28507
- # "data": [
28508
- # `
28509
- # "key": "scope",
28510
- # "value": "zones/us-east1-d"
28511
- # `
28512
- # Corresponds to the JSON property `data`
28513
- # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentList::Warning::Datum>]
28514
- attr_accessor :data
28515
-
28516
- # [Output Only] A human-readable description of the warning code.
28517
- # Corresponds to the JSON property `message`
28518
- # @return [String]
28519
- attr_accessor :message
28520
-
28521
- def initialize(**args)
28522
- update!(**args)
28523
- end
28524
-
28525
- # Update properties of this object
28526
- def update!(**args)
28527
- @code = args[:code] if args.key?(:code)
28528
- @data = args[:data] if args.key?(:data)
28529
- @message = args[:message] if args.key?(:message)
28530
- end
28531
-
28532
- #
28533
- class Datum
28534
- include Google::Apis::Core::Hashable
28535
-
28536
- # [Output Only] A key that provides more detail on the warning being
28537
- # returned. For example, for warnings where there are no results in a list
28538
- # request for a particular zone, this key might be scope and
28539
- # the key value might be the zone name. Other examples might be a key
28540
- # indicating a deprecated resource and a suggested replacement, or a
28541
- # warning about invalid network settings (for example, if an instance
28542
- # attempts to perform IP forwarding but is not enabled for IP forwarding).
28543
- # Corresponds to the JSON property `key`
28544
- # @return [String]
28545
- attr_accessor :key
28546
-
28547
- # [Output Only] A warning data value corresponding to the key.
28548
- # Corresponds to the JSON property `value`
28549
- # @return [String]
28550
- attr_accessor :value
28551
-
28552
- def initialize(**args)
28553
- update!(**args)
28554
- end
28555
-
28556
- # Update properties of this object
28557
- def update!(**args)
28558
- @key = args[:key] if args.key?(:key)
28559
- @value = args[:value] if args.key?(:value)
28560
- end
28561
- end
28986
+ @appliance_mappings = args[:appliance_mappings] if args.key?(:appliance_mappings)
28987
+ @default_appliance_ip_address = args[:default_appliance_ip_address] if args.key?(:default_appliance_ip_address)
28988
+ @geneve_header = args[:geneve_header] if args.key?(:geneve_header)
28989
+ @network = args[:network] if args.key?(:network)
28990
+ @tunnel_endpoint_ip_address = args[:tunnel_endpoint_ip_address] if args.key?(:tunnel_endpoint_ip_address)
28562
28991
  end
28563
28992
  end
28564
28993
 
28565
- # Additional interconnect attachment parameters.
28566
- class InterconnectAttachmentParams
28994
+ # Two-level VLAN-to-Appliance mapping rule.
28995
+ class InterconnectAttachmentL2ForwardingApplianceMapping
28567
28996
  include Google::Apis::Core::Hashable
28568
28997
 
28569
- # Tag keys/values directly bound to this resource.
28570
- # Tag keys and values have the same definition as resource
28571
- # manager tags. The field is allowed for INSERT
28572
- # only. The keys/values to set on the resource should be specified in
28573
- # either ID ` : ` or Namespaced format
28574
- # ` : `.
28575
- # For example the following are valid inputs:
28576
- # * `"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"`
28577
- # * `"123/environment" : "production", "345/abc" : "xyz"`
28578
- # Note:
28579
- # * Invalid combinations of ID & namespaced format is not supported. For
28580
- # instance: `"123/environment" : "tagValues/444"` is invalid.
28581
- # * Inconsistent format is not supported. For instance:
28582
- # `"tagKeys/333" : "tagValues/444", "123/env" : "prod"` is invalid.
28583
- # Corresponds to the JSON property `resourceManagerTags`
28584
- # @return [Hash<String,String>]
28585
- attr_accessor :resource_manager_tags
28998
+ # Optional. A single IPv4 or IPv6 address used as the destination IP
28999
+ # address for ingress packets that match on a VLAN tag, but do not match
29000
+ # a more specific inner VLAN tag.
29001
+ # Unset field (null-value) indicates both VLAN tags are required to be
29002
+ # mapped. Otherwise, defaultApplianceIpAddress is used.
29003
+ # Corresponds to the JSON property `applianceIpAddress`
29004
+ # @return [String]
29005
+ attr_accessor :appliance_ip_address
29006
+
29007
+ # Optional. Used to match against the inner VLAN when the packet
29008
+ # contains two VLAN tags.
29009
+ # A list of mapping rules from inner VLAN tags to IP addresses. If the
29010
+ # inner VLAN is not explicitly mapped to an IP address range, the
29011
+ # applianceIpAddress is used.
29012
+ # Corresponds to the JSON property `innerVlanToApplianceMappings`
29013
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping>]
29014
+ attr_accessor :inner_vlan_to_appliance_mappings
29015
+
29016
+ # Optional. The name of this appliance mapping rule.
29017
+ # Corresponds to the JSON property `name`
29018
+ # @return [String]
29019
+ attr_accessor :name
28586
29020
 
28587
29021
  def initialize(**args)
28588
29022
  update!(**args)
@@ -28590,35 +29024,32 @@ module Google
28590
29024
 
28591
29025
  # Update properties of this object
28592
29026
  def update!(**args)
28593
- @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
29027
+ @appliance_ip_address = args[:appliance_ip_address] if args.key?(:appliance_ip_address)
29028
+ @inner_vlan_to_appliance_mappings = args[:inner_vlan_to_appliance_mappings] if args.key?(:inner_vlan_to_appliance_mappings)
29029
+ @name = args[:name] if args.key?(:name)
28594
29030
  end
28595
29031
  end
28596
29032
 
28597
- # Informational metadata about Partner attachments from Partners to display
28598
- # to customers. These fields are propagated from PARTNER_PROVIDER
28599
- # attachments to their corresponding PARTNER attachments.
28600
- class InterconnectAttachmentPartnerMetadata
29033
+ # The inner VLAN-to-Appliance mapping.
29034
+ class InterconnectAttachmentL2ForwardingApplianceMappingInnerVlanToApplianceMapping
28601
29035
  include Google::Apis::Core::Hashable
28602
29036
 
28603
- # Plain text name of the Interconnect this attachment is connected to, as
28604
- # displayed in the Partner's portal. For instance "Chicago 1".
28605
- # This value may be validated to match approved Partner values.
28606
- # Corresponds to the JSON property `interconnectName`
28607
- # @return [String]
28608
- attr_accessor :interconnect_name
28609
-
28610
- # Plain text name of the Partner providing this attachment.
28611
- # This value may be validated to match approved Partner values.
28612
- # Corresponds to the JSON property `partnerName`
29037
+ # Required in this object. A single IPv4 or IPv6 address used as the
29038
+ # destination IP address for ingress packets that match on both VLAN
29039
+ # tags.
29040
+ # Corresponds to the JSON property `innerApplianceIpAddress`
28613
29041
  # @return [String]
28614
- attr_accessor :partner_name
29042
+ attr_accessor :inner_appliance_ip_address
28615
29043
 
28616
- # URL of the Partner's portal for this Attachment. Partners may customise
28617
- # this to be a deep link to the specific resource on the Partner portal.
28618
- # This value may be validated to match approved Partner values.
28619
- # Corresponds to the JSON property `portalUrl`
28620
- # @return [String]
28621
- attr_accessor :portal_url
29044
+ # Required in this object. Used to match the inner VLAN tag on the
29045
+ # packet. Each entry can be a single number or a range of numbers in
29046
+ # the range of 1 to 4094, e.g., ["1", "4001-4094"] is valid. Non-empty
29047
+ # and Non-overlapping VLAN tag ranges are enforced, and violating
29048
+ # operations will be rejected.
29049
+ # The inner VLAN tags must have an ethertype value of 0x8100.
29050
+ # Corresponds to the JSON property `innerVlanTags`
29051
+ # @return [Array<String>]
29052
+ attr_accessor :inner_vlan_tags
28622
29053
 
28623
29054
  def initialize(**args)
28624
29055
  update!(**args)
@@ -28626,22 +29057,20 @@ module Google
28626
29057
 
28627
29058
  # Update properties of this object
28628
29059
  def update!(**args)
28629
- @interconnect_name = args[:interconnect_name] if args.key?(:interconnect_name)
28630
- @partner_name = args[:partner_name] if args.key?(:partner_name)
28631
- @portal_url = args[:portal_url] if args.key?(:portal_url)
29060
+ @inner_appliance_ip_address = args[:inner_appliance_ip_address] if args.key?(:inner_appliance_ip_address)
29061
+ @inner_vlan_tags = args[:inner_vlan_tags] if args.key?(:inner_vlan_tags)
28632
29062
  end
28633
29063
  end
28634
29064
 
28635
- # Information for an interconnect attachment when this belongs to an
28636
- # interconnect of type DEDICATED.
28637
- class InterconnectAttachmentPrivateInfo
29065
+ # GeneveHeader related configurations.
29066
+ class InterconnectAttachmentL2ForwardingGeneveHeader
28638
29067
  include Google::Apis::Core::Hashable
28639
29068
 
28640
- # [Output Only] 802.1q encapsulation tag to be used for traffic between
28641
- # Google and the customer, going to and from this network and region.
28642
- # Corresponds to the JSON property `tag8021q`
29069
+ # Optional. VNI is a 24-bit unique virtual network identifier, from 0 to
29070
+ # 16,777,215.
29071
+ # Corresponds to the JSON property `vni`
28643
29072
  # @return [Fixnum]
28644
- attr_accessor :tag8021q
29073
+ attr_accessor :vni
28645
29074
 
28646
29075
  def initialize(**args)
28647
29076
  update!(**args)
@@ -28649,23 +29078,50 @@ module Google
28649
29078
 
28650
29079
  # Update properties of this object
28651
29080
  def update!(**args)
28652
- @tag8021q = args[:tag8021q] if args.key?(:tag8021q)
29081
+ @vni = args[:vni] if args.key?(:vni)
28653
29082
  end
28654
29083
  end
28655
29084
 
28656
- #
28657
- class InterconnectAttachmentsScopedList
29085
+ # Response to the list request, and contains a list of interconnect
29086
+ # attachments.
29087
+ class InterconnectAttachmentList
28658
29088
  include Google::Apis::Core::Hashable
28659
29089
 
28660
- # A list of interconnect attachments contained in this scope.
28661
- # Corresponds to the JSON property `interconnectAttachments`
29090
+ # [Output Only] Unique identifier for the resource; defined by the server.
29091
+ # Corresponds to the JSON property `id`
29092
+ # @return [String]
29093
+ attr_accessor :id
29094
+
29095
+ # A list of InterconnectAttachment resources.
29096
+ # Corresponds to the JSON property `items`
28662
29097
  # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachment>]
28663
- attr_accessor :interconnect_attachments
29098
+ attr_accessor :items
28664
29099
 
28665
- # Informational warning which replaces the list of addresses when
28666
- # the list is empty.
29100
+ # [Output Only] Type of resource. Alwayscompute#interconnectAttachmentList for
29101
+ # lists of interconnect
29102
+ # attachments.
29103
+ # Corresponds to the JSON property `kind`
29104
+ # @return [String]
29105
+ attr_accessor :kind
29106
+
29107
+ # [Output Only] This token allows you to get the next page of results for
29108
+ # list requests. If the number of results is larger thanmaxResults, use the
29109
+ # nextPageToken as a value for
29110
+ # the query parameter pageToken in the next list request.
29111
+ # Subsequent list requests will have their own nextPageToken to
29112
+ # continue paging through the results.
29113
+ # Corresponds to the JSON property `nextPageToken`
29114
+ # @return [String]
29115
+ attr_accessor :next_page_token
29116
+
29117
+ # [Output Only] Server-defined URL for this resource.
29118
+ # Corresponds to the JSON property `selfLink`
29119
+ # @return [String]
29120
+ attr_accessor :self_link
29121
+
29122
+ # [Output Only] Informational warning message.
28667
29123
  # Corresponds to the JSON property `warning`
28668
- # @return [Google::Apis::ComputeBeta::InterconnectAttachmentsScopedList::Warning]
29124
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentList::Warning]
28669
29125
  attr_accessor :warning
28670
29126
 
28671
29127
  def initialize(**args)
@@ -28674,12 +29130,15 @@ module Google
28674
29130
 
28675
29131
  # Update properties of this object
28676
29132
  def update!(**args)
28677
- @interconnect_attachments = args[:interconnect_attachments] if args.key?(:interconnect_attachments)
29133
+ @id = args[:id] if args.key?(:id)
29134
+ @items = args[:items] if args.key?(:items)
29135
+ @kind = args[:kind] if args.key?(:kind)
29136
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
29137
+ @self_link = args[:self_link] if args.key?(:self_link)
28678
29138
  @warning = args[:warning] if args.key?(:warning)
28679
29139
  end
28680
29140
 
28681
- # Informational warning which replaces the list of addresses when
28682
- # the list is empty.
29141
+ # [Output Only] Informational warning message.
28683
29142
  class Warning
28684
29143
  include Google::Apis::Core::Hashable
28685
29144
 
@@ -28698,7 +29157,195 @@ module Google
28698
29157
  # "value": "zones/us-east1-d"
28699
29158
  # `
28700
29159
  # Corresponds to the JSON property `data`
28701
- # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentsScopedList::Warning::Datum>]
29160
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentList::Warning::Datum>]
29161
+ attr_accessor :data
29162
+
29163
+ # [Output Only] A human-readable description of the warning code.
29164
+ # Corresponds to the JSON property `message`
29165
+ # @return [String]
29166
+ attr_accessor :message
29167
+
29168
+ def initialize(**args)
29169
+ update!(**args)
29170
+ end
29171
+
29172
+ # Update properties of this object
29173
+ def update!(**args)
29174
+ @code = args[:code] if args.key?(:code)
29175
+ @data = args[:data] if args.key?(:data)
29176
+ @message = args[:message] if args.key?(:message)
29177
+ end
29178
+
29179
+ #
29180
+ class Datum
29181
+ include Google::Apis::Core::Hashable
29182
+
29183
+ # [Output Only] A key that provides more detail on the warning being
29184
+ # returned. For example, for warnings where there are no results in a list
29185
+ # request for a particular zone, this key might be scope and
29186
+ # the key value might be the zone name. Other examples might be a key
29187
+ # indicating a deprecated resource and a suggested replacement, or a
29188
+ # warning about invalid network settings (for example, if an instance
29189
+ # attempts to perform IP forwarding but is not enabled for IP forwarding).
29190
+ # Corresponds to the JSON property `key`
29191
+ # @return [String]
29192
+ attr_accessor :key
29193
+
29194
+ # [Output Only] A warning data value corresponding to the key.
29195
+ # Corresponds to the JSON property `value`
29196
+ # @return [String]
29197
+ attr_accessor :value
29198
+
29199
+ def initialize(**args)
29200
+ update!(**args)
29201
+ end
29202
+
29203
+ # Update properties of this object
29204
+ def update!(**args)
29205
+ @key = args[:key] if args.key?(:key)
29206
+ @value = args[:value] if args.key?(:value)
29207
+ end
29208
+ end
29209
+ end
29210
+ end
29211
+
29212
+ # Additional interconnect attachment parameters.
29213
+ class InterconnectAttachmentParams
29214
+ include Google::Apis::Core::Hashable
29215
+
29216
+ # Tag keys/values directly bound to this resource.
29217
+ # Tag keys and values have the same definition as resource
29218
+ # manager tags. The field is allowed for INSERT
29219
+ # only. The keys/values to set on the resource should be specified in
29220
+ # either ID ` : ` or Namespaced format
29221
+ # ` : `.
29222
+ # For example the following are valid inputs:
29223
+ # * `"tagKeys/333" : "tagValues/444", "tagKeys/123" : "tagValues/456"`
29224
+ # * `"123/environment" : "production", "345/abc" : "xyz"`
29225
+ # Note:
29226
+ # * Invalid combinations of ID & namespaced format is not supported. For
29227
+ # instance: `"123/environment" : "tagValues/444"` is invalid.
29228
+ # * Inconsistent format is not supported. For instance:
29229
+ # `"tagKeys/333" : "tagValues/444", "123/env" : "prod"` is invalid.
29230
+ # Corresponds to the JSON property `resourceManagerTags`
29231
+ # @return [Hash<String,String>]
29232
+ attr_accessor :resource_manager_tags
29233
+
29234
+ def initialize(**args)
29235
+ update!(**args)
29236
+ end
29237
+
29238
+ # Update properties of this object
29239
+ def update!(**args)
29240
+ @resource_manager_tags = args[:resource_manager_tags] if args.key?(:resource_manager_tags)
29241
+ end
29242
+ end
29243
+
29244
+ # Informational metadata about Partner attachments from Partners to display
29245
+ # to customers. These fields are propagated from PARTNER_PROVIDER
29246
+ # attachments to their corresponding PARTNER attachments.
29247
+ class InterconnectAttachmentPartnerMetadata
29248
+ include Google::Apis::Core::Hashable
29249
+
29250
+ # Plain text name of the Interconnect this attachment is connected to, as
29251
+ # displayed in the Partner's portal. For instance "Chicago 1".
29252
+ # This value may be validated to match approved Partner values.
29253
+ # Corresponds to the JSON property `interconnectName`
29254
+ # @return [String]
29255
+ attr_accessor :interconnect_name
29256
+
29257
+ # Plain text name of the Partner providing this attachment.
29258
+ # This value may be validated to match approved Partner values.
29259
+ # Corresponds to the JSON property `partnerName`
29260
+ # @return [String]
29261
+ attr_accessor :partner_name
29262
+
29263
+ # URL of the Partner's portal for this Attachment. Partners may customise
29264
+ # this to be a deep link to the specific resource on the Partner portal.
29265
+ # This value may be validated to match approved Partner values.
29266
+ # Corresponds to the JSON property `portalUrl`
29267
+ # @return [String]
29268
+ attr_accessor :portal_url
29269
+
29270
+ def initialize(**args)
29271
+ update!(**args)
29272
+ end
29273
+
29274
+ # Update properties of this object
29275
+ def update!(**args)
29276
+ @interconnect_name = args[:interconnect_name] if args.key?(:interconnect_name)
29277
+ @partner_name = args[:partner_name] if args.key?(:partner_name)
29278
+ @portal_url = args[:portal_url] if args.key?(:portal_url)
29279
+ end
29280
+ end
29281
+
29282
+ # Information for an interconnect attachment when this belongs to an
29283
+ # interconnect of type DEDICATED.
29284
+ class InterconnectAttachmentPrivateInfo
29285
+ include Google::Apis::Core::Hashable
29286
+
29287
+ # [Output Only] 802.1q encapsulation tag to be used for traffic between
29288
+ # Google and the customer, going to and from this network and region.
29289
+ # Corresponds to the JSON property `tag8021q`
29290
+ # @return [Fixnum]
29291
+ attr_accessor :tag8021q
29292
+
29293
+ def initialize(**args)
29294
+ update!(**args)
29295
+ end
29296
+
29297
+ # Update properties of this object
29298
+ def update!(**args)
29299
+ @tag8021q = args[:tag8021q] if args.key?(:tag8021q)
29300
+ end
29301
+ end
29302
+
29303
+ #
29304
+ class InterconnectAttachmentsScopedList
29305
+ include Google::Apis::Core::Hashable
29306
+
29307
+ # A list of interconnect attachments contained in this scope.
29308
+ # Corresponds to the JSON property `interconnectAttachments`
29309
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachment>]
29310
+ attr_accessor :interconnect_attachments
29311
+
29312
+ # Informational warning which replaces the list of addresses when
29313
+ # the list is empty.
29314
+ # Corresponds to the JSON property `warning`
29315
+ # @return [Google::Apis::ComputeBeta::InterconnectAttachmentsScopedList::Warning]
29316
+ attr_accessor :warning
29317
+
29318
+ def initialize(**args)
29319
+ update!(**args)
29320
+ end
29321
+
29322
+ # Update properties of this object
29323
+ def update!(**args)
29324
+ @interconnect_attachments = args[:interconnect_attachments] if args.key?(:interconnect_attachments)
29325
+ @warning = args[:warning] if args.key?(:warning)
29326
+ end
29327
+
29328
+ # Informational warning which replaces the list of addresses when
29329
+ # the list is empty.
29330
+ class Warning
29331
+ include Google::Apis::Core::Hashable
29332
+
29333
+ # [Output Only] A warning code, if applicable. For example, Compute
29334
+ # Engine returns NO_RESULTS_ON_PAGE if there
29335
+ # are no results in the response.
29336
+ # Corresponds to the JSON property `code`
29337
+ # @return [String]
29338
+ attr_accessor :code
29339
+
29340
+ # [Output Only] Metadata about this warning in key:
29341
+ # value format. For example:
29342
+ # "data": [
29343
+ # `
29344
+ # "key": "scope",
29345
+ # "value": "zones/us-east1-d"
29346
+ # `
29347
+ # Corresponds to the JSON property `data`
29348
+ # @return [Array<Google::Apis::ComputeBeta::InterconnectAttachmentsScopedList::Warning::Datum>]
28702
29349
  attr_accessor :data
28703
29350
 
28704
29351
  # [Output Only] A human-readable description of the warning code.
@@ -29054,7 +29701,7 @@ module Google
29054
29701
  # If provided when patching a configuration in update mode, the provided
29055
29702
  # token must match the current token or the update is rejected. This provides
29056
29703
  # a reliable means of doing read-modify-write (optimistic locking) as
29057
- # described byAPI 154.
29704
+ # described by AIP 154.
29058
29705
  # Corresponds to the JSON property `etag`
29059
29706
  # @return [String]
29060
29707
  attr_accessor :etag
@@ -30277,6 +30924,13 @@ module Google
30277
30924
  # @return [Fixnum]
30278
30925
  attr_accessor :expected_rtt_ms
30279
30926
 
30927
+ # Identifies whether L2 Interconnect Attachments can be created in this
30928
+ # region for interconnects that are in this location.
30929
+ # Corresponds to the JSON property `l2ForwardingEnabled`
30930
+ # @return [Boolean]
30931
+ attr_accessor :l2_forwarding_enabled
30932
+ alias_method :l2_forwarding_enabled?, :l2_forwarding_enabled
30933
+
30280
30934
  # Identifies the network presence of this location.
30281
30935
  # Corresponds to the JSON property `locationPresence`
30282
30936
  # @return [String]
@@ -30294,6 +30948,7 @@ module Google
30294
30948
  # Update properties of this object
30295
30949
  def update!(**args)
30296
30950
  @expected_rtt_ms = args[:expected_rtt_ms] if args.key?(:expected_rtt_ms)
30951
+ @l2_forwarding_enabled = args[:l2_forwarding_enabled] if args.key?(:l2_forwarding_enabled)
30297
30952
  @location_presence = args[:location_presence] if args.key?(:location_presence)
30298
30953
  @region = args[:region] if args.key?(:region)
30299
30954
  end
@@ -37285,6 +37940,11 @@ module Google
37285
37940
  # @return [String]
37286
37941
  attr_accessor :allow_multi_nic_in_same_network
37287
37942
 
37943
+ # Specifies whether multicast is allowed.
37944
+ # Corresponds to the JSON property `allowMulticast`
37945
+ # @return [String]
37946
+ attr_accessor :allow_multicast
37947
+
37288
37948
  # Specifies whether NCC is allowed.
37289
37949
  # Corresponds to the JSON property `allowNcc`
37290
37950
  # @return [String]
@@ -37346,6 +38006,11 @@ module Google
37346
38006
  # @return [Array<String>]
37347
38007
  attr_accessor :interface_types
37348
38008
 
38009
+ # Specifies which type of multicast is supported.
38010
+ # Corresponds to the JSON property `multicast`
38011
+ # @return [String]
38012
+ attr_accessor :multicast
38013
+
37349
38014
  # Specifies which subnetwork purposes are supported.
37350
38015
  # Corresponds to the JSON property `subnetPurposes`
37351
38016
  # @return [Array<String>]
@@ -37390,6 +38055,7 @@ module Google
37390
38055
  @allow_ip_forwarding = args[:allow_ip_forwarding] if args.key?(:allow_ip_forwarding)
37391
38056
  @allow_load_balancing = args[:allow_load_balancing] if args.key?(:allow_load_balancing)
37392
38057
  @allow_multi_nic_in_same_network = args[:allow_multi_nic_in_same_network] if args.key?(:allow_multi_nic_in_same_network)
38058
+ @allow_multicast = args[:allow_multicast] if args.key?(:allow_multicast)
37393
38059
  @allow_ncc = args[:allow_ncc] if args.key?(:allow_ncc)
37394
38060
  @allow_network_migration = args[:allow_network_migration] if args.key?(:allow_network_migration)
37395
38061
  @allow_packet_mirroring = args[:allow_packet_mirroring] if args.key?(:allow_packet_mirroring)
@@ -37402,6 +38068,7 @@ module Google
37402
38068
  @allow_vpn = args[:allow_vpn] if args.key?(:allow_vpn)
37403
38069
  @firewall_policy_types = args[:firewall_policy_types] if args.key?(:firewall_policy_types)
37404
38070
  @interface_types = args[:interface_types] if args.key?(:interface_types)
38071
+ @multicast = args[:multicast] if args.key?(:multicast)
37405
38072
  @subnet_purposes = args[:subnet_purposes] if args.key?(:subnet_purposes)
37406
38073
  @subnet_stack_types = args[:subnet_stack_types] if args.key?(:subnet_stack_types)
37407
38074
  @subnetwork_purposes = args[:subnetwork_purposes] if args.key?(:subnetwork_purposes)
@@ -46935,6 +47602,11 @@ module Google
46935
47602
  class ReservationSubBlock
46936
47603
  include Google::Apis::Core::Hashable
46937
47604
 
47605
+ # Info for accelerator topologies within a densely packed reservation.
47606
+ # Corresponds to the JSON property `acceleratorTopologiesInfo`
47607
+ # @return [Google::Apis::ComputeBeta::AcceleratorTopologiesInfo]
47608
+ attr_accessor :accelerator_topologies_info
47609
+
46938
47610
  # [Output Only] The number of hosts that are allocated in this
46939
47611
  # reservation subBlock.
46940
47612
  # Corresponds to the JSON property `count`
@@ -47018,6 +47690,7 @@ module Google
47018
47690
 
47019
47691
  # Update properties of this object
47020
47692
  def update!(**args)
47693
+ @accelerator_topologies_info = args[:accelerator_topologies_info] if args.key?(:accelerator_topologies_info)
47021
47694
  @count = args[:count] if args.key?(:count)
47022
47695
  @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
47023
47696
  @health_info = args[:health_info] if args.key?(:health_info)
@@ -47940,6 +48613,12 @@ module Google
47940
48613
  class ResourcePolicyGroupPlacementPolicy
47941
48614
  include Google::Apis::Core::Hashable
47942
48615
 
48616
+ # Specifies the connection mode for the accelerator topology. If not
48617
+ # specified, the default is AUTO_CONNECT.
48618
+ # Corresponds to the JSON property `acceleratorTopologyMode`
48619
+ # @return [String]
48620
+ attr_accessor :accelerator_topology_mode
48621
+
47943
48622
  # The number of availability domains to spread instances across. If two
47944
48623
  # instances are in different availability domain, they are not in the same
47945
48624
  # low latency network.
@@ -47986,6 +48665,7 @@ module Google
47986
48665
 
47987
48666
  # Update properties of this object
47988
48667
  def update!(**args)
48668
+ @accelerator_topology_mode = args[:accelerator_topology_mode] if args.key?(:accelerator_topology_mode)
47989
48669
  @availability_domain_count = args[:availability_domain_count] if args.key?(:availability_domain_count)
47990
48670
  @collocation = args[:collocation] if args.key?(:collocation)
47991
48671
  @gpu_topology = args[:gpu_topology] if args.key?(:gpu_topology)
@@ -48977,7 +49657,9 @@ module Google
48977
49657
  # @return [Fixnum]
48978
49658
  attr_accessor :priority
48979
49659
 
48980
- # [Output only] The status of the route.
49660
+ # [Output only] The status of the route. This status only applies to
49661
+ # dynamic routes learned by Cloud Routers. This status is not applicable
49662
+ # to static routes.
48981
49663
  # Corresponds to the JSON property `routeStatus`
48982
49664
  # @return [String]
48983
49665
  attr_accessor :route_status
@@ -55039,6 +55721,16 @@ module Google
55039
55721
  class ShieldedInstanceIdentity
55040
55722
  include Google::Apis::Core::Hashable
55041
55723
 
55724
+ # A Shielded Instance Identity Entry.
55725
+ # Corresponds to the JSON property `eccP256EncryptionKey`
55726
+ # @return [Google::Apis::ComputeBeta::ShieldedInstanceIdentityEntry]
55727
+ attr_accessor :ecc_p256_encryption_key
55728
+
55729
+ # A Shielded Instance Identity Entry.
55730
+ # Corresponds to the JSON property `eccP256SigningKey`
55731
+ # @return [Google::Apis::ComputeBeta::ShieldedInstanceIdentityEntry]
55732
+ attr_accessor :ecc_p256_signing_key
55733
+
55042
55734
  # A Shielded Instance Identity Entry.
55043
55735
  # Corresponds to the JSON property `encryptionKey`
55044
55736
  # @return [Google::Apis::ComputeBeta::ShieldedInstanceIdentityEntry]
@@ -55062,6 +55754,8 @@ module Google
55062
55754
 
55063
55755
  # Update properties of this object
55064
55756
  def update!(**args)
55757
+ @ecc_p256_encryption_key = args[:ecc_p256_encryption_key] if args.key?(:ecc_p256_encryption_key)
55758
+ @ecc_p256_signing_key = args[:ecc_p256_signing_key] if args.key?(:ecc_p256_signing_key)
55065
55759
  @encryption_key = args[:encryption_key] if args.key?(:encryption_key)
55066
55760
  @kind = args[:kind] if args.key?(:kind)
55067
55761
  @signing_key = args[:signing_key] if args.key?(:signing_key)
@@ -65166,30 +65860,686 @@ module Google
65166
65860
  end
65167
65861
  end
65168
65862
 
65169
- # The location in Cloud Storage and naming method of the daily usage
65170
- # report. Contains bucket_name and report_name prefix.
65171
- class UsageExportLocation
65863
+ # The location in Cloud Storage and naming method of the daily usage
65864
+ # report. Contains bucket_name and report_name prefix.
65865
+ class UsageExportLocation
65866
+ include Google::Apis::Core::Hashable
65867
+
65868
+ # The name of an existing bucket in Cloud Storage where the usage report
65869
+ # object is stored. The Google Service Account is granted write access to
65870
+ # this bucket. This can either be the bucket name by itself, such asexample-
65871
+ # bucket, or the bucket name with gs://
65872
+ # or https://storage.googleapis.com/ in front of it, such
65873
+ # as gs://example-bucket.
65874
+ # Corresponds to the JSON property `bucketName`
65875
+ # @return [String]
65876
+ attr_accessor :bucket_name
65877
+
65878
+ # An optional prefix for the name of the usage report object stored inbucketName.
65879
+ # If not supplied, defaults tousage_gce. The report is stored as a CSV file
65880
+ # namedreport_name_prefix_gce_YYYYMMDD.csv whereYYYYMMDD is the day of the usage
65881
+ # according to Pacific Time.
65882
+ # If you supply a prefix, it should conform to Cloud Storageobject naming
65883
+ # conventions.
65884
+ # Corresponds to the JSON property `reportNamePrefix`
65885
+ # @return [String]
65886
+ attr_accessor :report_name_prefix
65887
+
65888
+ def initialize(**args)
65889
+ update!(**args)
65890
+ end
65891
+
65892
+ # Update properties of this object
65893
+ def update!(**args)
65894
+ @bucket_name = args[:bucket_name] if args.key?(:bucket_name)
65895
+ @report_name_prefix = args[:report_name_prefix] if args.key?(:report_name_prefix)
65896
+ end
65897
+ end
65898
+
65899
+ # Contain information of Nat mapping for a VM endpoint (i.e., NIC).
65900
+ class VmEndpointNatMappings
65901
+ include Google::Apis::Core::Hashable
65902
+
65903
+ # Name of the VM instance which the endpoint belongs to
65904
+ # Corresponds to the JSON property `instanceName`
65905
+ # @return [String]
65906
+ attr_accessor :instance_name
65907
+
65908
+ #
65909
+ # Corresponds to the JSON property `interfaceNatMappings`
65910
+ # @return [Array<Google::Apis::ComputeBeta::VmEndpointNatMappingsInterfaceNatMappings>]
65911
+ attr_accessor :interface_nat_mappings
65912
+
65913
+ def initialize(**args)
65914
+ update!(**args)
65915
+ end
65916
+
65917
+ # Update properties of this object
65918
+ def update!(**args)
65919
+ @instance_name = args[:instance_name] if args.key?(:instance_name)
65920
+ @interface_nat_mappings = args[:interface_nat_mappings] if args.key?(:interface_nat_mappings)
65921
+ end
65922
+ end
65923
+
65924
+ # Contain information of Nat mapping for an interface of this endpoint.
65925
+ class VmEndpointNatMappingsInterfaceNatMappings
65926
+ include Google::Apis::Core::Hashable
65927
+
65928
+ # List of all drain IP:port-range mappings assigned to this interface.
65929
+ # These ranges are inclusive, that is, both the first and the last
65930
+ # ports can be used for NAT. Example: ["2.2.2.2:12345-12355",
65931
+ # "1.1.1.1:2234-2234"].
65932
+ # Corresponds to the JSON property `drainNatIpPortRanges`
65933
+ # @return [Array<String>]
65934
+ attr_accessor :drain_nat_ip_port_ranges
65935
+
65936
+ # A list of all IP:port-range mappings assigned to this interface.
65937
+ # These ranges are inclusive, that is, both the first and the last
65938
+ # ports can be used for NAT. Example: ["2.2.2.2:12345-12355",
65939
+ # "1.1.1.1:2234-2234"].
65940
+ # Corresponds to the JSON property `natIpPortRanges`
65941
+ # @return [Array<String>]
65942
+ attr_accessor :nat_ip_port_ranges
65943
+
65944
+ # Total number of drain ports across all NAT IPs allocated to this
65945
+ # interface. It equals to the aggregated port number in the field
65946
+ # drain_nat_ip_port_ranges.
65947
+ # Corresponds to the JSON property `numTotalDrainNatPorts`
65948
+ # @return [Fixnum]
65949
+ attr_accessor :num_total_drain_nat_ports
65950
+
65951
+ # Total number of ports across all NAT IPs allocated to this interface.
65952
+ # It equals to the aggregated port number in the field nat_ip_port_ranges.
65953
+ # Corresponds to the JSON property `numTotalNatPorts`
65954
+ # @return [Fixnum]
65955
+ attr_accessor :num_total_nat_ports
65956
+
65957
+ # Information about mappings provided by rules in this NAT.
65958
+ # Corresponds to the JSON property `ruleMappings`
65959
+ # @return [Array<Google::Apis::ComputeBeta::VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings>]
65960
+ attr_accessor :rule_mappings
65961
+
65962
+ # Alias IP range for this interface endpoint.
65963
+ # It will be a private (RFC 1918) IP range.
65964
+ # Examples: "10.33.4.55/32", or "192.168.5.0/24".
65965
+ # Corresponds to the JSON property `sourceAliasIpRange`
65966
+ # @return [String]
65967
+ attr_accessor :source_alias_ip_range
65968
+
65969
+ # Primary IP of the VM for this NIC.
65970
+ # Corresponds to the JSON property `sourceVirtualIp`
65971
+ # @return [String]
65972
+ attr_accessor :source_virtual_ip
65973
+
65974
+ def initialize(**args)
65975
+ update!(**args)
65976
+ end
65977
+
65978
+ # Update properties of this object
65979
+ def update!(**args)
65980
+ @drain_nat_ip_port_ranges = args[:drain_nat_ip_port_ranges] if args.key?(:drain_nat_ip_port_ranges)
65981
+ @nat_ip_port_ranges = args[:nat_ip_port_ranges] if args.key?(:nat_ip_port_ranges)
65982
+ @num_total_drain_nat_ports = args[:num_total_drain_nat_ports] if args.key?(:num_total_drain_nat_ports)
65983
+ @num_total_nat_ports = args[:num_total_nat_ports] if args.key?(:num_total_nat_ports)
65984
+ @rule_mappings = args[:rule_mappings] if args.key?(:rule_mappings)
65985
+ @source_alias_ip_range = args[:source_alias_ip_range] if args.key?(:source_alias_ip_range)
65986
+ @source_virtual_ip = args[:source_virtual_ip] if args.key?(:source_virtual_ip)
65987
+ end
65988
+ end
65989
+
65990
+ # Contains information of NAT Mappings provided by a NAT Rule.
65991
+ class VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings
65992
+ include Google::Apis::Core::Hashable
65993
+
65994
+ # List of all drain IP:port-range mappings assigned to this interface
65995
+ # by this rule.
65996
+ # These ranges are inclusive, that is, both the first and the last
65997
+ # ports can be used for NAT. Example: ["2.2.2.2:12345-12355",
65998
+ # "1.1.1.1:2234-2234"].
65999
+ # Corresponds to the JSON property `drainNatIpPortRanges`
66000
+ # @return [Array<String>]
66001
+ attr_accessor :drain_nat_ip_port_ranges
66002
+
66003
+ # A list of all IP:port-range mappings assigned to this interface by this
66004
+ # rule.
66005
+ # These ranges are inclusive, that is, both the first and the last
66006
+ # ports can be used for NAT. Example: ["2.2.2.2:12345-12355",
66007
+ # "1.1.1.1:2234-2234"].
66008
+ # Corresponds to the JSON property `natIpPortRanges`
66009
+ # @return [Array<String>]
66010
+ attr_accessor :nat_ip_port_ranges
66011
+
66012
+ # Total number of drain ports across all NAT IPs allocated to this
66013
+ # interface by this rule.
66014
+ # It equals the aggregated port number in the field
66015
+ # drain_nat_ip_port_ranges.
66016
+ # Corresponds to the JSON property `numTotalDrainNatPorts`
66017
+ # @return [Fixnum]
66018
+ attr_accessor :num_total_drain_nat_ports
66019
+
66020
+ # Total number of ports across all NAT IPs allocated to this interface
66021
+ # by this rule.
66022
+ # It equals the aggregated port number in the field nat_ip_port_ranges.
66023
+ # Corresponds to the JSON property `numTotalNatPorts`
66024
+ # @return [Fixnum]
66025
+ attr_accessor :num_total_nat_ports
66026
+
66027
+ # Rule number of the NAT Rule.
66028
+ # Corresponds to the JSON property `ruleNumber`
66029
+ # @return [Fixnum]
66030
+ attr_accessor :rule_number
66031
+
66032
+ def initialize(**args)
66033
+ update!(**args)
66034
+ end
66035
+
66036
+ # Update properties of this object
66037
+ def update!(**args)
66038
+ @drain_nat_ip_port_ranges = args[:drain_nat_ip_port_ranges] if args.key?(:drain_nat_ip_port_ranges)
66039
+ @nat_ip_port_ranges = args[:nat_ip_port_ranges] if args.key?(:nat_ip_port_ranges)
66040
+ @num_total_drain_nat_ports = args[:num_total_drain_nat_ports] if args.key?(:num_total_drain_nat_ports)
66041
+ @num_total_nat_ports = args[:num_total_nat_ports] if args.key?(:num_total_nat_ports)
66042
+ @rule_number = args[:rule_number] if args.key?(:rule_number)
66043
+ end
66044
+ end
66045
+
66046
+ # Contains a list of VmEndpointNatMappings.
66047
+ class VmEndpointNatMappingsList
66048
+ include Google::Apis::Core::Hashable
66049
+
66050
+ # [Output Only] The unique identifier for the resource. This identifier is
66051
+ # defined by the server.
66052
+ # Corresponds to the JSON property `id`
66053
+ # @return [String]
66054
+ attr_accessor :id
66055
+
66056
+ # [Output Only] Type of resource. Alwayscompute#vmEndpointNatMappingsList for
66057
+ # lists of Nat mappings of
66058
+ # VM endpoints.
66059
+ # Corresponds to the JSON property `kind`
66060
+ # @return [String]
66061
+ attr_accessor :kind
66062
+
66063
+ # [Output Only] This token allows you to get the next page of results for
66064
+ # list requests. If the number of results is larger thanmaxResults, use the
66065
+ # nextPageToken as a value for
66066
+ # the query parameter pageToken in the next list request.
66067
+ # Subsequent list requests will have their own nextPageToken to
66068
+ # continue paging through the results.
66069
+ # Corresponds to the JSON property `nextPageToken`
66070
+ # @return [String]
66071
+ attr_accessor :next_page_token
66072
+
66073
+ # [Output Only] A list of Nat mapping information of VM endpoints.
66074
+ # Corresponds to the JSON property `result`
66075
+ # @return [Array<Google::Apis::ComputeBeta::VmEndpointNatMappings>]
66076
+ attr_accessor :result
66077
+
66078
+ # [Output Only] Server-defined URL for this resource.
66079
+ # Corresponds to the JSON property `selfLink`
66080
+ # @return [String]
66081
+ attr_accessor :self_link
66082
+
66083
+ # [Output Only] Informational warning message.
66084
+ # Corresponds to the JSON property `warning`
66085
+ # @return [Google::Apis::ComputeBeta::VmEndpointNatMappingsList::Warning]
66086
+ attr_accessor :warning
66087
+
66088
+ def initialize(**args)
66089
+ update!(**args)
66090
+ end
66091
+
66092
+ # Update properties of this object
66093
+ def update!(**args)
66094
+ @id = args[:id] if args.key?(:id)
66095
+ @kind = args[:kind] if args.key?(:kind)
66096
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
66097
+ @result = args[:result] if args.key?(:result)
66098
+ @self_link = args[:self_link] if args.key?(:self_link)
66099
+ @warning = args[:warning] if args.key?(:warning)
66100
+ end
66101
+
66102
+ # [Output Only] Informational warning message.
66103
+ class Warning
66104
+ include Google::Apis::Core::Hashable
66105
+
66106
+ # [Output Only] A warning code, if applicable. For example, Compute
66107
+ # Engine returns NO_RESULTS_ON_PAGE if there
66108
+ # are no results in the response.
66109
+ # Corresponds to the JSON property `code`
66110
+ # @return [String]
66111
+ attr_accessor :code
66112
+
66113
+ # [Output Only] Metadata about this warning in key:
66114
+ # value format. For example:
66115
+ # "data": [
66116
+ # `
66117
+ # "key": "scope",
66118
+ # "value": "zones/us-east1-d"
66119
+ # `
66120
+ # Corresponds to the JSON property `data`
66121
+ # @return [Array<Google::Apis::ComputeBeta::VmEndpointNatMappingsList::Warning::Datum>]
66122
+ attr_accessor :data
66123
+
66124
+ # [Output Only] A human-readable description of the warning code.
66125
+ # Corresponds to the JSON property `message`
66126
+ # @return [String]
66127
+ attr_accessor :message
66128
+
66129
+ def initialize(**args)
66130
+ update!(**args)
66131
+ end
66132
+
66133
+ # Update properties of this object
66134
+ def update!(**args)
66135
+ @code = args[:code] if args.key?(:code)
66136
+ @data = args[:data] if args.key?(:data)
66137
+ @message = args[:message] if args.key?(:message)
66138
+ end
66139
+
66140
+ #
66141
+ class Datum
66142
+ include Google::Apis::Core::Hashable
66143
+
66144
+ # [Output Only] A key that provides more detail on the warning being
66145
+ # returned. For example, for warnings where there are no results in a list
66146
+ # request for a particular zone, this key might be scope and
66147
+ # the key value might be the zone name. Other examples might be a key
66148
+ # indicating a deprecated resource and a suggested replacement, or a
66149
+ # warning about invalid network settings (for example, if an instance
66150
+ # attempts to perform IP forwarding but is not enabled for IP forwarding).
66151
+ # Corresponds to the JSON property `key`
66152
+ # @return [String]
66153
+ attr_accessor :key
66154
+
66155
+ # [Output Only] A warning data value corresponding to the key.
66156
+ # Corresponds to the JSON property `value`
66157
+ # @return [String]
66158
+ attr_accessor :value
66159
+
66160
+ def initialize(**args)
66161
+ update!(**args)
66162
+ end
66163
+
66164
+ # Update properties of this object
66165
+ def update!(**args)
66166
+ @key = args[:key] if args.key?(:key)
66167
+ @value = args[:value] if args.key?(:value)
66168
+ end
66169
+ end
66170
+ end
66171
+ end
66172
+
66173
+ #
66174
+ class VmExtensionPoliciesScopedList
66175
+ include Google::Apis::Core::Hashable
66176
+
66177
+ # List of VmExtensionPolicy resources contained in this scope.
66178
+ # Corresponds to the JSON property `vmExtensionPolicies`
66179
+ # @return [Array<Google::Apis::ComputeBeta::VmExtensionPolicy>]
66180
+ attr_accessor :vm_extension_policies
66181
+
66182
+ # Informational warning which replaces the list of
66183
+ # backend services when the list is empty.
66184
+ # Corresponds to the JSON property `warning`
66185
+ # @return [Google::Apis::ComputeBeta::VmExtensionPoliciesScopedList::Warning]
66186
+ attr_accessor :warning
66187
+
66188
+ def initialize(**args)
66189
+ update!(**args)
66190
+ end
66191
+
66192
+ # Update properties of this object
66193
+ def update!(**args)
66194
+ @vm_extension_policies = args[:vm_extension_policies] if args.key?(:vm_extension_policies)
66195
+ @warning = args[:warning] if args.key?(:warning)
66196
+ end
66197
+
66198
+ # Informational warning which replaces the list of
66199
+ # backend services when the list is empty.
66200
+ class Warning
66201
+ include Google::Apis::Core::Hashable
66202
+
66203
+ # [Output Only] A warning code, if applicable. For example, Compute
66204
+ # Engine returns NO_RESULTS_ON_PAGE if there
66205
+ # are no results in the response.
66206
+ # Corresponds to the JSON property `code`
66207
+ # @return [String]
66208
+ attr_accessor :code
66209
+
66210
+ # [Output Only] Metadata about this warning in key:
66211
+ # value format. For example:
66212
+ # "data": [
66213
+ # `
66214
+ # "key": "scope",
66215
+ # "value": "zones/us-east1-d"
66216
+ # `
66217
+ # Corresponds to the JSON property `data`
66218
+ # @return [Array<Google::Apis::ComputeBeta::VmExtensionPoliciesScopedList::Warning::Datum>]
66219
+ attr_accessor :data
66220
+
66221
+ # [Output Only] A human-readable description of the warning code.
66222
+ # Corresponds to the JSON property `message`
66223
+ # @return [String]
66224
+ attr_accessor :message
66225
+
66226
+ def initialize(**args)
66227
+ update!(**args)
66228
+ end
66229
+
66230
+ # Update properties of this object
66231
+ def update!(**args)
66232
+ @code = args[:code] if args.key?(:code)
66233
+ @data = args[:data] if args.key?(:data)
66234
+ @message = args[:message] if args.key?(:message)
66235
+ end
66236
+
66237
+ #
66238
+ class Datum
66239
+ include Google::Apis::Core::Hashable
66240
+
66241
+ # [Output Only] A key that provides more detail on the warning being
66242
+ # returned. For example, for warnings where there are no results in a list
66243
+ # request for a particular zone, this key might be scope and
66244
+ # the key value might be the zone name. Other examples might be a key
66245
+ # indicating a deprecated resource and a suggested replacement, or a
66246
+ # warning about invalid network settings (for example, if an instance
66247
+ # attempts to perform IP forwarding but is not enabled for IP forwarding).
66248
+ # Corresponds to the JSON property `key`
66249
+ # @return [String]
66250
+ attr_accessor :key
66251
+
66252
+ # [Output Only] A warning data value corresponding to the key.
66253
+ # Corresponds to the JSON property `value`
66254
+ # @return [String]
66255
+ attr_accessor :value
66256
+
66257
+ def initialize(**args)
66258
+ update!(**args)
66259
+ end
66260
+
66261
+ # Update properties of this object
66262
+ def update!(**args)
66263
+ @key = args[:key] if args.key?(:key)
66264
+ @value = args[:value] if args.key?(:value)
66265
+ end
66266
+ end
66267
+ end
66268
+ end
66269
+
66270
+ # Represents a VM extension policy.
66271
+ class VmExtensionPolicy
66272
+ include Google::Apis::Core::Hashable
66273
+
66274
+ # [Output Only] Creation timestamp inRFC3339
66275
+ # text format.
66276
+ # Corresponds to the JSON property `creationTimestamp`
66277
+ # @return [String]
66278
+ attr_accessor :creation_timestamp
66279
+
66280
+ # An optional description of this resource.
66281
+ # Corresponds to the JSON property `description`
66282
+ # @return [String]
66283
+ attr_accessor :description
66284
+
66285
+ # Required. A map of extension names (e.g., "cloudops") to their corresponding
66286
+ # policy
66287
+ # configurations.
66288
+ # Corresponds to the JSON property `extensionPolicies`
66289
+ # @return [Hash<String,Google::Apis::ComputeBeta::VmExtensionPolicyExtensionPolicy>]
66290
+ attr_accessor :extension_policies
66291
+
66292
+ # Optional. [Output Only] Link to the global policy that manages this zone
66293
+ # policy, if
66294
+ # applicable.
66295
+ # Corresponds to the JSON property `globalResourceLink`
66296
+ # @return [String]
66297
+ attr_accessor :global_resource_link
66298
+
66299
+ # [Output Only] The unique identifier for the resource. This identifier is
66300
+ # defined by the server.
66301
+ # Corresponds to the JSON property `id`
66302
+ # @return [Fixnum]
66303
+ attr_accessor :id
66304
+
66305
+ # Optional. Selectors to target VMs for this policy. VMs are selected if they
66306
+ # match
66307
+ # *any* of the provided selectors (logical OR). If this list is empty, the
66308
+ # policy applies to all VMs.
66309
+ # Corresponds to the JSON property `instanceSelectors`
66310
+ # @return [Array<Google::Apis::ComputeBeta::VmExtensionPolicyInstanceSelector>]
66311
+ attr_accessor :instance_selectors
66312
+
66313
+ # [Output Only] Type of the resource. Alwayscompute#vmExtensionPolicy.
66314
+ # Corresponds to the JSON property `kind`
66315
+ # @return [String]
66316
+ attr_accessor :kind
66317
+
66318
+ # Optional. [Output Only] Indicates if this policy is managed by a global policy.
66319
+ # Corresponds to the JSON property `managedByGlobal`
66320
+ # @return [Boolean]
66321
+ attr_accessor :managed_by_global
66322
+ alias_method :managed_by_global?, :managed_by_global
66323
+
66324
+ # Name of the resource. Provided by the client when the resource is created.
66325
+ # The name must be 1-63 characters long, and comply withRFC1035.
66326
+ # Specifically, the name must be 1-63 characters long and match the regular
66327
+ # expression `[a-z]([-a-z0-9]*[a-z0-9])?`
66328
+ # which means the first character must be a lowercase letter, and all
66329
+ # following characters must be a dash, lowercase letter, or digit, except
66330
+ # the last character, which cannot be a dash.
66331
+ # Corresponds to the JSON property `name`
66332
+ # @return [String]
66333
+ attr_accessor :name
66334
+
66335
+ # Optional. Priority of this policy. Used to resolve conflicts when multiple
66336
+ # policies
66337
+ # apply to the same extension.
66338
+ # The policy priority is an integer from 0 to 65535, inclusive. Lower
66339
+ # integers indicate higher priorities. If you do not specify a priority when
66340
+ # creating a rule, it is assigned a priority of 1000. If priorities are
66341
+ # equal, the policy with the more recent creation timestamp takes precedence.
66342
+ # Corresponds to the JSON property `priority`
66343
+ # @return [Fixnum]
66344
+ attr_accessor :priority
66345
+
66346
+ # [Output Only] Server-defined fully-qualified URL for this resource.
66347
+ # Corresponds to the JSON property `selfLink`
66348
+ # @return [String]
66349
+ attr_accessor :self_link
66350
+
66351
+ # [Output Only] Server-defined URL for this resource's resource id.
66352
+ # Corresponds to the JSON property `selfLinkWithId`
66353
+ # @return [String]
66354
+ attr_accessor :self_link_with_id
66355
+
66356
+ # Optional. [Output Only] Current state of the policy: ACTIVE or DELETING.
66357
+ # Corresponds to the JSON property `state`
66358
+ # @return [String]
66359
+ attr_accessor :state
66360
+
66361
+ # [Output Only] Update timestamp inRFC3339
66362
+ # text format.
66363
+ # Corresponds to the JSON property `updateTimestamp`
66364
+ # @return [String]
66365
+ attr_accessor :update_timestamp
66366
+
66367
+ def initialize(**args)
66368
+ update!(**args)
66369
+ end
66370
+
66371
+ # Update properties of this object
66372
+ def update!(**args)
66373
+ @creation_timestamp = args[:creation_timestamp] if args.key?(:creation_timestamp)
66374
+ @description = args[:description] if args.key?(:description)
66375
+ @extension_policies = args[:extension_policies] if args.key?(:extension_policies)
66376
+ @global_resource_link = args[:global_resource_link] if args.key?(:global_resource_link)
66377
+ @id = args[:id] if args.key?(:id)
66378
+ @instance_selectors = args[:instance_selectors] if args.key?(:instance_selectors)
66379
+ @kind = args[:kind] if args.key?(:kind)
66380
+ @managed_by_global = args[:managed_by_global] if args.key?(:managed_by_global)
66381
+ @name = args[:name] if args.key?(:name)
66382
+ @priority = args[:priority] if args.key?(:priority)
66383
+ @self_link = args[:self_link] if args.key?(:self_link)
66384
+ @self_link_with_id = args[:self_link_with_id] if args.key?(:self_link_with_id)
66385
+ @state = args[:state] if args.key?(:state)
66386
+ @update_timestamp = args[:update_timestamp] if args.key?(:update_timestamp)
66387
+ end
66388
+ end
66389
+
66390
+ # Response for the aggregated list of VM extension policies.
66391
+ class VmExtensionPolicyAggregatedListResponse
66392
+ include Google::Apis::Core::Hashable
66393
+
66394
+ #
66395
+ # Corresponds to the JSON property `etag`
66396
+ # @return [String]
66397
+ attr_accessor :etag
66398
+
66399
+ # [Output Only] Unique identifier for the resource; defined by the server.
66400
+ # Corresponds to the JSON property `id`
66401
+ # @return [String]
66402
+ attr_accessor :id
66403
+
66404
+ # A list of VmExtensionPoliciesScopedList resources.
66405
+ # Corresponds to the JSON property `items`
66406
+ # @return [Hash<String,Google::Apis::ComputeBeta::VmExtensionPoliciesScopedList>]
66407
+ attr_accessor :items
66408
+
66409
+ # [Output Only] Type of resource. Alwayscompute#VmExtensionPolicyAggregatedList
66410
+ # for lists of
66411
+ # VmExtensionPolicies.
66412
+ # Corresponds to the JSON property `kind`
66413
+ # @return [String]
66414
+ attr_accessor :kind
66415
+
66416
+ # [Output Only] This token allows you to get the next page of results for
66417
+ # list requests. If the number of results is larger thanmaxResults, use the
66418
+ # nextPageToken as a value for
66419
+ # the query parameter pageToken in the next list request.
66420
+ # Subsequent list requests will have their own nextPageToken to
66421
+ # continue paging through the results.
66422
+ # Corresponds to the JSON property `nextPageToken`
66423
+ # @return [String]
66424
+ attr_accessor :next_page_token
66425
+
66426
+ # [Output Only] Server-defined URL for this resource.
66427
+ # Corresponds to the JSON property `selfLink`
66428
+ # @return [String]
66429
+ attr_accessor :self_link
66430
+
66431
+ # [Output Only] Unreachable resources.
66432
+ # Corresponds to the JSON property `unreachables`
66433
+ # @return [Array<String>]
66434
+ attr_accessor :unreachables
66435
+
66436
+ # [Output Only] Informational warning message.
66437
+ # Corresponds to the JSON property `warning`
66438
+ # @return [Google::Apis::ComputeBeta::VmExtensionPolicyAggregatedListResponse::Warning]
66439
+ attr_accessor :warning
66440
+
66441
+ def initialize(**args)
66442
+ update!(**args)
66443
+ end
66444
+
66445
+ # Update properties of this object
66446
+ def update!(**args)
66447
+ @etag = args[:etag] if args.key?(:etag)
66448
+ @id = args[:id] if args.key?(:id)
66449
+ @items = args[:items] if args.key?(:items)
66450
+ @kind = args[:kind] if args.key?(:kind)
66451
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
66452
+ @self_link = args[:self_link] if args.key?(:self_link)
66453
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
66454
+ @warning = args[:warning] if args.key?(:warning)
66455
+ end
66456
+
66457
+ # [Output Only] Informational warning message.
66458
+ class Warning
66459
+ include Google::Apis::Core::Hashable
66460
+
66461
+ # [Output Only] A warning code, if applicable. For example, Compute
66462
+ # Engine returns NO_RESULTS_ON_PAGE if there
66463
+ # are no results in the response.
66464
+ # Corresponds to the JSON property `code`
66465
+ # @return [String]
66466
+ attr_accessor :code
66467
+
66468
+ # [Output Only] Metadata about this warning in key:
66469
+ # value format. For example:
66470
+ # "data": [
66471
+ # `
66472
+ # "key": "scope",
66473
+ # "value": "zones/us-east1-d"
66474
+ # `
66475
+ # Corresponds to the JSON property `data`
66476
+ # @return [Array<Google::Apis::ComputeBeta::VmExtensionPolicyAggregatedListResponse::Warning::Datum>]
66477
+ attr_accessor :data
66478
+
66479
+ # [Output Only] A human-readable description of the warning code.
66480
+ # Corresponds to the JSON property `message`
66481
+ # @return [String]
66482
+ attr_accessor :message
66483
+
66484
+ def initialize(**args)
66485
+ update!(**args)
66486
+ end
66487
+
66488
+ # Update properties of this object
66489
+ def update!(**args)
66490
+ @code = args[:code] if args.key?(:code)
66491
+ @data = args[:data] if args.key?(:data)
66492
+ @message = args[:message] if args.key?(:message)
66493
+ end
66494
+
66495
+ #
66496
+ class Datum
66497
+ include Google::Apis::Core::Hashable
66498
+
66499
+ # [Output Only] A key that provides more detail on the warning being
66500
+ # returned. For example, for warnings where there are no results in a list
66501
+ # request for a particular zone, this key might be scope and
66502
+ # the key value might be the zone name. Other examples might be a key
66503
+ # indicating a deprecated resource and a suggested replacement, or a
66504
+ # warning about invalid network settings (for example, if an instance
66505
+ # attempts to perform IP forwarding but is not enabled for IP forwarding).
66506
+ # Corresponds to the JSON property `key`
66507
+ # @return [String]
66508
+ attr_accessor :key
66509
+
66510
+ # [Output Only] A warning data value corresponding to the key.
66511
+ # Corresponds to the JSON property `value`
66512
+ # @return [String]
66513
+ attr_accessor :value
66514
+
66515
+ def initialize(**args)
66516
+ update!(**args)
66517
+ end
66518
+
66519
+ # Update properties of this object
66520
+ def update!(**args)
66521
+ @key = args[:key] if args.key?(:key)
66522
+ @value = args[:value] if args.key?(:value)
66523
+ end
66524
+ end
66525
+ end
66526
+ end
66527
+
66528
+ # Configuration for a specific VM extension.
66529
+ class VmExtensionPolicyExtensionPolicy
65172
66530
  include Google::Apis::Core::Hashable
65173
66531
 
65174
- # The name of an existing bucket in Cloud Storage where the usage report
65175
- # object is stored. The Google Service Account is granted write access to
65176
- # this bucket. This can either be the bucket name by itself, such asexample-
65177
- # bucket, or the bucket name with gs://
65178
- # or https://storage.googleapis.com/ in front of it, such
65179
- # as gs://example-bucket.
65180
- # Corresponds to the JSON property `bucketName`
66532
+ # Optional. The specific version of the extension to install. If not set, the
66533
+ # latest
66534
+ # version is used.
66535
+ # Corresponds to the JSON property `pinnedVersion`
65181
66536
  # @return [String]
65182
- attr_accessor :bucket_name
66537
+ attr_accessor :pinned_version
65183
66538
 
65184
- # An optional prefix for the name of the usage report object stored inbucketName.
65185
- # If not supplied, defaults tousage_gce. The report is stored as a CSV file
65186
- # namedreport_name_prefix_gce_YYYYMMDD.csv whereYYYYMMDD is the day of the usage
65187
- # according to Pacific Time.
65188
- # If you supply a prefix, it should conform to Cloud Storageobject naming
65189
- # conventions.
65190
- # Corresponds to the JSON property `reportNamePrefix`
66539
+ # Optional. String-based configuration data for the extension.
66540
+ # Corresponds to the JSON property `stringConfig`
65191
66541
  # @return [String]
65192
- attr_accessor :report_name_prefix
66542
+ attr_accessor :string_config
65193
66543
 
65194
66544
  def initialize(**args)
65195
66545
  update!(**args)
@@ -65197,24 +66547,20 @@ module Google
65197
66547
 
65198
66548
  # Update properties of this object
65199
66549
  def update!(**args)
65200
- @bucket_name = args[:bucket_name] if args.key?(:bucket_name)
65201
- @report_name_prefix = args[:report_name_prefix] if args.key?(:report_name_prefix)
66550
+ @pinned_version = args[:pinned_version] if args.key?(:pinned_version)
66551
+ @string_config = args[:string_config] if args.key?(:string_config)
65202
66552
  end
65203
66553
  end
65204
66554
 
65205
- # Contain information of Nat mapping for a VM endpoint (i.e., NIC).
65206
- class VmEndpointNatMappings
66555
+ # Defines how to select VMs to apply a zone VM extension policy.
66556
+ class VmExtensionPolicyInstanceSelector
65207
66557
  include Google::Apis::Core::Hashable
65208
66558
 
65209
- # Name of the VM instance which the endpoint belongs to
65210
- # Corresponds to the JSON property `instanceName`
65211
- # @return [String]
65212
- attr_accessor :instance_name
65213
-
65214
- #
65215
- # Corresponds to the JSON property `interfaceNatMappings`
65216
- # @return [Array<Google::Apis::ComputeBeta::VmEndpointNatMappingsInterfaceNatMappings>]
65217
- attr_accessor :interface_nat_mappings
66559
+ # A LabelSelector is applied to a VM only if it matches all the specified
66560
+ # labels.
66561
+ # Corresponds to the JSON property `labelSelector`
66562
+ # @return [Google::Apis::ComputeBeta::VmExtensionPolicyLabelSelector]
66563
+ attr_accessor :label_selector
65218
66564
 
65219
66565
  def initialize(**args)
65220
66566
  update!(**args)
@@ -65222,60 +66568,26 @@ module Google
65222
66568
 
65223
66569
  # Update properties of this object
65224
66570
  def update!(**args)
65225
- @instance_name = args[:instance_name] if args.key?(:instance_name)
65226
- @interface_nat_mappings = args[:interface_nat_mappings] if args.key?(:interface_nat_mappings)
66571
+ @label_selector = args[:label_selector] if args.key?(:label_selector)
65227
66572
  end
65228
66573
  end
65229
66574
 
65230
- # Contain information of Nat mapping for an interface of this endpoint.
65231
- class VmEndpointNatMappingsInterfaceNatMappings
66575
+ # A LabelSelector is applied to a VM only if it matches all the specified
66576
+ # labels.
66577
+ class VmExtensionPolicyLabelSelector
65232
66578
  include Google::Apis::Core::Hashable
65233
66579
 
65234
- # List of all drain IP:port-range mappings assigned to this interface.
65235
- # These ranges are inclusive, that is, both the first and the last
65236
- # ports can be used for NAT. Example: ["2.2.2.2:12345-12355",
65237
- # "1.1.1.1:2234-2234"].
65238
- # Corresponds to the JSON property `drainNatIpPortRanges`
65239
- # @return [Array<String>]
65240
- attr_accessor :drain_nat_ip_port_ranges
65241
-
65242
- # A list of all IP:port-range mappings assigned to this interface.
65243
- # These ranges are inclusive, that is, both the first and the last
65244
- # ports can be used for NAT. Example: ["2.2.2.2:12345-12355",
65245
- # "1.1.1.1:2234-2234"].
65246
- # Corresponds to the JSON property `natIpPortRanges`
65247
- # @return [Array<String>]
65248
- attr_accessor :nat_ip_port_ranges
65249
-
65250
- # Total number of drain ports across all NAT IPs allocated to this
65251
- # interface. It equals to the aggregated port number in the field
65252
- # drain_nat_ip_port_ranges.
65253
- # Corresponds to the JSON property `numTotalDrainNatPorts`
65254
- # @return [Fixnum]
65255
- attr_accessor :num_total_drain_nat_ports
65256
-
65257
- # Total number of ports across all NAT IPs allocated to this interface.
65258
- # It equals to the aggregated port number in the field nat_ip_port_ranges.
65259
- # Corresponds to the JSON property `numTotalNatPorts`
65260
- # @return [Fixnum]
65261
- attr_accessor :num_total_nat_ports
65262
-
65263
- # Information about mappings provided by rules in this NAT.
65264
- # Corresponds to the JSON property `ruleMappings`
65265
- # @return [Array<Google::Apis::ComputeBeta::VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings>]
65266
- attr_accessor :rule_mappings
65267
-
65268
- # Alias IP range for this interface endpoint.
65269
- # It will be a private (RFC 1918) IP range.
65270
- # Examples: "10.33.4.55/32", or "192.168.5.0/24".
65271
- # Corresponds to the JSON property `sourceAliasIpRange`
65272
- # @return [String]
65273
- attr_accessor :source_alias_ip_range
65274
-
65275
- # Primary IP of the VM for this NIC.
65276
- # Corresponds to the JSON property `sourceVirtualIp`
65277
- # @return [String]
65278
- attr_accessor :source_virtual_ip
66580
+ # Optional. A map of key-value pairs representing VM labels.
66581
+ # VMs must have all of the labels specified in this map to be selected
66582
+ # (logical AND).
66583
+ # e.g. If the `inclusion_labels` are `("key1", "value1"), ("key2",
66584
+ # "value2")`, the VM labels must contain both ("key1", "value1") and
66585
+ # ("key2", "value2") to be selected. If the VM labels are ("key1",
66586
+ # "value1") and ("something", "else"), it will not be selected.
66587
+ # If the map is empty, it's considered a match.
66588
+ # Corresponds to the JSON property `inclusionLabels`
66589
+ # @return [Hash<String,String>]
66590
+ attr_accessor :inclusion_labels
65279
66591
 
65280
66592
  def initialize(**args)
65281
66593
  update!(**args)
@@ -65283,85 +66595,35 @@ module Google
65283
66595
 
65284
66596
  # Update properties of this object
65285
66597
  def update!(**args)
65286
- @drain_nat_ip_port_ranges = args[:drain_nat_ip_port_ranges] if args.key?(:drain_nat_ip_port_ranges)
65287
- @nat_ip_port_ranges = args[:nat_ip_port_ranges] if args.key?(:nat_ip_port_ranges)
65288
- @num_total_drain_nat_ports = args[:num_total_drain_nat_ports] if args.key?(:num_total_drain_nat_ports)
65289
- @num_total_nat_ports = args[:num_total_nat_ports] if args.key?(:num_total_nat_ports)
65290
- @rule_mappings = args[:rule_mappings] if args.key?(:rule_mappings)
65291
- @source_alias_ip_range = args[:source_alias_ip_range] if args.key?(:source_alias_ip_range)
65292
- @source_virtual_ip = args[:source_virtual_ip] if args.key?(:source_virtual_ip)
66598
+ @inclusion_labels = args[:inclusion_labels] if args.key?(:inclusion_labels)
65293
66599
  end
65294
66600
  end
65295
66601
 
65296
- # Contains information of NAT Mappings provided by a NAT Rule.
65297
- class VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings
66602
+ #
66603
+ class VmExtensionPolicyList
65298
66604
  include Google::Apis::Core::Hashable
65299
66605
 
65300
- # List of all drain IP:port-range mappings assigned to this interface
65301
- # by this rule.
65302
- # These ranges are inclusive, that is, both the first and the last
65303
- # ports can be used for NAT. Example: ["2.2.2.2:12345-12355",
65304
- # "1.1.1.1:2234-2234"].
65305
- # Corresponds to the JSON property `drainNatIpPortRanges`
65306
- # @return [Array<String>]
65307
- attr_accessor :drain_nat_ip_port_ranges
65308
-
65309
- # A list of all IP:port-range mappings assigned to this interface by this
65310
- # rule.
65311
- # These ranges are inclusive, that is, both the first and the last
65312
- # ports can be used for NAT. Example: ["2.2.2.2:12345-12355",
65313
- # "1.1.1.1:2234-2234"].
65314
- # Corresponds to the JSON property `natIpPortRanges`
65315
- # @return [Array<String>]
65316
- attr_accessor :nat_ip_port_ranges
65317
-
65318
- # Total number of drain ports across all NAT IPs allocated to this
65319
- # interface by this rule.
65320
- # It equals the aggregated port number in the field
65321
- # drain_nat_ip_port_ranges.
65322
- # Corresponds to the JSON property `numTotalDrainNatPorts`
65323
- # @return [Fixnum]
65324
- attr_accessor :num_total_drain_nat_ports
65325
-
65326
- # Total number of ports across all NAT IPs allocated to this interface
65327
- # by this rule.
65328
- # It equals the aggregated port number in the field nat_ip_port_ranges.
65329
- # Corresponds to the JSON property `numTotalNatPorts`
65330
- # @return [Fixnum]
65331
- attr_accessor :num_total_nat_ports
65332
-
65333
- # Rule number of the NAT Rule.
65334
- # Corresponds to the JSON property `ruleNumber`
65335
- # @return [Fixnum]
65336
- attr_accessor :rule_number
65337
-
65338
- def initialize(**args)
65339
- update!(**args)
65340
- end
65341
-
65342
- # Update properties of this object
65343
- def update!(**args)
65344
- @drain_nat_ip_port_ranges = args[:drain_nat_ip_port_ranges] if args.key?(:drain_nat_ip_port_ranges)
65345
- @nat_ip_port_ranges = args[:nat_ip_port_ranges] if args.key?(:nat_ip_port_ranges)
65346
- @num_total_drain_nat_ports = args[:num_total_drain_nat_ports] if args.key?(:num_total_drain_nat_ports)
65347
- @num_total_nat_ports = args[:num_total_nat_ports] if args.key?(:num_total_nat_ports)
65348
- @rule_number = args[:rule_number] if args.key?(:rule_number)
65349
- end
65350
- end
65351
-
65352
- # Contains a list of VmEndpointNatMappings.
65353
- class VmEndpointNatMappingsList
65354
- include Google::Apis::Core::Hashable
66606
+ # [Output Only] Fingerprint of this resource. A hash of the contents stored
66607
+ # in this object. This field is used in optimistic locking. This field will
66608
+ # be ignored when inserting a VmExtensionPolicy. An up-to-date
66609
+ # fingerprint must be provided in order to update the VmExtensionPolicy.
66610
+ # To see the latest value of the fingerprint, make a get() request to
66611
+ # retrieve a VmExtensionPolicy.
66612
+ # Corresponds to the JSON property `etag`
66613
+ # @return [String]
66614
+ attr_accessor :etag
65355
66615
 
65356
- # [Output Only] The unique identifier for the resource. This identifier is
65357
- # defined by the server.
66616
+ # [Output Only] Unique identifier for the resource; defined by the server.
65358
66617
  # Corresponds to the JSON property `id`
65359
66618
  # @return [String]
65360
66619
  attr_accessor :id
65361
66620
 
65362
- # [Output Only] Type of resource. Alwayscompute#vmEndpointNatMappingsList for
65363
- # lists of Nat mappings of
65364
- # VM endpoints.
66621
+ # [Output Only] A list of VM extension policy resources.
66622
+ # Corresponds to the JSON property `items`
66623
+ # @return [Array<Google::Apis::ComputeBeta::VmExtensionPolicy>]
66624
+ attr_accessor :items
66625
+
66626
+ # Type of resource.
65365
66627
  # Corresponds to the JSON property `kind`
65366
66628
  # @return [String]
65367
66629
  attr_accessor :kind
@@ -65376,19 +66638,19 @@ module Google
65376
66638
  # @return [String]
65377
66639
  attr_accessor :next_page_token
65378
66640
 
65379
- # [Output Only] A list of Nat mapping information of VM endpoints.
65380
- # Corresponds to the JSON property `result`
65381
- # @return [Array<Google::Apis::ComputeBeta::VmEndpointNatMappings>]
65382
- attr_accessor :result
65383
-
65384
66641
  # [Output Only] Server-defined URL for this resource.
65385
66642
  # Corresponds to the JSON property `selfLink`
65386
66643
  # @return [String]
65387
66644
  attr_accessor :self_link
65388
66645
 
66646
+ # [Output Only] Unreachable resources.
66647
+ # Corresponds to the JSON property `unreachables`
66648
+ # @return [Array<String>]
66649
+ attr_accessor :unreachables
66650
+
65389
66651
  # [Output Only] Informational warning message.
65390
66652
  # Corresponds to the JSON property `warning`
65391
- # @return [Google::Apis::ComputeBeta::VmEndpointNatMappingsList::Warning]
66653
+ # @return [Google::Apis::ComputeBeta::VmExtensionPolicyList::Warning]
65392
66654
  attr_accessor :warning
65393
66655
 
65394
66656
  def initialize(**args)
@@ -65397,11 +66659,13 @@ module Google
65397
66659
 
65398
66660
  # Update properties of this object
65399
66661
  def update!(**args)
66662
+ @etag = args[:etag] if args.key?(:etag)
65400
66663
  @id = args[:id] if args.key?(:id)
66664
+ @items = args[:items] if args.key?(:items)
65401
66665
  @kind = args[:kind] if args.key?(:kind)
65402
66666
  @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
65403
- @result = args[:result] if args.key?(:result)
65404
66667
  @self_link = args[:self_link] if args.key?(:self_link)
66668
+ @unreachables = args[:unreachables] if args.key?(:unreachables)
65405
66669
  @warning = args[:warning] if args.key?(:warning)
65406
66670
  end
65407
66671
 
@@ -65424,7 +66688,7 @@ module Google
65424
66688
  # "value": "zones/us-east1-d"
65425
66689
  # `
65426
66690
  # Corresponds to the JSON property `data`
65427
- # @return [Array<Google::Apis::ComputeBeta::VmEndpointNatMappingsList::Warning::Datum>]
66691
+ # @return [Array<Google::Apis::ComputeBeta::VmExtensionPolicyList::Warning::Datum>]
65428
66692
  attr_accessor :data
65429
66693
 
65430
66694
  # [Output Only] A human-readable description of the warning code.
@@ -67883,6 +69147,104 @@ module Google
67883
69147
  end
67884
69148
  end
67885
69149
 
69150
+ #
69151
+ class ZoneSetNestedPolicyRequest
69152
+ include Google::Apis::Core::Hashable
69153
+
69154
+ # Flatten Policy to create a backwacd compatible wire-format.
69155
+ # Deprecated. Use 'policy' to specify bindings.
69156
+ # Corresponds to the JSON property `bindings`
69157
+ # @return [Array<Google::Apis::ComputeBeta::Binding>]
69158
+ attr_accessor :bindings
69159
+
69160
+ # Flatten Policy to create a backward compatible wire-format.
69161
+ # Deprecated. Use 'policy' to specify the etag.
69162
+ # Corresponds to the JSON property `etag`
69163
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
69164
+ # @return [String]
69165
+ attr_accessor :etag
69166
+
69167
+ # An Identity and Access Management (IAM) policy, which specifies access
69168
+ # controls for Google Cloud resources.
69169
+ # A `Policy` is a collection of `bindings`. A `binding` binds one or more
69170
+ # `members`, or principals, to a single `role`. Principals can be user
69171
+ # accounts, service accounts, Google groups, and domains (such as G Suite). A
69172
+ # `role` is a named list of permissions; each `role` can be an IAM predefined
69173
+ # role or a user-created custom role.
69174
+ # For some types of Google Cloud resources, a `binding` can also specify a
69175
+ # `condition`, which is a logical expression that allows access to a resource
69176
+ # only if the expression evaluates to `true`. A condition can add constraints
69177
+ # based on attributes of the request, the resource, or both. To learn which
69178
+ # resources support conditions in their IAM policies, see the
69179
+ # [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-
69180
+ # policies).
69181
+ # **JSON example:**
69182
+ # ```
69183
+ # `
69184
+ # "bindings": [
69185
+ # `
69186
+ # "role": "roles/resourcemanager.organizationAdmin",
69187
+ # "members": [
69188
+ # "user:mike@example.com",
69189
+ # "group:admins@example.com",
69190
+ # "domain:google.com",
69191
+ # "serviceAccount:my-project-id@appspot.gserviceaccount.com"
69192
+ # ]
69193
+ # `,
69194
+ # `
69195
+ # "role": "roles/resourcemanager.organizationViewer",
69196
+ # "members": [
69197
+ # "user:eve@example.com"
69198
+ # ],
69199
+ # "condition": `
69200
+ # "title": "expirable access",
69201
+ # "description": "Does not grant access after Sep 2020",
69202
+ # "expression": "request.time < timestamp('2020-10-01T00:00:00.000Z')
69203
+ # ",
69204
+ # `
69205
+ # `
69206
+ # ],
69207
+ # "etag": "BwWWja0YfJA=",
69208
+ # "version": 3
69209
+ # `
69210
+ # ```
69211
+ # **YAML example:**
69212
+ # ```
69213
+ # bindings:
69214
+ # - members:
69215
+ # - user:mike@example.com
69216
+ # - group:admins@example.com
69217
+ # - domain:google.com
69218
+ # - serviceAccount:my-project-id@appspot.gserviceaccount.com
69219
+ # role: roles/resourcemanager.organizationAdmin
69220
+ # - members:
69221
+ # - user:eve@example.com
69222
+ # role: roles/resourcemanager.organizationViewer
69223
+ # condition:
69224
+ # title: expirable access
69225
+ # description: Does not grant access after Sep 2020
69226
+ # expression: request.time < timestamp('2020-10-01T00:00:00.000Z')
69227
+ # etag: BwWWja0YfJA=
69228
+ # version: 3
69229
+ # ```
69230
+ # For a description of IAM and its features, see the
69231
+ # [IAM documentation](https://cloud.google.com/iam/docs/).
69232
+ # Corresponds to the JSON property `policy`
69233
+ # @return [Google::Apis::ComputeBeta::Policy]
69234
+ attr_accessor :policy
69235
+
69236
+ def initialize(**args)
69237
+ update!(**args)
69238
+ end
69239
+
69240
+ # Update properties of this object
69241
+ def update!(**args)
69242
+ @bindings = args[:bindings] if args.key?(:bindings)
69243
+ @etag = args[:etag] if args.key?(:etag)
69244
+ @policy = args[:policy] if args.key?(:policy)
69245
+ end
69246
+ end
69247
+
67886
69248
  #
67887
69249
  class ZoneSetPolicyRequest
67888
69250
  include Google::Apis::Core::Hashable