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 (IPv4 or IPv6) of the SMB file server that your DataSync agent connects to.</p><note>
130    /// <p>If you're using Kerberos authentication, you must specify a domain name.</p>
131    /// </note>
132    pub fn server_hostname(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
133        self.inner = self.inner.server_hostname(input.into());
134        self
135    }
136    /// <p>Specifies the domain name or IP address (IPv4 or IPv6) of the SMB file server that your DataSync agent connects to.</p><note>
137    /// <p>If you're using Kerberos authentication, you must specify a domain name.</p>
138    /// </note>
139    pub fn set_server_hostname(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
140        self.inner = self.inner.set_server_hostname(input);
141        self
142    }
143    /// <p>Specifies the domain name or IP address (IPv4 or IPv6) of the SMB file server that your DataSync agent connects to.</p><note>
144    /// <p>If you're using Kerberos authentication, you must specify a domain name.</p>
145    /// </note>
146    pub fn get_server_hostname(&self) -> &::std::option::Option<::std::string::String> {
147        self.inner.get_server_hostname()
148    }
149    /// <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>
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 user(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
152        self.inner = self.inner.user(input.into());
153        self
154    }
155    /// <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>
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 set_user(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
158        self.inner = self.inner.set_user(input);
159        self
160    }
161    /// <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>
162    /// <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>
163    pub fn get_user(&self) -> &::std::option::Option<::std::string::String> {
164        self.inner.get_user()
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 domain(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
169        self.inner = self.inner.domain(input.into());
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 set_domain(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
175        self.inner = self.inner.set_domain(input);
176        self
177    }
178    /// <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>
179    /// <p>If you have multiple domains in your environment, configuring this parameter makes sure that DataSync connects to the right file server.</p>
180    pub fn get_domain(&self) -> &::std::option::Option<::std::string::String> {
181        self.inner.get_domain()
182    }
183    /// <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>
184    pub fn password(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
185        self.inner = self.inner.password(input.into());
186        self
187    }
188    /// <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>
189    pub fn set_password(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
190        self.inner = self.inner.set_password(input);
191        self
192    }
193    /// <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>
194    pub fn get_password(&self) -> &::std::option::Option<::std::string::String> {
195        self.inner.get_password()
196    }
197    ///
198    /// Appends an item to `AgentArns`.
199    ///
200    /// To override the contents of this collection use [`set_agent_arns`](Self::set_agent_arns).
201    ///
202    /// <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>
203    pub fn agent_arns(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
204        self.inner = self.inner.agent_arns(input.into());
205        self
206    }
207    /// <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>
208    pub fn set_agent_arns(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
209        self.inner = self.inner.set_agent_arns(input);
210        self
211    }
212    /// <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>
213    pub fn get_agent_arns(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
214        self.inner.get_agent_arns()
215    }
216    /// <p>Specifies the version of the SMB protocol that DataSync uses to access your SMB file server.</p>
217    pub fn mount_options(mut self, input: crate::types::SmbMountOptions) -> Self {
218        self.inner = self.inner.mount_options(input);
219        self
220    }
221    /// <p>Specifies the version of the SMB protocol that DataSync uses to access your SMB file server.</p>
222    pub fn set_mount_options(mut self, input: ::std::option::Option<crate::types::SmbMountOptions>) -> Self {
223        self.inner = self.inner.set_mount_options(input);
224        self
225    }
226    /// <p>Specifies the version of the SMB protocol that DataSync uses to access your SMB file server.</p>
227    pub fn get_mount_options(&self) -> &::std::option::Option<crate::types::SmbMountOptions> {
228        self.inner.get_mount_options()
229    }
230    ///
231    /// Appends an item to `Tags`.
232    ///
233    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
234    ///
235    /// <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>
236    pub fn tags(mut self, input: crate::types::TagListEntry) -> Self {
237        self.inner = self.inner.tags(input);
238        self
239    }
240    /// <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>
241    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::TagListEntry>>) -> Self {
242        self.inner = self.inner.set_tags(input);
243        self
244    }
245    /// <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>
246    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::TagListEntry>> {
247        self.inner.get_tags()
248    }
249    /// <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>
250    /// <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>
251    pub fn authentication_type(mut self, input: crate::types::SmbAuthenticationType) -> Self {
252        self.inner = self.inner.authentication_type(input);
253        self
254    }
255    /// <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>
256    /// <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>
257    pub fn set_authentication_type(mut self, input: ::std::option::Option<crate::types::SmbAuthenticationType>) -> Self {
258        self.inner = self.inner.set_authentication_type(input);
259        self
260    }
261    /// <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>
262    /// <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>
263    pub fn get_authentication_type(&self) -> &::std::option::Option<crate::types::SmbAuthenticationType> {
264        self.inner.get_authentication_type()
265    }
266    ///
267    /// Appends an item to `DnsIpAddresses`.
268    ///
269    /// To override the contents of this collection use [`set_dns_ip_addresses`](Self::set_dns_ip_addresses).
270    ///
271    /// <p>Specifies the IPv4 or IPv6 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>
272    /// <p>If you have multiple domains in your environment, configuring this parameter makes sure that DataSync connects to the right SMB file server.</p>
273    pub fn dns_ip_addresses(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
274        self.inner = self.inner.dns_ip_addresses(input.into());
275        self
276    }
277    /// <p>Specifies the IPv4 or IPv6 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>
278    /// <p>If you have multiple domains in your environment, configuring this parameter makes sure that DataSync connects to the right SMB file server.</p>
279    pub fn set_dns_ip_addresses(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
280        self.inner = self.inner.set_dns_ip_addresses(input);
281        self
282    }
283    /// <p>Specifies the IPv4 or IPv6 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>
284    /// <p>If you have multiple domains in your environment, configuring this parameter makes sure that DataSync connects to the right SMB file server.</p>
285    pub fn get_dns_ip_addresses(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
286        self.inner.get_dns_ip_addresses()
287    }
288    /// <p>Specifies a Kerberos principal, 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>
289    /// <p>A Kerberos principal might look like <code>HOST/kerberosuser@MYDOMAIN.ORG</code>.</p>
290    /// <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>
291    pub fn kerberos_principal(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
292        self.inner = self.inner.kerberos_principal(input.into());
293        self
294    }
295    /// <p>Specifies a Kerberos principal, 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>
296    /// <p>A Kerberos principal might look like <code>HOST/kerberosuser@MYDOMAIN.ORG</code>.</p>
297    /// <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>
298    pub fn set_kerberos_principal(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
299        self.inner = self.inner.set_kerberos_principal(input);
300        self
301    }
302    /// <p>Specifies a Kerberos principal, 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>
303    /// <p>A Kerberos principal might look like <code>HOST/kerberosuser@MYDOMAIN.ORG</code>.</p>
304    /// <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>
305    pub fn get_kerberos_principal(&self) -> &::std::option::Option<::std::string::String> {
306        self.inner.get_kerberos_principal()
307    }
308    /// <p>Specifies your Kerberos key table (keytab) file, which includes mappings between your Kerberos principal and encryption keys.</p>
309    /// <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>
310    pub fn kerberos_keytab(mut self, input: ::aws_smithy_types::Blob) -> Self {
311        self.inner = self.inner.kerberos_keytab(input);
312        self
313    }
314    /// <p>Specifies your Kerberos key table (keytab) file, which includes mappings between your Kerberos principal and encryption keys.</p>
315    /// <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>
316    pub fn set_kerberos_keytab(mut self, input: ::std::option::Option<::aws_smithy_types::Blob>) -> Self {
317        self.inner = self.inner.set_kerberos_keytab(input);
318        self
319    }
320    /// <p>Specifies your Kerberos key table (keytab) file, which includes mappings between your Kerberos principal and encryption keys.</p>
321    /// <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>
322    pub fn get_kerberos_keytab(&self) -> &::std::option::Option<::aws_smithy_types::Blob> {
323        self.inner.get_kerberos_keytab()
324    }
325    /// <p>Specifies a Kerberos configuration file (<code>krb5.conf</code>) that defines your Kerberos realm configuration.</p>
326    /// <p>The file must be base64 encoded. If you're using the CLI, the encoding is done for you.</p>
327    pub fn kerberos_krb5_conf(mut self, input: ::aws_smithy_types::Blob) -> Self {
328        self.inner = self.inner.kerberos_krb5_conf(input);
329        self
330    }
331    /// <p>Specifies a Kerberos configuration file (<code>krb5.conf</code>) that defines your Kerberos realm configuration.</p>
332    /// <p>The file must be base64 encoded. If you're using the CLI, the encoding is done for you.</p>
333    pub fn set_kerberos_krb5_conf(mut self, input: ::std::option::Option<::aws_smithy_types::Blob>) -> Self {
334        self.inner = self.inner.set_kerberos_krb5_conf(input);
335        self
336    }
337    /// <p>Specifies a Kerberos configuration file (<code>krb5.conf</code>) that defines your Kerberos realm configuration.</p>
338    /// <p>The file must be base64 encoded. If you're using the CLI, the encoding is done for you.</p>
339    pub fn get_kerberos_krb5_conf(&self) -> &::std::option::Option<::aws_smithy_types::Blob> {
340        self.inner.get_kerberos_krb5_conf()
341    }
342}