google-cloud-hypercompute_cluster-v1beta 0.a → 0.1.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.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +12 -0
  3. data/AUTHENTICATION.md +122 -0
  4. data/README.md +154 -8
  5. data/lib/google/cloud/hypercompute_cluster/v1beta/bindings_override.rb +75 -0
  6. data/lib/google/cloud/hypercompute_cluster/v1beta/hypercompute_cluster/client.rb +968 -0
  7. data/lib/google/cloud/hypercompute_cluster/v1beta/hypercompute_cluster/credentials.rb +47 -0
  8. data/lib/google/cloud/hypercompute_cluster/v1beta/hypercompute_cluster/operations.rb +841 -0
  9. data/lib/google/cloud/hypercompute_cluster/v1beta/hypercompute_cluster/paths.rb +217 -0
  10. data/lib/google/cloud/hypercompute_cluster/v1beta/hypercompute_cluster/rest/client.rb +898 -0
  11. data/lib/google/cloud/hypercompute_cluster/v1beta/hypercompute_cluster/rest/operations.rb +925 -0
  12. data/lib/google/cloud/hypercompute_cluster/v1beta/hypercompute_cluster/rest/service_stub.rb +388 -0
  13. data/lib/google/cloud/hypercompute_cluster/v1beta/hypercompute_cluster/rest.rb +54 -0
  14. data/lib/google/cloud/hypercompute_cluster/v1beta/hypercompute_cluster.rb +56 -0
  15. data/lib/google/cloud/hypercompute_cluster/v1beta/rest.rb +38 -0
  16. data/lib/google/cloud/hypercompute_cluster/v1beta/version.rb +7 -2
  17. data/lib/google/cloud/hypercompute_cluster/v1beta.rb +45 -0
  18. data/lib/google/cloud/hypercomputecluster/v1beta/hypercompute_cluster_pb.rb +101 -0
  19. data/lib/google/cloud/hypercomputecluster/v1beta/hypercompute_cluster_services_pb.rb +53 -0
  20. data/lib/google/cloud/hypercomputecluster/v1beta/operation_metadata_pb.rb +47 -0
  21. data/lib/google-cloud-hypercompute_cluster-v1beta.rb +21 -0
  22. data/proto_docs/README.md +4 -0
  23. data/proto_docs/google/api/client.rb +473 -0
  24. data/proto_docs/google/api/field_behavior.rb +85 -0
  25. data/proto_docs/google/api/field_info.rb +88 -0
  26. data/proto_docs/google/api/launch_stage.rb +71 -0
  27. data/proto_docs/google/api/resource.rb +227 -0
  28. data/proto_docs/google/cloud/hypercomputecluster/v1beta/hypercompute_cluster.rb +1007 -0
  29. data/proto_docs/google/cloud/hypercomputecluster/v1beta/operation_metadata.rb +55 -0
  30. data/proto_docs/google/longrunning/operations.rb +191 -0
  31. data/proto_docs/google/protobuf/any.rb +145 -0
  32. data/proto_docs/google/protobuf/duration.rb +98 -0
  33. data/proto_docs/google/protobuf/empty.rb +34 -0
  34. data/proto_docs/google/protobuf/field_mask.rb +229 -0
  35. data/proto_docs/google/protobuf/timestamp.rb +127 -0
  36. data/proto_docs/google/rpc/status.rb +48 -0
  37. metadata +84 -9
