aws_sdk_sagemaker/operation/create_app/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_app::_create_app_output::CreateAppOutputBuilder;
3
4pub use crate::operation::create_app::_create_app_input::CreateAppInputBuilder;
5
6impl crate::operation::create_app::builders::CreateAppInputBuilder {
7    /// Sends a request with this input using the given client.
8    pub async fn send_with(
9        self,
10        client: &crate::Client,
11    ) -> ::std::result::Result<
12        crate::operation::create_app::CreateAppOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_app::CreateAppError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_app();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateApp`.
24///
25/// <p>Creates a running app for the specified UserProfile. This operation is automatically invoked by Amazon SageMaker AI upon access to the associated Domain, and when new kernel configurations are selected by the user. A user may have multiple Apps active simultaneously.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct CreateAppFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::create_app::builders::CreateAppInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl crate::client::customize::internal::CustomizableSend<crate::operation::create_app::CreateAppOutput, crate::operation::create_app::CreateAppError>
33    for CreateAppFluentBuilder
34{
35    fn send(
36        self,
37        config_override: crate::config::Builder,
38    ) -> crate::client::customize::internal::BoxFuture<
39        crate::client::customize::internal::SendResult<crate::operation::create_app::CreateAppOutput, crate::operation::create_app::CreateAppError>,
40    > {
41        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
42    }
43}
44impl CreateAppFluentBuilder {
45    /// Creates a new `CreateAppFluentBuilder`.
46    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
47        Self {
48            handle,
49            inner: ::std::default::Default::default(),
50            config_override: ::std::option::Option::None,
51        }
52    }
53    /// Access the CreateApp as a reference.
54    pub fn as_input(&self) -> &crate::operation::create_app::builders::CreateAppInputBuilder {
55        &self.inner
56    }
57    /// Sends the request and returns the response.
58    ///
59    /// If an error occurs, an `SdkError` will be returned with additional details that
60    /// can be matched against.
61    ///
62    /// By default, any retryable failures will be retried twice. Retry behavior
63    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
64    /// set when configuring the client.
65    pub async fn send(
66        self,
67    ) -> ::std::result::Result<
68        crate::operation::create_app::CreateAppOutput,
69        ::aws_smithy_runtime_api::client::result::SdkError<
70            crate::operation::create_app::CreateAppError,
71            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
72        >,
73    > {
74        let input = self
75            .inner
76            .build()
77            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
78        let runtime_plugins = crate::operation::create_app::CreateApp::operation_runtime_plugins(
79            self.handle.runtime_plugins.clone(),
80            &self.handle.conf,
81            self.config_override,
82        );
83        crate::operation::create_app::CreateApp::orchestrate(&runtime_plugins, input).await
84    }
85
86    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
87    pub fn customize(
88        self,
89    ) -> crate::client::customize::CustomizableOperation<
90        crate::operation::create_app::CreateAppOutput,
91        crate::operation::create_app::CreateAppError,
92        Self,
93    > {
94        crate::client::customize::CustomizableOperation::new(self)
95    }
96    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
97        self.set_config_override(::std::option::Option::Some(config_override.into()));
98        self
99    }
100
101    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
102        self.config_override = config_override;
103        self
104    }
105    /// <p>The domain ID.</p>
106    pub fn domain_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
107        self.inner = self.inner.domain_id(input.into());
108        self
109    }
110    /// <p>The domain ID.</p>
111    pub fn set_domain_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
112        self.inner = self.inner.set_domain_id(input);
113        self
114    }
115    /// <p>The domain ID.</p>
116    pub fn get_domain_id(&self) -> &::std::option::Option<::std::string::String> {
117        self.inner.get_domain_id()
118    }
119    /// <p>The user profile name. If this value is not set, then <code>SpaceName</code> must be set.</p>
120    pub fn user_profile_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
121        self.inner = self.inner.user_profile_name(input.into());
122        self
123    }
124    /// <p>The user profile name. If this value is not set, then <code>SpaceName</code> must be set.</p>
125    pub fn set_user_profile_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
126        self.inner = self.inner.set_user_profile_name(input);
127        self
128    }
129    /// <p>The user profile name. If this value is not set, then <code>SpaceName</code> must be set.</p>
130    pub fn get_user_profile_name(&self) -> &::std::option::Option<::std::string::String> {
131        self.inner.get_user_profile_name()
132    }
133    /// <p>The name of the space. If this value is not set, then <code>UserProfileName</code> must be set.</p>
134    pub fn space_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
135        self.inner = self.inner.space_name(input.into());
136        self
137    }
138    /// <p>The name of the space. If this value is not set, then <code>UserProfileName</code> must be set.</p>
139    pub fn set_space_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
140        self.inner = self.inner.set_space_name(input);
141        self
142    }
143    /// <p>The name of the space. If this value is not set, then <code>UserProfileName</code> must be set.</p>
144    pub fn get_space_name(&self) -> &::std::option::Option<::std::string::String> {
145        self.inner.get_space_name()
146    }
147    /// <p>The type of app.</p>
148    pub fn app_type(mut self, input: crate::types::AppType) -> Self {
149        self.inner = self.inner.app_type(input);
150        self
151    }
152    /// <p>The type of app.</p>
153    pub fn set_app_type(mut self, input: ::std::option::Option<crate::types::AppType>) -> Self {
154        self.inner = self.inner.set_app_type(input);
155        self
156    }
157    /// <p>The type of app.</p>
158    pub fn get_app_type(&self) -> &::std::option::Option<crate::types::AppType> {
159        self.inner.get_app_type()
160    }
161    /// <p>The name of the app.</p>
162    pub fn app_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
163        self.inner = self.inner.app_name(input.into());
164        self
165    }
166    /// <p>The name of the app.</p>
167    pub fn set_app_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
168        self.inner = self.inner.set_app_name(input);
169        self
170    }
171    /// <p>The name of the app.</p>
172    pub fn get_app_name(&self) -> &::std::option::Option<::std::string::String> {
173        self.inner.get_app_name()
174    }
175    ///
176    /// Appends an item to `Tags`.
177    ///
178    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
179    ///
180    /// <p>Each tag consists of a key and an optional value. Tag keys must be unique per resource.</p>
181    pub fn tags(mut self, input: crate::types::Tag) -> Self {
182        self.inner = self.inner.tags(input);
183        self
184    }
185    /// <p>Each tag consists of a key and an optional value. Tag keys must be unique per resource.</p>
186    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
187        self.inner = self.inner.set_tags(input);
188        self
189    }
190    /// <p>Each tag consists of a key and an optional value. Tag keys must be unique per resource.</p>
191    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
192        self.inner.get_tags()
193    }
194    /// <p>The instance type and the Amazon Resource Name (ARN) of the SageMaker AI image created on the instance.</p><note>
195    /// <p>The value of <code>InstanceType</code> passed as part of the <code>ResourceSpec</code> in the <code>CreateApp</code> call overrides the value passed as part of the <code>ResourceSpec</code> configured for the user profile or the domain. If <code>InstanceType</code> is not specified in any of those three <code>ResourceSpec</code> values for a <code>KernelGateway</code> app, the <code>CreateApp</code> call fails with a request validation error.</p>
196    /// </note>
197    pub fn resource_spec(mut self, input: crate::types::ResourceSpec) -> Self {
198        self.inner = self.inner.resource_spec(input);
199        self
200    }
201    /// <p>The instance type and the Amazon Resource Name (ARN) of the SageMaker AI image created on the instance.</p><note>
202    /// <p>The value of <code>InstanceType</code> passed as part of the <code>ResourceSpec</code> in the <code>CreateApp</code> call overrides the value passed as part of the <code>ResourceSpec</code> configured for the user profile or the domain. If <code>InstanceType</code> is not specified in any of those three <code>ResourceSpec</code> values for a <code>KernelGateway</code> app, the <code>CreateApp</code> call fails with a request validation error.</p>
203    /// </note>
204    pub fn set_resource_spec(mut self, input: ::std::option::Option<crate::types::ResourceSpec>) -> Self {
205        self.inner = self.inner.set_resource_spec(input);
206        self
207    }
208    /// <p>The instance type and the Amazon Resource Name (ARN) of the SageMaker AI image created on the instance.</p><note>
209    /// <p>The value of <code>InstanceType</code> passed as part of the <code>ResourceSpec</code> in the <code>CreateApp</code> call overrides the value passed as part of the <code>ResourceSpec</code> configured for the user profile or the domain. If <code>InstanceType</code> is not specified in any of those three <code>ResourceSpec</code> values for a <code>KernelGateway</code> app, the <code>CreateApp</code> call fails with a request validation error.</p>
210    /// </note>
211    pub fn get_resource_spec(&self) -> &::std::option::Option<crate::types::ResourceSpec> {
212        self.inner.get_resource_spec()
213    }
214    /// <p>Indicates whether the application is launched in recovery mode.</p>
215    pub fn recovery_mode(mut self, input: bool) -> Self {
216        self.inner = self.inner.recovery_mode(input);
217        self
218    }
219    /// <p>Indicates whether the application is launched in recovery mode.</p>
220    pub fn set_recovery_mode(mut self, input: ::std::option::Option<bool>) -> Self {
221        self.inner = self.inner.set_recovery_mode(input);
222        self
223    }
224    /// <p>Indicates whether the application is launched in recovery mode.</p>
225    pub fn get_recovery_mode(&self) -> &::std::option::Option<bool> {
226        self.inner.get_recovery_mode()
227    }
228}