google-cloud-hypercompute_cluster-v1beta 1.2.0 → 1.3.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.
@@ -34,7 +34,8 @@ module Google
34
34
  # `projects/{project}/locations/{location}/clusters/{cluster}`.
35
35
  # @!attribute [rw] description
36
36
  # @return [::String]
37
- # Optional. User-provided description of the cluster.
37
+ # Optional. A description for your cluster. You can use up to 2,048
38
+ # characters.
38
39
  # @!attribute [rw] labels
39
40
  # @return [::Google::Protobuf::Map{::String => ::String}]
40
41
  # Optional.
@@ -54,7 +55,7 @@ module Google
54
55
  # cluster's intended state.
55
56
  # @!attribute [rw] network_resources
56
57
  # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::HypercomputeCluster::V1beta::NetworkResource}]
57
- # Optional. Network resources available to the cluster. Must contain at most
58
+ # Optional. Network resources available to the cluster. Must contain exactly
58
59
  # one value. Keys specify the ID of the network resource by which it can be
59
60
  # referenced elsewhere, and must conform to
60
61
  # [RFC-1034](https://datatracker.ietf.org/doc/html/rfc1034) (lower-case,
@@ -75,6 +76,9 @@ module Google
75
76
  # @return [::Google::Cloud::HypercomputeCluster::V1beta::Orchestrator]
76
77
  # Optional. Orchestrator that is responsible for scheduling and running jobs
77
78
  # on the cluster.
79
+ # @!attribute [r] uid
80
+ # @return [::String]
81
+ # Output only. The globally unique identifier for this Cluster.
78
82
  class Cluster
79
83
  include ::Google::Protobuf::MessageExts
80
84
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -188,9 +192,10 @@ module Google
188
192
  # format `projects/{project}/locations/{location}`.
189
193
  # @!attribute [rw] cluster_id
190
194
  # @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).
195
+ # Required. The ID of the cluster to create.
196
+ # The cluster ID must start with a lowercase letter (`a`-`z`), use only
197
+ # lowercase letters or numbers, and contain up to 10 characters. For example,
198
+ # specify `cluster001`.
194
199
  # @!attribute [rw] cluster
195
200
  # @return [::Google::Cloud::HypercomputeCluster::V1beta::Cluster]
196
201
  # Required. Cluster to create.
@@ -240,11 +245,59 @@ module Google
240
245
  extend ::Google::Protobuf::MessageExts::ClassMethods
241
246
  end
242
247
 
248
+ # Request message for
249
+ # {::Google::Cloud::HypercomputeCluster::V1beta::HypercomputeCluster::Client#list_nodes ListNodes}.
250
+ # @!attribute [rw] parent
251
+ # @return [::String]
252
+ # Required. Parent cluster of the nodes to list, in the format
253
+ # `projects/{project}/locations/{location}/clusters/{cluster}`.
254
+ # @!attribute [rw] page_size
255
+ # @return [::Integer]
256
+ # Optional. Maximum number of nodes to return. The service may return fewer
257
+ # than this value.
258
+ # @!attribute [rw] page_token
259
+ # @return [::String]
260
+ # Optional. A page token received from a previous `ListNodes` call. Provide
261
+ # this to retrieve the subsequent page. When paginating, all other parameters
262
+ # provided to `ListNodes` must match the call that provided the page
263
+ # token.
264
+ # @!attribute [rw] filter
265
+ # @return [::String]
266
+ # Optional. [Filter](https://google.aip.dev/160) to apply to the returned
267
+ # results.
268
+ # @!attribute [rw] order_by
269
+ # @return [::String]
270
+ # Optional. How to order the resulting nodes. Must be one of the following
271
+ # strings:
272
+ #
273
+ # * `name`
274
+ # * `name desc`
275
+ #
276
+ # If not specified, nodes will be returned in an arbitrary order.
277
+ class ListNodesRequest
278
+ include ::Google::Protobuf::MessageExts
279
+ extend ::Google::Protobuf::MessageExts::ClassMethods
280
+ end
281
+
282
+ # Response message for
283
+ # {::Google::Cloud::HypercomputeCluster::V1beta::HypercomputeCluster::Client#list_nodes ListNodes}.
284
+ # @!attribute [rw] nodes
285
+ # @return [::Array<::Google::Cloud::HypercomputeCluster::V1beta::Node>]
286
+ # Nodes in the specified cluster.
287
+ # @!attribute [rw] next_page_token
288
+ # @return [::String]
289
+ # A token that can be sent as `page_token` to retrieve the next page. If this
290
+ # field is absent, there are no subsequent pages.
291
+ class ListNodesResponse
292
+ include ::Google::Protobuf::MessageExts
293
+ extend ::Google::Protobuf::MessageExts::ClassMethods
294
+ end
295
+
243
296
  # A resource representing a network that connects the various components of a
244
297
  # cluster together.
245
- # @!attribute [rw] network
298
+ # @!attribute [r] network
246
299
  # @return [::Google::Cloud::HypercomputeCluster::V1beta::NetworkReference]
247
- # Reference to a network in Google Compute Engine.
300
+ # Output only. A reference to a network in Google Compute Engine.
248
301
  # @!attribute [rw] config
249
302
  # @return [::Google::Cloud::HypercomputeCluster::V1beta::NetworkResourceConfig]
250
303
  # Immutable. Configuration for this network resource, which describes how it
@@ -325,24 +378,25 @@ module Google
325
378
  extend ::Google::Protobuf::MessageExts::ClassMethods
326
379
  end
327
380
 
