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}