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