328
- # A resource representing a form of persistent storage that is accessible to
329
- # compute resources in the cluster.
330
- # @!attribute [rw] filestore
381
+ # Represents a form of persistent storage that you can mount onto compute
382
+ # resources in the cluster.
383
+ # @!attribute [r] filestore
331
384
  # @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.
385
+ # Output only. A reference to a Filestore instance. Populated if and only
386
+ # if the storage resource was configured to use Filestore.
334
387
  #
335
388
  # 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
389
+ # @!attribute [r] bucket
337
390
  # @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.
391
+ # Output only. A reference to a Google Cloud Storage bucket. Populated if
392
+ # and only if the storage resource was configured to use Google Cloud
393
+ # Storage.
340
394
  #
341
395
  # 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
396
+ # @!attribute [r] lustre
343
397
  # @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.
398
+ # Output only. A reference to a Managed Lustre instance. Populated if and
399
+ # only if the storage resource was configured to use Managed Lustre.
346
400
  #
347
401
  # 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
402
  # @!attribute [rw] config
@@ -396,37 +450,43 @@ module Google
396
450
  # Optional. Immutable. If set, indicates that a new Filestore instance
397
451
  # should be created.
398
452
  #
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.
453
+ # Note: The following fields are mutually exclusive: `new_filestore`, `existing_filestore`, `new_bucket`, `existing_bucket`, `new_lustre`, `existing_lustre`, `existing_nfs`. If a field in that set is populated, all other fields in the set will automatically be cleared.
400
454
  # @!attribute [rw] existing_filestore
401
455
  # @return [::Google::Cloud::HypercomputeCluster::V1beta::ExistingFilestoreConfig]
402
456
  # Optional. Immutable. If set, indicates that an existing Filestore
403
457
  # instance should be imported.
404
458
  #
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.
459
+ # Note: The following fields are mutually exclusive: `existing_filestore`, `new_filestore`, `new_bucket`, `existing_bucket`, `new_lustre`, `existing_lustre`, `existing_nfs`. If a field in that set is populated, all other fields in the set will automatically be cleared.
406
460
  # @!attribute [rw] new_bucket
407
461
  # @return [::Google::Cloud::HypercomputeCluster::V1beta::NewBucketConfig]
408
462
  # Optional. Immutable. If set, indicates that a new Cloud Storage bucket
409
463
  # should be created.
410
464
  #
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.
465
+ # Note: The following fields are mutually exclusive: `new_bucket`, `new_filestore`, `existing_filestore`, `existing_bucket`, `new_lustre`, `existing_lustre`, `existing_nfs`. If a field in that set is populated, all other fields in the set will automatically be cleared.
412
466
  # @!attribute [rw] existing_bucket
413
467
  # @return [::Google::Cloud::HypercomputeCluster::V1beta::ExistingBucketConfig]
414
468
  # Optional. Immutable. If set, indicates that an existing Cloud Storage
415
469
  # bucket should be imported.
416
470
  #
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.
471
+ # Note: The following fields are mutually exclusive: `existing_bucket`, `new_filestore`, `existing_filestore`, `new_bucket`, `new_lustre`, `existing_lustre`, `existing_nfs`. If a field in that set is populated, all other fields in the set will automatically be cleared.
418
472
  # @!attribute [rw] new_lustre
419
473
  # @return [::Google::Cloud::HypercomputeCluster::V1beta::NewLustreConfig]
420
474
  # Optional. Immutable. If set, indicates that a new Managed Lustre instance
421
475
  # should be created.
422
476
  #
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.
477
+ # Note: The following fields are mutually exclusive: `new_lustre`, `new_filestore`, `existing_filestore`, `new_bucket`, `existing_bucket`, `existing_lustre`, `existing_nfs`. If a field in that set is populated, all other fields in the set will automatically be cleared.
424
478
  # @!attribute [rw] existing_lustre
425
479
  # @return [::Google::Cloud::HypercomputeCluster::V1beta::ExistingLustreConfig]
426
480
  # Optional. Immutable. If set, indicates that an existing Managed Lustre
427
481
  # instance should be imported.
428
482
  #
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.
483
+ # Note: The following fields are mutually exclusive: `existing_lustre`, `new_filestore`, `existing_filestore`, `new_bucket`, `existing_bucket`, `new_lustre`, `existing_nfs`. If a field in that set is populated, all other fields in the set will automatically be cleared.
484
+ # @!attribute [rw] existing_nfs
485
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::ExistingNfsConfig]
486
+ # Optional. Immutable. If set, indicates that an existing NFS share should
487
+ # be imported.
488
+ #
489
+ # Note: The following fields are mutually exclusive: `existing_nfs`, `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.
430
490
  class StorageResourceConfig
431
491
  include ::Google::Protobuf::MessageExts
432
492
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -439,7 +499,7 @@ module Google
439
499
  # @!attribute [rw] filestore
440
500
  # @return [::String]
441
501
  # Required. Immutable. Name of the Filestore instance to create, in the
442
- # format `projects/{project}/locations/{location}/instances/{instance}`
502
+ # format `projects/{project}/locations/{location}/instances/{instance}`.
443
503
  # @!attribute [rw] description
444
504
  # @return [::String]
445
505
  # Optional. Immutable. Description of the instance. Maximum of 2048
@@ -561,6 +621,9 @@ module Google
561
621
  # Lowest-cost storage for data archiving, online backup, and disaster
562
622
  # recovery.
563
623
  ARCHIVE = 4
624
+
625
+ # Storage class optimized for I/O intensive workloads.
626
+ RAPID = 5
564
627
  end
565
628
  end
566
629
 
@@ -579,6 +642,12 @@ module Google
579
642
  module TerminalStorageClass