@@ -0,0 +1,1007 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2025 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Cloud
22
+ module HypercomputeCluster
23
+ module V1beta
24
+ # A collection of virtual machines and connected resources forming a
25
+ # high-performance computing cluster capable of running large-scale, tightly
26
+ # coupled workloads. A cluster combines a set a compute resources that perform
27
+ # computations, storage resources that contain inputs and store outputs, an
28
+ # orchestrator that is responsible for assigning jobs to compute resources, and
29
+ # network resources that connect everything together.
30
+ # @!attribute [rw] name
31
+ # @return [::String]
32
+ # Identifier. [Relative resource name](https://google.aip.dev/122) of the
33
+ # cluster, in the format
34
+ # `projects/{project}/locations/{location}/clusters/{cluster}`.
35
+ # @!attribute [rw] description
36
+ # @return [::String]
37
+ # Optional. User-provided description of the cluster.
38
+ # @!attribute [rw] labels
39
+ # @return [::Google::Protobuf::Map{::String => ::String}]
40
+ # Optional.
41
+ # [Labels](https://cloud.google.com/compute/docs/labeling-resources) applied
42
+ # to the cluster. Labels can be used to organize clusters and to filter them
43
+ # in queries.
44
+ # @!attribute [r] create_time
45
+ # @return [::Google::Protobuf::Timestamp]
46
+ # Output only. Time that the cluster was originally created.
47
+ # @!attribute [r] update_time
48
+ # @return [::Google::Protobuf::Timestamp]
49
+ # Output only. Time that the cluster was most recently updated.
50
+ # @!attribute [r] reconciling
51
+ # @return [::Boolean]
52
+ # Output only. Indicates whether changes to the cluster are currently in
53
+ # flight. If this is `true`, then the current state might not match the
54
+ # cluster's intended state.
55
+ # @!attribute [rw] network_resources
56
+ # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::HypercomputeCluster::V1beta::NetworkResource}]
57
+ # Optional. Network resources available to the cluster. Must contain at most
58
+ # one value. Keys specify the ID of the network resource by which it can be
59
+ # referenced elsewhere, and must conform to
60
+ # [RFC-1034](https://datatracker.ietf.org/doc/html/rfc1034) (lower-case,
61
+ # alphanumeric, and at most 63 characters).
62
+ # @!attribute [rw] storage_resources
63
+ # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::HypercomputeCluster::V1beta::StorageResource}]
64
+ # Optional. Storage resources available to the cluster. Keys specify the ID
65
+ # of the storage resource by which it can be referenced elsewhere, and must
66
+ # conform to [RFC-1034](https://datatracker.ietf.org/doc/html/rfc1034)
67
+ # (lower-case, alphanumeric, and at most 63 characters).
68
+ # @!attribute [rw] compute_resources
69
+ # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::HypercomputeCluster::V1beta::ComputeResource}]
70
+ # Optional. Compute resources available to the cluster. Keys specify the ID
71
+ # of the compute resource by which it can be referenced elsewhere, and must
72
+ # conform to [RFC-1034](https://datatracker.ietf.org/doc/html/rfc1034)
73
+ # (lower-case, alphanumeric, and at most 63 characters).
74
+ # @!attribute [rw] orchestrator
75
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::Orchestrator]
76
+ # Optional. Orchestrator that is responsible for scheduling and running jobs
77
+ # on the cluster.
78
+ class Cluster
79
+ include ::Google::Protobuf::MessageExts
80
+ extend ::Google::Protobuf::MessageExts::ClassMethods
81
+
82
+ # @!attribute [rw] key
83
+ # @return [::String]
84
+ # @!attribute [rw] value
85
+ # @return [::String]
86
+ class LabelsEntry
87
+ include ::Google::Protobuf::MessageExts
88
+ extend ::Google::Protobuf::MessageExts::ClassMethods
89
+ end
90
+
91
+ # @!attribute [rw] key
92
+ # @return [::String]
93
+ # @!attribute [rw] value
94
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::NetworkResource]
95
+ class NetworkResourcesEntry
96
+ include ::Google::Protobuf::MessageExts
97
+ extend ::Google::Protobuf::MessageExts::ClassMethods
98
+ end
99
+
100
+ # @!attribute [rw] key
101
+ # @return [::String]
102
+ # @!attribute [rw] value
103
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::StorageResource]
104
+ class StorageResourcesEntry
105
+ include ::Google::Protobuf::MessageExts
106
+ extend ::Google::Protobuf::MessageExts::ClassMethods
107
+ end
108
+
109
+ # @!attribute [rw] key
110
+ # @return [::String]
111
+ # @!attribute [rw] value
112
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::ComputeResource]
113
+ class ComputeResourcesEntry
114
+ include ::Google::Protobuf::MessageExts
115
+ extend ::Google::Protobuf::MessageExts::ClassMethods
116
+ end
117
+ end
118
+
119
+ # Request message for
120
+ # {::Google::Cloud::HypercomputeCluster::V1beta::HypercomputeCluster::Client#list_clusters ListClusters}.
121
+ # @!attribute [rw] parent
122
+ # @return [::String]
123
+ # Required. Parent location of the clusters to list, in the format
124
+ # `projects/{project}/locations/{location}`.
125
+ # @!attribute [rw] page_size
126
+ # @return [::Integer]
127
+ # Optional. Maximum number of clusters to return. The service may return
128
+ # fewer than this value.
129
+ # @!attribute [rw] page_token
130
+ # @return [::String]
131
+ # Optional. A page token received from a previous `ListClusters` call.
132
+ # Provide this to retrieve the subsequent page. When paginating, all other
133
+ # parameters provided to `ListClusters` must match the call that provided the
134
+ # page token.
135
+ # @!attribute [rw] filter
136
+ # @return [::String]
137
+ # Optional. [Filter](https://google.aip.dev/160) to apply to the returned
138
+ # results.
139
+ # @!attribute [rw] order_by
140
+ # @return [::String]
141
+ # Optional. How to order the resulting clusters. Must be one of the following
142
+ # strings:
143
+ #
144
+ # * `name`
145
+ # * `name desc`
146
+ # * `create_time`
147
+ # * `create_time desc`
148
+ #
149
+ # If not specified, clusters will be returned in an arbitrary order.
150
+ class ListClustersRequest
151
+ include ::Google::Protobuf::MessageExts
152
+ extend ::Google::Protobuf::MessageExts::ClassMethods
153
+ end
154
+
155
+ # Response message for
156
+ # {::Google::Cloud::HypercomputeCluster::V1beta::HypercomputeCluster::Client#list_clusters ListClusters}.
157
+ # @!attribute [rw] clusters
158
+ # @return [::Array<::Google::Cloud::HypercomputeCluster::V1beta::Cluster>]
159
+ # Clusters in the specified location.
160
+ # @!attribute [rw] next_page_token
161
+ # @return [::String]
162
+ # A token that can be sent as `page_token` to retrieve the next page. If this
163
+ # field is absent, there are no subsequent pages.
164
+ # @!attribute [rw] unreachable
165
+ # @return [::Array<::String>]
166
+ # Locations that could not be reached.
167
+ class ListClustersResponse
168
+ include ::Google::Protobuf::MessageExts
169
+ extend ::Google::Protobuf::MessageExts::ClassMethods
170
+ end
171
+
172
+ # Request message for
173
+ # {::Google::Cloud::HypercomputeCluster::V1beta::HypercomputeCluster::Client#get_cluster GetCluster}.
174
+ # @!attribute [rw] name
175
+ # @return [::String]
176
+ # Required. Name of the cluster to retrieve, in the format
177
+ # `projects/{project}/locations/{location}/clusters/{cluster}`.
178
+ class GetClusterRequest
179
+ include ::Google::Protobuf::MessageExts
180
+ extend ::Google::Protobuf::MessageExts::ClassMethods
181
+ end
182
+
183
+ # Request message for
184
+ # {::Google::Cloud::HypercomputeCluster::V1beta::HypercomputeCluster::Client#create_cluster CreateCluster}.
185
+ # @!attribute [rw] parent
186
+ # @return [::String]
187
+ # Required. Parent location in which the cluster should be created, in the
188
+ # format `projects/{project}/locations/{location}`.
189
+ # @!attribute [rw] cluster_id
190
+ # @return [::String]
191
+ # Required. ID of the cluster to create. Must conform to
192
+ # [RFC-1034](https://datatracker.ietf.org/doc/html/rfc1034) (lower-case,
193
+ # alphanumeric, and at most 63 characters).
194
+ # @!attribute [rw] cluster
195
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::Cluster]
196
+ # Required. Cluster to create.
197
+ # @!attribute [rw] request_id
198
+ # @return [::String]
199
+ # Optional. A unique identifier for this request. A random UUID is
200
+ # recommended. This request is idempotent if and only if `request_id` is
201
+ # provided.
202
+ class CreateClusterRequest
203
+ include ::Google::Protobuf::MessageExts
204
+ extend ::Google::Protobuf::MessageExts::ClassMethods
205
+ end
206
+
207
+ # Request message for
208
+ # {::Google::Cloud::HypercomputeCluster::V1beta::HypercomputeCluster::Client#update_cluster UpdateCluster}.
209
+ # @!attribute [rw] cluster
210
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::Cluster]
211
+ # Required. Cluster to update.
212
+ # @!attribute [rw] update_mask
213
+ # @return [::Google::Protobuf::FieldMask]
214
+ # Optional. Mask specifying which fields in the cluster to update. All paths
215
+ # must be specified explicitly - wildcards are not supported. At least one
216
+ # path must be provided.
217
+ # @!attribute [rw] request_id
218
+ # @return [::String]
219
+ # Optional. A unique identifier for this request. A random UUID is
220
+ # recommended. This request is idempotent if and only if `request_id` is
221
+ # provided.
222
+ class UpdateClusterRequest
223
+ include ::Google::Protobuf::MessageExts
224
+ extend ::Google::Protobuf::MessageExts::ClassMethods
225
+ end
226
+
227
+ # Request message for
228
+ # {::Google::Cloud::HypercomputeCluster::V1beta::HypercomputeCluster::Client#delete_cluster DeleteCluster}.
229
+ # @!attribute [rw] name
230
+ # @return [::String]
231
+ # Required. Name of the cluster to delete, in the format
232
+ # `projects/{project}/locations/{location}/clusters/{cluster}`.
233
+ # @!attribute [rw] request_id
234
+ # @return [::String]
235
+ # Optional. A unique identifier for this request. A random UUID is
236
+ # recommended. This request is idempotent if and only if `request_id` is
237
+ # provided.
238
+ class DeleteClusterRequest
239
+ include ::Google::Protobuf::MessageExts
240
+ extend ::Google::Protobuf::MessageExts::ClassMethods
241
+ end
242
+
243
+ # A resource representing a network that connects the various components of a
244
+ # cluster together.
245
+ # @!attribute [rw] network
246
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::NetworkReference]
247
+ # Reference to a network in Google Compute Engine.
248
+ # @!attribute [rw] config
249
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::NetworkResourceConfig]
250
+ # Immutable. Configuration for this network resource, which describes how it
251
+ # should be created or imported. This field only controls how the network
252
+ # resource is initially created or imported. Subsequent changes to the
253
+ # network resource should be made via the resource's API and will not be
254
+ # reflected in the configuration.
255
+ class NetworkResource
256
+ include ::Google::Protobuf::MessageExts
257
+ extend ::Google::Protobuf::MessageExts::ClassMethods
258
+ end
259
+
260
+ # A reference to a [VPC network](https://cloud.google.com/vpc/docs/vpc) in
261
+ # Google Compute Engine.
262
+ # @!attribute [r] network
263
+ # @return [::String]
264
+ # Output only. Name of the network, in the format
265
+ # `projects/{project}/global/networks/{network}`.
266
+ # @!attribute [r] subnetwork
267
+ # @return [::String]
268
+ # Output only. Name of the particular subnetwork being used by the cluster,
269
+ # in the format
270
+ # `projects/{project}/regions/{region}/subnetworks/{subnetwork}`.
271
+ class NetworkReference
272
+ include ::Google::Protobuf::MessageExts
273
+ extend ::Google::Protobuf::MessageExts::ClassMethods
274
+ end
275
+
276
+ # Describes how a network resource should be initialized. Each network resource
277
+ # can either be imported from an existing Google Cloud resource or initialized
278
+ # when the cluster is created.
279
+ # @!attribute [rw] new_network
280
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::NewNetworkConfig]
281
+ # Optional. Immutable. If set, indicates that a new network should be
282
+ # created.
283
+ #
284
+ # Note: The following fields are mutually exclusive: `new_network`, `existing_network`. If a field in that set is populated, all other fields in the set will automatically be cleared.
285
+ # @!attribute [rw] existing_network
286
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::ExistingNetworkConfig]
287
+ # Optional. Immutable. If set, indicates that an existing network should be
288
+ # imported.
289
+ #
290
+ # Note: The following fields are mutually exclusive: `existing_network`, `new_network`. If a field in that set is populated, all other fields in the set will automatically be cleared.
291
+ class NetworkResourceConfig
292
+ include ::Google::Protobuf::MessageExts
293
+ extend ::Google::Protobuf::MessageExts::ClassMethods
294
+ end
295
+
296
+ # When set in a
297
+ # {::Google::Cloud::HypercomputeCluster::V1beta::NetworkResourceConfig NetworkResourceConfig},
298
+ # indicates that a new network should be created.
299
+ # @!attribute [rw] network
300
+ # @return [::String]
301
+ # Required. Immutable. Name of the network to create, in the format
302
+ # `projects/{project}/global/networks/{network}`.
303
+ # @!attribute [rw] description
304
+ # @return [::String]
305
+ # Optional. Immutable. Description of the network. Maximum of 2048
306
+ # characters.
307
+ class NewNetworkConfig
308
+ include ::Google::Protobuf::MessageExts
309
+ extend ::Google::Protobuf::MessageExts::ClassMethods
310
+ end
311
+
312
+ # When set in a
313
+ # {::Google::Cloud::HypercomputeCluster::V1beta::NetworkResourceConfig NetworkResourceConfig},
314
+ # indicates that an existing network should be imported.
315
+ # @!attribute [rw] network
316
+ # @return [::String]
317
+ # Required. Immutable. Name of the network to import, in the format
318
+ # `projects/{project}/global/networks/{network}`.
319
+ # @!attribute [rw] subnetwork
320
+ # @return [::String]
321
+ # Required. Immutable. Particular subnetwork to use, in the format
322
+ # `projects/{project}/regions/{region}/subnetworks/{subnetwork}`.
323
+ class ExistingNetworkConfig
324
+ include ::Google::Protobuf::MessageExts
325
+ extend ::Google::Protobuf::MessageExts::ClassMethods
326
+ end
327
+
328
+ # A resource representing a form of persistent storage that is accessible to
329
+ # compute resources in the cluster.
330
+ # @!attribute [rw] filestore
331
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::FilestoreReference]
332
+ # Reference to a Filestore instance. Populated if and only if the storage
333
+ # resource was configured to use Filestore.
334
+ #
335
+ # Note: The following fields are mutually exclusive: `filestore`, `bucket`, `lustre`. If a field in that set is populated, all other fields in the set will automatically be cleared.
336
+ # @!attribute [rw] bucket
337
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::BucketReference]
338
+ # Reference to a Google Cloud Storage bucket. Populated if and only if the
339
+ # storage resource was configured to use Google Cloud Storage.
340
+ #
341
+ # Note: The following fields are mutually exclusive: `bucket`, `filestore`, `lustre`. If a field in that set is populated, all other fields in the set will automatically be cleared.
342
+ # @!attribute [rw] lustre
343
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::LustreReference]
344
+ # Reference to a Managed Lustre instance. Populated if and only if the
345
+ # storage resource was configured to use Managed Lustre.
346
+ #
347
+ # Note: The following fields are mutually exclusive: `lustre`, `filestore`, `bucket`. If a field in that set is populated, all other fields in the set will automatically be cleared.
348
+ # @!attribute [rw] config
349
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::StorageResourceConfig]
350
+ # Required. Immutable. Configuration for this storage resource, which
351
+ # describes how it should be created or imported. This field only controls
352
+ # how the storage resource is initially created or imported. Subsequent
353
+ # changes to the storage resource should be made via the resource's API and
354
+ # will not be reflected in the configuration.
355
+ class StorageResource
356
+ include ::Google::Protobuf::MessageExts
357
+ extend ::Google::Protobuf::MessageExts::ClassMethods
358
+ end
359
+
360
+ # A reference to a [Filestore](https://cloud.google.com/filestore) instance.
361
+ # @!attribute [r] filestore
362
+ # @return [::String]
363
+ # Output only. Name of the Filestore instance, in the format
364
+ # `projects/{project}/locations/{location}/instances/{instance}`
365
+ class FilestoreReference
366
+ include ::Google::Protobuf::MessageExts
367
+ extend ::Google::Protobuf::MessageExts::ClassMethods
368
+ end
369
+
370
+ # A reference to a [Google Cloud Storage](https://cloud.google.com/storage)
371
+ # bucket.
372
+ # @!attribute [r] bucket
373
+ # @return [::String]
374
+ # Output only. Name of the bucket.
375
+ class BucketReference
376
+ include ::Google::Protobuf::MessageExts
377
+ extend ::Google::Protobuf::MessageExts::ClassMethods
378
+ end
379
+
380
+ # A reference to a [Managed
381
+ # Lustre](https://cloud.google.com/products/managed-lustre) instance.
382
+ # @!attribute [r] lustre
383
+ # @return [::String]
384
+ # Output only. Name of the Managed Lustre instance, in the format
385
+ # `projects/{project}/locations/{location}/instances/{instance}`
386
+ class LustreReference
387
+ include ::Google::Protobuf::MessageExts
388
+ extend ::Google::Protobuf::MessageExts::ClassMethods
389
+ end
390
+
391
+ # Describes how a storage resource should be initialized. Each storage resource
392
+ # can either be imported from an existing Google Cloud resource or initialized
393
+ # when the cluster is created.
394
+ # @!attribute [rw] new_filestore
395
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::NewFilestoreConfig]
396
+ # Optional. Immutable. If set, indicates that a new Filestore instance
397
+ # should be created.
398
+ #
399
+ # Note: The following fields are mutually exclusive: `new_filestore`, `existing_filestore`, `new_bucket`, `existing_bucket`, `new_lustre`, `existing_lustre`. If a field in that set is populated, all other fields in the set will automatically be cleared.
400
+ # @!attribute [rw] existing_filestore
401
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::ExistingFilestoreConfig]
402
+ # Optional. Immutable. If set, indicates that an existing Filestore
403
+ # instance should be imported.
404
+ #
405
+ # Note: The following fields are mutually exclusive: `existing_filestore`, `new_filestore`, `new_bucket`, `existing_bucket`, `new_lustre`, `existing_lustre`. If a field in that set is populated, all other fields in the set will automatically be cleared.
406
+ # @!attribute [rw] new_bucket
407
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::NewBucketConfig]
408
+ # Optional. Immutable. If set, indicates that a new Cloud Storage bucket
409
+ # should be created.
410
+ #
411
+ # Note: The following fields are mutually exclusive: `new_bucket`, `new_filestore`, `existing_filestore`, `existing_bucket`, `new_lustre`, `existing_lustre`. If a field in that set is populated, all other fields in the set will automatically be cleared.
412
+ # @!attribute [rw] existing_bucket
413
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::ExistingBucketConfig]
414
+ # Optional. Immutable. If set, indicates that an existing Cloud Storage
415
+ # bucket should be imported.
416
+ #
417
+ # Note: The following fields are mutually exclusive: `existing_bucket`, `new_filestore`, `existing_filestore`, `new_bucket`, `new_lustre`, `existing_lustre`. If a field in that set is populated, all other fields in the set will automatically be cleared.
418
+ # @!attribute [rw] new_lustre
419
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::NewLustreConfig]
420
+ # Optional. Immutable. If set, indicates that a new Managed Lustre instance
421
+ # should be created.
422
+ #
423
+ # Note: The following fields are mutually exclusive: `new_lustre`, `new_filestore`, `existing_filestore`, `new_bucket`, `existing_bucket`, `existing_lustre`. If a field in that set is populated, all other fields in the set will automatically be cleared.
424
+ # @!attribute [rw] existing_lustre
425
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::ExistingLustreConfig]
426
+ # Optional. Immutable. If set, indicates that an existing Managed Lustre
427
+ # instance should be imported.
428
+ #
429
+ # Note: The following fields are mutually exclusive: `existing_lustre`, `new_filestore`, `existing_filestore`, `new_bucket`, `existing_bucket`, `new_lustre`. If a field in that set is populated, all other fields in the set will automatically be cleared.
430
+ class StorageResourceConfig
431
+ include ::Google::Protobuf::MessageExts
432
+ extend ::Google::Protobuf::MessageExts::ClassMethods
433
+ end
434
+
435
+ # When set in a
436
+ # {::Google::Cloud::HypercomputeCluster::V1beta::StorageResourceConfig StorageResourceConfig},
437
+ # indicates that a new [Filestore](https://cloud.google.com/filestore) instance
438
+ # should be created.
439
+ # @!attribute [rw] filestore
440
+ # @return [::String]
441
+ # Required. Immutable. Name of the Filestore instance to create, in the
442
+ # format `projects/{project}/locations/{location}/instances/{instance}`
443
+ # @!attribute [rw] description
444
+ # @return [::String]
445
+ # Optional. Immutable. Description of the instance. Maximum of 2048
446
+ # characters.
447
+ # @!attribute [rw] file_shares
448
+ # @return [::Array<::Google::Cloud::HypercomputeCluster::V1beta::FileShareConfig>]
449
+ # Required. Immutable. File system shares on the instance. Exactly one file
450
+ # share must be specified.
451
+ # @!attribute [rw] tier
452
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::NewFilestoreConfig::Tier]
453
+ # Required. Immutable. Service tier to use for the instance.
454
+ # @!attribute [rw] protocol
455
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::NewFilestoreConfig::Protocol]
456
+ # Optional. Immutable. Access protocol to use for all file shares in the
457
+ # instance. Defaults to NFS V3 if not set.
458
+ class NewFilestoreConfig
459
+ include ::Google::Protobuf::MessageExts
460
+ extend ::Google::Protobuf::MessageExts::ClassMethods
461
+
462
+ # Available [service
463
+ # tiers](https://cloud.google.com/filestore/docs/service-tiers) for Filestore
464
+ # instances.
465
+ module Tier
466
+ # Not set.
467
+ TIER_UNSPECIFIED = 0
468
+
469
+ # Offers expanded capacity and performance scaling capabilities suitable
470
+ # for high-performance computing application requirements.
471
+ ZONAL = 4
472
+
473
+ # Offers features and availability needed for mission-critical,
474
+ # high-performance computing workloads.
475
+ REGIONAL = 6
476
+ end
477
+
478
+ # File access protocol for Filestore instances.
479
+ module Protocol
480
+ # Not set.
481
+ PROTOCOL_UNSPECIFIED = 0
482
+
483
+ # NFS 3.0.
484
+ NFSV3 = 1
485
+
486
+ # NFS 4.1.
487
+ NFSV41 = 2
488
+ end
489
+ end
490
+
491
+ # Message describing filestore configuration
492
+ # @!attribute [rw] capacity_gb
493
+ # @return [::Integer]
494
+ # Required. Size of the filestore in GB. Must be between 1024 and 102400, and
495
+ # must meet scalability requirements described at
496
+ # https://cloud.google.com/filestore/docs/service-tiers.
497
+ # @!attribute [rw] file_share
498
+ # @return [::String]
499
+ # Required. Filestore share location
500
+ class FileShareConfig
501
+ include ::Google::Protobuf::MessageExts
502
+ extend ::Google::Protobuf::MessageExts::ClassMethods
503
+ end
504
+
505
+ # When set in a
506
+ # {::Google::Cloud::HypercomputeCluster::V1beta::StorageResourceConfig StorageResourceConfig},
507
+ # indicates that an existing [Filestore](https://cloud.google.com/filestore)
508
+ # instance should be imported.
509
+ # @!attribute [rw] filestore
510
+ # @return [::String]
511
+ # Required. Immutable. Name of the Filestore instance to import, in the
512
+ # format `projects/{project}/locations/{location}/instances/{instance}`
513
+ class ExistingFilestoreConfig
514
+ include ::Google::Protobuf::MessageExts
515
+ extend ::Google::Protobuf::MessageExts::ClassMethods
516
+ end
517
+
518
+ # When set in a
519
+ # {::Google::Cloud::HypercomputeCluster::V1beta::StorageResourceConfig StorageResourceConfig},
520
+ # indicates that a new [Google Cloud Storage](https://cloud.google.com/storage)
521
+ # bucket should be created.
522
+ # @!attribute [rw] autoclass
523
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::GcsAutoclassConfig]
524
+ # Optional. Immutable. If set, indicates that the bucket should use
525
+ # [Autoclass](https://cloud.google.com/storage/docs/autoclass).
526
+ #
527
+ # Note: The following fields are mutually exclusive: `autoclass`, `storage_class`. If a field in that set is populated, all other fields in the set will automatically be cleared.
528
+ # @!attribute [rw] storage_class
529
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::NewBucketConfig::StorageClass]
530
+ # Optional. Immutable. If set, uses the provided storage class as the
531
+ # bucket's default storage class.
532
+ #
533
+ # Note: The following fields are mutually exclusive: `storage_class`, `autoclass`. If a field in that set is populated, all other fields in the set will automatically be cleared.
534
+ # @!attribute [rw] bucket
535
+ # @return [::String]
536
+ # Required. Immutable. Name of the Cloud Storage bucket to create.
537
+ # @!attribute [rw] hierarchical_namespace
538
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::GcsHierarchicalNamespaceConfig]
539
+ # Optional. Immutable. If set, indicates that the bucket should use
540
+ # [hierarchical
541
+ # namespaces](https://cloud.google.com/storage/docs/hns-overview).
542
+ class NewBucketConfig
543
+ include ::Google::Protobuf::MessageExts
544
+ extend ::Google::Protobuf::MessageExts::ClassMethods
545
+
546
+ # [Storage class](https://cloud.google.com/storage/docs/storage-classes) for
547
+ # a Cloud Storage bucket.
548
+ module StorageClass
549
+ # Not set.
550
+ STORAGE_CLASS_UNSPECIFIED = 0
551
+
552
+ # Best for data that is frequently accessed.
553
+ STANDARD = 1
554
+
555
+ # Low-cost storage for data that is accessed less frequently.
556
+ NEARLINE = 2
557
+
558
+ # Very low-cost storage for infrequently accessed data.
559
+ COLDLINE = 3
560
+
561
+ # Lowest-cost storage for data archiving, online backup, and disaster
562
+ # recovery.
563
+ ARCHIVE = 4
564
+ end
565
+ end
566
+
567
+ # Message describing Google Cloud Storage autoclass configuration
568
+ # @!attribute [rw] enabled
569
+ # @return [::Boolean]
570
+ # Required. Enables Auto-class feature.
571
+ # @!attribute [rw] terminal_storage_class
572
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::GcsAutoclassConfig::TerminalStorageClass]
573
+ # Optional. Terminal storage class of the autoclass bucket
574
+ class GcsAutoclassConfig
575
+ include ::Google::Protobuf::MessageExts
576
+ extend ::Google::Protobuf::MessageExts::ClassMethods
577
+
578
+ # Terminal storage class types of the autoclass bucket
579
+ module TerminalStorageClass
580
+ # Unspecified terminal storage class
581
+ TERMINAL_STORAGE_CLASS_UNSPECIFIED = 0
582
+ end
583
+ end
584
+
585
+ # Message describing Google Cloud Storage hierarchical namespace configuration
586
+ # @!attribute [rw] enabled
587
+ # @return [::Boolean]
588
+ # Required. Enables hierarchical namespace setup for the bucket.
589
+ class GcsHierarchicalNamespaceConfig
590
+ include ::Google::Protobuf::MessageExts
591
+ extend ::Google::Protobuf::MessageExts::ClassMethods
592
+ end
593
+
594
+ # When set in a
595
+ # {::Google::Cloud::HypercomputeCluster::V1beta::StorageResourceConfig StorageResourceConfig},
596
+ # indicates that an existing [Google Cloud
597
+ # Storage](https://cloud.google.com/storage) bucket should be imported.
598
+ # @!attribute [rw] bucket
599
+ # @return [::String]
600
+ # Required. Immutable. Name of the Cloud Storage bucket to import.
601
+ class ExistingBucketConfig
602
+ include ::Google::Protobuf::MessageExts
603
+ extend ::Google::Protobuf::MessageExts::ClassMethods
604
+ end
605
+
606
+ # When set in a
607
+ # {::Google::Cloud::HypercomputeCluster::V1beta::StorageResourceConfig StorageResourceConfig},
608
+ # indicates that a new [Managed
609
+ # Lustre](https://cloud.google.com/products/managed-lustre) instance should be
610
+ # created.
611
+ # @!attribute [rw] lustre
612
+ # @return [::String]
613
+ # Required. Immutable. Name of the Managed Lustre instance to create, in the
614
+ # format `projects/{project}/locations/{location}/instances/{instance}`
615
+ # @!attribute [rw] description
616
+ # @return [::String]
617
+ # Optional. Immutable. Description of the Managed Lustre instance. Maximum of
618
+ # 2048 characters.
619
+ # @!attribute [rw] filesystem
620
+ # @return [::String]
621
+ # Required. Immutable. Filesystem name for this instance. This name is used
622
+ # by client-side tools, including when mounting the instance. Must be 8
623
+ # characters or less and can only contain letters and numbers.
624
+ # @!attribute [rw] capacity_gb
625
+ # @return [::Integer]
626
+ # Required. Immutable. Storage capacity of the instance in gibibytes (GiB).
627
+ # Allowed values are between 18000 and 7632000.
628
+ class NewLustreConfig
629
+ include ::Google::Protobuf::MessageExts
630
+ extend ::Google::Protobuf::MessageExts::ClassMethods
631
+ end
632
+
633
+ # When set in a
634
+ # {::Google::Cloud::HypercomputeCluster::V1beta::StorageResourceConfig StorageResourceConfig},
635
+ # indicates that an existing [Managed
636
+ # Lustre](https://cloud.google.com/products/managed-lustre) instance should be
637
+ # imported.
638
+ # @!attribute [rw] lustre
639
+ # @return [::String]
640
+ # Required. Immutable. Name of the Managed Lustre instance to import, in the
641
+ # format `projects/{project}/locations/{location}/instances/{instance}`
642
+ class ExistingLustreConfig
643
+ include ::Google::Protobuf::MessageExts
644
+ extend ::Google::Protobuf::MessageExts::ClassMethods
645
+ end
646
+
647
+ # A resource defining how virtual machines and accelerators should be
648
+ # provisioned for the cluster.
649
+ # @!attribute [rw] config
650
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::ComputeResourceConfig]
651
+ # Required. Immutable. Configuration for this compute resource, which
652
+ # describes how it should be created at runtime.
653
+ class ComputeResource
654
+ include ::Google::Protobuf::MessageExts
655
+ extend ::Google::Protobuf::MessageExts::ClassMethods
656
+ end
657
+
658
+ # Describes how a compute resource should be created at runtime.
659
+ # @!attribute [rw] new_on_demand_instances
660
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::NewOnDemandInstancesConfig]
661
+ # Optional. Immutable. If set, indicates that this resource should use
662
+ # on-demand VMs.
663
+ #
664
+ # Note: The following fields are mutually exclusive: `new_on_demand_instances`, `new_spot_instances`, `new_reserved_instances`, `new_flex_start_instances`. If a field in that set is populated, all other fields in the set will automatically be cleared.
665
+ # @!attribute [rw] new_spot_instances
666
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::NewSpotInstancesConfig]
667
+ # Optional. Immutable. If set, indicates that this resource should use spot
668
+ # VMs.
669
+ #
670
+ # Note: The following fields are mutually exclusive: `new_spot_instances`, `new_on_demand_instances`, `new_reserved_instances`, `new_flex_start_instances`. If a field in that set is populated, all other fields in the set will automatically be cleared.
671
+ # @!attribute [rw] new_reserved_instances
672
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::NewReservedInstancesConfig]
673
+ # Optional. Immutable. If set, indicates that this resource should use
674
+ # reserved VMs.
675
+ #
676
+ # Note: The following fields are mutually exclusive: `new_reserved_instances`, `new_on_demand_instances`, `new_spot_instances`, `new_flex_start_instances`. If a field in that set is populated, all other fields in the set will automatically be cleared.
677
+ # @!attribute [rw] new_flex_start_instances
678
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::NewFlexStartInstancesConfig]
679
+ # Optional. Immutable. If set, indicates that this resource should use
680
+ # flex-start VMs.
681
+ #
682
+ # Note: The following fields are mutually exclusive: `new_flex_start_instances`, `new_on_demand_instances`, `new_spot_instances`, `new_reserved_instances`. If a field in that set is populated, all other fields in the set will automatically be cleared.
683
+ class ComputeResourceConfig
684
+ include ::Google::Protobuf::MessageExts
685
+ extend ::Google::Protobuf::MessageExts::ClassMethods
686
+ end
687
+
688
+ # When set in a
689
+ # {::Google::Cloud::HypercomputeCluster::V1beta::ComputeResourceConfig ComputeResourceConfig},
690
+ # indicates that on-demand (i.e., using the standard provisioning model) VM
691
+ # instances should be created.
692
+ # @!attribute [rw] zone
693
+ # @return [::String]
694
+ # Required. Immutable. Name of the zone in which VM instances should run,
695
+ # e.g., `us-central1-a`. Must be in the same region as the cluster, and must
696
+ # match the zone of any other resources specified in the cluster.
697
+ # @!attribute [rw] machine_type
698
+ # @return [::String]
699
+ # Required. Immutable. Name of the Compute Engine [machine
700
+ # type](https://cloud.google.com/compute/docs/machine-resource) to use, e.g.
701
+ # `n2-standard-2`.
702
+ class NewOnDemandInstancesConfig
703
+ include ::Google::Protobuf::MessageExts
704
+ extend ::Google::Protobuf::MessageExts::ClassMethods
705
+ end
706
+
707
+ # When set in a
708
+ # {::Google::Cloud::HypercomputeCluster::V1beta::ComputeResourceConfig ComputeResourceConfig},
709
+ # indicates that [spot
710
+ # VM](https://cloud.google.com/compute/docs/instances/spot) instances should be
711
+ # created.
712
+ # @!attribute [rw] zone
713
+ # @return [::String]
714
+ # Required. Immutable. Name of the zone in which VM instances should run,
715
+ # e.g., `us-central1-a`. Must be in the same region as the cluster, and must
716
+ # match the zone of any other resources specified in the cluster.
717
+ # @!attribute [rw] machine_type
718
+ # @return [::String]
719
+ # Required. Immutable. Name of the Compute Engine [machine
720
+ # type](https://cloud.google.com/compute/docs/machine-resource) to use, e.g.
721
+ # `n2-standard-2`.
722
+ class NewSpotInstancesConfig
723
+ include ::Google::Protobuf::MessageExts
724
+ extend ::Google::Protobuf::MessageExts::ClassMethods
725
+ end
726
+
727
+ # When set in a
728
+ # {::Google::Cloud::HypercomputeCluster::V1beta::ComputeResourceConfig ComputeResourceConfig},
729
+ # indicates that VM instances should be created from a
730
+ # [reservation](https://cloud.google.com/compute/docs/instances/reservations-overview).
731
+ # @!attribute [rw] reservation
732
+ # @return [::String]
733
+ # Optional. Immutable. Name of the reservation from which VM instances
734
+ # should be created, in the format
735
+ # `projects/{project}/zones/{zone}/reservations/{reservation}`.
736
+ class NewReservedInstancesConfig
737
+ include ::Google::Protobuf::MessageExts
738
+ extend ::Google::Protobuf::MessageExts::ClassMethods
739
+ end
740
+
741
+ # When set in a
742
+ # {::Google::Cloud::HypercomputeCluster::V1beta::ComputeResourceConfig ComputeResourceConfig},
743
+ # indicates that VM instances should be created using [Flex
744
+ # Start](https://cloud.google.com/compute/docs/instances/provisioning-models).
745
+ # @!attribute [rw] zone
746
+ # @return [::String]
747
+ # Required. Immutable. Name of the zone in which VM instances should run,
748
+ # e.g., `us-central1-a`. Must be in the same region as the cluster, and must
749
+ # match the zone of any other resources specified in the cluster.
750
+ # @!attribute [rw] machine_type
751
+ # @return [::String]
752
+ # Required. Immutable. Name of the Compute Engine [machine
753
+ # type](https://cloud.google.com/compute/docs/machine-resource) to use, e.g.
754
+ # `n2-standard-2`.
755
+ # @!attribute [rw] max_duration
756
+ # @return [::Google::Protobuf::Duration]
757
+ # Required. Immutable. Specifies the time limit for created instances.
758
+ # Instances will be terminated at the end of this duration.
759
+ class NewFlexStartInstancesConfig
760
+ include ::Google::Protobuf::MessageExts
761
+ extend ::Google::Protobuf::MessageExts::ClassMethods
762
+ end
763
+
764
+ # A [Persistent disk](https://cloud.google.com/compute/docs/disks) used as the
765
+ # boot disk for a Compute Engine VM instance.
766
+ # @!attribute [rw] type
767
+ # @return [::String]
768
+ # Required. Immutable. [Persistent disk
769
+ # type](https://cloud.google.com/compute/docs/disks#disk-types), in the
770
+ # format `projects/{project}/zones/{zone}/diskTypes/{disk_type}`.
771
+ # @!attribute [rw] size_gb
772
+ # @return [::Integer]
773
+ # Required. Immutable. Size of the disk in gigabytes. Must be at least 10GB.
774
+ class BootDisk
775
+ include ::Google::Protobuf::MessageExts
776
+ extend ::Google::Protobuf::MessageExts::ClassMethods
777
+ end
778
+
779
+ # The component responsible for scheduling and running workloads on the
780
+ # cluster as well as providing the user interface for interacting with the
781
+ # cluster at runtime.
782
+ # @!attribute [rw] slurm
783
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::SlurmOrchestrator]
784
+ # Optional. If set, indicates that the cluster should use Slurm as the
785
+ # orchestrator.
786
+ class Orchestrator
787
+ include ::Google::Protobuf::MessageExts
788
+ extend ::Google::Protobuf::MessageExts::ClassMethods
789
+ end
790
+
791
+ # When set in
792
+ # {::Google::Cloud::HypercomputeCluster::V1beta::Orchestrator Orchestrator},
793
+ # indicates that the cluster should use [Slurm](https://slurm.schedmd.com/) as
794
+ # the orchestrator.
795
+ # @!attribute [rw] login_nodes
796
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::SlurmLoginNodes]
797
+ # Required. Configuration for login nodes, which allow users to access the
798
+ # cluster over SSH.
799
+ # @!attribute [rw] node_sets
800
+ # @return [::Array<::Google::Cloud::HypercomputeCluster::V1beta::SlurmNodeSet>]
801
+ # Required. Configuration of Slurm nodesets, which define groups of compute
802
+ # resources that can be used by Slurm. At least one compute node is required.
803
+ # @!attribute [rw] partitions
804
+ # @return [::Array<::Google::Cloud::HypercomputeCluster::V1beta::SlurmPartition>]
805
+ # Required. Configuration of Slurm partitions, which group one or more
806
+ # nodesets. Acts as a queue against which jobs can be submitted. At least one
807
+ # partition is required.
808
+ # @!attribute [rw] default_partition
809
+ # @return [::String]
810
+ # Optional. Default partition to use for submitted jobs that do not
811
+ # explicitly specify a partition. Required if and only if there is more than
812
+ # one partition, in which case it must match the id of one of the partitions.
813
+ # @!attribute [rw] prolog_bash_scripts
814
+ # @return [::Array<::String>]
815
+ # Optional. Slurm [prolog
816
+ # scripts](https://slurm.schedmd.com/prolog_epilog.html), which will be
817
+ # executed by compute nodes before a node begins running a new job. Values
818
+ # must not be empty.
819
+ # @!attribute [rw] epilog_bash_scripts
820
+ # @return [::Array<::String>]
821
+ # Optional. Slurm [epilog
822
+ # scripts](https://slurm.schedmd.com/prolog_epilog.html), which will be
823
+ # executed by compute nodes whenever a node finishes running a job. Values
824
+ # must not be empty.
825
+ class SlurmOrchestrator
826
+ include ::Google::Protobuf::MessageExts
827
+ extend ::Google::Protobuf::MessageExts::ClassMethods
828
+ end
829
+
830
+ # Configuration for Slurm nodesets in the cluster. Nodesets are groups of
831
+ # compute nodes used by Slurm that are responsible for running workloads
832
+ # submitted to the cluster.
833
+ # @!attribute [rw] compute_instance
834
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::ComputeInstanceSlurmNodeSet]
835
+ # Optional. If set, indicates that the nodeset should be backed by Compute
836
+ # Engine instances.
837
+ # @!attribute [rw] id
838
+ # @return [::String]
839
+ # Required. Identifier for the nodeset, which allows it to be referenced by
840
+ # partitions. Must conform to
841
+ # [RFC-1034](https://datatracker.ietf.org/doc/html/rfc1034) (lower-case,
842
+ # alphanumeric, and at most 63 characters).
843
+ # @!attribute [rw] compute_id
844
+ # @return [::String]
845
+ # Optional. ID of the compute resource on which this nodeset will run. Must
846
+ # match a key in the cluster's
847
+ # [compute_resources](Cluster.compute_resources).
848
+ # @!attribute [rw] storage_configs
849
+ # @return [::Array<::Google::Cloud::HypercomputeCluster::V1beta::StorageConfig>]
850
+ # Optional. How [storage
851
+ # resources][google.cloud.hypercomputecluster.v1beta.StorageResource] should
852
+ # be mounted on each compute node.
853
+ # @!attribute [rw] static_node_count
854
+ # @return [::Integer]
855
+ # Optional. Number of nodes to be statically created for this nodeset. The
856
+ # cluster will attempt to ensure that at least this many nodes exist at all
857
+ # times.
858
+ # @!attribute [rw] max_dynamic_node_count
859
+ # @return [::Integer]
860
+ # Optional. Controls how many additional nodes a cluster can bring online to
861
+ # handle workloads. Set this value to enable dynamic node creation and limit
862
+ # the number of additional nodes the cluster can bring online. Leave empty if
863
+ # you do not want the cluster to create nodes dynamically, and instead rely
864
+ # only on static nodes.
865
+ class SlurmNodeSet
866
+ include ::Google::Protobuf::MessageExts
867
+ extend ::Google::Protobuf::MessageExts::ClassMethods
868
+ end
869
+
870
+ # When set in a
871
+ # {::Google::Cloud::HypercomputeCluster::V1beta::SlurmNodeSet SlurmNodeSet},
872
+ # indicates that the nodeset should be backed by Compute Engine VM instances.
873
+ # @!attribute [rw] startup_script
874
+ # @return [::String]
875
+ # Optional. [Startup
876
+ # script](https://cloud.google.com/compute/docs/instances/startup-scripts/linux)
877
+ # to be run on each VM instance in the nodeset. Max 256KB.
878
+ # @!attribute [rw] labels
879
+ # @return [::Google::Protobuf::Map{::String => ::String}]
880
+ # Optional.
881
+ # [Labels](https://cloud.google.com/compute/docs/labeling-resources) that
882
+ # should be applied to each VM instance in the nodeset.
883
+ # @!attribute [rw] boot_disk
884
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::BootDisk]
885
+ # Optional. Boot disk for the compute instance
886
+ class ComputeInstanceSlurmNodeSet
887
+ include ::Google::Protobuf::MessageExts
888
+ extend ::Google::Protobuf::MessageExts::ClassMethods
889
+
890
+ # @!attribute [rw] key
891
+ # @return [::String]
892
+ # @!attribute [rw] value
893
+ # @return [::String]
894
+ class LabelsEntry
895
+ include ::Google::Protobuf::MessageExts
896
+ extend ::Google::Protobuf::MessageExts::ClassMethods
897
+ end
898
+ end
899
+
900
+ # Configuration for Slurm partitions in the cluster. Partitions are groups of
901
+ # nodesets, and are how clients specify where their workloads should be run.
902
+ # @!attribute [rw] id
903
+ # @return [::String]
904
+ # Required. ID of the partition, which is how users will identify it. Must
905
+ # conform to [RFC-1034](https://datatracker.ietf.org/doc/html/rfc1034)
906
+ # (lower-case, alphanumeric, and at most 63 characters).
907
+ # @!attribute [rw] node_set_ids
908
+ # @return [::Array<::String>]
909
+ # Required. IDs of the nodesets that make up this partition. Values must
910
+ # match
911
+ # {::Google::Cloud::HypercomputeCluster::V1beta::SlurmNodeSet#id SlurmNodeSet.id}.
912
+ class SlurmPartition
913
+ include ::Google::Protobuf::MessageExts
914
+ extend ::Google::Protobuf::MessageExts::ClassMethods
915
+ end
916
+
917
+ # Configuration for Slurm [login
918
+ # nodes](https://slurm.schedmd.com/quickstart_admin.html#login) in the cluster.
919
+ # Login nodes are Compute Engine VM instances that allow users to access the
920
+ # cluster over SSH.
921
+ # @!attribute [rw] count
922
+ # @return [::Integer]
923
+ # Required. Number of login node instances to create.
924
+ # @!attribute [rw] zone
925
+ # @return [::String]
926
+ # Required. Name of the zone in which login nodes should run, e.g.,
927
+ # `us-central1-a`. Must be in the same region as the cluster, and must match
928
+ # the zone of any other resources specified in the cluster.
929
+ # @!attribute [rw] machine_type
930
+ # @return [::String]
931
+ # Required. Name of the Compute Engine [machine
932
+ # type](https://cloud.google.com/compute/docs/machine-resource) to use for
933
+ # login nodes, e.g. `n2-standard-2`.
934
+ # @!attribute [rw] startup_script
935
+ # @return [::String]
936
+ # Optional. [Startup
937
+ # script](https://cloud.google.com/compute/docs/instances/startup-scripts/linux)
938
+ # to be run on each login node instance. Max 256KB.
939
+ # @!attribute [rw] enable_os_login
940
+ # @return [::Boolean]
941
+ # Optional. Whether [OS Login](https://cloud.google.com/compute/docs/oslogin)
942
+ # should be enabled on login node instances.
943
+ # @!attribute [rw] enable_public_ips
944
+ # @return [::Boolean]
945
+ # Optional. Whether login node instances should be assigned [external IP
946
+ # addresses](https://cloud.google.com/compute/docs/ip-addresses#externaladdresses).
947
+ # @!attribute [rw] labels
948
+ # @return [::Google::Protobuf::Map{::String => ::String}]
949
+ # Optional.
950
+ # [Labels](https://cloud.google.com/compute/docs/labeling-resources) that
951
+ # should be applied to each login node instance.
952
+ # @!attribute [rw] storage_configs
953
+ # @return [::Array<::Google::Cloud::HypercomputeCluster::V1beta::StorageConfig>]
954
+ # Optional. How [storage
955
+ # resources][google.cloud.hypercomputecluster.v1beta.StorageResource] should
956
+ # be mounted on each login node.
957
+ # @!attribute [r] instances
958
+ # @return [::Array<::Google::Cloud::HypercomputeCluster::V1beta::ComputeInstance>]
959
+ # Output only. Information about the login node instances that were created
960
+ # in Compute Engine.
961
+ # @!attribute [rw] boot_disk
962
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::BootDisk]
963
+ # Optional. Boot disk for the login node.
964
+ class SlurmLoginNodes
965
+ include ::Google::Protobuf::MessageExts
966
+ extend ::Google::Protobuf::MessageExts::ClassMethods
967
+
968
+ # @!attribute [rw] key
969
+ # @return [::String]
970
+ # @!attribute [rw] value
971
+ # @return [::String]
972
+ class LabelsEntry
973
+ include ::Google::Protobuf::MessageExts
974
+ extend ::Google::Protobuf::MessageExts::ClassMethods
975
+ end
976
+ end
977
+
978
+ # Description of how a [storage
979
+ # resource][google.cloud.hypercomputecluster.v1beta.StorageResource] should be
980
+ # mounted on a VM instance.
981
+ # @!attribute [rw] id
982
+ # @return [::String]
983
+ # Required. ID of the storage resource to mount, which must match a key in
984
+ # the cluster's [storage_resources](Cluster.storage_resources).
985
+ # @!attribute [rw] local_mount
986
+ # @return [::String]
987
+ # Required. A directory inside the VM instance's file system where the
988
+ # storage resource should be mounted (e.g., `/mnt/share`).
989
+ class StorageConfig
990
+ include ::Google::Protobuf::MessageExts
991
+ extend ::Google::Protobuf::MessageExts::ClassMethods
992
+ end
993
+
994
+ # Details about a Compute Engine
995
+ # [instance](https://cloud.google.com/compute/docs/instances).
996
+ # @!attribute [r] instance
997
+ # @return [::String]
998
+ # Output only. Name of the VM instance, in the format
999
+ # `projects/{project}/zones/{zone}/instances/{instance}`.
1000
+ class ComputeInstance
1001
+ include ::Google::Protobuf::MessageExts
1002
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1003
+ end
1004
+ end
1005
+ end
1006
+ end
1007
+ end