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}