580
643
  # Unspecified terminal storage class
581
644
  TERMINAL_STORAGE_CLASS_UNSPECIFIED = 0
645
+
646
+ # Nearline terminal storage class
647
+ NEARLINE = 1
648
+
649
+ # Archive terminal storage class
650
+ ARCHIVE = 2
582
651
  end
583
652
  end
584
653
 
@@ -625,6 +694,12 @@ module Google
625
694
  # @return [::Integer]
626
695
  # Required. Immutable. Storage capacity of the instance in gibibytes (GiB).
627
696
  # Allowed values are between 18000 and 7632000.
697
+ # @!attribute [rw] per_unit_storage_throughput
698
+ # @return [::Integer]
699
+ # Optional. Immutable. Throughput of the instance in MB/s/TiB. Valid values
700
+ # are 125, 250, 500, 1000. See [Performance tiers and maximum storage
701
+ # capacities](https://cloud.google.com/managed-lustre/docs/create-instance#performance-tiers)
702
+ # for more information.
628
703
  class NewLustreConfig
629
704
  include ::Google::Protobuf::MessageExts
630
705
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -644,6 +719,24 @@ module Google
644
719
  extend ::Google::Protobuf::MessageExts::ClassMethods
645
720
  end
646
721
 
722
+ # When set in a
723
+ # {::Google::Cloud::HypercomputeCluster::V1beta::StorageResourceConfig StorageResourceConfig},
724
+ # indicates that an existing NFS share should be imported.
725
+ # @!attribute [rw] server_ip_address
726
+ # @return [::String]
727
+ # Required. Immutable. Server IP address of the NFS share.
728
+ # @!attribute [rw] remote_mount
729
+ # @return [::String]
730
+ # Required. Immutable. Remote mount path of the NFS share.
731
+ # @!attribute [rw] mount_options
732
+ # @return [::String]
733
+ # Optional. Immutable. Options to mount the NFS share, as expected by
734
+ # fs_mntops field infstab(5), for example: "rw,vers=4.1,nconnect=2,noatime".
735
+ class ExistingNfsConfig
736
+ include ::Google::Protobuf::MessageExts
737
+ extend ::Google::Protobuf::MessageExts::ClassMethods
738
+ end
739
+
647
740
  # A resource defining how virtual machines and accelerators should be
648
741
  # provisioned for the cluster.
649
742
  # @!attribute [rw] config
@@ -699,6 +792,10 @@ module Google
699
792
  # Required. Immutable. Name of the Compute Engine [machine
700
793
  # type](https://cloud.google.com/compute/docs/machine-resource) to use, e.g.
701
794
  # `n2-standard-2`.
795
+ # @!attribute [rw] network_tags
796
+ # @return [::Array<::String>]
797
+ # Optional. Immutable. A list of network tags to attach to the VM instances.
798
+ # A maximum of 64 network tags are allowed.
702
799
  class NewOnDemandInstancesConfig
703
800
  include ::Google::Protobuf::MessageExts
704
801
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -719,9 +816,29 @@ module Google
719
816
  # Required. Immutable. Name of the Compute Engine [machine
720
817
  # type](https://cloud.google.com/compute/docs/machine-resource) to use, e.g.
721
818
  # `n2-standard-2`.
819
+ # @!attribute [rw] termination_action
820
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::NewSpotInstancesConfig::TerminationAction]
821
+ # Optional. Termination action for the instance. If not specified, Compute
822
+ # Engine sets the termination action to DELETE.
823
+ # @!attribute [rw] network_tags
824
+ # @return [::Array<::String>]
825
+ # Optional. Immutable. A list of network tags to attach to the VM instances.
826
+ # A maximum of 64 network tags are allowed.
722
827
  class NewSpotInstancesConfig
723
828
  include ::Google::Protobuf::MessageExts
724
829
  extend ::Google::Protobuf::MessageExts::ClassMethods
830
+
831
+ # Specifies the termination action of the instance.
832
+ module TerminationAction
833
+ # Not set.
834
+ TERMINATION_ACTION_UNSPECIFIED = 0
835
+
836
+ # Compute Engine stops the Spot VM on preemption.
837
+ STOP = 1
838
+
839
+ # Compute Engine deletes the Spot VM on preemption.
840
+ DELETE = 2
841
+ end
725
842
  end
726
843
 
727
844
  # When set in a
@@ -733,6 +850,26 @@ module Google
733
850
  # Optional. Immutable. Name of the reservation from which VM instances
734
851
  # should be created, in the format
735
852
  # `projects/{project}/zones/{zone}/reservations/{reservation}`.
853
+ #
854
+ # Note: The following fields are mutually exclusive: `reservation`, `reservation_block`, `reservation_sub_block`. If a field in that set is populated, all other fields in the set will automatically be cleared.
855
+ # @!attribute [rw] reservation_block
856
+ # @return [::String]
857
+ # Optional. Immutable. Name of the reservation block from which VM
858
+ # instances should be created, in the format
859
+ # `projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks/{reservation_block}`.
860
+ #
861
+ # Note: The following fields are mutually exclusive: `reservation_block`, `reservation`, `reservation_sub_block`. If a field in that set is populated, all other fields in the set will automatically be cleared.
862
+ # @!attribute [rw] reservation_sub_block
863
+ # @return [::String]
864
+ # Optional. Immutable. Name of the reservation sub block from which VM
865
+ # instances should be created, in the format
866
+ # `projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks/{reservation_block}/reservationSubBlocks/{reservation_sub_block}`.
867
+ #
868
+ # Note: The following fields are mutually exclusive: `reservation_sub_block`, `reservation`, `reservation_block`. If a field in that set is populated, all other fields in the set will automatically be cleared.
869
+ # @!attribute [rw] network_tags
870
+ # @return [::Array<::String>]
871
+ # Optional. Immutable. A list of network tags to attach to the VM instances.
872
+ # A maximum of 64 network tags are allowed.
736
873
  class NewReservedInstancesConfig
