aws_sdk_datasync/operation/update_location_smb/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::update_location_smb::_update_location_smb_output::UpdateLocationSmbOutputBuilder;
3
4pub use crate::operation::update_location_smb::_update_location_smb_input::UpdateLocationSmbInputBuilder;
5
6impl crate::operation::update_location_smb::builders::UpdateLocationSmbInputBuilder {
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_location_smb::UpdateLocationSmbOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::update_location_smb::UpdateLocationSmbError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.update_location_smb();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `UpdateLocationSmb`.
24///
25/// <p>Modifies the following configuration parameters of the Server Message Block (SMB) transfer location that you're using with DataSync.</p>
26/// <p>For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-smb-location.html">Configuring DataSync transfers with an SMB file server</a>.</p>
27#[derive(::std::clone::Clone, ::std::fmt::Debug)]
28pub struct UpdateLocationSmbFluentBuilder {
29    handle: ::std::sync::Arc<crate::client::Handle>,
30    inner: crate::operation::update_location_smb::builders::UpdateLocationSmbInputBuilder,
31    config_override: ::std::option::Option<crate::config::Builder>,
32}
33impl
34    crate::client::customize::internal::CustomizableSend<
35        crate::operation::update_location_smb::UpdateLocationSmbOutput,
36        crate::operation::update_location_smb::UpdateLocationSmbError,
37    > for UpdateLocationSmbFluentBuilder
38{
39    fn send(
40        self,
41        config_override: crate::config::Builder,
42    ) -> crate::client::customize::internal::BoxFuture<
43        crate::client::customize::internal::SendResult<
44            crate::operation::update_location_smb::UpdateLocationSmbOutput,
45            crate::operation::update_location_smb::UpdateLocationSmbError,
46        >,
47    > {
48        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
49    }
50}
51impl UpdateLocationSmbFluentBuilder {
52    /// Creates a new `UpdateLocationSmbFluentBuilder`.
53    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
54        Self {
55            handle,
56            inner: ::std::default::Default::default(),
57            config_override: ::std::option::Option::None,
58        }
59    }
60    /// Access the UpdateLocationSmb as a reference.
61    pub fn as_input(&self) -> &crate::operation::update_location_smb::builders::UpdateLocationSmbInputBuilder {
62        &self.inner
63    }
64    /// Sends the request and returns the response.
65    ///
66    /// If an error occurs, an `SdkError` will be returned with additional details that
67    /// can be matched against.
68    ///
69    /// By default, any retryable failures will be retried twice. Retry behavior
70    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
71    /// set when configuring the client.
72    pub async fn send(
73        self,
74    ) -> ::std::result::Result<
75        crate::operation::update_location_smb::UpdateLocationSmbOutput,
76        ::aws_smithy_runtime_api::client::result::SdkError<
77            crate::operation::update_location_smb::UpdateLocationSmbError,
78            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
79        >,
80    > {
81        let input = self
82            .inner
83            .build()
84            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
85        let runtime_plugins = crate::operation::update_location_smb::UpdateLocationSmb::operation_runtime_plugins(
86            self.handle.runtime_plugins.clone(),
87            &self.handle.conf,
88            self.config_override,
89        );
90        crate::operation::update_location_smb::UpdateLocationSmb::orchestrate(&runtime_plugins, input).await
91    }
92
93    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
94    pub fn customize(
95        self,
96    ) -> crate::client::customize::CustomizableOperation<
97        crate::operation::update_location_smb::UpdateLocationSmbOutput,
98        crate::operation::update_location_smb::UpdateLocationSmbError,
99        Self,
100    > {
101        crate::client::customize::CustomizableOperation::new(self)
102    }
103    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
104        self.set_config_override(::std::option::Option::Some(config_override.into()));
105        self
106    }
107
108    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
109        self.config_override = config_override;
110        self
111    }
112    /// <p>Specifies the ARN of the SMB location that you want to update.</p>
113    pub fn location_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
114        self.inner = self.inner.location_arn(input.into());
115        self
116    }
117    /// <p>Specifies the ARN of the SMB location that you want to update.</p>
118    pub fn set_location_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
119        self.inner = self.inner.set_location_arn(input);
120        self
121    }
122    /// <p>Specifies the ARN of the SMB location that you want to update.</p>
123    pub fn get_location_arn(&self) -> &::std::option::Option<::std::string::String> {
124        self.inner.get_location_arn()
125    }
126    /// <p>Specifies the name of the share exported by your SMB file server where DataSync will read or write data. You can include a subdirectory in the share path (for example, <code>/path/to/subdirectory</code>). Make sure that other SMB clients in your network can also mount this path.</p>
127    /// <p>To copy all data in the specified subdirectory, DataSync must be able to mount the SMB share and access all of its data. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-smb-location.html#configuring-smb-permissions">Providing DataSync access to SMB file servers</a>.</p>
128    pub fn subdirectory(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
129        self.inner = self.inner.subdirectory(input.into());
130        self
131    }
132    /// <p>Specifies the name of the share exported by your SMB file server where DataSync will read or write data. You can include a subdirectory in the share path (for example, <code>/path/to/subdirectory</code>). Make sure that other SMB clients in your network can also mount this path.</p>
133    /// <p>To copy all data in the specified subdirectory, DataSync must be able to mount the SMB share and access all of its data. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-smb-location.html#configuring-smb-permissions">Providing DataSync access to SMB file servers</a>.</p>
134    pub fn set_subdirectory(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
135        self.inner = self.inner.set_subdirectory(input);
136        self
137    }
138    /// <p>Specifies the name of the share exported by your SMB file server where DataSync will read or write data. You can include a subdirectory in the share path (for example, <code>/path/to/subdirectory</code>). Make sure that other SMB clients in your network can also mount this path.</p>
139    /// <p>To copy all data in the specified subdirectory, DataSync must be able to mount the SMB share and access all of its data. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-smb-location.html#configuring-smb-permissions">Providing DataSync access to SMB file servers</a>.</p>
140    pub fn get_subdirectory(&self) -> &::std::option::Option<::std::string::String> {
141        self.inner.get_subdirectory()
142    }
143    /// <p>Specifies the user name that can mount your SMB file server and has permission to access the files and folders involved in your transfer. This parameter applies only if <code>AuthenticationType</code> is set to <code>NTLM</code>.</p>
144    /// <p>For information about choosing a user with the right level of access for your transfer, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-smb-location.html#configuring-smb-permissions">Providing DataSync access to SMB file servers</a>.</p>
145    pub fn user(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
146        self.inner = self.inner.user(input.into());
147        self
148    }
149    /// <p>Specifies the user name that can mount your SMB file server and has permission to access the files and folders involved in your transfer. This parameter applies only if <code>AuthenticationType</code> is set to <code>NTLM</code>.</p>
150    /// <p>For information about choosing a user with the right level of access for your transfer, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-smb-location.html#configuring-smb-permissions">Providing DataSync access to SMB file servers</a>.</p>
151    pub fn set_user(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
152        self.inner = self.inner.set_user(input);
153        self
154    }
155    /// <p>Specifies the user name that can mount your SMB file server and has permission to access the files and folders involved in your transfer. This parameter applies only if <code>AuthenticationType</code> is set to <code>NTLM</code>.</p>
156    /// <p>For information about choosing a user with the right level of access for your transfer, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-smb-location.html#configuring-smb-permissions">Providing DataSync access to SMB file servers</a>.</p>
157    pub fn get_user(&self) -> &::std::option::Option<::std::string::String> {
158        self.inner.get_user()
159    }
160    /// <p>Specifies the Windows domain name that your SMB file server belongs to. This parameter applies only if <code>AuthenticationType</code> is set to <code>NTLM</code>.</p>
161    /// <p>If you have multiple domains in your environment, configuring this parameter makes sure that DataSync connects to the right file server.</p>
162    pub fn domain(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
163        self.inner = self.inner.domain(input.into());
164        self
165    }
166    /// <p>Specifies the Windows domain name that your SMB file server belongs to. This parameter applies only if <code>AuthenticationType</code> is set to <code>NTLM</code>.</p>
167    /// <p>If you have multiple domains in your environment, configuring this parameter makes sure that DataSync connects to the right file server.</p>
168    pub fn set_domain(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
169        self.inner = self.inner.set_domain(input);
170        self
171    }
172    /// <p>Specifies the Windows domain name that your SMB file server belongs to. This parameter applies only if <code>AuthenticationType</code> is set to <code>NTLM</code>.</p>
173    /// <p>If you have multiple domains in your environment, configuring this parameter makes sure that DataSync connects to the right file server.</p>
174    pub fn get_domain(&self) -> &::std::option::Option<::std::string::String> {
175        self.inner.get_domain()
176    }
177    /// <p>Specifies the password of the user who can mount your SMB file server and has permission to access the files and folders involved in your transfer. This parameter applies only if <code>AuthenticationType</code> is set to <code>NTLM</code>.</p>
178    pub fn password(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
179        self.inner = self.inner.password(input.into());
180        self
181    }
182    /// <p>Specifies the password of the user who can mount your SMB file server and has permission to access the files and folders involved in your transfer. This parameter applies only if <code>AuthenticationType</code> is set to <code>NTLM</code>.</p>
183    pub fn set_password(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
184        self.inner = self.inner.set_password(input);
185        self
186    }
187    /// <p>Specifies the password of the user who can mount your SMB file server and has permission to access the files and folders involved in your transfer. This parameter applies only if <code>AuthenticationType</code> is set to <code>NTLM</code>.</p>
188    pub fn get_password(&self) -> &::std::option::Option<::std::string::String> {
189        self.inner.get_password()
190    }
191    ///
192    /// Appends an item to `AgentArns`.
193    ///
194    /// To override the contents of this collection use [`set_agent_arns`](Self::set_agent_arns).
195    ///
196    /// <p>Specifies the DataSync agent (or agents) that can connect to your SMB file server. You specify an agent by using its Amazon Resource Name (ARN).</p>
197    pub fn agent_arns(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
198        self.inner = self.inner.agent_arns(input.into());
199        self
200    }
201    /// <p>Specifies the DataSync agent (or agents) that can connect to your SMB file server. You specify an agent by using its Amazon Resource Name (ARN).</p>
202    pub fn set_agent_arns(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
203        self.inner = self.inner.set_agent_arns(input);
204        self
205    }
206    /// <p>Specifies the DataSync agent (or agents) that can connect to your SMB file server. You specify an agent by using its Amazon Resource Name (ARN).</p>
207    pub fn get_agent_arns(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
208        self.inner.get_agent_arns()
209    }
210    /// <p>Specifies the version of the Server Message Block (SMB) protocol that DataSync uses to access an SMB file server.</p>
211    pub fn mount_options(mut self, input: crate::types::SmbMountOptions) -> Self {
212        self.inner = self.inner.mount_options(input);
213        self
214    }
215    /// <p>Specifies the version of the Server Message Block (SMB) protocol that DataSync uses to access an SMB file server.</p>
216    pub fn set_mount_options(mut self, input: ::std::option::Option<crate::types::SmbMountOptions>) -> Self {
217        self.inner = self.inner.set_mount_options(input);
218        self
219    }
220    /// <p>Specifies the version of the Server Message Block (SMB) protocol that DataSync uses to access an SMB file server.</p>
221    pub fn get_mount_options(&self) -> &::std::option::Option<crate::types::SmbMountOptions> {
222        self.inner.get_mount_options()
223    }
224    /// <p>Specifies the authentication protocol that DataSync uses to connect to your SMB file server. DataSync supports <code>NTLM</code> (default) and <code>KERBEROS</code> authentication.</p>
225    pub fn authentication_type(mut self, input: crate::types::SmbAuthenticationType) -> Self {
226        self.inner = self.inner.authentication_type(input);
227        self
228    }
229    /// <p>Specifies the authentication protocol that DataSync uses to connect to your SMB file server. DataSync supports <code>NTLM</code> (default) and <code>KERBEROS</code> authentication.</p>
230    pub fn set_authentication_type(mut self, input: ::std::option::Option<crate::types::SmbAuthenticationType>) -> Self {
231        self.inner = self.inner.set_authentication_type(input);
232        self
233    }
234    /// <p>Specifies the authentication protocol that DataSync uses to connect to your SMB file server. DataSync supports <code>NTLM</code> (default) and <code>KERBEROS</code> authentication.</p>
235    pub fn get_authentication_type(&self) -> &::std::option::Option<crate::types::SmbAuthenticationType> {
236        self.inner.get_authentication_type()
237    }
238    ///
239    /// Appends an item to `DnsIpAddresses`.
240    ///
241    /// To override the contents of this collection use [`set_dns_ip_addresses`](Self::set_dns_ip_addresses).
242    ///
243    /// <p>Specifies the IPv4 addresses for the DNS servers that your SMB file server belongs to. This parameter applies only if <code>AuthenticationType</code> is set to <code>KERBEROS</code>.</p>
244    /// <p>If you have multiple domains in your environment, configuring this parameter makes sure that DataSync connects to the right SMB file server.</p>
245    pub fn dns_ip_addresses(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
246        self.inner = self.inner.dns_ip_addresses(input.into());
247        self
248    }
249    /// <p>Specifies the IPv4 addresses for the DNS servers that your SMB file server belongs to. This parameter applies only if <code>AuthenticationType</code> is set to <code>KERBEROS</code>.</p>
250    /// <p>If you have multiple domains in your environment, configuring this parameter makes sure that DataSync connects to the right SMB file server.</p>
251    pub fn set_dns_ip_addresses(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
252        self.inner = self.inner.set_dns_ip_addresses(input);
253        self
254    }
255    /// <p>Specifies the IPv4 addresses for the DNS servers that your SMB file server belongs to. This parameter applies only if <code>AuthenticationType</code> is set to <code>KERBEROS</code>.</p>
256    /// <p>If you have multiple domains in your environment, configuring this parameter makes sure that DataSync connects to the right SMB file server.</p>
257    pub fn get_dns_ip_addresses(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
258        self.inner.get_dns_ip_addresses()
259    }
260    /// <p>Specifies a Kerberos prinicpal, which is an identity in your Kerberos realm that has permission to access the files, folders, and file metadata in your SMB file server.</p>
261    /// <p>A Kerberos principal might look like <code>HOST/kerberosuser@EXAMPLE.COM</code>.</p>
262    /// <p>Principal names are case sensitive. Your DataSync task execution will fail if the principal that you specify for this parameter doesn’t exactly match the principal that you use to create the keytab file.</p>
263    pub fn kerberos_principal(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
264        self.inner = self.inner.kerberos_principal(input.into());
265        self
266    }
267    /// <p>Specifies a Kerberos prinicpal, which is an identity in your Kerberos realm that has permission to access the files, folders, and file metadata in your SMB file server.</p>
268    /// <p>A Kerberos principal might look like <code>HOST/kerberosuser@EXAMPLE.COM</code>.</p>
269    /// <p>Principal names are case sensitive. Your DataSync task execution will fail if the principal that you specify for this parameter doesn’t exactly match the principal that you use to create the keytab file.</p>
270    pub fn set_kerberos_principal(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
271        self.inner = self.inner.set_kerberos_principal(input);
272        self
273    }
274    /// <p>Specifies a Kerberos prinicpal, which is an identity in your Kerberos realm that has permission to access the files, folders, and file metadata in your SMB file server.</p>
275    /// <p>A Kerberos principal might look like <code>HOST/kerberosuser@EXAMPLE.COM</code>.</p>
276    /// <p>Principal names are case sensitive. Your DataSync task execution will fail if the principal that you specify for this parameter doesn’t exactly match the principal that you use to create the keytab file.</p>
277    pub fn get_kerberos_principal(&self) -> &::std::option::Option<::std::string::String> {
278        self.inner.get_kerberos_principal()
279    }
280    /// <p>Specifies your Kerberos key table (keytab) file, which includes mappings between your Kerberos principal and encryption keys.</p>
281    /// <p>The file must be base64 encoded. If you're using the CLI, the encoding is done for you.</p>
282    /// <p>To avoid task execution errors, make sure that the Kerberos principal that you use to create the keytab file matches exactly what you specify for <code>KerberosPrincipal</code>.</p>
283    pub fn kerberos_keytab(mut self, input: ::aws_smithy_types::Blob) -> Self {
284        self.inner = self.inner.kerberos_keytab(input);
285        self
286    }
287    /// <p>Specifies your Kerberos key table (keytab) file, which includes mappings between your Kerberos principal and encryption keys.</p>
288    /// <p>The file must be base64 encoded. If you're using the CLI, the encoding is done for you.</p>
289    /// <p>To avoid task execution errors, make sure that the Kerberos principal that you use to create the keytab file matches exactly what you specify for <code>KerberosPrincipal</code>.</p>
290    pub fn set_kerberos_keytab(mut self, input: ::std::option::Option<::aws_smithy_types::Blob>) -> Self {
291        self.inner = self.inner.set_kerberos_keytab(input);
292        self
293    }
294    /// <p>Specifies your Kerberos key table (keytab) file, which includes mappings between your Kerberos principal and encryption keys.</p>
295    /// <p>The file must be base64 encoded. If you're using the CLI, the encoding is done for you.</p>
296    /// <p>To avoid task execution errors, make sure that the Kerberos principal that you use to create the keytab file matches exactly what you specify for <code>KerberosPrincipal</code>.</p>
297    pub fn get_kerberos_keytab(&self) -> &::std::option::Option<::aws_smithy_types::Blob> {
298        self.inner.get_kerberos_keytab()
299    }
300    /// <p>Specifies a Kerberos configuration file (<code>krb5.conf</code>) that defines your Kerberos realm configuration.</p>
301    /// <p>The file must be base64 encoded. If you're using the CLI, the encoding is done for you.</p>
302    pub fn kerberos_krb5_conf(mut self, input: ::aws_smithy_types::Blob) -> Self {
303        self.inner = self.inner.kerberos_krb5_conf(input);
304        self
305    }
306    /// <p>Specifies a Kerberos configuration file (<code>krb5.conf</code>) that defines your Kerberos realm configuration.</p>
307    /// <p>The file must be base64 encoded. If you're using the CLI, the encoding is done for you.</p>
308    pub fn set_kerberos_krb5_conf(mut self, input: ::std::option::Option<::aws_smithy_types::Blob>) -> Self {
309        self.inner = self.inner.set_kerberos_krb5_conf(input);
310        self
311    }
312    /// <p>Specifies a Kerberos configuration file (<code>krb5.conf</code>) that defines your Kerberos realm configuration.</p>
313    /// <p>The file must be base64 encoded. If you're using the CLI, the encoding is done for you.</p>
314    pub fn get_kerberos_krb5_conf(&self) -> &::std::option::Option<::aws_smithy_types::Blob> {
315        self.inner.get_kerberos_krb5_conf()
316    }
317}