aws_sdk_datasync/operation/create_location_smb/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_location_smb::_create_location_smb_output::CreateLocationSmbOutputBuilder;
3
4pub use crate::operation::create_location_smb::_create_location_smb_input::CreateLocationSmbInputBuilder;
5
6impl crate::operation::create_location_smb::builders::CreateLocationSmbInputBuilder {
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_location_smb::CreateLocationSmbOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_location_smb::CreateLocationSmbError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_location_smb();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateLocationSmb`.
24///
25/// <p>Creates a transfer <i>location</i> for a Server Message Block (SMB) file server. DataSync can use this location as a source or destination for transferring data.</p>
26/// <p>Before you begin, make sure that you understand how DataSync accesses SMB file servers. 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>
27#[derive(::std::clone::Clone, ::std::fmt::Debug)]
28pub struct CreateLocationSmbFluentBuilder {
29    handle: ::std::sync::Arc<crate::client::Handle>,
30    inner: crate::operation::create_location_smb::builders::CreateLocationSmbInputBuilder,
31    config_override: ::std::option::Option<crate::config::Builder>,
32}
33impl
34    crate::client::customize::internal::CustomizableSend<
35        crate::operation::create_location_smb::CreateLocationSmbOutput,
36        crate::operation::create_location_smb::CreateLocationSmbError,
37    > for CreateLocationSmbFluentBuilder
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::create_location_smb::CreateLocationSmbOutput,
45            crate::operation::create_location_smb::CreateLocationSmbError,
46        >,
47    > {
48        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
49    }
50}
51impl CreateLocationSmbFluentBuilder {
52    /// Creates a new `CreateLocationSmbFluentBuilder`.
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 CreateLocationSmb as a reference.
61    pub fn as_input(&self) -> &crate::operation::create_location_smb::builders::CreateLocationSmbInputBuilder {
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::create_location_smb::CreateLocationSmbOutput,
76        ::aws_smithy_runtime_api::client::result::SdkError<
77            crate::operation::create_location_smb::CreateLocationSmbError,
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::create_location_smb::CreateLocationSmb::operation_runtime_plugins(
86            self.handle.runtime_plugins.clone(),
87            &self.handle.conf,
88            self.config_override,
89        );
90        crate::operation::create_location_smb::CreateLocationSmb::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::create_location_smb::CreateLocationSmbOutput,
98        crate::operation::create_location_smb::CreateLocationSmbError,
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 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>
113    /// <p>To copy all data in the 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>
114    pub fn subdirectory(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
115        self.inner = self.inner.subdirectory(input.into());
116        self
117    }
118    /// <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>
119    /// <p>To copy all data in the 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>
120    pub fn set_subdirectory(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
121        self.inner = self.inner.set_subdirectory(input);
122        self
123    }
124    /// <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>
125    /// <p>To copy all data in the 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>
126    pub fn get_subdirectory(&self) -> &::std::option::Option<::std::string::String> {
127        self.inner.get_subdirectory()
128    }
129    /// <p>Specifies the domain name or IP address of the SMB file server that your DataSync agent connects to.</p>
130    /// <p>Remember the following when configuring this parameter:</p>
131    /// <ul>
132    /// <li>
133    /// <p>You can't specify an IP version 6 (IPv6) address.</p></li>
134    /// <li>
135    /// <p>If you're using Kerberos authentication, you must specify a domain name.</p></li>
136    /// </ul>
137    pub fn server_hostname(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
138        self.inner = self.inner.server_hostname(input.into());
139        self
140    }
141    /// <p>Specifies the domain name or IP address of the SMB file server that your DataSync agent connects to.</p>
142    /// <p>Remember the following when configuring this parameter:</p>
143    /// <ul>
144    /// <li>
145    /// <p>You can't specify an IP version 6 (IPv6) address.</p></li>
146    /// <li>
147    /// <p>If you're using Kerberos authentication, you must specify a domain name.</p></li>
148    /// </ul>
149    pub fn set_server_hostname(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
150        self.inner = self.inner.set_server_hostname(input);
151        self
152    }
153    /// <p>Specifies the domain name or IP address of the SMB file server that your DataSync agent connects to.</p>
154    /// <p>Remember the following when configuring this parameter:</p>
155    /// <ul>
156    /// <li>
157    /// <p>You can't specify an IP version 6 (IPv6) address.</p></li>
158    /// <li>
159    /// <p>If you're using Kerberos authentication, you must specify a domain name.</p></li>
160    /// </ul>
161    pub fn get_server_hostname(&self) -> &::std::option::Option<::std::string::String> {
162        self.inner.get_server_hostname()
163    }
164    /// <p>Specifies the user that can mount and access the files, folders, and file metadata in your SMB file server. This parameter applies only if <code>AuthenticationType</code> is set to <code>NTLM</code>.</p>
165    /// <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>
166    pub fn user(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
167        self.inner = self.inner.user(input.into());
168        self
169    }
170    /// <p>Specifies the user that can mount and access the files, folders, and file metadata in your SMB file server. This parameter applies only if <code>AuthenticationType</code> is set to <code>NTLM</code>.</p>
171    /// <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>
172    pub fn set_user(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
173        self.inner = self.inner.set_user(input);
174        self
175    }
176    /// <p>Specifies the user that can mount and access the files, folders, and file metadata in your SMB file server. This parameter applies only if <code>AuthenticationType</code> is set to <code>NTLM</code>.</p>
177    /// <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>
178    pub fn get_user(&self) -> &::std::option::Option<::std::string::String> {
179        self.inner.get_user()
180    }
181    /// <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>
182    /// <p>If you have multiple domains in your environment, configuring this parameter makes sure that DataSync connects to the right file server.</p>
183    pub fn domain(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
184        self.inner = self.inner.domain(input.into());
185        self
186    }
187    /// <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>
188    /// <p>If you have multiple domains in your environment, configuring this parameter makes sure that DataSync connects to the right file server.</p>
189    pub fn set_domain(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
190        self.inner = self.inner.set_domain(input);
191        self
192    }
193    /// <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>
194    /// <p>If you have multiple domains in your environment, configuring this parameter makes sure that DataSync connects to the right file server.</p>
195    pub fn get_domain(&self) -> &::std::option::Option<::std::string::String> {
196        self.inner.get_domain()
197    }
198    /// <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>
199    pub fn password(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
200        self.inner = self.inner.password(input.into());
201        self
202    }
203    /// <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>
204    pub fn set_password(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
205        self.inner = self.inner.set_password(input);
206        self
207    }
208    /// <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>
209    pub fn get_password(&self) -> &::std::option::Option<::std::string::String> {
210        self.inner.get_password()
211    }
212    ///
213    /// Appends an item to `AgentArns`.
214    ///
215    /// To override the contents of this collection use [`set_agent_arns`](Self::set_agent_arns).
216    ///
217    /// <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>
218    pub fn agent_arns(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
219        self.inner = self.inner.agent_arns(input.into());
220        self
221    }
222    /// <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>
223    pub fn set_agent_arns(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
224        self.inner = self.inner.set_agent_arns(input);
225        self
226    }
227    /// <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>
228    pub fn get_agent_arns(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
229        self.inner.get_agent_arns()
230    }
231    /// <p>Specifies the version of the SMB protocol that DataSync uses to access your SMB file server.</p>
232    pub fn mount_options(mut self, input: crate::types::SmbMountOptions) -> Self {
233        self.inner = self.inner.mount_options(input);
234        self
235    }
236    /// <p>Specifies the version of the SMB protocol that DataSync uses to access your SMB file server.</p>
237    pub fn set_mount_options(mut self, input: ::std::option::Option<crate::types::SmbMountOptions>) -> Self {
238        self.inner = self.inner.set_mount_options(input);
239        self
240    }
241    /// <p>Specifies the version of the SMB protocol that DataSync uses to access your SMB file server.</p>
242    pub fn get_mount_options(&self) -> &::std::option::Option<crate::types::SmbMountOptions> {
243        self.inner.get_mount_options()
244    }
245    ///
246    /// Appends an item to `Tags`.
247    ///
248    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
249    ///
250    /// <p>Specifies labels that help you categorize, filter, and search for your Amazon Web Services resources. We recommend creating at least a name tag for your location.</p>
251    pub fn tags(mut self, input: crate::types::TagListEntry) -> Self {
252        self.inner = self.inner.tags(input);
253        self
254    }
255    /// <p>Specifies labels that help you categorize, filter, and search for your Amazon Web Services resources. We recommend creating at least a name tag for your location.</p>
256    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::TagListEntry>>) -> Self {
257        self.inner = self.inner.set_tags(input);
258        self
259    }
260    /// <p>Specifies labels that help you categorize, filter, and search for your Amazon Web Services resources. We recommend creating at least a name tag for your location.</p>
261    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::TagListEntry>> {
262        self.inner.get_tags()
263    }
264    /// <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>
265    /// <p>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>
266    pub fn authentication_type(mut self, input: crate::types::SmbAuthenticationType) -> Self {
267        self.inner = self.inner.authentication_type(input);
268        self
269    }
270    /// <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>
271    /// <p>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>
272    pub fn set_authentication_type(mut self, input: ::std::option::Option<crate::types::SmbAuthenticationType>) -> Self {
273        self.inner = self.inner.set_authentication_type(input);
274        self
275    }
276    /// <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>
277    /// <p>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>
278    pub fn get_authentication_type(&self) -> &::std::option::Option<crate::types::SmbAuthenticationType> {
279        self.inner.get_authentication_type()
280    }
281    ///
282    /// Appends an item to `DnsIpAddresses`.
283    ///
284    /// To override the contents of this collection use [`set_dns_ip_addresses`](Self::set_dns_ip_addresses).
285    ///
286    /// <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>
287    /// <p>If you have multiple domains in your environment, configuring this parameter makes sure that DataSync connects to the right SMB file server.</p>
288    pub fn dns_ip_addresses(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
289        self.inner = self.inner.dns_ip_addresses(input.into());
290        self
291    }
292    /// <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>
293    /// <p>If you have multiple domains in your environment, configuring this parameter makes sure that DataSync connects to the right SMB file server.</p>
294    pub fn set_dns_ip_addresses(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
295        self.inner = self.inner.set_dns_ip_addresses(input);
296        self
297    }
298    /// <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>
299    /// <p>If you have multiple domains in your environment, configuring this parameter makes sure that DataSync connects to the right SMB file server.</p>
300    pub fn get_dns_ip_addresses(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
301        self.inner.get_dns_ip_addresses()
302    }
303    /// <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>
304    /// <p>A Kerberos principal might look like <code>HOST/kerberosuser@MYDOMAIN.ORG</code>.</p>
305    /// <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>
306    pub fn kerberos_principal(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
307        self.inner = self.inner.kerberos_principal(input.into());
308        self
309    }
310    /// <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>
311    /// <p>A Kerberos principal might look like <code>HOST/kerberosuser@MYDOMAIN.ORG</code>.</p>
312    /// <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>
313    pub fn set_kerberos_principal(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
314        self.inner = self.inner.set_kerberos_principal(input);
315        self
316    }
317    /// <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>
318    /// <p>A Kerberos principal might look like <code>HOST/kerberosuser@MYDOMAIN.ORG</code>.</p>
319    /// <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>
320    pub fn get_kerberos_principal(&self) -> &::std::option::Option<::std::string::String> {
321        self.inner.get_kerberos_principal()
322    }
323    /// <p>Specifies your Kerberos key table (keytab) file, which includes mappings between your Kerberos principal and encryption keys.</p>
324    /// <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>
325    pub fn kerberos_keytab(mut self, input: ::aws_smithy_types::Blob) -> Self {
326        self.inner = self.inner.kerberos_keytab(input);
327        self
328    }
329    /// <p>Specifies your Kerberos key table (keytab) file, which includes mappings between your Kerberos principal and encryption keys.</p>
330    /// <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>
331    pub fn set_kerberos_keytab(mut self, input: ::std::option::Option<::aws_smithy_types::Blob>) -> Self {
332        self.inner = self.inner.set_kerberos_keytab(input);
333        self
334    }
335    /// <p>Specifies your Kerberos key table (keytab) file, which includes mappings between your Kerberos principal and encryption keys.</p>
336    /// <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>
337    pub fn get_kerberos_keytab(&self) -> &::std::option::Option<::aws_smithy_types::Blob> {
338        self.inner.get_kerberos_keytab()
339    }
340    /// <p>Specifies a Kerberos configuration file (<code>krb5.conf</code>) that defines your Kerberos realm configuration.</p>
341    /// <p>The file must be base64 encoded. If you're using the CLI, the encoding is done for you.</p>
342    pub fn kerberos_krb5_conf(mut self, input: ::aws_smithy_types::Blob) -> Self {
343        self.inner = self.inner.kerberos_krb5_conf(input);
344        self
345    }
346    /// <p>Specifies a Kerberos configuration file (<code>krb5.conf</code>) that defines your Kerberos realm configuration.</p>
347    /// <p>The file must be base64 encoded. If you're using the CLI, the encoding is done for you.</p>
348    pub fn set_kerberos_krb5_conf(mut self, input: ::std::option::Option<::aws_smithy_types::Blob>) -> Self {
349        self.inner = self.inner.set_kerberos_krb5_conf(input);
350        self
351    }
352    /// <p>Specifies a Kerberos configuration file (<code>krb5.conf</code>) that defines your Kerberos realm configuration.</p>
353    /// <p>The file must be base64 encoded. If you're using the CLI, the encoding is done for you.</p>
354    pub fn get_kerberos_krb5_conf(&self) -> &::std::option::Option<::aws_smithy_types::Blob> {
355        self.inner.get_kerberos_krb5_conf()
356    }
357}