737
874
  include ::Google::Protobuf::MessageExts
738
875
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -756,6 +893,10 @@ module Google
756
893
  # @return [::Google::Protobuf::Duration]
757
894
  # Required. Immutable. Specifies the time limit for created instances.
758
895
  # Instances will be terminated at the end of this duration.
896
+ # @!attribute [rw] network_tags
897
+ # @return [::Array<::String>]
898
+ # Optional. Immutable. A list of network tags to attach to the VM instances.
899
+ # A maximum of 64 network tags are allowed.
759
900
  class NewFlexStartInstancesConfig
760
901
  include ::Google::Protobuf::MessageExts
761
902
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -765,12 +906,22 @@ module Google
765
906
  # boot disk for a Compute Engine VM instance.
766
907
  # @!attribute [rw] type
767
908
  # @return [::String]
768
- # Required. Immutable. [Persistent disk
909
+ # Optional. [Persistent disk
769
910
  # type](https://cloud.google.com/compute/docs/disks#disk-types), in the
770
911
  # format `projects/{project}/zones/{zone}/diskTypes/{disk_type}`.
771
912
  # @!attribute [rw] size_gb
772
913
  # @return [::Integer]
773
- # Required. Immutable. Size of the disk in gigabytes. Must be at least 10GB.
914
+ # Optional. The size of the disk in gigabytes (GB), which must be at least 40
915
+ # GB.
916
+ # @!attribute [rw] storage_pools
917
+ # @return [::Array<::String>]
918
+ # Optional. The [storage
919
+ # pools](https://docs.cloud.google.com/compute/docs/disks/storage-pools) used
920
+ # for creating the boot disk, in the format:
921
+ # `projects/{project}/zones/{zone}/storagePools/{storage_pool}`.
922
+ #
923
+ # Currently, only one Hyperdisk Balanced storage pool is supported.
924
+ # The storage pool must reside in the same zone as the compute instance.
774
925
  class BootDisk
775
926
  include ::Google::Protobuf::MessageExts
776
927
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -783,6 +934,14 @@ module Google
783
934
  # @return [::Google::Cloud::HypercomputeCluster::V1beta::SlurmOrchestrator]
784
935
  # Optional. If set, indicates that the cluster should use Slurm as the
785
936
  # orchestrator.
937
+ #
938
+ # Note: The following fields are mutually exclusive: `slurm`, `compute_engine`. If a field in that set is populated, all other fields in the set will automatically be cleared.
939
+ # @!attribute [rw] compute_engine
940
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::ComputeEngineOrchestrator]
941
+ # Optional. If set, indicates that the cluster should use Compute Engine as
942
+ # the orchestrator.
943
+ #
944
+ # Note: The following fields are mutually exclusive: `compute_engine`, `slurm`. If a field in that set is populated, all other fields in the set will automatically be cleared.
786
945
  class Orchestrator
787
946
  include ::Google::Protobuf::MessageExts
788
947
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -798,13 +957,14 @@ module Google
798
957
  # cluster over SSH.
799
958
  # @!attribute [rw] node_sets
800
959
  # @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.
960
+ # Optional. Compute resource configuration for the Slurm nodesets in your
961
+ # cluster. If not specified, the cluster won't create any nodes.
803
962
  # @!attribute [rw] partitions
804
963
  # @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.
964
+ # Optional. Configuration for the Slurm partitions in your cluster. Each
965
+ # partition can contain one or more nodesets, and you can submit separate
966
+ # jobs on each partition. If you don't specify at least one partition in your
967
+ # cluster, you can't submit jobs to the cluster.
808
968
  # @!attribute [rw] default_partition
809
969
  # @return [::String]
810
970
  # Optional. Default partition to use for submitted jobs that do not
@@ -836,15 +996,15 @@ module Google
836
996
  # Engine instances.
837
997
  # @!attribute [rw] id
838
998
  # @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).
999
+ # Required. The ID for the nodeset, which allows it to be referenced by
1000
+ # cluster partitions. The nodeset ID must start with a lowercase letter
1001
+ # (`a`-`z`), use only lowercase letters or numbers, and contain up to 15
1002
+ # characters. For example, specify `nodeset001`.
843
1003
  # @!attribute [rw] compute_id
844
1004
  # @return [::String]
845
- # Optional. ID of the compute resource on which this nodeset will run. Must
1005
+ # Required. The ID of the compute resource on which this nodeset runs. Must
846
1006
  # match a key in the cluster's
847
- # [compute_resources](Cluster.compute_resources).
1007
+ # {::Google::Cloud::HypercomputeCluster::V1beta::Cluster#compute_resources compute_resources}.
848
1008
  # @!attribute [rw] storage_configs
849
1009
  # @return [::Array<::Google::Cloud::HypercomputeCluster::V1beta::StorageConfig>]
850
1010
  # Optional. How [storage
@@ -862,6 +1022,9 @@ module Google
862
1022
  # the number of additional nodes the cluster can bring online. Leave empty if
863
1023
  # you do not want the cluster to create nodes dynamically, and instead rely
864
1024
  # only on static nodes.
1025
+ # @!attribute [rw] resource_policy_config
1026
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::ResourcePolicyConfig]
1027
+ # Optional. Resource policy configuration for the nodeset.
865
1028
  class SlurmNodeSet
