google-apis-hypercomputecluster_v1 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.
- checksums.yaml +7 -0
- data/.yardopts +13 -0
- data/CHANGELOG.md +7 -0
- data/LICENSE.md +202 -0
- data/OVERVIEW.md +96 -0
- data/lib/google/apis/hypercomputecluster_v1/classes.rb +1571 -0
- data/lib/google/apis/hypercomputecluster_v1/gem_version.rb +28 -0
- data/lib/google/apis/hypercomputecluster_v1/representations.rb +722 -0
- data/lib/google/apis/hypercomputecluster_v1/service.rb +495 -0
- data/lib/google/apis/hypercomputecluster_v1.rb +36 -0
- data/lib/google-apis-hypercomputecluster_v1.rb +15 -0
- metadata +79 -0
|
@@ -0,0 +1,1571 @@
|
|
|
1
|
+
# Copyright 2020 Google LLC
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
require 'date'
|
|
16
|
+
require 'google/apis/core/base_service'
|
|
17
|
+
require 'google/apis/core/json_representation'
|
|
18
|
+
require 'google/apis/core/hashable'
|
|
19
|
+
require 'google/apis/errors'
|
|
20
|
+
|
|
21
|
+
module Google
|
|
22
|
+
module Apis
|
|
23
|
+
module HypercomputeclusterV1
|
|
24
|
+
|
|
25
|
+
# A [Persistent disk](https://cloud.google.com/compute/docs/disks) used as the
|
|
26
|
+
# boot disk for a Compute Engine VM instance.
|
|
27
|
+
class BootDisk
|
|
28
|
+
include Google::Apis::Core::Hashable
|
|
29
|
+
|
|
30
|
+
# Required. Immutable. Size of the disk in gigabytes. Must be at least 10GB.
|
|
31
|
+
# Corresponds to the JSON property `sizeGb`
|
|
32
|
+
# @return [Fixnum]
|
|
33
|
+
attr_accessor :size_gb
|
|
34
|
+
|
|
35
|
+
# Required. Immutable. [Persistent disk type](https://cloud.google.com/compute/
|
|
36
|
+
# docs/disks#disk-types), in the format `projects/`project`/zones/`zone`/
|
|
37
|
+
# diskTypes/`disk_type``.
|
|
38
|
+
# Corresponds to the JSON property `type`
|
|
39
|
+
# @return [String]
|
|
40
|
+
attr_accessor :type
|
|
41
|
+
|
|
42
|
+
def initialize(**args)
|
|
43
|
+
update!(**args)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Update properties of this object
|
|
47
|
+
def update!(**args)
|
|
48
|
+
@size_gb = args[:size_gb] if args.key?(:size_gb)
|
|
49
|
+
@type = args[:type] if args.key?(:type)
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# A reference to a [Google Cloud Storage](https://cloud.google.com/storage)
|
|
54
|
+
# bucket.
|
|
55
|
+
class BucketReference
|
|
56
|
+
include Google::Apis::Core::Hashable
|
|
57
|
+
|
|
58
|
+
# Output only. Name of the bucket.
|
|
59
|
+
# Corresponds to the JSON property `bucket`
|
|
60
|
+
# @return [String]
|
|
61
|
+
attr_accessor :bucket
|
|
62
|
+
|
|
63
|
+
def initialize(**args)
|
|
64
|
+
update!(**args)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# Update properties of this object
|
|
68
|
+
def update!(**args)
|
|
69
|
+
@bucket = args[:bucket] if args.key?(:bucket)
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# The request message for Operations.CancelOperation.
|
|
74
|
+
class CancelOperationRequest
|
|
75
|
+
include Google::Apis::Core::Hashable
|
|
76
|
+
|
|
77
|
+
def initialize(**args)
|
|
78
|
+
update!(**args)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Update properties of this object
|
|
82
|
+
def update!(**args)
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
# A collection of virtual machines and connected resources forming a high-
|
|
87
|
+
# performance computing cluster capable of running large-scale, tightly coupled
|
|
88
|
+
# workloads. A cluster combines a set a compute resources that perform
|
|
89
|
+
# computations, storage resources that contain inputs and store outputs, an
|
|
90
|
+
# orchestrator that is responsible for assigning jobs to compute resources, and
|
|
91
|
+
# network resources that connect everything together.
|
|
92
|
+
class Cluster
|
|
93
|
+
include Google::Apis::Core::Hashable
|
|
94
|
+
|
|
95
|
+
# Optional. Compute resources available to the cluster. Keys specify the ID of
|
|
96
|
+
# the compute resource by which it can be referenced elsewhere, and must conform
|
|
97
|
+
# to [RFC-1034](https://datatracker.ietf.org/doc/html/rfc1034) (lower-case,
|
|
98
|
+
# alphanumeric, and at most 63 characters).
|
|
99
|
+
# Corresponds to the JSON property `computeResources`
|
|
100
|
+
# @return [Hash<String,Google::Apis::HypercomputeclusterV1::ComputeResource>]
|
|
101
|
+
attr_accessor :compute_resources
|
|
102
|
+
|
|
103
|
+
# Output only. Time that the cluster was originally created.
|
|
104
|
+
# Corresponds to the JSON property `createTime`
|
|
105
|
+
# @return [String]
|
|
106
|
+
attr_accessor :create_time
|
|
107
|
+
|
|
108
|
+
# Optional. User-provided description of the cluster.
|
|
109
|
+
# Corresponds to the JSON property `description`
|
|
110
|
+
# @return [String]
|
|
111
|
+
attr_accessor :description
|
|
112
|
+
|
|
113
|
+
# Optional. [Labels](https://cloud.google.com/compute/docs/labeling-resources)
|
|
114
|
+
# applied to the cluster. Labels can be used to organize clusters and to filter
|
|
115
|
+
# them in queries.
|
|
116
|
+
# Corresponds to the JSON property `labels`
|
|
117
|
+
# @return [Hash<String,String>]
|
|
118
|
+
attr_accessor :labels
|
|
119
|
+
|
|
120
|
+
# Identifier. [Relative resource name](https://google.aip.dev/122) of the
|
|
121
|
+
# cluster, in the format `projects/`project`/locations/`location`/clusters/`
|
|
122
|
+
# cluster``.
|
|
123
|
+
# Corresponds to the JSON property `name`
|
|
124
|
+
# @return [String]
|
|
125
|
+
attr_accessor :name
|
|
126
|
+
|
|
127
|
+
# Optional. Network resources available to the cluster. Must contain at most one
|
|
128
|
+
# value. Keys specify the ID of the network resource by which it can be
|
|
129
|
+
# referenced elsewhere, and must conform to [RFC-1034](https://datatracker.ietf.
|
|
130
|
+
# org/doc/html/rfc1034) (lower-case, alphanumeric, and at most 63 characters).
|
|
131
|
+
# Corresponds to the JSON property `networkResources`
|
|
132
|
+
# @return [Hash<String,Google::Apis::HypercomputeclusterV1::NetworkResource>]
|
|
133
|
+
attr_accessor :network_resources
|
|
134
|
+
|
|
135
|
+
# The component responsible for scheduling and running workloads on the cluster
|
|
136
|
+
# as well as providing the user interface for interacting with the cluster at
|
|
137
|
+
# runtime.
|
|
138
|
+
# Corresponds to the JSON property `orchestrator`
|
|
139
|
+
# @return [Google::Apis::HypercomputeclusterV1::Orchestrator]
|
|
140
|
+
attr_accessor :orchestrator
|
|
141
|
+
|
|
142
|
+
# Output only. Indicates whether changes to the cluster are currently in flight.
|
|
143
|
+
# If this is `true`, then the current state might not match the cluster's
|
|
144
|
+
# intended state.
|
|
145
|
+
# Corresponds to the JSON property `reconciling`
|
|
146
|
+
# @return [Boolean]
|
|
147
|
+
attr_accessor :reconciling
|
|
148
|
+
alias_method :reconciling?, :reconciling
|
|
149
|
+
|
|
150
|
+
# Optional. Storage resources available to the cluster. Keys specify the ID of
|
|
151
|
+
# the storage resource by which it can be referenced elsewhere, and must conform
|
|
152
|
+
# to [RFC-1034](https://datatracker.ietf.org/doc/html/rfc1034) (lower-case,
|
|
153
|
+
# alphanumeric, and at most 63 characters).
|
|
154
|
+
# Corresponds to the JSON property `storageResources`
|
|
155
|
+
# @return [Hash<String,Google::Apis::HypercomputeclusterV1::StorageResource>]
|
|
156
|
+
attr_accessor :storage_resources
|
|
157
|
+
|
|
158
|
+
# Output only. Time that the cluster was most recently updated.
|
|
159
|
+
# Corresponds to the JSON property `updateTime`
|
|
160
|
+
# @return [String]
|
|
161
|
+
attr_accessor :update_time
|
|
162
|
+
|
|
163
|
+
def initialize(**args)
|
|
164
|
+
update!(**args)
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
# Update properties of this object
|
|
168
|
+
def update!(**args)
|
|
169
|
+
@compute_resources = args[:compute_resources] if args.key?(:compute_resources)
|
|
170
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
|
171
|
+
@description = args[:description] if args.key?(:description)
|
|
172
|
+
@labels = args[:labels] if args.key?(:labels)
|
|
173
|
+
@name = args[:name] if args.key?(:name)
|
|
174
|
+
@network_resources = args[:network_resources] if args.key?(:network_resources)
|
|
175
|
+
@orchestrator = args[:orchestrator] if args.key?(:orchestrator)
|
|
176
|
+
@reconciling = args[:reconciling] if args.key?(:reconciling)
|
|
177
|
+
@storage_resources = args[:storage_resources] if args.key?(:storage_resources)
|
|
178
|
+
@update_time = args[:update_time] if args.key?(:update_time)
|
|
179
|
+
end
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
# Details about a Compute Engine [instance](https://cloud.google.com/compute/
|
|
183
|
+
# docs/instances).
|
|
184
|
+
class ComputeInstance
|
|
185
|
+
include Google::Apis::Core::Hashable
|
|
186
|
+
|
|
187
|
+
# Output only. Name of the VM instance, in the format `projects/`project`/zones/`
|
|
188
|
+
# zone`/instances/`instance``.
|
|
189
|
+
# Corresponds to the JSON property `instance`
|
|
190
|
+
# @return [String]
|
|
191
|
+
attr_accessor :instance
|
|
192
|
+
|
|
193
|
+
def initialize(**args)
|
|
194
|
+
update!(**args)
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
# Update properties of this object
|
|
198
|
+
def update!(**args)
|
|
199
|
+
@instance = args[:instance] if args.key?(:instance)
|
|
200
|
+
end
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
# When set in a SlurmNodeSet, indicates that the nodeset should be backed by
|
|
204
|
+
# Compute Engine VM instances.
|
|
205
|
+
class ComputeInstanceSlurmNodeSet
|
|
206
|
+
include Google::Apis::Core::Hashable
|
|
207
|
+
|
|
208
|
+
# A [Persistent disk](https://cloud.google.com/compute/docs/disks) used as the
|
|
209
|
+
# boot disk for a Compute Engine VM instance.
|
|
210
|
+
# Corresponds to the JSON property `bootDisk`
|
|
211
|
+
# @return [Google::Apis::HypercomputeclusterV1::BootDisk]
|
|
212
|
+
attr_accessor :boot_disk
|
|
213
|
+
|
|
214
|
+
# Optional. [Labels](https://cloud.google.com/compute/docs/labeling-resources)
|
|
215
|
+
# that should be applied to each VM instance in the nodeset.
|
|
216
|
+
# Corresponds to the JSON property `labels`
|
|
217
|
+
# @return [Hash<String,String>]
|
|
218
|
+
attr_accessor :labels
|
|
219
|
+
|
|
220
|
+
# Optional. [Startup script](https://cloud.google.com/compute/docs/instances/
|
|
221
|
+
# startup-scripts/linux) to be run on each VM instance in the nodeset. Max 256KB.
|
|
222
|
+
# Corresponds to the JSON property `startupScript`
|
|
223
|
+
# @return [String]
|
|
224
|
+
attr_accessor :startup_script
|
|
225
|
+
|
|
226
|
+
def initialize(**args)
|
|
227
|
+
update!(**args)
|
|
228
|
+
end
|
|
229
|
+
|
|
230
|
+
# Update properties of this object
|
|
231
|
+
def update!(**args)
|
|
232
|
+
@boot_disk = args[:boot_disk] if args.key?(:boot_disk)
|
|
233
|
+
@labels = args[:labels] if args.key?(:labels)
|
|
234
|
+
@startup_script = args[:startup_script] if args.key?(:startup_script)
|
|
235
|
+
end
|
|
236
|
+
end
|
|
237
|
+
|
|
238
|
+
# A resource defining how virtual machines and accelerators should be
|
|
239
|
+
# provisioned for the cluster.
|
|
240
|
+
class ComputeResource
|
|
241
|
+
include Google::Apis::Core::Hashable
|
|
242
|
+
|
|
243
|
+
# Describes how a compute resource should be created at runtime.
|
|
244
|
+
# Corresponds to the JSON property `config`
|
|
245
|
+
# @return [Google::Apis::HypercomputeclusterV1::ComputeResourceConfig]
|
|
246
|
+
attr_accessor :config
|
|
247
|
+
|
|
248
|
+
def initialize(**args)
|
|
249
|
+
update!(**args)
|
|
250
|
+
end
|
|
251
|
+
|
|
252
|
+
# Update properties of this object
|
|
253
|
+
def update!(**args)
|
|
254
|
+
@config = args[:config] if args.key?(:config)
|
|
255
|
+
end
|
|
256
|
+
end
|
|
257
|
+
|
|
258
|
+
# Describes how a compute resource should be created at runtime.
|
|
259
|
+
class ComputeResourceConfig
|
|
260
|
+
include Google::Apis::Core::Hashable
|
|
261
|
+
|
|
262
|
+
# When set in a ComputeResourceConfig, indicates that VM instances should be
|
|
263
|
+
# created using [Flex Start](https://cloud.google.com/compute/docs/instances/
|
|
264
|
+
# provisioning-models).
|
|
265
|
+
# Corresponds to the JSON property `newFlexStartInstances`
|
|
266
|
+
# @return [Google::Apis::HypercomputeclusterV1::NewFlexStartInstancesConfig]
|
|
267
|
+
attr_accessor :new_flex_start_instances
|
|
268
|
+
|
|
269
|
+
# When set in a ComputeResourceConfig, indicates that on-demand (i.e., using the
|
|
270
|
+
# standard provisioning model) VM instances should be created.
|
|
271
|
+
# Corresponds to the JSON property `newOnDemandInstances`
|
|
272
|
+
# @return [Google::Apis::HypercomputeclusterV1::NewOnDemandInstancesConfig]
|
|
273
|
+
attr_accessor :new_on_demand_instances
|
|
274
|
+
|
|
275
|
+
# When set in a ComputeResourceConfig, indicates that VM instances should be
|
|
276
|
+
# created from a [reservation](https://cloud.google.com/compute/docs/instances/
|
|
277
|
+
# reservations-overview).
|
|
278
|
+
# Corresponds to the JSON property `newReservedInstances`
|
|
279
|
+
# @return [Google::Apis::HypercomputeclusterV1::NewReservedInstancesConfig]
|
|
280
|
+
attr_accessor :new_reserved_instances
|
|
281
|
+
|
|
282
|
+
# When set in a ComputeResourceConfig, indicates that [spot VM](https://cloud.
|
|
283
|
+
# google.com/compute/docs/instances/spot) instances should be created.
|
|
284
|
+
# Corresponds to the JSON property `newSpotInstances`
|
|
285
|
+
# @return [Google::Apis::HypercomputeclusterV1::NewSpotInstancesConfig]
|
|
286
|
+
attr_accessor :new_spot_instances
|
|
287
|
+
|
|
288
|
+
def initialize(**args)
|
|
289
|
+
update!(**args)
|
|
290
|
+
end
|
|
291
|
+
|
|
292
|
+
# Update properties of this object
|
|
293
|
+
def update!(**args)
|
|
294
|
+
@new_flex_start_instances = args[:new_flex_start_instances] if args.key?(:new_flex_start_instances)
|
|
295
|
+
@new_on_demand_instances = args[:new_on_demand_instances] if args.key?(:new_on_demand_instances)
|
|
296
|
+
@new_reserved_instances = args[:new_reserved_instances] if args.key?(:new_reserved_instances)
|
|
297
|
+
@new_spot_instances = args[:new_spot_instances] if args.key?(:new_spot_instances)
|
|
298
|
+
end
|
|
299
|
+
end
|
|
300
|
+
|
|
301
|
+
# A generic empty message that you can re-use to avoid defining duplicated empty
|
|
302
|
+
# messages in your APIs. A typical example is to use it as the request or the
|
|
303
|
+
# response type of an API method. For instance: service Foo ` rpc Bar(google.
|
|
304
|
+
# protobuf.Empty) returns (google.protobuf.Empty); `
|
|
305
|
+
class Empty
|
|
306
|
+
include Google::Apis::Core::Hashable
|
|
307
|
+
|
|
308
|
+
def initialize(**args)
|
|
309
|
+
update!(**args)
|
|
310
|
+
end
|
|
311
|
+
|
|
312
|
+
# Update properties of this object
|
|
313
|
+
def update!(**args)
|
|
314
|
+
end
|
|
315
|
+
end
|
|
316
|
+
|
|
317
|
+
# When set in a StorageResourceConfig, indicates that an existing [Google Cloud
|
|
318
|
+
# Storage](https://cloud.google.com/storage) bucket should be imported.
|
|
319
|
+
class ExistingBucketConfig
|
|
320
|
+
include Google::Apis::Core::Hashable
|
|
321
|
+
|
|
322
|
+
# Required. Immutable. Name of the Cloud Storage bucket to import.
|
|
323
|
+
# Corresponds to the JSON property `bucket`
|
|
324
|
+
# @return [String]
|
|
325
|
+
attr_accessor :bucket
|
|
326
|
+
|
|
327
|
+
def initialize(**args)
|
|
328
|
+
update!(**args)
|
|
329
|
+
end
|
|
330
|
+
|
|
331
|
+
# Update properties of this object
|
|
332
|
+
def update!(**args)
|
|
333
|
+
@bucket = args[:bucket] if args.key?(:bucket)
|
|
334
|
+
end
|
|
335
|
+
end
|
|
336
|
+
|
|
337
|
+
# When set in a StorageResourceConfig, indicates that an existing [Filestore](
|
|
338
|
+
# https://cloud.google.com/filestore) instance should be imported.
|
|
339
|
+
class ExistingFilestoreConfig
|
|
340
|
+
include Google::Apis::Core::Hashable
|
|
341
|
+
|
|
342
|
+
# Required. Immutable. Name of the Filestore instance to import, in the format `
|
|
343
|
+
# projects/`project`/locations/`location`/instances/`instance``
|
|
344
|
+
# Corresponds to the JSON property `filestore`
|
|
345
|
+
# @return [String]
|
|
346
|
+
attr_accessor :filestore
|
|
347
|
+
|
|
348
|
+
def initialize(**args)
|
|
349
|
+
update!(**args)
|
|
350
|
+
end
|
|
351
|
+
|
|
352
|
+
# Update properties of this object
|
|
353
|
+
def update!(**args)
|
|
354
|
+
@filestore = args[:filestore] if args.key?(:filestore)
|
|
355
|
+
end
|
|
356
|
+
end
|
|
357
|
+
|
|
358
|
+
# When set in a StorageResourceConfig, indicates that an existing [Managed
|
|
359
|
+
# Lustre](https://cloud.google.com/products/managed-lustre) instance should be
|
|
360
|
+
# imported.
|
|
361
|
+
class ExistingLustreConfig
|
|
362
|
+
include Google::Apis::Core::Hashable
|
|
363
|
+
|
|
364
|
+
# Required. Immutable. Name of the Managed Lustre instance to import, in the
|
|
365
|
+
# format `projects/`project`/locations/`location`/instances/`instance``
|
|
366
|
+
# Corresponds to the JSON property `lustre`
|
|
367
|
+
# @return [String]
|
|
368
|
+
attr_accessor :lustre
|
|
369
|
+
|
|
370
|
+
def initialize(**args)
|
|
371
|
+
update!(**args)
|
|
372
|
+
end
|
|
373
|
+
|
|
374
|
+
# Update properties of this object
|
|
375
|
+
def update!(**args)
|
|
376
|
+
@lustre = args[:lustre] if args.key?(:lustre)
|
|
377
|
+
end
|
|
378
|
+
end
|
|
379
|
+
|
|
380
|
+
# When set in a NetworkResourceConfig, indicates that an existing network should
|
|
381
|
+
# be imported.
|
|
382
|
+
class ExistingNetworkConfig
|
|
383
|
+
include Google::Apis::Core::Hashable
|
|
384
|
+
|
|
385
|
+
# Required. Immutable. Name of the network to import, in the format `projects/`
|
|
386
|
+
# project`/global/networks/`network``.
|
|
387
|
+
# Corresponds to the JSON property `network`
|
|
388
|
+
# @return [String]
|
|
389
|
+
attr_accessor :network
|
|
390
|
+
|
|
391
|
+
# Required. Immutable. Particular subnetwork to use, in the format `projects/`
|
|
392
|
+
# project`/regions/`region`/subnetworks/`subnetwork``.
|
|
393
|
+
# Corresponds to the JSON property `subnetwork`
|
|
394
|
+
# @return [String]
|
|
395
|
+
attr_accessor :subnetwork
|
|
396
|
+
|
|
397
|
+
def initialize(**args)
|
|
398
|
+
update!(**args)
|
|
399
|
+
end
|
|
400
|
+
|
|
401
|
+
# Update properties of this object
|
|
402
|
+
def update!(**args)
|
|
403
|
+
@network = args[:network] if args.key?(:network)
|
|
404
|
+
@subnetwork = args[:subnetwork] if args.key?(:subnetwork)
|
|
405
|
+
end
|
|
406
|
+
end
|
|
407
|
+
|
|
408
|
+
# Message describing filestore configuration
|
|
409
|
+
class FileShareConfig
|
|
410
|
+
include Google::Apis::Core::Hashable
|
|
411
|
+
|
|
412
|
+
# Required. Size of the filestore in GB. Must be between 1024 and 102400, and
|
|
413
|
+
# must meet scalability requirements described at https://cloud.google.com/
|
|
414
|
+
# filestore/docs/service-tiers.
|
|
415
|
+
# Corresponds to the JSON property `capacityGb`
|
|
416
|
+
# @return [Fixnum]
|
|
417
|
+
attr_accessor :capacity_gb
|
|
418
|
+
|
|
419
|
+
# Required. Filestore share location
|
|
420
|
+
# Corresponds to the JSON property `fileShare`
|
|
421
|
+
# @return [String]
|
|
422
|
+
attr_accessor :file_share
|
|
423
|
+
|
|
424
|
+
def initialize(**args)
|
|
425
|
+
update!(**args)
|
|
426
|
+
end
|
|
427
|
+
|
|
428
|
+
# Update properties of this object
|
|
429
|
+
def update!(**args)
|
|
430
|
+
@capacity_gb = args[:capacity_gb] if args.key?(:capacity_gb)
|
|
431
|
+
@file_share = args[:file_share] if args.key?(:file_share)
|
|
432
|
+
end
|
|
433
|
+
end
|
|
434
|
+
|
|
435
|
+
# A reference to a [Filestore](https://cloud.google.com/filestore) instance.
|
|
436
|
+
class FilestoreReference
|
|
437
|
+
include Google::Apis::Core::Hashable
|
|
438
|
+
|
|
439
|
+
# Output only. Name of the Filestore instance, in the format `projects/`project`/
|
|
440
|
+
# locations/`location`/instances/`instance``
|
|
441
|
+
# Corresponds to the JSON property `filestore`
|
|
442
|
+
# @return [String]
|
|
443
|
+
attr_accessor :filestore
|
|
444
|
+
|
|
445
|
+
def initialize(**args)
|
|
446
|
+
update!(**args)
|
|
447
|
+
end
|
|
448
|
+
|
|
449
|
+
# Update properties of this object
|
|
450
|
+
def update!(**args)
|
|
451
|
+
@filestore = args[:filestore] if args.key?(:filestore)
|
|
452
|
+
end
|
|
453
|
+
end
|
|
454
|
+
|
|
455
|
+
# Message describing Google Cloud Storage autoclass configuration
|
|
456
|
+
class GcsAutoclassConfig
|
|
457
|
+
include Google::Apis::Core::Hashable
|
|
458
|
+
|
|
459
|
+
# Required. Enables Auto-class feature.
|
|
460
|
+
# Corresponds to the JSON property `enabled`
|
|
461
|
+
# @return [Boolean]
|
|
462
|
+
attr_accessor :enabled
|
|
463
|
+
alias_method :enabled?, :enabled
|
|
464
|
+
|
|
465
|
+
# Optional. Terminal storage class of the autoclass bucket
|
|
466
|
+
# Corresponds to the JSON property `terminalStorageClass`
|
|
467
|
+
# @return [String]
|
|
468
|
+
attr_accessor :terminal_storage_class
|
|
469
|
+
|
|
470
|
+
def initialize(**args)
|
|
471
|
+
update!(**args)
|
|
472
|
+
end
|
|
473
|
+
|
|
474
|
+
# Update properties of this object
|
|
475
|
+
def update!(**args)
|
|
476
|
+
@enabled = args[:enabled] if args.key?(:enabled)
|
|
477
|
+
@terminal_storage_class = args[:terminal_storage_class] if args.key?(:terminal_storage_class)
|
|
478
|
+
end
|
|
479
|
+
end
|
|
480
|
+
|
|
481
|
+
# Message describing Google Cloud Storage hierarchical namespace configuration
|
|
482
|
+
class GcsHierarchicalNamespaceConfig
|
|
483
|
+
include Google::Apis::Core::Hashable
|
|
484
|
+
|
|
485
|
+
# Required. Enables hierarchical namespace setup for the bucket.
|
|
486
|
+
# Corresponds to the JSON property `enabled`
|
|
487
|
+
# @return [Boolean]
|
|
488
|
+
attr_accessor :enabled
|
|
489
|
+
alias_method :enabled?, :enabled
|
|
490
|
+
|
|
491
|
+
def initialize(**args)
|
|
492
|
+
update!(**args)
|
|
493
|
+
end
|
|
494
|
+
|
|
495
|
+
# Update properties of this object
|
|
496
|
+
def update!(**args)
|
|
497
|
+
@enabled = args[:enabled] if args.key?(:enabled)
|
|
498
|
+
end
|
|
499
|
+
end
|
|
500
|
+
|
|
501
|
+
# Response message for ListClusters.
|
|
502
|
+
class ListClustersResponse
|
|
503
|
+
include Google::Apis::Core::Hashable
|
|
504
|
+
|
|
505
|
+
# Clusters in the specified location.
|
|
506
|
+
# Corresponds to the JSON property `clusters`
|
|
507
|
+
# @return [Array<Google::Apis::HypercomputeclusterV1::Cluster>]
|
|
508
|
+
attr_accessor :clusters
|
|
509
|
+
|
|
510
|
+
# A token that can be sent as `page_token` to retrieve the next page. If this
|
|
511
|
+
# field is absent, there are no subsequent pages.
|
|
512
|
+
# Corresponds to the JSON property `nextPageToken`
|
|
513
|
+
# @return [String]
|
|
514
|
+
attr_accessor :next_page_token
|
|
515
|
+
|
|
516
|
+
# Locations that could not be reached.
|
|
517
|
+
# Corresponds to the JSON property `unreachable`
|
|
518
|
+
# @return [Array<String>]
|
|
519
|
+
attr_accessor :unreachable
|
|
520
|
+
|
|
521
|
+
def initialize(**args)
|
|
522
|
+
update!(**args)
|
|
523
|
+
end
|
|
524
|
+
|
|
525
|
+
# Update properties of this object
|
|
526
|
+
def update!(**args)
|
|
527
|
+
@clusters = args[:clusters] if args.key?(:clusters)
|
|
528
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
|
529
|
+
@unreachable = args[:unreachable] if args.key?(:unreachable)
|
|
530
|
+
end
|
|
531
|
+
end
|
|
532
|
+
|
|
533
|
+
# The response message for Locations.ListLocations.
|
|
534
|
+
class ListLocationsResponse
|
|
535
|
+
include Google::Apis::Core::Hashable
|
|
536
|
+
|
|
537
|
+
# A list of locations that matches the specified filter in the request.
|
|
538
|
+
# Corresponds to the JSON property `locations`
|
|
539
|
+
# @return [Array<Google::Apis::HypercomputeclusterV1::Location>]
|
|
540
|
+
attr_accessor :locations
|
|
541
|
+
|
|
542
|
+
# The standard List next-page token.
|
|
543
|
+
# Corresponds to the JSON property `nextPageToken`
|
|
544
|
+
# @return [String]
|
|
545
|
+
attr_accessor :next_page_token
|
|
546
|
+
|
|
547
|
+
def initialize(**args)
|
|
548
|
+
update!(**args)
|
|
549
|
+
end
|
|
550
|
+
|
|
551
|
+
# Update properties of this object
|
|
552
|
+
def update!(**args)
|
|
553
|
+
@locations = args[:locations] if args.key?(:locations)
|
|
554
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
|
555
|
+
end
|
|
556
|
+
end
|
|
557
|
+
|
|
558
|
+
# The response message for Operations.ListOperations.
|
|
559
|
+
class ListOperationsResponse
|
|
560
|
+
include Google::Apis::Core::Hashable
|
|
561
|
+
|
|
562
|
+
# The standard List next-page token.
|
|
563
|
+
# Corresponds to the JSON property `nextPageToken`
|
|
564
|
+
# @return [String]
|
|
565
|
+
attr_accessor :next_page_token
|
|
566
|
+
|
|
567
|
+
# A list of operations that matches the specified filter in the request.
|
|
568
|
+
# Corresponds to the JSON property `operations`
|
|
569
|
+
# @return [Array<Google::Apis::HypercomputeclusterV1::Operation>]
|
|
570
|
+
attr_accessor :operations
|
|
571
|
+
|
|
572
|
+
# Unordered list. Unreachable resources. Populated when the request sets `
|
|
573
|
+
# ListOperationsRequest.return_partial_success` and reads across collections.
|
|
574
|
+
# For example, when attempting to list all resources across all supported
|
|
575
|
+
# locations.
|
|
576
|
+
# Corresponds to the JSON property `unreachable`
|
|
577
|
+
# @return [Array<String>]
|
|
578
|
+
attr_accessor :unreachable
|
|
579
|
+
|
|
580
|
+
def initialize(**args)
|
|
581
|
+
update!(**args)
|
|
582
|
+
end
|
|
583
|
+
|
|
584
|
+
# Update properties of this object
|
|
585
|
+
def update!(**args)
|
|
586
|
+
@next_page_token = args[:next_page_token] if args.key?(:next_page_token)
|
|
587
|
+
@operations = args[:operations] if args.key?(:operations)
|
|
588
|
+
@unreachable = args[:unreachable] if args.key?(:unreachable)
|
|
589
|
+
end
|
|
590
|
+
end
|
|
591
|
+
|
|
592
|
+
# A resource that represents a Google Cloud location.
|
|
593
|
+
class Location
|
|
594
|
+
include Google::Apis::Core::Hashable
|
|
595
|
+
|
|
596
|
+
# The friendly name for this location, typically a nearby city name. For example,
|
|
597
|
+
# "Tokyo".
|
|
598
|
+
# Corresponds to the JSON property `displayName`
|
|
599
|
+
# @return [String]
|
|
600
|
+
attr_accessor :display_name
|
|
601
|
+
|
|
602
|
+
# Cross-service attributes for the location. For example `"cloud.googleapis.com/
|
|
603
|
+
# region": "us-east1"`
|
|
604
|
+
# Corresponds to the JSON property `labels`
|
|
605
|
+
# @return [Hash<String,String>]
|
|
606
|
+
attr_accessor :labels
|
|
607
|
+
|
|
608
|
+
# The canonical id for this location. For example: `"us-east1"`.
|
|
609
|
+
# Corresponds to the JSON property `locationId`
|
|
610
|
+
# @return [String]
|
|
611
|
+
attr_accessor :location_id
|
|
612
|
+
|
|
613
|
+
# Service-specific metadata. For example the available capacity at the given
|
|
614
|
+
# location.
|
|
615
|
+
# Corresponds to the JSON property `metadata`
|
|
616
|
+
# @return [Hash<String,Object>]
|
|
617
|
+
attr_accessor :metadata
|
|
618
|
+
|
|
619
|
+
# Resource name for the location, which may vary between implementations. For
|
|
620
|
+
# example: `"projects/example-project/locations/us-east1"`
|
|
621
|
+
# Corresponds to the JSON property `name`
|
|
622
|
+
# @return [String]
|
|
623
|
+
attr_accessor :name
|
|
624
|
+
|
|
625
|
+
def initialize(**args)
|
|
626
|
+
update!(**args)
|
|
627
|
+
end
|
|
628
|
+
|
|
629
|
+
# Update properties of this object
|
|
630
|
+
def update!(**args)
|
|
631
|
+
@display_name = args[:display_name] if args.key?(:display_name)
|
|
632
|
+
@labels = args[:labels] if args.key?(:labels)
|
|
633
|
+
@location_id = args[:location_id] if args.key?(:location_id)
|
|
634
|
+
@metadata = args[:metadata] if args.key?(:metadata)
|
|
635
|
+
@name = args[:name] if args.key?(:name)
|
|
636
|
+
end
|
|
637
|
+
end
|
|
638
|
+
|
|
639
|
+
# A reference to a [Managed Lustre](https://cloud.google.com/products/managed-
|
|
640
|
+
# lustre) instance.
|
|
641
|
+
class LustreReference
|
|
642
|
+
include Google::Apis::Core::Hashable
|
|
643
|
+
|
|
644
|
+
# Output only. Name of the Managed Lustre instance, in the format `projects/`
|
|
645
|
+
# project`/locations/`location`/instances/`instance``
|
|
646
|
+
# Corresponds to the JSON property `lustre`
|
|
647
|
+
# @return [String]
|
|
648
|
+
attr_accessor :lustre
|
|
649
|
+
|
|
650
|
+
def initialize(**args)
|
|
651
|
+
update!(**args)
|
|
652
|
+
end
|
|
653
|
+
|
|
654
|
+
# Update properties of this object
|
|
655
|
+
def update!(**args)
|
|
656
|
+
@lustre = args[:lustre] if args.key?(:lustre)
|
|
657
|
+
end
|
|
658
|
+
end
|
|
659
|
+
|
|
660
|
+
# A reference to a [VPC network](https://cloud.google.com/vpc/docs/vpc) in
|
|
661
|
+
# Google Compute Engine.
|
|
662
|
+
class NetworkReference
|
|
663
|
+
include Google::Apis::Core::Hashable
|
|
664
|
+
|
|
665
|
+
# Output only. Name of the network, in the format `projects/`project`/global/
|
|
666
|
+
# networks/`network``.
|
|
667
|
+
# Corresponds to the JSON property `network`
|
|
668
|
+
# @return [String]
|
|
669
|
+
attr_accessor :network
|
|
670
|
+
|
|
671
|
+
# Output only. Name of the particular subnetwork being used by the cluster, in
|
|
672
|
+
# the format `projects/`project`/regions/`region`/subnetworks/`subnetwork``.
|
|
673
|
+
# Corresponds to the JSON property `subnetwork`
|
|
674
|
+
# @return [String]
|
|
675
|
+
attr_accessor :subnetwork
|
|
676
|
+
|
|
677
|
+
def initialize(**args)
|
|
678
|
+
update!(**args)
|
|
679
|
+
end
|
|
680
|
+
|
|
681
|
+
# Update properties of this object
|
|
682
|
+
def update!(**args)
|
|
683
|
+
@network = args[:network] if args.key?(:network)
|
|
684
|
+
@subnetwork = args[:subnetwork] if args.key?(:subnetwork)
|
|
685
|
+
end
|
|
686
|
+
end
|
|
687
|
+
|
|
688
|
+
# A resource representing a network that connects the various components of a
|
|
689
|
+
# cluster together.
|
|
690
|
+
class NetworkResource
|
|
691
|
+
include Google::Apis::Core::Hashable
|
|
692
|
+
|
|
693
|
+
# Describes how a network resource should be initialized. Each network resource
|
|
694
|
+
# can either be imported from an existing Google Cloud resource or initialized
|
|
695
|
+
# when the cluster is created.
|
|
696
|
+
# Corresponds to the JSON property `config`
|
|
697
|
+
# @return [Google::Apis::HypercomputeclusterV1::NetworkResourceConfig]
|
|
698
|
+
attr_accessor :config
|
|
699
|
+
|
|
700
|
+
# A reference to a [VPC network](https://cloud.google.com/vpc/docs/vpc) in
|
|
701
|
+
# Google Compute Engine.
|
|
702
|
+
# Corresponds to the JSON property `network`
|
|
703
|
+
# @return [Google::Apis::HypercomputeclusterV1::NetworkReference]
|
|
704
|
+
attr_accessor :network
|
|
705
|
+
|
|
706
|
+
def initialize(**args)
|
|
707
|
+
update!(**args)
|
|
708
|
+
end
|
|
709
|
+
|
|
710
|
+
# Update properties of this object
|
|
711
|
+
def update!(**args)
|
|
712
|
+
@config = args[:config] if args.key?(:config)
|
|
713
|
+
@network = args[:network] if args.key?(:network)
|
|
714
|
+
end
|
|
715
|
+
end
|
|
716
|
+
|
|
717
|
+
# Describes how a network resource should be initialized. Each network resource
|
|
718
|
+
# can either be imported from an existing Google Cloud resource or initialized
|
|
719
|
+
# when the cluster is created.
|
|
720
|
+
class NetworkResourceConfig
|
|
721
|
+
include Google::Apis::Core::Hashable
|
|
722
|
+
|
|
723
|
+
# When set in a NetworkResourceConfig, indicates that an existing network should
|
|
724
|
+
# be imported.
|
|
725
|
+
# Corresponds to the JSON property `existingNetwork`
|
|
726
|
+
# @return [Google::Apis::HypercomputeclusterV1::ExistingNetworkConfig]
|
|
727
|
+
attr_accessor :existing_network
|
|
728
|
+
|
|
729
|
+
# When set in a NetworkResourceConfig, indicates that a new network should be
|
|
730
|
+
# created.
|
|
731
|
+
# Corresponds to the JSON property `newNetwork`
|
|
732
|
+
# @return [Google::Apis::HypercomputeclusterV1::NewNetworkConfig]
|
|
733
|
+
attr_accessor :new_network
|
|
734
|
+
|
|
735
|
+
def initialize(**args)
|
|
736
|
+
update!(**args)
|
|
737
|
+
end
|
|
738
|
+
|
|
739
|
+
# Update properties of this object
|
|
740
|
+
def update!(**args)
|
|
741
|
+
@existing_network = args[:existing_network] if args.key?(:existing_network)
|
|
742
|
+
@new_network = args[:new_network] if args.key?(:new_network)
|
|
743
|
+
end
|
|
744
|
+
end
|
|
745
|
+
|
|
746
|
+
# When set in a StorageResourceConfig, indicates that a new [Google Cloud
|
|
747
|
+
# Storage](https://cloud.google.com/storage) bucket should be created.
|
|
748
|
+
class NewBucketConfig
|
|
749
|
+
include Google::Apis::Core::Hashable
|
|
750
|
+
|
|
751
|
+
# Message describing Google Cloud Storage autoclass configuration
|
|
752
|
+
# Corresponds to the JSON property `autoclass`
|
|
753
|
+
# @return [Google::Apis::HypercomputeclusterV1::GcsAutoclassConfig]
|
|
754
|
+
attr_accessor :autoclass
|
|
755
|
+
|
|
756
|
+
# Required. Immutable. Name of the Cloud Storage bucket to create.
|
|
757
|
+
# Corresponds to the JSON property `bucket`
|
|
758
|
+
# @return [String]
|
|
759
|
+
attr_accessor :bucket
|
|
760
|
+
|
|
761
|
+
# Message describing Google Cloud Storage hierarchical namespace configuration
|
|
762
|
+
# Corresponds to the JSON property `hierarchicalNamespace`
|
|
763
|
+
# @return [Google::Apis::HypercomputeclusterV1::GcsHierarchicalNamespaceConfig]
|
|
764
|
+
attr_accessor :hierarchical_namespace
|
|
765
|
+
|
|
766
|
+
# Optional. Immutable. If set, uses the provided storage class as the bucket's
|
|
767
|
+
# default storage class.
|
|
768
|
+
# Corresponds to the JSON property `storageClass`
|
|
769
|
+
# @return [String]
|
|
770
|
+
attr_accessor :storage_class
|
|
771
|
+
|
|
772
|
+
def initialize(**args)
|
|
773
|
+
update!(**args)
|
|
774
|
+
end
|
|
775
|
+
|
|
776
|
+
# Update properties of this object
|
|
777
|
+
def update!(**args)
|
|
778
|
+
@autoclass = args[:autoclass] if args.key?(:autoclass)
|
|
779
|
+
@bucket = args[:bucket] if args.key?(:bucket)
|
|
780
|
+
@hierarchical_namespace = args[:hierarchical_namespace] if args.key?(:hierarchical_namespace)
|
|
781
|
+
@storage_class = args[:storage_class] if args.key?(:storage_class)
|
|
782
|
+
end
|
|
783
|
+
end
|
|
784
|
+
|
|
785
|
+
# When set in a StorageResourceConfig, indicates that a new [Filestore](https://
|
|
786
|
+
# cloud.google.com/filestore) instance should be created.
|
|
787
|
+
class NewFilestoreConfig
|
|
788
|
+
include Google::Apis::Core::Hashable
|
|
789
|
+
|
|
790
|
+
# Optional. Immutable. Description of the instance. Maximum of 2048 characters.
|
|
791
|
+
# Corresponds to the JSON property `description`
|
|
792
|
+
# @return [String]
|
|
793
|
+
attr_accessor :description
|
|
794
|
+
|
|
795
|
+
# Required. Immutable. File system shares on the instance. Exactly one file
|
|
796
|
+
# share must be specified.
|
|
797
|
+
# Corresponds to the JSON property `fileShares`
|
|
798
|
+
# @return [Array<Google::Apis::HypercomputeclusterV1::FileShareConfig>]
|
|
799
|
+
attr_accessor :file_shares
|
|
800
|
+
|
|
801
|
+
# Required. Immutable. Name of the Filestore instance to create, in the format `
|
|
802
|
+
# projects/`project`/locations/`location`/instances/`instance``
|
|
803
|
+
# Corresponds to the JSON property `filestore`
|
|
804
|
+
# @return [String]
|
|
805
|
+
attr_accessor :filestore
|
|
806
|
+
|
|
807
|
+
# Optional. Immutable. Access protocol to use for all file shares in the
|
|
808
|
+
# instance. Defaults to NFS V3 if not set.
|
|
809
|
+
# Corresponds to the JSON property `protocol`
|
|
810
|
+
# @return [String]
|
|
811
|
+
attr_accessor :protocol
|
|
812
|
+
|
|
813
|
+
# Required. Immutable. Service tier to use for the instance.
|
|
814
|
+
# Corresponds to the JSON property `tier`
|
|
815
|
+
# @return [String]
|
|
816
|
+
attr_accessor :tier
|
|
817
|
+
|
|
818
|
+
def initialize(**args)
|
|
819
|
+
update!(**args)
|
|
820
|
+
end
|
|
821
|
+
|
|
822
|
+
# Update properties of this object
|
|
823
|
+
def update!(**args)
|
|
824
|
+
@description = args[:description] if args.key?(:description)
|
|
825
|
+
@file_shares = args[:file_shares] if args.key?(:file_shares)
|
|
826
|
+
@filestore = args[:filestore] if args.key?(:filestore)
|
|
827
|
+
@protocol = args[:protocol] if args.key?(:protocol)
|
|
828
|
+
@tier = args[:tier] if args.key?(:tier)
|
|
829
|
+
end
|
|
830
|
+
end
|
|
831
|
+
|
|
832
|
+
# When set in a ComputeResourceConfig, indicates that VM instances should be
|
|
833
|
+
# created using [Flex Start](https://cloud.google.com/compute/docs/instances/
|
|
834
|
+
# provisioning-models).
|
|
835
|
+
class NewFlexStartInstancesConfig
|
|
836
|
+
include Google::Apis::Core::Hashable
|
|
837
|
+
|
|
838
|
+
# Required. Immutable. Name of the Compute Engine [machine type](https://cloud.
|
|
839
|
+
# google.com/compute/docs/machine-resource) to use, e.g. `n2-standard-2`.
|
|
840
|
+
# Corresponds to the JSON property `machineType`
|
|
841
|
+
# @return [String]
|
|
842
|
+
attr_accessor :machine_type
|
|
843
|
+
|
|
844
|
+
# Required. Immutable. Specifies the time limit for created instances. Instances
|
|
845
|
+
# will be terminated at the end of this duration.
|
|
846
|
+
# Corresponds to the JSON property `maxDuration`
|
|
847
|
+
# @return [String]
|
|
848
|
+
attr_accessor :max_duration
|
|
849
|
+
|
|
850
|
+
# Required. Immutable. Name of the zone in which VM instances should run, e.g., `
|
|
851
|
+
# us-central1-a`. Must be in the same region as the cluster, and must match the
|
|
852
|
+
# zone of any other resources specified in the cluster.
|
|
853
|
+
# Corresponds to the JSON property `zone`
|
|
854
|
+
# @return [String]
|
|
855
|
+
attr_accessor :zone
|
|
856
|
+
|
|
857
|
+
def initialize(**args)
|
|
858
|
+
update!(**args)
|
|
859
|
+
end
|
|
860
|
+
|
|
861
|
+
# Update properties of this object
|
|
862
|
+
def update!(**args)
|
|
863
|
+
@machine_type = args[:machine_type] if args.key?(:machine_type)
|
|
864
|
+
@max_duration = args[:max_duration] if args.key?(:max_duration)
|
|
865
|
+
@zone = args[:zone] if args.key?(:zone)
|
|
866
|
+
end
|
|
867
|
+
end
|
|
868
|
+
|
|
869
|
+
# When set in a StorageResourceConfig, indicates that a new [Managed Lustre](
|
|
870
|
+
# https://cloud.google.com/products/managed-lustre) instance should be created.
|
|
871
|
+
class NewLustreConfig
|
|
872
|
+
include Google::Apis::Core::Hashable
|
|
873
|
+
|
|
874
|
+
# Required. Immutable. Storage capacity of the instance in gibibytes (GiB).
|
|
875
|
+
# Allowed values are between 18000 and 7632000.
|
|
876
|
+
# Corresponds to the JSON property `capacityGb`
|
|
877
|
+
# @return [Fixnum]
|
|
878
|
+
attr_accessor :capacity_gb
|
|
879
|
+
|
|
880
|
+
# Optional. Immutable. Description of the Managed Lustre instance. Maximum of
|
|
881
|
+
# 2048 characters.
|
|
882
|
+
# Corresponds to the JSON property `description`
|
|
883
|
+
# @return [String]
|
|
884
|
+
attr_accessor :description
|
|
885
|
+
|
|
886
|
+
# Required. Immutable. Filesystem name for this instance. This name is used by
|
|
887
|
+
# client-side tools, including when mounting the instance. Must be 8 characters
|
|
888
|
+
# or less and can only contain letters and numbers.
|
|
889
|
+
# Corresponds to the JSON property `filesystem`
|
|
890
|
+
# @return [String]
|
|
891
|
+
attr_accessor :filesystem
|
|
892
|
+
|
|
893
|
+
# Required. Immutable. Name of the Managed Lustre instance to create, in the
|
|
894
|
+
# format `projects/`project`/locations/`location`/instances/`instance``
|
|
895
|
+
# Corresponds to the JSON property `lustre`
|
|
896
|
+
# @return [String]
|
|
897
|
+
attr_accessor :lustre
|
|
898
|
+
|
|
899
|
+
def initialize(**args)
|
|
900
|
+
update!(**args)
|
|
901
|
+
end
|
|
902
|
+
|
|
903
|
+
# Update properties of this object
|
|
904
|
+
def update!(**args)
|
|
905
|
+
@capacity_gb = args[:capacity_gb] if args.key?(:capacity_gb)
|
|
906
|
+
@description = args[:description] if args.key?(:description)
|
|
907
|
+
@filesystem = args[:filesystem] if args.key?(:filesystem)
|
|
908
|
+
@lustre = args[:lustre] if args.key?(:lustre)
|
|
909
|
+
end
|
|
910
|
+
end
|
|
911
|
+
|
|
912
|
+
# When set in a NetworkResourceConfig, indicates that a new network should be
|
|
913
|
+
# created.
|
|
914
|
+
class NewNetworkConfig
|
|
915
|
+
include Google::Apis::Core::Hashable
|
|
916
|
+
|
|
917
|
+
# Optional. Immutable. Description of the network. Maximum of 2048 characters.
|
|
918
|
+
# Corresponds to the JSON property `description`
|
|
919
|
+
# @return [String]
|
|
920
|
+
attr_accessor :description
|
|
921
|
+
|
|
922
|
+
# Required. Immutable. Name of the network to create, in the format `projects/`
|
|
923
|
+
# project`/global/networks/`network``.
|
|
924
|
+
# Corresponds to the JSON property `network`
|
|
925
|
+
# @return [String]
|
|
926
|
+
attr_accessor :network
|
|
927
|
+
|
|
928
|
+
def initialize(**args)
|
|
929
|
+
update!(**args)
|
|
930
|
+
end
|
|
931
|
+
|
|
932
|
+
# Update properties of this object
|
|
933
|
+
def update!(**args)
|
|
934
|
+
@description = args[:description] if args.key?(:description)
|
|
935
|
+
@network = args[:network] if args.key?(:network)
|
|
936
|
+
end
|
|
937
|
+
end
|
|
938
|
+
|
|
939
|
+
# When set in a ComputeResourceConfig, indicates that on-demand (i.e., using the
|
|
940
|
+
# standard provisioning model) VM instances should be created.
|
|
941
|
+
class NewOnDemandInstancesConfig
|
|
942
|
+
include Google::Apis::Core::Hashable
|
|
943
|
+
|
|
944
|
+
# Required. Immutable. Name of the Compute Engine [machine type](https://cloud.
|
|
945
|
+
# google.com/compute/docs/machine-resource) to use, e.g. `n2-standard-2`.
|
|
946
|
+
# Corresponds to the JSON property `machineType`
|
|
947
|
+
# @return [String]
|
|
948
|
+
attr_accessor :machine_type
|
|
949
|
+
|
|
950
|
+
# Required. Immutable. Name of the zone in which VM instances should run, e.g., `
|
|
951
|
+
# us-central1-a`. Must be in the same region as the cluster, and must match the
|
|
952
|
+
# zone of any other resources specified in the cluster.
|
|
953
|
+
# Corresponds to the JSON property `zone`
|
|
954
|
+
# @return [String]
|
|
955
|
+
attr_accessor :zone
|
|
956
|
+
|
|
957
|
+
def initialize(**args)
|
|
958
|
+
update!(**args)
|
|
959
|
+
end
|
|
960
|
+
|
|
961
|
+
# Update properties of this object
|
|
962
|
+
def update!(**args)
|
|
963
|
+
@machine_type = args[:machine_type] if args.key?(:machine_type)
|
|
964
|
+
@zone = args[:zone] if args.key?(:zone)
|
|
965
|
+
end
|
|
966
|
+
end
|
|
967
|
+
|
|
968
|
+
# When set in a ComputeResourceConfig, indicates that VM instances should be
|
|
969
|
+
# created from a [reservation](https://cloud.google.com/compute/docs/instances/
|
|
970
|
+
# reservations-overview).
|
|
971
|
+
class NewReservedInstancesConfig
|
|
972
|
+
include Google::Apis::Core::Hashable
|
|
973
|
+
|
|
974
|
+
# Optional. Immutable. Name of the reservation from which VM instances should be
|
|
975
|
+
# created, in the format `projects/`project`/zones/`zone`/reservations/`
|
|
976
|
+
# reservation``.
|
|
977
|
+
# Corresponds to the JSON property `reservation`
|
|
978
|
+
# @return [String]
|
|
979
|
+
attr_accessor :reservation
|
|
980
|
+
|
|
981
|
+
def initialize(**args)
|
|
982
|
+
update!(**args)
|
|
983
|
+
end
|
|
984
|
+
|
|
985
|
+
# Update properties of this object
|
|
986
|
+
def update!(**args)
|
|
987
|
+
@reservation = args[:reservation] if args.key?(:reservation)
|
|
988
|
+
end
|
|
989
|
+
end
|
|
990
|
+
|
|
991
|
+
# When set in a ComputeResourceConfig, indicates that [spot VM](https://cloud.
|
|
992
|
+
# google.com/compute/docs/instances/spot) instances should be created.
|
|
993
|
+
class NewSpotInstancesConfig
|
|
994
|
+
include Google::Apis::Core::Hashable
|
|
995
|
+
|
|
996
|
+
# Required. Immutable. Name of the Compute Engine [machine type](https://cloud.
|
|
997
|
+
# google.com/compute/docs/machine-resource) to use, e.g. `n2-standard-2`.
|
|
998
|
+
# Corresponds to the JSON property `machineType`
|
|
999
|
+
# @return [String]
|
|
1000
|
+
attr_accessor :machine_type
|
|
1001
|
+
|
|
1002
|
+
# Optional. Specifies the termination action of the instance
|
|
1003
|
+
# Corresponds to the JSON property `terminationAction`
|
|
1004
|
+
# @return [String]
|
|
1005
|
+
attr_accessor :termination_action
|
|
1006
|
+
|
|
1007
|
+
# Required. Immutable. Name of the zone in which VM instances should run, e.g., `
|
|
1008
|
+
# us-central1-a`. Must be in the same region as the cluster, and must match the
|
|
1009
|
+
# zone of any other resources specified in the cluster.
|
|
1010
|
+
# Corresponds to the JSON property `zone`
|
|
1011
|
+
# @return [String]
|
|
1012
|
+
attr_accessor :zone
|
|
1013
|
+
|
|
1014
|
+
def initialize(**args)
|
|
1015
|
+
update!(**args)
|
|
1016
|
+
end
|
|
1017
|
+
|
|
1018
|
+
# Update properties of this object
|
|
1019
|
+
def update!(**args)
|
|
1020
|
+
@machine_type = args[:machine_type] if args.key?(:machine_type)
|
|
1021
|
+
@termination_action = args[:termination_action] if args.key?(:termination_action)
|
|
1022
|
+
@zone = args[:zone] if args.key?(:zone)
|
|
1023
|
+
end
|
|
1024
|
+
end
|
|
1025
|
+
|
|
1026
|
+
# This resource represents a long-running operation that is the result of a
|
|
1027
|
+
# network API call.
|
|
1028
|
+
class Operation
|
|
1029
|
+
include Google::Apis::Core::Hashable
|
|
1030
|
+
|
|
1031
|
+
# If the value is `false`, it means the operation is still in progress. If `true`
|
|
1032
|
+
# , the operation is completed, and either `error` or `response` is available.
|
|
1033
|
+
# Corresponds to the JSON property `done`
|
|
1034
|
+
# @return [Boolean]
|
|
1035
|
+
attr_accessor :done
|
|
1036
|
+
alias_method :done?, :done
|
|
1037
|
+
|
|
1038
|
+
# The `Status` type defines a logical error model that is suitable for different
|
|
1039
|
+
# programming environments, including REST APIs and RPC APIs. It is used by [
|
|
1040
|
+
# gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
|
|
1041
|
+
# data: error code, error message, and error details. You can find out more
|
|
1042
|
+
# about this error model and how to work with it in the [API Design Guide](https:
|
|
1043
|
+
# //cloud.google.com/apis/design/errors).
|
|
1044
|
+
# Corresponds to the JSON property `error`
|
|
1045
|
+
# @return [Google::Apis::HypercomputeclusterV1::Status]
|
|
1046
|
+
attr_accessor :error
|
|
1047
|
+
|
|
1048
|
+
# Service-specific metadata associated with the operation. It typically contains
|
|
1049
|
+
# progress information and common metadata such as create time. Some services
|
|
1050
|
+
# might not provide such metadata. Any method that returns a long-running
|
|
1051
|
+
# operation should document the metadata type, if any.
|
|
1052
|
+
# Corresponds to the JSON property `metadata`
|
|
1053
|
+
# @return [Hash<String,Object>]
|
|
1054
|
+
attr_accessor :metadata
|
|
1055
|
+
|
|
1056
|
+
# The server-assigned name, which is only unique within the same service that
|
|
1057
|
+
# originally returns it. If you use the default HTTP mapping, the `name` should
|
|
1058
|
+
# be a resource name ending with `operations/`unique_id``.
|
|
1059
|
+
# Corresponds to the JSON property `name`
|
|
1060
|
+
# @return [String]
|
|
1061
|
+
attr_accessor :name
|
|
1062
|
+
|
|
1063
|
+
# The normal, successful response of the operation. If the original method
|
|
1064
|
+
# returns no data on success, such as `Delete`, the response is `google.protobuf.
|
|
1065
|
+
# Empty`. If the original method is standard `Get`/`Create`/`Update`, the
|
|
1066
|
+
# response should be the resource. For other methods, the response should have
|
|
1067
|
+
# the type `XxxResponse`, where `Xxx` is the original method name. For example,
|
|
1068
|
+
# if the original method name is `TakeSnapshot()`, the inferred response type is
|
|
1069
|
+
# `TakeSnapshotResponse`.
|
|
1070
|
+
# Corresponds to the JSON property `response`
|
|
1071
|
+
# @return [Hash<String,Object>]
|
|
1072
|
+
attr_accessor :response
|
|
1073
|
+
|
|
1074
|
+
def initialize(**args)
|
|
1075
|
+
update!(**args)
|
|
1076
|
+
end
|
|
1077
|
+
|
|
1078
|
+
# Update properties of this object
|
|
1079
|
+
def update!(**args)
|
|
1080
|
+
@done = args[:done] if args.key?(:done)
|
|
1081
|
+
@error = args[:error] if args.key?(:error)
|
|
1082
|
+
@metadata = args[:metadata] if args.key?(:metadata)
|
|
1083
|
+
@name = args[:name] if args.key?(:name)
|
|
1084
|
+
@response = args[:response] if args.key?(:response)
|
|
1085
|
+
end
|
|
1086
|
+
end
|
|
1087
|
+
|
|
1088
|
+
# Represents the metadata of the long-running operation.
|
|
1089
|
+
class OperationMetadata
|
|
1090
|
+
include Google::Apis::Core::Hashable
|
|
1091
|
+
|
|
1092
|
+
# Output only. API version used to start the operation.
|
|
1093
|
+
# Corresponds to the JSON property `apiVersion`
|
|
1094
|
+
# @return [String]
|
|
1095
|
+
attr_accessor :api_version
|
|
1096
|
+
|
|
1097
|
+
# Output only. The time the operation was created.
|
|
1098
|
+
# Corresponds to the JSON property `createTime`
|
|
1099
|
+
# @return [String]
|
|
1100
|
+
attr_accessor :create_time
|
|
1101
|
+
|
|
1102
|
+
# Output only. The time the operation finished running.
|
|
1103
|
+
# Corresponds to the JSON property `endTime`
|
|
1104
|
+
# @return [String]
|
|
1105
|
+
attr_accessor :end_time
|
|
1106
|
+
|
|
1107
|
+
# Output only. Identifies whether the user has requested cancellation of the
|
|
1108
|
+
# operation. Operations that have been cancelled successfully have google.
|
|
1109
|
+
# longrunning.Operation.error value with a google.rpc.Status.code of `1`,
|
|
1110
|
+
# corresponding to `Code.CANCELLED`.
|
|
1111
|
+
# Corresponds to the JSON property `requestedCancellation`
|
|
1112
|
+
# @return [Boolean]
|
|
1113
|
+
attr_accessor :requested_cancellation
|
|
1114
|
+
alias_method :requested_cancellation?, :requested_cancellation
|
|
1115
|
+
|
|
1116
|
+
# Output only. Server-defined resource path for the target of the operation.
|
|
1117
|
+
# Corresponds to the JSON property `target`
|
|
1118
|
+
# @return [String]
|
|
1119
|
+
attr_accessor :target
|
|
1120
|
+
|
|
1121
|
+
# Output only. Name of the verb executed by the operation.
|
|
1122
|
+
# Corresponds to the JSON property `verb`
|
|
1123
|
+
# @return [String]
|
|
1124
|
+
attr_accessor :verb
|
|
1125
|
+
|
|
1126
|
+
def initialize(**args)
|
|
1127
|
+
update!(**args)
|
|
1128
|
+
end
|
|
1129
|
+
|
|
1130
|
+
# Update properties of this object
|
|
1131
|
+
def update!(**args)
|
|
1132
|
+
@api_version = args[:api_version] if args.key?(:api_version)
|
|
1133
|
+
@create_time = args[:create_time] if args.key?(:create_time)
|
|
1134
|
+
@end_time = args[:end_time] if args.key?(:end_time)
|
|
1135
|
+
@requested_cancellation = args[:requested_cancellation] if args.key?(:requested_cancellation)
|
|
1136
|
+
@target = args[:target] if args.key?(:target)
|
|
1137
|
+
@verb = args[:verb] if args.key?(:verb)
|
|
1138
|
+
end
|
|
1139
|
+
end
|
|
1140
|
+
|
|
1141
|
+
# The component responsible for scheduling and running workloads on the cluster
|
|
1142
|
+
# as well as providing the user interface for interacting with the cluster at
|
|
1143
|
+
# runtime.
|
|
1144
|
+
class Orchestrator
|
|
1145
|
+
include Google::Apis::Core::Hashable
|
|
1146
|
+
|
|
1147
|
+
# When set in Orchestrator, indicates that the cluster should use [Slurm](https:/
|
|
1148
|
+
# /slurm.schedmd.com/) as the orchestrator.
|
|
1149
|
+
# Corresponds to the JSON property `slurm`
|
|
1150
|
+
# @return [Google::Apis::HypercomputeclusterV1::SlurmOrchestrator]
|
|
1151
|
+
attr_accessor :slurm
|
|
1152
|
+
|
|
1153
|
+
def initialize(**args)
|
|
1154
|
+
update!(**args)
|
|
1155
|
+
end
|
|
1156
|
+
|
|
1157
|
+
# Update properties of this object
|
|
1158
|
+
def update!(**args)
|
|
1159
|
+
@slurm = args[:slurm] if args.key?(:slurm)
|
|
1160
|
+
end
|
|
1161
|
+
end
|
|
1162
|
+
|
|
1163
|
+
# Configuration for Slurm [login nodes](https://slurm.schedmd.com/
|
|
1164
|
+
# quickstart_admin.html#login) in the cluster. Login nodes are Compute Engine VM
|
|
1165
|
+
# instances that allow users to access the cluster over SSH.
|
|
1166
|
+
class SlurmLoginNodes
|
|
1167
|
+
include Google::Apis::Core::Hashable
|
|
1168
|
+
|
|
1169
|
+
# A [Persistent disk](https://cloud.google.com/compute/docs/disks) used as the
|
|
1170
|
+
# boot disk for a Compute Engine VM instance.
|
|
1171
|
+
# Corresponds to the JSON property `bootDisk`
|
|
1172
|
+
# @return [Google::Apis::HypercomputeclusterV1::BootDisk]
|
|
1173
|
+
attr_accessor :boot_disk
|
|
1174
|
+
|
|
1175
|
+
# Required. Number of login node instances to create.
|
|
1176
|
+
# Corresponds to the JSON property `count`
|
|
1177
|
+
# @return [Fixnum]
|
|
1178
|
+
attr_accessor :count
|
|
1179
|
+
|
|
1180
|
+
# Optional. Whether [OS Login](https://cloud.google.com/compute/docs/oslogin)
|
|
1181
|
+
# should be enabled on login node instances.
|
|
1182
|
+
# Corresponds to the JSON property `enableOsLogin`
|
|
1183
|
+
# @return [Boolean]
|
|
1184
|
+
attr_accessor :enable_os_login
|
|
1185
|
+
alias_method :enable_os_login?, :enable_os_login
|
|
1186
|
+
|
|
1187
|
+
# Optional. Whether login node instances should be assigned [external IP
|
|
1188
|
+
# addresses](https://cloud.google.com/compute/docs/ip-addresses#
|
|
1189
|
+
# externaladdresses).
|
|
1190
|
+
# Corresponds to the JSON property `enablePublicIps`
|
|
1191
|
+
# @return [Boolean]
|
|
1192
|
+
attr_accessor :enable_public_ips
|
|
1193
|
+
alias_method :enable_public_ips?, :enable_public_ips
|
|
1194
|
+
|
|
1195
|
+
# Output only. Information about the login node instances that were created in
|
|
1196
|
+
# Compute Engine.
|
|
1197
|
+
# Corresponds to the JSON property `instances`
|
|
1198
|
+
# @return [Array<Google::Apis::HypercomputeclusterV1::ComputeInstance>]
|
|
1199
|
+
attr_accessor :instances
|
|
1200
|
+
|
|
1201
|
+
# Optional. [Labels](https://cloud.google.com/compute/docs/labeling-resources)
|
|
1202
|
+
# that should be applied to each login node instance.
|
|
1203
|
+
# Corresponds to the JSON property `labels`
|
|
1204
|
+
# @return [Hash<String,String>]
|
|
1205
|
+
attr_accessor :labels
|
|
1206
|
+
|
|
1207
|
+
# Required. Name of the Compute Engine [machine type](https://cloud.google.com/
|
|
1208
|
+
# compute/docs/machine-resource) to use for login nodes, e.g. `n2-standard-2`.
|
|
1209
|
+
# Corresponds to the JSON property `machineType`
|
|
1210
|
+
# @return [String]
|
|
1211
|
+
attr_accessor :machine_type
|
|
1212
|
+
|
|
1213
|
+
# Optional. [Startup script](https://cloud.google.com/compute/docs/instances/
|
|
1214
|
+
# startup-scripts/linux) to be run on each login node instance. Max 256KB. The
|
|
1215
|
+
# script must complete within the system-defined default timeout of 5 minutes.
|
|
1216
|
+
# For tasks that require more time, consider running them in the background
|
|
1217
|
+
# using methods such as `&` or `nohup`.
|
|
1218
|
+
# Corresponds to the JSON property `startupScript`
|
|
1219
|
+
# @return [String]
|
|
1220
|
+
attr_accessor :startup_script
|
|
1221
|
+
|
|
1222
|
+
# Optional. How storage resources should be mounted on each login node.
|
|
1223
|
+
# Corresponds to the JSON property `storageConfigs`
|
|
1224
|
+
# @return [Array<Google::Apis::HypercomputeclusterV1::StorageConfig>]
|
|
1225
|
+
attr_accessor :storage_configs
|
|
1226
|
+
|
|
1227
|
+
# Required. Name of the zone in which login nodes should run, e.g., `us-central1-
|
|
1228
|
+
# a`. Must be in the same region as the cluster, and must match the zone of any
|
|
1229
|
+
# other resources specified in the cluster.
|
|
1230
|
+
# Corresponds to the JSON property `zone`
|
|
1231
|
+
# @return [String]
|
|
1232
|
+
attr_accessor :zone
|
|
1233
|
+
|
|
1234
|
+
def initialize(**args)
|
|
1235
|
+
update!(**args)
|
|
1236
|
+
end
|
|
1237
|
+
|
|
1238
|
+
# Update properties of this object
|
|
1239
|
+
def update!(**args)
|
|
1240
|
+
@boot_disk = args[:boot_disk] if args.key?(:boot_disk)
|
|
1241
|
+
@count = args[:count] if args.key?(:count)
|
|
1242
|
+
@enable_os_login = args[:enable_os_login] if args.key?(:enable_os_login)
|
|
1243
|
+
@enable_public_ips = args[:enable_public_ips] if args.key?(:enable_public_ips)
|
|
1244
|
+
@instances = args[:instances] if args.key?(:instances)
|
|
1245
|
+
@labels = args[:labels] if args.key?(:labels)
|
|
1246
|
+
@machine_type = args[:machine_type] if args.key?(:machine_type)
|
|
1247
|
+
@startup_script = args[:startup_script] if args.key?(:startup_script)
|
|
1248
|
+
@storage_configs = args[:storage_configs] if args.key?(:storage_configs)
|
|
1249
|
+
@zone = args[:zone] if args.key?(:zone)
|
|
1250
|
+
end
|
|
1251
|
+
end
|
|
1252
|
+
|
|
1253
|
+
# Configuration for Slurm nodesets in the cluster. Nodesets are groups of
|
|
1254
|
+
# compute nodes used by Slurm that are responsible for running workloads
|
|
1255
|
+
# submitted to the cluster.
|
|
1256
|
+
class SlurmNodeSet
|
|
1257
|
+
include Google::Apis::Core::Hashable
|
|
1258
|
+
|
|
1259
|
+
# Optional. ID of the compute resource on which this nodeset will run. Must
|
|
1260
|
+
# match a key in the cluster's [compute_resources](Cluster.compute_resources).
|
|
1261
|
+
# Corresponds to the JSON property `computeId`
|
|
1262
|
+
# @return [String]
|
|
1263
|
+
attr_accessor :compute_id
|
|
1264
|
+
|
|
1265
|
+
# When set in a SlurmNodeSet, indicates that the nodeset should be backed by
|
|
1266
|
+
# Compute Engine VM instances.
|
|
1267
|
+
# Corresponds to the JSON property `computeInstance`
|
|
1268
|
+
# @return [Google::Apis::HypercomputeclusterV1::ComputeInstanceSlurmNodeSet]
|
|
1269
|
+
attr_accessor :compute_instance
|
|
1270
|
+
|
|
1271
|
+
# Required. Identifier for the nodeset, which allows it to be referenced by
|
|
1272
|
+
# partitions. Must conform to [RFC-1034](https://datatracker.ietf.org/doc/html/
|
|
1273
|
+
# rfc1034) (lower-case, alphanumeric, and at most 63 characters).
|
|
1274
|
+
# Corresponds to the JSON property `id`
|
|
1275
|
+
# @return [String]
|
|
1276
|
+
attr_accessor :id
|
|
1277
|
+
|
|
1278
|
+
# Optional. Controls how many additional nodes a cluster can bring online to
|
|
1279
|
+
# handle workloads. Set this value to enable dynamic node creation and limit the
|
|
1280
|
+
# number of additional nodes the cluster can bring online. Leave empty if you do
|
|
1281
|
+
# not want the cluster to create nodes dynamically, and instead rely only on
|
|
1282
|
+
# static nodes.
|
|
1283
|
+
# Corresponds to the JSON property `maxDynamicNodeCount`
|
|
1284
|
+
# @return [Fixnum]
|
|
1285
|
+
attr_accessor :max_dynamic_node_count
|
|
1286
|
+
|
|
1287
|
+
# Optional. Number of nodes to be statically created for this nodeset. The
|
|
1288
|
+
# cluster will attempt to ensure that at least this many nodes exist at all
|
|
1289
|
+
# times.
|
|
1290
|
+
# Corresponds to the JSON property `staticNodeCount`
|
|
1291
|
+
# @return [Fixnum]
|
|
1292
|
+
attr_accessor :static_node_count
|
|
1293
|
+
|
|
1294
|
+
# Optional. How storage resources should be mounted on each compute node.
|
|
1295
|
+
# Corresponds to the JSON property `storageConfigs`
|
|
1296
|
+
# @return [Array<Google::Apis::HypercomputeclusterV1::StorageConfig>]
|
|
1297
|
+
attr_accessor :storage_configs
|
|
1298
|
+
|
|
1299
|
+
def initialize(**args)
|
|
1300
|
+
update!(**args)
|
|
1301
|
+
end
|
|
1302
|
+
|
|
1303
|
+
# Update properties of this object
|
|
1304
|
+
def update!(**args)
|
|
1305
|
+
@compute_id = args[:compute_id] if args.key?(:compute_id)
|
|
1306
|
+
@compute_instance = args[:compute_instance] if args.key?(:compute_instance)
|
|
1307
|
+
@id = args[:id] if args.key?(:id)
|
|
1308
|
+
@max_dynamic_node_count = args[:max_dynamic_node_count] if args.key?(:max_dynamic_node_count)
|
|
1309
|
+
@static_node_count = args[:static_node_count] if args.key?(:static_node_count)
|
|
1310
|
+
@storage_configs = args[:storage_configs] if args.key?(:storage_configs)
|
|
1311
|
+
end
|
|
1312
|
+
end
|
|
1313
|
+
|
|
1314
|
+
# When set in Orchestrator, indicates that the cluster should use [Slurm](https:/
|
|
1315
|
+
# /slurm.schedmd.com/) as the orchestrator.
|
|
1316
|
+
class SlurmOrchestrator
|
|
1317
|
+
include Google::Apis::Core::Hashable
|
|
1318
|
+
|
|
1319
|
+
# Optional. Default partition to use for submitted jobs that do not explicitly
|
|
1320
|
+
# specify a partition. Required if and only if there is more than one partition,
|
|
1321
|
+
# in which case it must match the id of one of the partitions.
|
|
1322
|
+
# Corresponds to the JSON property `defaultPartition`
|
|
1323
|
+
# @return [String]
|
|
1324
|
+
attr_accessor :default_partition
|
|
1325
|
+
|
|
1326
|
+
# Optional. Slurm [epilog scripts](https://slurm.schedmd.com/prolog_epilog.html),
|
|
1327
|
+
# which will be executed by compute nodes whenever a node finishes running a
|
|
1328
|
+
# job. Values must not be empty.
|
|
1329
|
+
# Corresponds to the JSON property `epilogBashScripts`
|
|
1330
|
+
# @return [Array<String>]
|
|
1331
|
+
attr_accessor :epilog_bash_scripts
|
|
1332
|
+
|
|
1333
|
+
# Configuration for Slurm [login nodes](https://slurm.schedmd.com/
|
|
1334
|
+
# quickstart_admin.html#login) in the cluster. Login nodes are Compute Engine VM
|
|
1335
|
+
# instances that allow users to access the cluster over SSH.
|
|
1336
|
+
# Corresponds to the JSON property `loginNodes`
|
|
1337
|
+
# @return [Google::Apis::HypercomputeclusterV1::SlurmLoginNodes]
|
|
1338
|
+
attr_accessor :login_nodes
|
|
1339
|
+
|
|
1340
|
+
# Required. Configuration of Slurm nodesets, which define groups of compute
|
|
1341
|
+
# resources that can be used by Slurm. At least one compute node is required.
|
|
1342
|
+
# Corresponds to the JSON property `nodeSets`
|
|
1343
|
+
# @return [Array<Google::Apis::HypercomputeclusterV1::SlurmNodeSet>]
|
|
1344
|
+
attr_accessor :node_sets
|
|
1345
|
+
|
|
1346
|
+
# Required. Configuration of Slurm partitions, which group one or more nodesets.
|
|
1347
|
+
# Acts as a queue against which jobs can be submitted. At least one partition is
|
|
1348
|
+
# required.
|
|
1349
|
+
# Corresponds to the JSON property `partitions`
|
|
1350
|
+
# @return [Array<Google::Apis::HypercomputeclusterV1::SlurmPartition>]
|
|
1351
|
+
attr_accessor :partitions
|
|
1352
|
+
|
|
1353
|
+
# Optional. Slurm [prolog scripts](https://slurm.schedmd.com/prolog_epilog.html),
|
|
1354
|
+
# which will be executed by compute nodes before a node begins running a new
|
|
1355
|
+
# job. Values must not be empty.
|
|
1356
|
+
# Corresponds to the JSON property `prologBashScripts`
|
|
1357
|
+
# @return [Array<String>]
|
|
1358
|
+
attr_accessor :prolog_bash_scripts
|
|
1359
|
+
|
|
1360
|
+
def initialize(**args)
|
|
1361
|
+
update!(**args)
|
|
1362
|
+
end
|
|
1363
|
+
|
|
1364
|
+
# Update properties of this object
|
|
1365
|
+
def update!(**args)
|
|
1366
|
+
@default_partition = args[:default_partition] if args.key?(:default_partition)
|
|
1367
|
+
@epilog_bash_scripts = args[:epilog_bash_scripts] if args.key?(:epilog_bash_scripts)
|
|
1368
|
+
@login_nodes = args[:login_nodes] if args.key?(:login_nodes)
|
|
1369
|
+
@node_sets = args[:node_sets] if args.key?(:node_sets)
|
|
1370
|
+
@partitions = args[:partitions] if args.key?(:partitions)
|
|
1371
|
+
@prolog_bash_scripts = args[:prolog_bash_scripts] if args.key?(:prolog_bash_scripts)
|
|
1372
|
+
end
|
|
1373
|
+
end
|
|
1374
|
+
|
|
1375
|
+
# Configuration for Slurm partitions in the cluster. Partitions are groups of
|
|
1376
|
+
# nodesets, and are how clients specify where their workloads should be run.
|
|
1377
|
+
class SlurmPartition
|
|
1378
|
+
include Google::Apis::Core::Hashable
|
|
1379
|
+
|
|
1380
|
+
# Required. ID of the partition, which is how users will identify it. Must
|
|
1381
|
+
# conform to [RFC-1034](https://datatracker.ietf.org/doc/html/rfc1034) (lower-
|
|
1382
|
+
# case, alphanumeric, and at most 63 characters).
|
|
1383
|
+
# Corresponds to the JSON property `id`
|
|
1384
|
+
# @return [String]
|
|
1385
|
+
attr_accessor :id
|
|
1386
|
+
|
|
1387
|
+
# Required. IDs of the nodesets that make up this partition. Values must match
|
|
1388
|
+
# SlurmNodeSet.id.
|
|
1389
|
+
# Corresponds to the JSON property `nodeSetIds`
|
|
1390
|
+
# @return [Array<String>]
|
|
1391
|
+
attr_accessor :node_set_ids
|
|
1392
|
+
|
|
1393
|
+
def initialize(**args)
|
|
1394
|
+
update!(**args)
|
|
1395
|
+
end
|
|
1396
|
+
|
|
1397
|
+
# Update properties of this object
|
|
1398
|
+
def update!(**args)
|
|
1399
|
+
@id = args[:id] if args.key?(:id)
|
|
1400
|
+
@node_set_ids = args[:node_set_ids] if args.key?(:node_set_ids)
|
|
1401
|
+
end
|
|
1402
|
+
end
|
|
1403
|
+
|
|
1404
|
+
# The `Status` type defines a logical error model that is suitable for different
|
|
1405
|
+
# programming environments, including REST APIs and RPC APIs. It is used by [
|
|
1406
|
+
# gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
|
|
1407
|
+
# data: error code, error message, and error details. You can find out more
|
|
1408
|
+
# about this error model and how to work with it in the [API Design Guide](https:
|
|
1409
|
+
# //cloud.google.com/apis/design/errors).
|
|
1410
|
+
class Status
|
|
1411
|
+
include Google::Apis::Core::Hashable
|
|
1412
|
+
|
|
1413
|
+
# The status code, which should be an enum value of google.rpc.Code.
|
|
1414
|
+
# Corresponds to the JSON property `code`
|
|
1415
|
+
# @return [Fixnum]
|
|
1416
|
+
attr_accessor :code
|
|
1417
|
+
|
|
1418
|
+
# A list of messages that carry the error details. There is a common set of
|
|
1419
|
+
# message types for APIs to use.
|
|
1420
|
+
# Corresponds to the JSON property `details`
|
|
1421
|
+
# @return [Array<Hash<String,Object>>]
|
|
1422
|
+
attr_accessor :details
|
|
1423
|
+
|
|
1424
|
+
# A developer-facing error message, which should be in English. Any user-facing
|
|
1425
|
+
# error message should be localized and sent in the google.rpc.Status.details
|
|
1426
|
+
# field, or localized by the client.
|
|
1427
|
+
# Corresponds to the JSON property `message`
|
|
1428
|
+
# @return [String]
|
|
1429
|
+
attr_accessor :message
|
|
1430
|
+
|
|
1431
|
+
def initialize(**args)
|
|
1432
|
+
update!(**args)
|
|
1433
|
+
end
|
|
1434
|
+
|
|
1435
|
+
# Update properties of this object
|
|
1436
|
+
def update!(**args)
|
|
1437
|
+
@code = args[:code] if args.key?(:code)
|
|
1438
|
+
@details = args[:details] if args.key?(:details)
|
|
1439
|
+
@message = args[:message] if args.key?(:message)
|
|
1440
|
+
end
|
|
1441
|
+
end
|
|
1442
|
+
|
|
1443
|
+
# Description of how a storage resource should be mounted on a VM instance.
|
|
1444
|
+
class StorageConfig
|
|
1445
|
+
include Google::Apis::Core::Hashable
|
|
1446
|
+
|
|
1447
|
+
# Required. ID of the storage resource to mount, which must match a key in the
|
|
1448
|
+
# cluster's [storage_resources](Cluster.storage_resources).
|
|
1449
|
+
# Corresponds to the JSON property `id`
|
|
1450
|
+
# @return [String]
|
|
1451
|
+
attr_accessor :id
|
|
1452
|
+
|
|
1453
|
+
# Required. A directory inside the VM instance's file system where the storage
|
|
1454
|
+
# resource should be mounted (e.g., `/mnt/share`).
|
|
1455
|
+
# Corresponds to the JSON property `localMount`
|
|
1456
|
+
# @return [String]
|
|
1457
|
+
attr_accessor :local_mount
|
|
1458
|
+
|
|
1459
|
+
def initialize(**args)
|
|
1460
|
+
update!(**args)
|
|
1461
|
+
end
|
|
1462
|
+
|
|
1463
|
+
# Update properties of this object
|
|
1464
|
+
def update!(**args)
|
|
1465
|
+
@id = args[:id] if args.key?(:id)
|
|
1466
|
+
@local_mount = args[:local_mount] if args.key?(:local_mount)
|
|
1467
|
+
end
|
|
1468
|
+
end
|
|
1469
|
+
|
|
1470
|
+
# A resource representing a form of persistent storage that is accessible to
|
|
1471
|
+
# compute resources in the cluster.
|
|
1472
|
+
class StorageResource
|
|
1473
|
+
include Google::Apis::Core::Hashable
|
|
1474
|
+
|
|
1475
|
+
# A reference to a [Google Cloud Storage](https://cloud.google.com/storage)
|
|
1476
|
+
# bucket.
|
|
1477
|
+
# Corresponds to the JSON property `bucket`
|
|
1478
|
+
# @return [Google::Apis::HypercomputeclusterV1::BucketReference]
|
|
1479
|
+
attr_accessor :bucket
|
|
1480
|
+
|
|
1481
|
+
# Describes how a storage resource should be initialized. Each storage resource
|
|
1482
|
+
# can either be imported from an existing Google Cloud resource or initialized
|
|
1483
|
+
# when the cluster is created.
|
|
1484
|
+
# Corresponds to the JSON property `config`
|
|
1485
|
+
# @return [Google::Apis::HypercomputeclusterV1::StorageResourceConfig]
|
|
1486
|
+
attr_accessor :config
|
|
1487
|
+
|
|
1488
|
+
# A reference to a [Filestore](https://cloud.google.com/filestore) instance.
|
|
1489
|
+
# Corresponds to the JSON property `filestore`
|
|
1490
|
+
# @return [Google::Apis::HypercomputeclusterV1::FilestoreReference]
|
|
1491
|
+
attr_accessor :filestore
|
|
1492
|
+
|
|
1493
|
+
# A reference to a [Managed Lustre](https://cloud.google.com/products/managed-
|
|
1494
|
+
# lustre) instance.
|
|
1495
|
+
# Corresponds to the JSON property `lustre`
|
|
1496
|
+
# @return [Google::Apis::HypercomputeclusterV1::LustreReference]
|
|
1497
|
+
attr_accessor :lustre
|
|
1498
|
+
|
|
1499
|
+
def initialize(**args)
|
|
1500
|
+
update!(**args)
|
|
1501
|
+
end
|
|
1502
|
+
|
|
1503
|
+
# Update properties of this object
|
|
1504
|
+
def update!(**args)
|
|
1505
|
+
@bucket = args[:bucket] if args.key?(:bucket)
|
|
1506
|
+
@config = args[:config] if args.key?(:config)
|
|
1507
|
+
@filestore = args[:filestore] if args.key?(:filestore)
|
|
1508
|
+
@lustre = args[:lustre] if args.key?(:lustre)
|
|
1509
|
+
end
|
|
1510
|
+
end
|
|
1511
|
+
|
|
1512
|
+
# Describes how a storage resource should be initialized. Each storage resource
|
|
1513
|
+
# can either be imported from an existing Google Cloud resource or initialized
|
|
1514
|
+
# when the cluster is created.
|
|
1515
|
+
class StorageResourceConfig
|
|
1516
|
+
include Google::Apis::Core::Hashable
|
|
1517
|
+
|
|
1518
|
+
# When set in a StorageResourceConfig, indicates that an existing [Google Cloud
|
|
1519
|
+
# Storage](https://cloud.google.com/storage) bucket should be imported.
|
|
1520
|
+
# Corresponds to the JSON property `existingBucket`
|
|
1521
|
+
# @return [Google::Apis::HypercomputeclusterV1::ExistingBucketConfig]
|
|
1522
|
+
attr_accessor :existing_bucket
|
|
1523
|
+
|
|
1524
|
+
# When set in a StorageResourceConfig, indicates that an existing [Filestore](
|
|
1525
|
+
# https://cloud.google.com/filestore) instance should be imported.
|
|
1526
|
+
# Corresponds to the JSON property `existingFilestore`
|
|
1527
|
+
# @return [Google::Apis::HypercomputeclusterV1::ExistingFilestoreConfig]
|
|
1528
|
+
attr_accessor :existing_filestore
|
|
1529
|
+
|
|
1530
|
+
# When set in a StorageResourceConfig, indicates that an existing [Managed
|
|
1531
|
+
# Lustre](https://cloud.google.com/products/managed-lustre) instance should be
|
|
1532
|
+
# imported.
|
|
1533
|
+
# Corresponds to the JSON property `existingLustre`
|
|
1534
|
+
# @return [Google::Apis::HypercomputeclusterV1::ExistingLustreConfig]
|
|
1535
|
+
attr_accessor :existing_lustre
|
|
1536
|
+
|
|
1537
|
+
# When set in a StorageResourceConfig, indicates that a new [Google Cloud
|
|
1538
|
+
# Storage](https://cloud.google.com/storage) bucket should be created.
|
|
1539
|
+
# Corresponds to the JSON property `newBucket`
|
|
1540
|
+
# @return [Google::Apis::HypercomputeclusterV1::NewBucketConfig]
|
|
1541
|
+
attr_accessor :new_bucket
|
|
1542
|
+
|
|
1543
|
+
# When set in a StorageResourceConfig, indicates that a new [Filestore](https://
|
|
1544
|
+
# cloud.google.com/filestore) instance should be created.
|
|
1545
|
+
# Corresponds to the JSON property `newFilestore`
|
|
1546
|
+
# @return [Google::Apis::HypercomputeclusterV1::NewFilestoreConfig]
|
|
1547
|
+
attr_accessor :new_filestore
|
|
1548
|
+
|
|
1549
|
+
# When set in a StorageResourceConfig, indicates that a new [Managed Lustre](
|
|
1550
|
+
# https://cloud.google.com/products/managed-lustre) instance should be created.
|
|
1551
|
+
# Corresponds to the JSON property `newLustre`
|
|
1552
|
+
# @return [Google::Apis::HypercomputeclusterV1::NewLustreConfig]
|
|
1553
|
+
attr_accessor :new_lustre
|
|
1554
|
+
|
|
1555
|
+
def initialize(**args)
|
|
1556
|
+
update!(**args)
|
|
1557
|
+
end
|
|
1558
|
+
|
|
1559
|
+
# Update properties of this object
|
|
1560
|
+
def update!(**args)
|
|
1561
|
+
@existing_bucket = args[:existing_bucket] if args.key?(:existing_bucket)
|
|
1562
|
+
@existing_filestore = args[:existing_filestore] if args.key?(:existing_filestore)
|
|
1563
|
+
@existing_lustre = args[:existing_lustre] if args.key?(:existing_lustre)
|
|
1564
|
+
@new_bucket = args[:new_bucket] if args.key?(:new_bucket)
|
|
1565
|
+
@new_filestore = args[:new_filestore] if args.key?(:new_filestore)
|
|
1566
|
+
@new_lustre = args[:new_lustre] if args.key?(:new_lustre)
|
|
1567
|
+
end
|
|
1568
|
+
end
|
|
1569
|
+
end
|
|
1570
|
+
end
|
|
1571
|
+
end
|