aws_sdk_emr/operation/update_studio/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::update_studio::_update_studio_output::UpdateStudioOutputBuilder;
3
4pub use crate::operation::update_studio::_update_studio_input::UpdateStudioInputBuilder;
5
6impl crate::operation::update_studio::builders::UpdateStudioInputBuilder {
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::update_studio::UpdateStudioOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::update_studio::UpdateStudioError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.update_studio();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `UpdateStudio`.
24///
25/// <p>Updates an Amazon EMR Studio configuration, including attributes such as name, description, and subnets.</p>
26#[derive(::std::clone::Clone, ::std::fmt::Debug)]
27pub struct UpdateStudioFluentBuilder {
28    handle: ::std::sync::Arc<crate::client::Handle>,
29    inner: crate::operation::update_studio::builders::UpdateStudioInputBuilder,
30    config_override: ::std::option::Option<crate::config::Builder>,
31}
32impl
33    crate::client::customize::internal::CustomizableSend<
34        crate::operation::update_studio::UpdateStudioOutput,
35        crate::operation::update_studio::UpdateStudioError,
36    > for UpdateStudioFluentBuilder
37{
38    fn send(
39        self,
40        config_override: crate::config::Builder,
41    ) -> crate::client::customize::internal::BoxFuture<
42        crate::client::customize::internal::SendResult<
43            crate::operation::update_studio::UpdateStudioOutput,
44            crate::operation::update_studio::UpdateStudioError,
45        >,
46    > {
47        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
48    }
49}
50impl UpdateStudioFluentBuilder {
51    /// Creates a new `UpdateStudioFluentBuilder`.
52    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
53        Self {
54            handle,
55            inner: ::std::default::Default::default(),
56            config_override: ::std::option::Option::None,
57        }
58    }
59    /// Access the UpdateStudio as a reference.
60    pub fn as_input(&self) -> &crate::operation::update_studio::builders::UpdateStudioInputBuilder {
61        &self.inner
62    }
63    /// Sends the request and returns the response.
64    ///
65    /// If an error occurs, an `SdkError` will be returned with additional details that
66    /// can be matched against.
67    ///
68    /// By default, any retryable failures will be retried twice. Retry behavior
69    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
70    /// set when configuring the client.
71    pub async fn send(
72        self,
73    ) -> ::std::result::Result<
74        crate::operation::update_studio::UpdateStudioOutput,
75        ::aws_smithy_runtime_api::client::result::SdkError<
76            crate::operation::update_studio::UpdateStudioError,
77            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
78        >,
79    > {
80        let input = self
81            .inner
82            .build()
83            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
84        let runtime_plugins = crate::operation::update_studio::UpdateStudio::operation_runtime_plugins(
85            self.handle.runtime_plugins.clone(),
86            &self.handle.conf,
87            self.config_override,
88        );
89        crate::operation::update_studio::UpdateStudio::orchestrate(&runtime_plugins, input).await
90    }
91
92    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
93    pub fn customize(
94        self,
95    ) -> crate::client::customize::CustomizableOperation<
96        crate::operation::update_studio::UpdateStudioOutput,
97        crate::operation::update_studio::UpdateStudioError,
98        Self,
99    > {
100        crate::client::customize::CustomizableOperation::new(self)
101    }
102    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
103        self.set_config_override(::std::option::Option::Some(config_override.into()));
104        self
105    }
106
107    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
108        self.config_override = config_override;
109        self
110    }
111    /// <p>The ID of the Amazon EMR Studio to update.</p>
112    pub fn studio_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
113        self.inner = self.inner.studio_id(input.into());
114        self
115    }
116    /// <p>The ID of the Amazon EMR Studio to update.</p>
117    pub fn set_studio_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
118        self.inner = self.inner.set_studio_id(input);
119        self
120    }
121    /// <p>The ID of the Amazon EMR Studio to update.</p>
122    pub fn get_studio_id(&self) -> &::std::option::Option<::std::string::String> {
123        self.inner.get_studio_id()
124    }
125    /// <p>A descriptive name for the Amazon EMR Studio.</p>
126    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
127        self.inner = self.inner.name(input.into());
128        self
129    }
130    /// <p>A descriptive name for the Amazon EMR Studio.</p>
131    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
132        self.inner = self.inner.set_name(input);
133        self
134    }
135    /// <p>A descriptive name for the Amazon EMR Studio.</p>
136    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
137        self.inner.get_name()
138    }
139    /// <p>A detailed description to assign to the Amazon EMR Studio.</p>
140    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
141        self.inner = self.inner.description(input.into());
142        self
143    }
144    /// <p>A detailed description to assign to the Amazon EMR Studio.</p>
145    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
146        self.inner = self.inner.set_description(input);
147        self
148    }
149    /// <p>A detailed description to assign to the Amazon EMR Studio.</p>
150    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
151        self.inner.get_description()
152    }
153    ///
154    /// Appends an item to `SubnetIds`.
155    ///
156    /// To override the contents of this collection use [`set_subnet_ids`](Self::set_subnet_ids).
157    ///
158    /// <p>A list of subnet IDs to associate with the Amazon EMR Studio. The list can include new subnet IDs, but must also include all of the subnet IDs previously associated with the Studio. The list order does not matter. A Studio can have a maximum of 5 subnets. The subnets must belong to the same VPC as the Studio.</p>
159    pub fn subnet_ids(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
160        self.inner = self.inner.subnet_ids(input.into());
161        self
162    }
163    /// <p>A list of subnet IDs to associate with the Amazon EMR Studio. The list can include new subnet IDs, but must also include all of the subnet IDs previously associated with the Studio. The list order does not matter. A Studio can have a maximum of 5 subnets. The subnets must belong to the same VPC as the Studio.</p>
164    pub fn set_subnet_ids(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
165        self.inner = self.inner.set_subnet_ids(input);
166        self
167    }
168    /// <p>A list of subnet IDs to associate with the Amazon EMR Studio. The list can include new subnet IDs, but must also include all of the subnet IDs previously associated with the Studio. The list order does not matter. A Studio can have a maximum of 5 subnets. The subnets must belong to the same VPC as the Studio.</p>
169    pub fn get_subnet_ids(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
170        self.inner.get_subnet_ids()
171    }
172    /// <p>The Amazon S3 location to back up Workspaces and notebook files for the Amazon EMR Studio.</p>
173    pub fn default_s3_location(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
174        self.inner = self.inner.default_s3_location(input.into());
175        self
176    }
177    /// <p>The Amazon S3 location to back up Workspaces and notebook files for the Amazon EMR Studio.</p>
178    pub fn set_default_s3_location(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
179        self.inner = self.inner.set_default_s3_location(input);
180        self
181    }
182    /// <p>The Amazon S3 location to back up Workspaces and notebook files for the Amazon EMR Studio.</p>
183    pub fn get_default_s3_location(&self) -> &::std::option::Option<::std::string::String> {
184        self.inner.get_default_s3_location()
185    }
186    /// <p>The KMS key identifier (ARN) used to encrypt Amazon EMR Studio workspace and notebook files when backed up to Amazon S3.</p>
187    pub fn encryption_key_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
188        self.inner = self.inner.encryption_key_arn(input.into());
189        self
190    }
191    /// <p>The KMS key identifier (ARN) used to encrypt Amazon EMR Studio workspace and notebook files when backed up to Amazon S3.</p>
192    pub fn set_encryption_key_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
193        self.inner = self.inner.set_encryption_key_arn(input);
194        self
195    }
196    /// <p>The KMS key identifier (ARN) used to encrypt Amazon EMR Studio workspace and notebook files when backed up to Amazon S3.</p>
197    pub fn get_encryption_key_arn(&self) -> &::std::option::Option<::std::string::String> {
198        self.inner.get_encryption_key_arn()
199    }
200}