866
1029
  include ::Google::Protobuf::MessageExts
867
1030
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -897,6 +1060,17 @@ module Google
897
1060
  end
898
1061
  end
899
1062
 
1063
+ # Policy describing how VM instances should be created.
1064
+ # @!attribute [rw] accelerator_topology
1065
+ # @return [::String]
1066
+ # Optional. Specifies the topology required to create a partition for VMs
1067
+ # that have interconnected accelerators, in the format `AxB` or `AxBxC`,
1068
+ # where `A`, `B`, and `C` are integers.
1069
+ class ResourcePolicyConfig
1070
+ include ::Google::Protobuf::MessageExts
1071
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1072
+ end
1073
+
900
1074
  # Configuration for Slurm partitions in the cluster. Partitions are groups of
901
1075
  # nodesets, and are how clients specify where their workloads should be run.
902
1076
  # @!attribute [rw] id
@@ -936,6 +1110,9 @@ module Google
936
1110
  # Optional. [Startup
937
1111
  # script](https://cloud.google.com/compute/docs/instances/startup-scripts/linux)
938
1112
  # to be run on each login node instance. Max 256KB.
1113
+ # The script must complete within the system-defined default timeout of 5
1114
+ # minutes. For tasks that require more time, consider running them in the
1115
+ # background using methods such as `&` or `nohup`.
939
1116
  # @!attribute [rw] enable_os_login
940
1117
  # @return [::Boolean]
941
1118
  # Optional. Whether [OS Login](https://cloud.google.com/compute/docs/oslogin)
@@ -961,6 +1138,10 @@ module Google
961
1138
  # @!attribute [rw] boot_disk
962
1139
  # @return [::Google::Cloud::HypercomputeCluster::V1beta::BootDisk]
963
1140
  # Optional. Boot disk for the login node.
1141
+ # @!attribute [rw] network_tags
1142
+ # @return [::Array<::String>]
1143
+ # Optional. Network tags to be applied to each login node instance.
1144
+ # A maximum of 64 network tags are allowed.
964
1145
  class SlurmLoginNodes
965
1146
  include ::Google::Protobuf::MessageExts
966
1147
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -975,13 +1156,26 @@ module Google
975
1156
  end
976
1157
  end
977
1158
 
1159
+ # Service account email and scopes
1160
+ # @!attribute [rw] email
1161
+ # @return [::String]
1162
+ # Optional. Service account email
1163
+ # @!attribute [rw] scopes
1164
+ # @return [::Array<::String>]
1165
+ # Optional. Service account scopes
1166
+ class ServiceAccount
1167
+ include ::Google::Protobuf::MessageExts
1168
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1169
+ end
1170
+
978
1171
  # Description of how a [storage
979
1172
  # resource][google.cloud.hypercomputecluster.v1beta.StorageResource] should be
980
1173
  # mounted on a VM instance.
981
1174
  # @!attribute [rw] id
982
1175
  # @return [::String]
983
1176
  # Required. ID of the storage resource to mount, which must match a key in
984
- # the cluster's [storage_resources](Cluster.storage_resources).
1177
+ # the cluster's
1178
+ # {::Google::Cloud::HypercomputeCluster::V1beta::Cluster#storage_resources storage_resources}.
985
1179
  # @!attribute [rw] local_mount
986
1180
  # @return [::String]
987
1181
  # Required. A directory inside the VM instance's file system where the
@@ -1001,6 +1195,388 @@ module Google
1001
1195
  include ::Google::Protobuf::MessageExts
1002
1196
  extend ::Google::Protobuf::MessageExts::ClassMethods
1003
1197
  end
