aws_sdk_sagemaker/operation/create_cluster/
_create_cluster_input.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
5pub struct CreateClusterInput {
6    /// <p>The name for the new SageMaker HyperPod cluster.</p>
7    pub cluster_name: ::std::option::Option<::std::string::String>,
8    /// <p>The instance groups to be created in the SageMaker HyperPod cluster.</p>
9    pub instance_groups: ::std::option::Option<::std::vec::Vec<crate::types::ClusterInstanceGroupSpecification>>,
10    /// <p>The specialized instance groups for training models like Amazon Nova to be created in the SageMaker HyperPod cluster.</p>
11    pub restricted_instance_groups: ::std::option::Option<::std::vec::Vec<crate::types::ClusterRestrictedInstanceGroupSpecification>>,
12    /// <p>Specifies the Amazon Virtual Private Cloud (VPC) that is associated with the Amazon SageMaker HyperPod cluster. You can control access to and from your resources by configuring your VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html">Give SageMaker access to resources in your Amazon VPC</a>.</p><note>
13    /// <p>When your Amazon VPC and subnets support IPv6, network communications differ based on the cluster orchestration platform:</p>
14    /// <ul>
15    /// <li>
16    /// <p>Slurm-orchestrated clusters automatically configure nodes with dual IPv6 and IPv4 addresses, allowing immediate IPv6 network communications.</p></li>
17    /// <li>
18    /// <p>In Amazon EKS-orchestrated clusters, nodes receive dual-stack addressing, but pods can only use IPv6 when the Amazon EKS cluster is explicitly IPv6-enabled. For information about deploying an IPv6 Amazon EKS cluster, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/deploy-ipv6-cluster.html#_deploy_an_ipv6_cluster_with_eksctl">Amazon EKS IPv6 Cluster Deployment</a>.</p></li>
19    /// </ul>
20    /// <p>Additional resources for IPv6 configuration:</p>
21    /// <ul>
22    /// <li>
23    /// <p>For information about adding IPv6 support to your VPC, see to <a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html">IPv6 Support for VPC</a>.</p></li>
24    /// <li>
25    /// <p>For information about creating a new IPv6-compatible VPC, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html">Amazon VPC Creation Guide</a>.</p></li>
26    /// <li>
27    /// <p>To configure SageMaker HyperPod with a custom Amazon VPC, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-prerequisites.html#sagemaker-hyperpod-prerequisites-optional-vpc">Custom Amazon VPC Setup for SageMaker HyperPod</a>.</p></li>
28    /// </ul>
29    /// </note>
30    pub vpc_config: ::std::option::Option<crate::types::VpcConfig>,
31    /// <p>Custom tags for managing the SageMaker HyperPod cluster as an Amazon Web Services resource. You can add tags to your cluster in the same way you add them in other Amazon Web Services services that support tagging. To learn more about tagging Amazon Web Services resources in general, see <a href="https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html">Tagging Amazon Web Services Resources User Guide</a>.</p>
32    pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
33    /// <p>The type of orchestrator to use for the SageMaker HyperPod cluster. Currently, the only supported value is <code>"eks"</code>, which is to use an Amazon Elastic Kubernetes Service (EKS) cluster as the orchestrator.</p>
34    pub orchestrator: ::std::option::Option<crate::types::ClusterOrchestrator>,
35    /// <p>The node recovery mode for the SageMaker HyperPod cluster. When set to <code>Automatic</code>, SageMaker HyperPod will automatically reboot or replace faulty nodes when issues are detected. When set to <code>None</code>, cluster administrators will need to manually manage any faulty cluster instances.</p>
36    pub node_recovery: ::std::option::Option<crate::types::ClusterNodeRecovery>,
37}
38impl CreateClusterInput {
39    /// <p>The name for the new SageMaker HyperPod cluster.</p>
40    pub fn cluster_name(&self) -> ::std::option::Option<&str> {
41        self.cluster_name.as_deref()
42    }
43    /// <p>The instance groups to be created in the SageMaker HyperPod cluster.</p>
44    ///
45    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.instance_groups.is_none()`.
46    pub fn instance_groups(&self) -> &[crate::types::ClusterInstanceGroupSpecification] {
47        self.instance_groups.as_deref().unwrap_or_default()
48    }
49    /// <p>The specialized instance groups for training models like Amazon Nova to be created in the SageMaker HyperPod cluster.</p>
50    ///
51    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.restricted_instance_groups.is_none()`.
52    pub fn restricted_instance_groups(&self) -> &[crate::types::ClusterRestrictedInstanceGroupSpecification] {
53        self.restricted_instance_groups.as_deref().unwrap_or_default()
54    }
55    /// <p>Specifies the Amazon Virtual Private Cloud (VPC) that is associated with the Amazon SageMaker HyperPod cluster. You can control access to and from your resources by configuring your VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html">Give SageMaker access to resources in your Amazon VPC</a>.</p><note>
56    /// <p>When your Amazon VPC and subnets support IPv6, network communications differ based on the cluster orchestration platform:</p>
57    /// <ul>
58    /// <li>
59    /// <p>Slurm-orchestrated clusters automatically configure nodes with dual IPv6 and IPv4 addresses, allowing immediate IPv6 network communications.</p></li>
60    /// <li>
61    /// <p>In Amazon EKS-orchestrated clusters, nodes receive dual-stack addressing, but pods can only use IPv6 when the Amazon EKS cluster is explicitly IPv6-enabled. For information about deploying an IPv6 Amazon EKS cluster, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/deploy-ipv6-cluster.html#_deploy_an_ipv6_cluster_with_eksctl">Amazon EKS IPv6 Cluster Deployment</a>.</p></li>
62    /// </ul>
63    /// <p>Additional resources for IPv6 configuration:</p>
64    /// <ul>
65    /// <li>
66    /// <p>For information about adding IPv6 support to your VPC, see to <a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html">IPv6 Support for VPC</a>.</p></li>
67    /// <li>
68    /// <p>For information about creating a new IPv6-compatible VPC, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html">Amazon VPC Creation Guide</a>.</p></li>
69    /// <li>
70    /// <p>To configure SageMaker HyperPod with a custom Amazon VPC, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-prerequisites.html#sagemaker-hyperpod-prerequisites-optional-vpc">Custom Amazon VPC Setup for SageMaker HyperPod</a>.</p></li>
71    /// </ul>
72    /// </note>
73    pub fn vpc_config(&self) -> ::std::option::Option<&crate::types::VpcConfig> {
74        self.vpc_config.as_ref()
75    }
76    /// <p>Custom tags for managing the SageMaker HyperPod cluster as an Amazon Web Services resource. You can add tags to your cluster in the same way you add them in other Amazon Web Services services that support tagging. To learn more about tagging Amazon Web Services resources in general, see <a href="https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html">Tagging Amazon Web Services Resources User Guide</a>.</p>
77    ///
78    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tags.is_none()`.
79    pub fn tags(&self) -> &[crate::types::Tag] {
80        self.tags.as_deref().unwrap_or_default()
81    }
82    /// <p>The type of orchestrator to use for the SageMaker HyperPod cluster. Currently, the only supported value is <code>"eks"</code>, which is to use an Amazon Elastic Kubernetes Service (EKS) cluster as the orchestrator.</p>
83    pub fn orchestrator(&self) -> ::std::option::Option<&crate::types::ClusterOrchestrator> {
84        self.orchestrator.as_ref()
85    }
86    /// <p>The node recovery mode for the SageMaker HyperPod cluster. When set to <code>Automatic</code>, SageMaker HyperPod will automatically reboot or replace faulty nodes when issues are detected. When set to <code>None</code>, cluster administrators will need to manually manage any faulty cluster instances.</p>
87    pub fn node_recovery(&self) -> ::std::option::Option<&crate::types::ClusterNodeRecovery> {
88        self.node_recovery.as_ref()
89    }
90}
91impl CreateClusterInput {
92    /// Creates a new builder-style object to manufacture [`CreateClusterInput`](crate::operation::create_cluster::CreateClusterInput).
93    pub fn builder() -> crate::operation::create_cluster::builders::CreateClusterInputBuilder {
94        crate::operation::create_cluster::builders::CreateClusterInputBuilder::default()
95    }
96}
97
98/// A builder for [`CreateClusterInput`](crate::operation::create_cluster::CreateClusterInput).
99#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
100#[non_exhaustive]
101pub struct CreateClusterInputBuilder {
102    pub(crate) cluster_name: ::std::option::Option<::std::string::String>,
103    pub(crate) instance_groups: ::std::option::Option<::std::vec::Vec<crate::types::ClusterInstanceGroupSpecification>>,
104    pub(crate) restricted_instance_groups: ::std::option::Option<::std::vec::Vec<crate::types::ClusterRestrictedInstanceGroupSpecification>>,
105    pub(crate) vpc_config: ::std::option::Option<crate::types::VpcConfig>,
106    pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
107    pub(crate) orchestrator: ::std::option::Option<crate::types::ClusterOrchestrator>,
108    pub(crate) node_recovery: ::std::option::Option<crate::types::ClusterNodeRecovery>,
109}
110impl CreateClusterInputBuilder {
111    /// <p>The name for the new SageMaker HyperPod cluster.</p>
112    /// This field is required.
113    pub fn cluster_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
114        self.cluster_name = ::std::option::Option::Some(input.into());
115        self
116    }
117    /// <p>The name for the new SageMaker HyperPod cluster.</p>
118    pub fn set_cluster_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
119        self.cluster_name = input;
120        self
121    }
122    /// <p>The name for the new SageMaker HyperPod cluster.</p>
123    pub fn get_cluster_name(&self) -> &::std::option::Option<::std::string::String> {
124        &self.cluster_name
125    }
126    /// Appends an item to `instance_groups`.
127    ///
128    /// To override the contents of this collection use [`set_instance_groups`](Self::set_instance_groups).
129    ///
130    /// <p>The instance groups to be created in the SageMaker HyperPod cluster.</p>
131    pub fn instance_groups(mut self, input: crate::types::ClusterInstanceGroupSpecification) -> Self {
132        let mut v = self.instance_groups.unwrap_or_default();
133        v.push(input);
134        self.instance_groups = ::std::option::Option::Some(v);
135        self
136    }
137    /// <p>The instance groups to be created in the SageMaker HyperPod cluster.</p>
138    pub fn set_instance_groups(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ClusterInstanceGroupSpecification>>) -> Self {
139        self.instance_groups = input;
140        self
141    }
142    /// <p>The instance groups to be created in the SageMaker HyperPod cluster.</p>
143    pub fn get_instance_groups(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ClusterInstanceGroupSpecification>> {
144        &self.instance_groups
145    }
146    /// Appends an item to `restricted_instance_groups`.
147    ///
148    /// To override the contents of this collection use [`set_restricted_instance_groups`](Self::set_restricted_instance_groups).
149    ///
150    /// <p>The specialized instance groups for training models like Amazon Nova to be created in the SageMaker HyperPod cluster.</p>
151    pub fn restricted_instance_groups(mut self, input: crate::types::ClusterRestrictedInstanceGroupSpecification) -> Self {
152        let mut v = self.restricted_instance_groups.unwrap_or_default();
153        v.push(input);
154        self.restricted_instance_groups = ::std::option::Option::Some(v);
155        self
156    }
157    /// <p>The specialized instance groups for training models like Amazon Nova to be created in the SageMaker HyperPod cluster.</p>
158    pub fn set_restricted_instance_groups(
159        mut self,
160        input: ::std::option::Option<::std::vec::Vec<crate::types::ClusterRestrictedInstanceGroupSpecification>>,
161    ) -> Self {
162        self.restricted_instance_groups = input;
163        self
164    }
165    /// <p>The specialized instance groups for training models like Amazon Nova to be created in the SageMaker HyperPod cluster.</p>
166    pub fn get_restricted_instance_groups(
167        &self,
168    ) -> &::std::option::Option<::std::vec::Vec<crate::types::ClusterRestrictedInstanceGroupSpecification>> {
169        &self.restricted_instance_groups
170    }
171    /// <p>Specifies the Amazon Virtual Private Cloud (VPC) that is associated with the Amazon SageMaker HyperPod cluster. You can control access to and from your resources by configuring your VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html">Give SageMaker access to resources in your Amazon VPC</a>.</p><note>
172    /// <p>When your Amazon VPC and subnets support IPv6, network communications differ based on the cluster orchestration platform:</p>
173    /// <ul>
174    /// <li>
175    /// <p>Slurm-orchestrated clusters automatically configure nodes with dual IPv6 and IPv4 addresses, allowing immediate IPv6 network communications.</p></li>
176    /// <li>
177    /// <p>In Amazon EKS-orchestrated clusters, nodes receive dual-stack addressing, but pods can only use IPv6 when the Amazon EKS cluster is explicitly IPv6-enabled. For information about deploying an IPv6 Amazon EKS cluster, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/deploy-ipv6-cluster.html#_deploy_an_ipv6_cluster_with_eksctl">Amazon EKS IPv6 Cluster Deployment</a>.</p></li>
178    /// </ul>
179    /// <p>Additional resources for IPv6 configuration:</p>
180    /// <ul>
181    /// <li>
182    /// <p>For information about adding IPv6 support to your VPC, see to <a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html">IPv6 Support for VPC</a>.</p></li>
183    /// <li>
184    /// <p>For information about creating a new IPv6-compatible VPC, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html">Amazon VPC Creation Guide</a>.</p></li>
185    /// <li>
186    /// <p>To configure SageMaker HyperPod with a custom Amazon VPC, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-prerequisites.html#sagemaker-hyperpod-prerequisites-optional-vpc">Custom Amazon VPC Setup for SageMaker HyperPod</a>.</p></li>
187    /// </ul>
188    /// </note>
189    pub fn vpc_config(mut self, input: crate::types::VpcConfig) -> Self {
190        self.vpc_config = ::std::option::Option::Some(input);
191        self
192    }
193    /// <p>Specifies the Amazon Virtual Private Cloud (VPC) that is associated with the Amazon SageMaker HyperPod cluster. You can control access to and from your resources by configuring your VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html">Give SageMaker access to resources in your Amazon VPC</a>.</p><note>
194    /// <p>When your Amazon VPC and subnets support IPv6, network communications differ based on the cluster orchestration platform:</p>
195    /// <ul>
196    /// <li>
197    /// <p>Slurm-orchestrated clusters automatically configure nodes with dual IPv6 and IPv4 addresses, allowing immediate IPv6 network communications.</p></li>
198    /// <li>
199    /// <p>In Amazon EKS-orchestrated clusters, nodes receive dual-stack addressing, but pods can only use IPv6 when the Amazon EKS cluster is explicitly IPv6-enabled. For information about deploying an IPv6 Amazon EKS cluster, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/deploy-ipv6-cluster.html#_deploy_an_ipv6_cluster_with_eksctl">Amazon EKS IPv6 Cluster Deployment</a>.</p></li>
200    /// </ul>
201    /// <p>Additional resources for IPv6 configuration:</p>
202    /// <ul>
203    /// <li>
204    /// <p>For information about adding IPv6 support to your VPC, see to <a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html">IPv6 Support for VPC</a>.</p></li>
205    /// <li>
206    /// <p>For information about creating a new IPv6-compatible VPC, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html">Amazon VPC Creation Guide</a>.</p></li>
207    /// <li>
208    /// <p>To configure SageMaker HyperPod with a custom Amazon VPC, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-prerequisites.html#sagemaker-hyperpod-prerequisites-optional-vpc">Custom Amazon VPC Setup for SageMaker HyperPod</a>.</p></li>
209    /// </ul>
210    /// </note>
211    pub fn set_vpc_config(mut self, input: ::std::option::Option<crate::types::VpcConfig>) -> Self {
212        self.vpc_config = input;
213        self
214    }
215    /// <p>Specifies the Amazon Virtual Private Cloud (VPC) that is associated with the Amazon SageMaker HyperPod cluster. You can control access to and from your resources by configuring your VPC. For more information, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/infrastructure-give-access.html">Give SageMaker access to resources in your Amazon VPC</a>.</p><note>
216    /// <p>When your Amazon VPC and subnets support IPv6, network communications differ based on the cluster orchestration platform:</p>
217    /// <ul>
218    /// <li>
219    /// <p>Slurm-orchestrated clusters automatically configure nodes with dual IPv6 and IPv4 addresses, allowing immediate IPv6 network communications.</p></li>
220    /// <li>
221    /// <p>In Amazon EKS-orchestrated clusters, nodes receive dual-stack addressing, but pods can only use IPv6 when the Amazon EKS cluster is explicitly IPv6-enabled. For information about deploying an IPv6 Amazon EKS cluster, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/deploy-ipv6-cluster.html#_deploy_an_ipv6_cluster_with_eksctl">Amazon EKS IPv6 Cluster Deployment</a>.</p></li>
222    /// </ul>
223    /// <p>Additional resources for IPv6 configuration:</p>
224    /// <ul>
225    /// <li>
226    /// <p>For information about adding IPv6 support to your VPC, see to <a href="https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html">IPv6 Support for VPC</a>.</p></li>
227    /// <li>
228    /// <p>For information about creating a new IPv6-compatible VPC, see <a href="https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html">Amazon VPC Creation Guide</a>.</p></li>
229    /// <li>
230    /// <p>To configure SageMaker HyperPod with a custom Amazon VPC, see <a href="https://docs.aws.amazon.com/sagemaker/latest/dg/sagemaker-hyperpod-prerequisites.html#sagemaker-hyperpod-prerequisites-optional-vpc">Custom Amazon VPC Setup for SageMaker HyperPod</a>.</p></li>
231    /// </ul>
232    /// </note>
233    pub fn get_vpc_config(&self) -> &::std::option::Option<crate::types::VpcConfig> {
234        &self.vpc_config
235    }
236    /// Appends an item to `tags`.
237    ///
238    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
239    ///
240    /// <p>Custom tags for managing the SageMaker HyperPod cluster as an Amazon Web Services resource. You can add tags to your cluster in the same way you add them in other Amazon Web Services services that support tagging. To learn more about tagging Amazon Web Services resources in general, see <a href="https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html">Tagging Amazon Web Services Resources User Guide</a>.</p>
241    pub fn tags(mut self, input: crate::types::Tag) -> Self {
242        let mut v = self.tags.unwrap_or_default();
243        v.push(input);
244        self.tags = ::std::option::Option::Some(v);
245        self
246    }
247    /// <p>Custom tags for managing the SageMaker HyperPod cluster as an Amazon Web Services resource. You can add tags to your cluster in the same way you add them in other Amazon Web Services services that support tagging. To learn more about tagging Amazon Web Services resources in general, see <a href="https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html">Tagging Amazon Web Services Resources User Guide</a>.</p>
248    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
249        self.tags = input;
250        self
251    }
252    /// <p>Custom tags for managing the SageMaker HyperPod cluster as an Amazon Web Services resource. You can add tags to your cluster in the same way you add them in other Amazon Web Services services that support tagging. To learn more about tagging Amazon Web Services resources in general, see <a href="https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html">Tagging Amazon Web Services Resources User Guide</a>.</p>
253    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
254        &self.tags
255    }
256    /// <p>The type of orchestrator to use for the SageMaker HyperPod cluster. Currently, the only supported value is <code>"eks"</code>, which is to use an Amazon Elastic Kubernetes Service (EKS) cluster as the orchestrator.</p>
257    pub fn orchestrator(mut self, input: crate::types::ClusterOrchestrator) -> Self {
258        self.orchestrator = ::std::option::Option::Some(input);
259        self
260    }
261    /// <p>The type of orchestrator to use for the SageMaker HyperPod cluster. Currently, the only supported value is <code>"eks"</code>, which is to use an Amazon Elastic Kubernetes Service (EKS) cluster as the orchestrator.</p>
262    pub fn set_orchestrator(mut self, input: ::std::option::Option<crate::types::ClusterOrchestrator>) -> Self {
263        self.orchestrator = input;
264        self
265    }
266    /// <p>The type of orchestrator to use for the SageMaker HyperPod cluster. Currently, the only supported value is <code>"eks"</code>, which is to use an Amazon Elastic Kubernetes Service (EKS) cluster as the orchestrator.</p>
267    pub fn get_orchestrator(&self) -> &::std::option::Option<crate::types::ClusterOrchestrator> {
268        &self.orchestrator
269    }
270    /// <p>The node recovery mode for the SageMaker HyperPod cluster. When set to <code>Automatic</code>, SageMaker HyperPod will automatically reboot or replace faulty nodes when issues are detected. When set to <code>None</code>, cluster administrators will need to manually manage any faulty cluster instances.</p>
271    pub fn node_recovery(mut self, input: crate::types::ClusterNodeRecovery) -> Self {
272        self.node_recovery = ::std::option::Option::Some(input);
273        self
274    }
275    /// <p>The node recovery mode for the SageMaker HyperPod cluster. When set to <code>Automatic</code>, SageMaker HyperPod will automatically reboot or replace faulty nodes when issues are detected. When set to <code>None</code>, cluster administrators will need to manually manage any faulty cluster instances.</p>
276    pub fn set_node_recovery(mut self, input: ::std::option::Option<crate::types::ClusterNodeRecovery>) -> Self {
277        self.node_recovery = input;
278        self
279    }
280    /// <p>The node recovery mode for the SageMaker HyperPod cluster. When set to <code>Automatic</code>, SageMaker HyperPod will automatically reboot or replace faulty nodes when issues are detected. When set to <code>None</code>, cluster administrators will need to manually manage any faulty cluster instances.</p>
281    pub fn get_node_recovery(&self) -> &::std::option::Option<crate::types::ClusterNodeRecovery> {
282        &self.node_recovery
283    }
284    /// Consumes the builder and constructs a [`CreateClusterInput`](crate::operation::create_cluster::CreateClusterInput).
285    pub fn build(
286        self,
287    ) -> ::std::result::Result<crate::operation::create_cluster::CreateClusterInput, ::aws_smithy_types::error::operation::BuildError> {
288        ::std::result::Result::Ok(crate::operation::create_cluster::CreateClusterInput {
289            cluster_name: self.cluster_name,
290            instance_groups: self.instance_groups,
291            restricted_instance_groups: self.restricted_instance_groups,
292            vpc_config: self.vpc_config,
293            tags: self.tags,
294            orchestrator: self.orchestrator,
295            node_recovery: self.node_recovery,
296        })
297    }
298}