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