1198
+
1199
+ # A resource representing a compute node managed by Cluster Director.
1200
+ # @!attribute [rw] name
1201
+ # @return [::String]
1202
+ # Identifier. [Relative resource name](https://google.aip.dev/122) of the
1203
+ # node, in the format
1204
+ # `projects/{project}/locations/{location}/clusters/{cluster}/nodes/{node}`.
1205
+ # @!attribute [r] zone
1206
+ # @return [::String]
1207
+ # Output only. Name of the zone in which the node is running, e.g.
1208
+ # `us-central1-a`.
1209
+ # @!attribute [r] state
1210
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::Node::State]
1211
+ # Output only. High-level lifecycle state of the node.
1212
+ # @!attribute [r] state_message
1213
+ # @return [::String]
1214
+ # Output only. Human-readable message providing extra information about the
1215
+ # current state.
1216
+ # @!attribute [r] running_jobs
1217
+ # @return [::Boolean]
1218
+ # Output only. Indicates whether the node is currently executing workloads.
1219
+ # @!attribute [r] accepting_jobs
1220
+ # @return [::Boolean]
1221
+ # Output only. Indicates whether the node is available for new job
1222
+ # allocations.
1223
+ # @!attribute [r] provisioning_model
1224
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::Node::ProvisioningModel]
1225
+ # Output only. Provisioning model of the node.
1226
+ # @!attribute [r] slurm_details
1227
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::SlurmNodeDetails]
1228
+ # Output only. Slurm-specific details for the node.
1229
+ # @!attribute [r] compute_engine_details
1230
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::ComputeEngineNodeDetails]
1231
+ # Output only. Compute Engine-specific details for the node.
1232
+ # @!attribute [r] create_time
1233
+ # @return [::Google::Protobuf::Timestamp]
1234
+ # Output only. Time that the node was originally created.
1235
+ # @!attribute [r] update_time
1236
+ # @return [::Google::Protobuf::Timestamp]
1237
+ # Output only. Time that the node was most recently updated.
1238
+ class Node
1239
+ include ::Google::Protobuf::MessageExts
1240
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1241
+
1242
+ # High-level lifecycle state of the node.
1243
+ module State
1244
+ # Not set.
1245
+ STATE_UNSPECIFIED = 0
1246
+
1247
+ # The node is being provisioned at the infrastructure layer or
1248
+ # initialized by the orchestrator.
1249
+ CREATING = 1
1250
+
1251
+ # The node is healthy and operational.
1252
+ ACTIVE = 2
1253
+
1254
+ # The node is transitioning to a stopped or suspended state.
1255
+ SUSPENDING = 3
1256
+
1257
+ # The node is suspended or stopped and not consuming compute resources.
1258
+ SUSPENDED = 4
1259
+
1260
+ # The node is undergoing maintenance or automatic recovery.
1261
+ REPAIRING = 5
1262
+
1263
+ # The node is in an unhealthy or terminal error state.
1264
+ FAILED = 6
1265
+
1266
+ # The node is being deleted.
1267
+ DELETING = 7
1268
+
1269
+ # The node has no VM assigned to it.
1270
+ UNPROVISIONED = 8
1271
+ end
1272
+
1273
+ # Provisioning model of the node.
1274
+ module ProvisioningModel
1275
+ # Not set.
1276
+ PROVISIONING_MODEL_UNSPECIFIED = 0
1277
+
1278
+ # The node is provisioned on demand. User controlled runtime, no discounts.
1279
+ ON_DEMAND = 1
1280
+
1281
+ # The node is provisioned as a spot VM. Heavily discounted, no guaranteed
1282
+ # runtime.
1283
+ SPOT = 2
1284
+
1285
+ # The node is provisioned as a reservation-bound VM. Bound to the lifecycle
1286
+ # of the reservation in which it is provisioned.
1287
+ RESERVATION_BOUND = 3
1288
+
1289
+ # The node is provisioned as a flex-start VM. Has a limited runtime.
1290
+ FLEX_START = 4
1291
+ end
1292
+ end
1293
+
1294
+ # Slurm-specific details for a Node.
1295
+ # @!attribute [r] states
1296
+ # @return [::Array<::String>]
1297
+ # Output only. Raw state flags directly from Slurm.
1298
+ # @!attribute [r] reason
1299
+ # @return [::String]
1300
+ # Output only. User-readable reason for the current state.
1301
+ # @!attribute [r] partitions
1302
+ # @return [::Array<::String>]
1303
+ # Output only. Slurm partitions this node belongs to.
1304
+ # @!attribute [r] nodeset
1305
+ # @return [::String]
1306
+ # Output only. The ID of the nodeset this node belongs to.
1307
+ # @!attribute [r] comment
1308
+ # @return [::String]
1309
+ # Output only. System comments from Slurm.
1310
+ class SlurmNodeDetails
1311
+ include ::Google::Protobuf::MessageExts
1312
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1313
+ end
1314
+
1315
+ # Compute Engine-specific details for a Node.
1316
+ # @!attribute [r] instance
1317
+ # @return [::String]
1318
+ # Output only. [Relative resource name](https://google.aip.dev/122) of the VM
1319
+ # instance, in the format
1320
+ # `projects/{project}/zones/{zone}/instances/{instance}`.
1321
+ # @!attribute [r] machine_type
1322
+ # @return [::String]
1323
+ # Output only. Name of the Compute Engine [machine
1324
+ # type](https://cloud.google.com/compute/docs/machine-resource) to use, e.g.
1325
+ # `n2-standard-2`.
1326
+ # @!attribute [r] state
1327
+ # @return [::String]
1328
+ # Output only. The Compute Engine VM [instance lifecycle
1329
+ # state](https://cloud.google.com/compute/docs/instances/instance-lifecycle).
1330
+ # @!attribute [r] instance_group_manager
1331
+ # @return [::String]
1332
+ # Output only. [Relative resource name](https://google.aip.dev/122) of the
1333
+ # managed instance group, in the format
1334
+ # `projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}`.
1335
+ # or
1336
+ # `projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}`
1337
+ class ComputeEngineNodeDetails
1338
+ include ::Google::Protobuf::MessageExts
1339
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1340
+ end
1341
+
1342
+ # When set in
1343
+ # {::Google::Cloud::HypercomputeCluster::V1beta::Orchestrator Orchestrator},
1344
+ # indicates that the cluster should create nodes using Compute Engine.
1345
+ # @!attribute [rw] managed_instance_groups
1346
+ # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::HypercomputeCluster::V1beta::ManagedInstanceGroup}]
1347
+ # Optional. Managed instance groups that should be created by the
1348
+ # orchestrator. Keys must conform to
1349
+ # [RFC-1034](https://datatracker.ietf.org/doc/html/rfc1034) (lower-case,
1350
+ # alphanumeric, and at most 63 characters).
1351
+ # @!attribute [rw] existing_instances
1352
+ # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::HypercomputeCluster::V1beta::ExistingInstances}]
1353
+ # Optional. Existing instances that will be governed by the orchestrator.
1354
+ # Keys must conform to
1355
+ # [RFC-1034](https://datatracker.ietf.org/doc/html/rfc1034) (lower-case,
1356
+ # alphanumeric, and at most 63 characters).
1357
+ class ComputeEngineOrchestrator
1358
+ include ::Google::Protobuf::MessageExts
1359
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1360
+
1361
+ # @!attribute [rw] key
1362
+ # @return [::String]
1363
+ # @!attribute [rw] value
1364
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::ManagedInstanceGroup]
1365
+ class ManagedInstanceGroupsEntry
1366
+ include ::Google::Protobuf::MessageExts
1367
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1368
+ end
1369
+
1370
+ # @!attribute [rw] key
1371
+ # @return [::String]
1372
+ # @!attribute [rw] value
1373
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::ExistingInstances]
1374
+ class ExistingInstancesEntry
1375
+ include ::Google::Protobuf::MessageExts
1376
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1377
+ end
1378
+ end
1379
+
1380
+ # A managed instance group based on a compute resource.
1381
+ # @!attribute [r] instance_group_manager
1382
+ # @return [::String]
1383
+ # Output only. Name of the managed instance group, in the format
1384
+ # `projects/{project}/zones/{zone}/instanceGroupManagers/{instance_group_manager}`.
1385
+ # or
1386
+ # `projects/{project}/regions/{region}/instanceGroupManagers/{instance_group_manager}`
1387
+ # @!attribute [rw] compute_id
1388
+ # @return [::String]
1389
+ # Required. ID of the compute resource used to create this managed instance
1390
+ # group.
1391
+ # @!attribute [rw] target_size
1392
+ # @return [::Integer]
1393
+ # Optional. Target number of running instances for this managed instance
1394
+ # group.
1395
+ # @!attribute [rw] storage_configs
1396
+ # @return [::Array<::Google::Cloud::HypercomputeCluster::V1beta::StorageConfig>]
1397
+ # Optional. How [storage
1398
+ # resources][google.cloud.hypercomputecluster.v1beta.StorageResource] should
1399
+ # be mounted on each instance in this managed instance group.
1400
+ # @!attribute [r] instance_template
1401
+ # @return [::String]
1402
+ # Output only. Instance template used to create instances in this group.
1403
+ # @!attribute [rw] resource_policy_config
1404
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::ResourcePolicyConfig]
1405
+ # Optional. Resource policy configuration for this managed instance group.
1406
+ # @!attribute [rw] boot_disk
1407
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::BootDisk]
1408
+ # Optional. Boot disk for the managed instance group.
1409
+ # @!attribute [rw] additional_disks
1410
+ # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::HypercomputeCluster::V1beta::Disk}]
1411
+ # Optional. Additional disks for the managed instance group. Each VM of the
1412
+ # MIG will have its own clone of each disk described in the additional_disks
1413
+ # map. The disks themselves live as long as the MIG and if a VM is replaced
1414
+ # by a new VM of the same name then the replacement VM attaches to the same
1415
+ # disks as the VM it replaced. Each disk has a custom device name matching
1416
+ # the key in the map.
1417
+ # @!attribute [rw] startup_script
1418
+ # @return [::String]
1419
+ # Optional. Startup script to be run on each VM instance in the nodeset.
1420
+ # @!attribute [rw] enable_public_ips
1421
+ # @return [::Boolean]
1422
+ # Optional. Whether to enable public IPs for the instances in the managed
1423
+ # instance group.
1424
+ # @!attribute [rw] enable_os_login
1425
+ # @return [::Boolean]
1426
+ # Optional. Whether [OS Login](https://cloud.google.com/compute/docs/oslogin)
1427
+ # should be enabled on instances in this managed instance group.
1428
+ # @!attribute [rw] startup_script_timeout
1429
+ # @return [::Google::Protobuf::Duration]
1430
+ # Optional. The maximum time to wait for the startup script to complete. If
1431
+ # the script exceeds this duration, the instance setup will be considered
1432
+ # failed. This value must be positive. If this value is unset, a default
1433
+ # timeout of 5 minutes (300 seconds) will be used by the system.
1434
+ # @!attribute [rw] metadata
1435
+ # @return [::Google::Protobuf::Map{::String => ::String}]
1436
+ # Optional. Custom
1437
+ # [metadata](https://cloud.google.com/compute/docs/metadata/overview)
1438
+ # key-value pairs to be applied to each VM instance in the managed instance
1439
+ # group.
1440
+ # @!attribute [rw] service_account
1441
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::ServiceAccount]
1442
+ # Required. Immutable. Service account to be used by the instances in the
1443
+ # managed instance group.
1444
+ # @!attribute [rw] labels
1445
+ # @return [::Google::Protobuf::Map{::String => ::String}]
1446
+ # Optional.
1447
+ # [Labels](https://cloud.google.com/compute/docs/labeling-resources) that
1448
+ # should be applied to each VM instance in the managed instance group.
1449
+ class ManagedInstanceGroup
1450
+ include ::Google::Protobuf::MessageExts
1451
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1452
+
1453
+ # @!attribute [rw] key
1454
+ # @return [::String]
1455
+ # @!attribute [rw] value
1456
+ # @return [::Google::Cloud::HypercomputeCluster::V1beta::Disk]
1457
+ class AdditionalDisksEntry
1458
+ include ::Google::Protobuf::MessageExts
1459
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1460
+ end
1461
+
1462
+ # @!attribute [rw] key
1463
+ # @return [::String]
1464
+ # @!attribute [rw] value
1465
+ # @return [::String]
1466
+ class MetadataEntry
1467
+ include ::Google::Protobuf::MessageExts
1468
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1469
+ end
1470
+
1471
+ # @!attribute [rw] key
1472
+ # @return [::String]
1473
+ # @!attribute [rw] value
1474
+ # @return [::String]
1475
+ class LabelsEntry
1476
+ include ::Google::Protobuf::MessageExts
1477
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1478
+ end
1479
+ end
1480
+
1481
+ # Additional disk for managed instance groups.
1482
+ # @!attribute [rw] image
1483
+ # @return [::String]
1484
+ # Optional. Source image for the disk.
1485
+ #
1486
+ # Note: The following fields are mutually exclusive: `image`, `snapshot`, `existing_disk`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1487
+ # @!attribute [rw] snapshot
1488
+ # @return [::String]
1489
+ # Optional. Source snapshot for the disk.
1490
+ #
1491
+ # Note: The following fields are mutually exclusive: `snapshot`, `image`, `existing_disk`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1492
+ # @!attribute [rw] existing_disk
1493
+ # @return [::String]
1494
+ # Optional. An existing persistent disk to attach read-only to all VMs in
1495
+ # the managed instance group, in the format
1496
+ # `projects/{project}/zones/{zone}/disks/{disk}`.
1497
+ #
1498
+ # Note: The following fields are mutually exclusive: `existing_disk`, `image`, `snapshot`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1499
+ # @!attribute [rw] type
1500
+ # @return [::String]
1501
+ # Optional. [Persistent disk
1502
+ # type](https://cloud.google.com/compute/docs/disks#disk-types), in the
1503
+ # format `projects/{project}/zones/{zone}/diskTypes/{disk_type}`.
1504
+ # This field is required when creating a new disk.
1505
+ # @!attribute [rw] size_gb
1506
+ # @return [::Integer]
1507
+ # Optional. Size of the disk in GB.
1508
+ # This field is required when creating a new disk.
1509
+ class Disk
1510
+ include ::Google::Protobuf::MessageExts
1511
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1512
+ end
1513
+
1514
+ # ExistingInstances defines a list of existing VM instances to include in
1515
+ # the cluster.
1516
+ # @!attribute [rw] project
1517
+ # @return [::String]
1518
+ # Optional. Immutable. Project containing the instances, in the format
1519
+ # `projects/{project}`.
1520
+ #
1521
+ # Note: The following fields are mutually exclusive: `project`, `instance_group_manager`, `region_instance_group_manager`, `reservation`, `reservation_block`, `reservation_sub_block`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1522
+ # @!attribute [rw] instance_group_manager
1523
+ # @return [::String]
1524
+ # Optional. Immutable. Managed instance group containing the instances, in
1525
+ # the format
1526
+ # `projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}`.
1527
+ #
1528
+ # Note: The following fields are mutually exclusive: `instance_group_manager`, `project`, `region_instance_group_manager`, `reservation`, `reservation_block`, `reservation_sub_block`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1529
+ # @!attribute [rw] region_instance_group_manager
1530
+ # @return [::String]
1531
+ # Optional. Immutable. Regional managed instance group containing the
1532
+ # instances, in the format
1533
+ # `projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}`.
1534
+ #
1535
+ # Note: The following fields are mutually exclusive: `region_instance_group_manager`, `project`, `instance_group_manager`, `reservation`, `reservation_block`, `reservation_sub_block`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1536
+ # @!attribute [rw] reservation
1537
+ # @return [::String]
1538
+ # Optional. Immutable. Reservation containing the instances, in the format
1539
+ # `projects/{project}/zones/{zone}/reservations/{reservation}`.
1540
+ #
1541
+ # Note: The following fields are mutually exclusive: `reservation`, `project`, `instance_group_manager`, `region_instance_group_manager`, `reservation_block`, `reservation_sub_block`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1542
+ # @!attribute [rw] reservation_block
1543
+ # @return [::String]
1544
+ # Optional. Immutable. Reservation block containing the instances, in the
1545
+ # format
1546
+ # `projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks/{reservationBlock}`.
1547
+ #
1548
+ # Note: The following fields are mutually exclusive: `reservation_block`, `project`, `instance_group_manager`, `region_instance_group_manager`, `reservation`, `reservation_sub_block`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1549
+ # @!attribute [rw] reservation_sub_block
1550
+ # @return [::String]
1551
+ # Optional. Immutable. Reservation sub block containing the instances, in
1552
+ # the format
1553
+ # `projects/{project}/zones/{zone}/reservations/{reservation}/reservationBlocks/{reservationBlock}/reservationSubBlocks/{reservationSubBlock}`.
1554
+ #
1555
+ # Note: The following fields are mutually exclusive: `reservation_sub_block`, `project`, `instance_group_manager`, `region_instance_group_manager`, `reservation`, `reservation_block`. If a field in that set is populated, all other fields in the set will automatically be cleared.
1556
+ # @!attribute [rw] labels
1557
+ # @return [::Google::Protobuf::Map{::String => ::String}]
1558
+ # Optional. Immutable. Labels specifying the instances to include. Instances
1559
+ # from the source will be included only if they contain each of these labels.
1560
+ # If no labels are specified, all instances from the source will be included.
1561
+ # Example: \\{"env": "prod", "app": "worker"}
1562
+ # @!attribute [r] networks
1563
+ # @return [::Array<::Google::Cloud::HypercomputeCluster::V1beta::NetworkReference>]
1564
+ # Output only. Networks stores the list of [VPC
1565
+ # networks](https://cloud.google.com/vpc/docs/vpc) attached to these existing
1566
+ # instances, discovered during the cluster creation and update.
1567
+ class ExistingInstances
1568
+ include ::Google::Protobuf::MessageExts
1569
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1570
+
1571
+ # @!attribute [rw] key
1572
+ # @return [::String]
1573
+ # @!attribute [rw] value
1574
+ # @return [::String]
1575
+ class LabelsEntry
1576
+ include ::Google::Protobuf::MessageExts
1577
+ extend ::Google::Protobuf::MessageExts::ClassMethods
1578
+ end
1579
+ end
1004
1580
  end
1005
1581
  end
1006
1582
  end