1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/datasync/DataSync_EXPORTS.h>
8 #include <aws/datasync/DataSyncRequest.h>
9 #include <aws/core/utils/memory/stl/AWSString.h>
10 #include <aws/core/utils/memory/stl/AWSVector.h>
11 #include <aws/datasync/model/SmbMountOptions.h>
12 #include <aws/datasync/model/TagListEntry.h>
13 #include <utility>
14 
15 namespace Aws
16 {
17 namespace DataSync
18 {
19 namespace Model
20 {
21 
22   /**
23    * <p>CreateLocationSmbRequest</p><p><h3>See Also:</h3>   <a
24    * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationSmbRequest">AWS
25    * API Reference</a></p>
26    */
27   class AWS_DATASYNC_API CreateLocationSmbRequest : public DataSyncRequest
28   {
29   public:
30     CreateLocationSmbRequest();
31 
32     // Service request name is the Operation name which will send this request out,
33     // each operation should has unique request name, so that we can get operation's name from this request.
34     // Note: this is not true for response, multiple operations may have the same response name,
35     // so we can not get operation's name from response.
GetServiceRequestName()36     inline virtual const char* GetServiceRequestName() const override { return "CreateLocationSmb"; }
37 
38     Aws::String SerializePayload() const override;
39 
40     Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override;
41 
42 
43     /**
44      * <p>The subdirectory in the SMB file system that is used to read data from the
45      * SMB source location or write data to the SMB destination. The SMB path should be
46      * a path that's exported by the SMB server, or a subdirectory of that path. The
47      * path should be such that it can be mounted by other SMB clients in your
48      * network.</p>  <p> <code>Subdirectory</code> must be specified with forward
49      * slashes. For example, <code>/path/to/folder</code>.</p>  <p>To transfer
50      * all the data in the folder you specified, DataSync needs to have permissions to
51      * mount the SMB share, as well as to access all the data in that share. To ensure
52      * this, either ensure that the user/password specified belongs to the user who can
53      * mount the share, and who has the appropriate permissions for all of the files
54      * and directories that you want DataSync to access, or use credentials of a member
55      * of the Backup Operators group to mount the share. Doing either enables the agent
56      * to access the data. For the agent to access directories, you must additionally
57      * enable all execute access.</p>
58      */
GetSubdirectory()59     inline const Aws::String& GetSubdirectory() const{ return m_subdirectory; }
60 
61     /**
62      * <p>The subdirectory in the SMB file system that is used to read data from the
63      * SMB source location or write data to the SMB destination. The SMB path should be
64      * a path that's exported by the SMB server, or a subdirectory of that path. The
65      * path should be such that it can be mounted by other SMB clients in your
66      * network.</p>  <p> <code>Subdirectory</code> must be specified with forward
67      * slashes. For example, <code>/path/to/folder</code>.</p>  <p>To transfer
68      * all the data in the folder you specified, DataSync needs to have permissions to
69      * mount the SMB share, as well as to access all the data in that share. To ensure
70      * this, either ensure that the user/password specified belongs to the user who can
71      * mount the share, and who has the appropriate permissions for all of the files
72      * and directories that you want DataSync to access, or use credentials of a member
73      * of the Backup Operators group to mount the share. Doing either enables the agent
74      * to access the data. For the agent to access directories, you must additionally
75      * enable all execute access.</p>
76      */
SubdirectoryHasBeenSet()77     inline bool SubdirectoryHasBeenSet() const { return m_subdirectoryHasBeenSet; }
78 
79     /**
80      * <p>The subdirectory in the SMB file system that is used to read data from the
81      * SMB source location or write data to the SMB destination. The SMB path should be
82      * a path that's exported by the SMB server, or a subdirectory of that path. The
83      * path should be such that it can be mounted by other SMB clients in your
84      * network.</p>  <p> <code>Subdirectory</code> must be specified with forward
85      * slashes. For example, <code>/path/to/folder</code>.</p>  <p>To transfer
86      * all the data in the folder you specified, DataSync needs to have permissions to
87      * mount the SMB share, as well as to access all the data in that share. To ensure
88      * this, either ensure that the user/password specified belongs to the user who can
89      * mount the share, and who has the appropriate permissions for all of the files
90      * and directories that you want DataSync to access, or use credentials of a member
91      * of the Backup Operators group to mount the share. Doing either enables the agent
92      * to access the data. For the agent to access directories, you must additionally
93      * enable all execute access.</p>
94      */
SetSubdirectory(const Aws::String & value)95     inline void SetSubdirectory(const Aws::String& value) { m_subdirectoryHasBeenSet = true; m_subdirectory = value; }
96 
97     /**
98      * <p>The subdirectory in the SMB file system that is used to read data from the
99      * SMB source location or write data to the SMB destination. The SMB path should be
100      * a path that's exported by the SMB server, or a subdirectory of that path. The
101      * path should be such that it can be mounted by other SMB clients in your
102      * network.</p>  <p> <code>Subdirectory</code> must be specified with forward
103      * slashes. For example, <code>/path/to/folder</code>.</p>  <p>To transfer
104      * all the data in the folder you specified, DataSync needs to have permissions to
105      * mount the SMB share, as well as to access all the data in that share. To ensure
106      * this, either ensure that the user/password specified belongs to the user who can
107      * mount the share, and who has the appropriate permissions for all of the files
108      * and directories that you want DataSync to access, or use credentials of a member
109      * of the Backup Operators group to mount the share. Doing either enables the agent
110      * to access the data. For the agent to access directories, you must additionally
111      * enable all execute access.</p>
112      */
SetSubdirectory(Aws::String && value)113     inline void SetSubdirectory(Aws::String&& value) { m_subdirectoryHasBeenSet = true; m_subdirectory = std::move(value); }
114 
115     /**
116      * <p>The subdirectory in the SMB file system that is used to read data from the
117      * SMB source location or write data to the SMB destination. The SMB path should be
118      * a path that's exported by the SMB server, or a subdirectory of that path. The
119      * path should be such that it can be mounted by other SMB clients in your
120      * network.</p>  <p> <code>Subdirectory</code> must be specified with forward
121      * slashes. For example, <code>/path/to/folder</code>.</p>  <p>To transfer
122      * all the data in the folder you specified, DataSync needs to have permissions to
123      * mount the SMB share, as well as to access all the data in that share. To ensure
124      * this, either ensure that the user/password specified belongs to the user who can
125      * mount the share, and who has the appropriate permissions for all of the files
126      * and directories that you want DataSync to access, or use credentials of a member
127      * of the Backup Operators group to mount the share. Doing either enables the agent
128      * to access the data. For the agent to access directories, you must additionally
129      * enable all execute access.</p>
130      */
SetSubdirectory(const char * value)131     inline void SetSubdirectory(const char* value) { m_subdirectoryHasBeenSet = true; m_subdirectory.assign(value); }
132 
133     /**
134      * <p>The subdirectory in the SMB file system that is used to read data from the
135      * SMB source location or write data to the SMB destination. The SMB path should be
136      * a path that's exported by the SMB server, or a subdirectory of that path. The
137      * path should be such that it can be mounted by other SMB clients in your
138      * network.</p>  <p> <code>Subdirectory</code> must be specified with forward
139      * slashes. For example, <code>/path/to/folder</code>.</p>  <p>To transfer
140      * all the data in the folder you specified, DataSync needs to have permissions to
141      * mount the SMB share, as well as to access all the data in that share. To ensure
142      * this, either ensure that the user/password specified belongs to the user who can
143      * mount the share, and who has the appropriate permissions for all of the files
144      * and directories that you want DataSync to access, or use credentials of a member
145      * of the Backup Operators group to mount the share. Doing either enables the agent
146      * to access the data. For the agent to access directories, you must additionally
147      * enable all execute access.</p>
148      */
WithSubdirectory(const Aws::String & value)149     inline CreateLocationSmbRequest& WithSubdirectory(const Aws::String& value) { SetSubdirectory(value); return *this;}
150 
151     /**
152      * <p>The subdirectory in the SMB file system that is used to read data from the
153      * SMB source location or write data to the SMB destination. The SMB path should be
154      * a path that's exported by the SMB server, or a subdirectory of that path. The
155      * path should be such that it can be mounted by other SMB clients in your
156      * network.</p>  <p> <code>Subdirectory</code> must be specified with forward
157      * slashes. For example, <code>/path/to/folder</code>.</p>  <p>To transfer
158      * all the data in the folder you specified, DataSync needs to have permissions to
159      * mount the SMB share, as well as to access all the data in that share. To ensure
160      * this, either ensure that the user/password specified belongs to the user who can
161      * mount the share, and who has the appropriate permissions for all of the files
162      * and directories that you want DataSync to access, or use credentials of a member
163      * of the Backup Operators group to mount the share. Doing either enables the agent
164      * to access the data. For the agent to access directories, you must additionally
165      * enable all execute access.</p>
166      */
WithSubdirectory(Aws::String && value)167     inline CreateLocationSmbRequest& WithSubdirectory(Aws::String&& value) { SetSubdirectory(std::move(value)); return *this;}
168 
169     /**
170      * <p>The subdirectory in the SMB file system that is used to read data from the
171      * SMB source location or write data to the SMB destination. The SMB path should be
172      * a path that's exported by the SMB server, or a subdirectory of that path. The
173      * path should be such that it can be mounted by other SMB clients in your
174      * network.</p>  <p> <code>Subdirectory</code> must be specified with forward
175      * slashes. For example, <code>/path/to/folder</code>.</p>  <p>To transfer
176      * all the data in the folder you specified, DataSync needs to have permissions to
177      * mount the SMB share, as well as to access all the data in that share. To ensure
178      * this, either ensure that the user/password specified belongs to the user who can
179      * mount the share, and who has the appropriate permissions for all of the files
180      * and directories that you want DataSync to access, or use credentials of a member
181      * of the Backup Operators group to mount the share. Doing either enables the agent
182      * to access the data. For the agent to access directories, you must additionally
183      * enable all execute access.</p>
184      */
WithSubdirectory(const char * value)185     inline CreateLocationSmbRequest& WithSubdirectory(const char* value) { SetSubdirectory(value); return *this;}
186 
187 
188     /**
189      * <p>The name of the SMB server. This value is the IP address or Domain Name
190      * Service (DNS) name of the SMB server. An agent that is installed on-premises
191      * uses this hostname to mount the SMB server in a network.</p>  <p>This name
192      * must either be DNS-compliant or must be an IP version 4 (IPv4) address.</p>
193      *
194      */
GetServerHostname()195     inline const Aws::String& GetServerHostname() const{ return m_serverHostname; }
196 
197     /**
198      * <p>The name of the SMB server. This value is the IP address or Domain Name
199      * Service (DNS) name of the SMB server. An agent that is installed on-premises
200      * uses this hostname to mount the SMB server in a network.</p>  <p>This name
201      * must either be DNS-compliant or must be an IP version 4 (IPv4) address.</p>
202      *
203      */
ServerHostnameHasBeenSet()204     inline bool ServerHostnameHasBeenSet() const { return m_serverHostnameHasBeenSet; }
205 
206     /**
207      * <p>The name of the SMB server. This value is the IP address or Domain Name
208      * Service (DNS) name of the SMB server. An agent that is installed on-premises
209      * uses this hostname to mount the SMB server in a network.</p>  <p>This name
210      * must either be DNS-compliant or must be an IP version 4 (IPv4) address.</p>
211      *
212      */
SetServerHostname(const Aws::String & value)213     inline void SetServerHostname(const Aws::String& value) { m_serverHostnameHasBeenSet = true; m_serverHostname = value; }
214 
215     /**
216      * <p>The name of the SMB server. This value is the IP address or Domain Name
217      * Service (DNS) name of the SMB server. An agent that is installed on-premises
218      * uses this hostname to mount the SMB server in a network.</p>  <p>This name
219      * must either be DNS-compliant or must be an IP version 4 (IPv4) address.</p>
220      *
221      */
SetServerHostname(Aws::String && value)222     inline void SetServerHostname(Aws::String&& value) { m_serverHostnameHasBeenSet = true; m_serverHostname = std::move(value); }
223 
224     /**
225      * <p>The name of the SMB server. This value is the IP address or Domain Name
226      * Service (DNS) name of the SMB server. An agent that is installed on-premises
227      * uses this hostname to mount the SMB server in a network.</p>  <p>This name
228      * must either be DNS-compliant or must be an IP version 4 (IPv4) address.</p>
229      *
230      */
SetServerHostname(const char * value)231     inline void SetServerHostname(const char* value) { m_serverHostnameHasBeenSet = true; m_serverHostname.assign(value); }
232 
233     /**
234      * <p>The name of the SMB server. This value is the IP address or Domain Name
235      * Service (DNS) name of the SMB server. An agent that is installed on-premises
236      * uses this hostname to mount the SMB server in a network.</p>  <p>This name
237      * must either be DNS-compliant or must be an IP version 4 (IPv4) address.</p>
238      *
239      */
WithServerHostname(const Aws::String & value)240     inline CreateLocationSmbRequest& WithServerHostname(const Aws::String& value) { SetServerHostname(value); return *this;}
241 
242     /**
243      * <p>The name of the SMB server. This value is the IP address or Domain Name
244      * Service (DNS) name of the SMB server. An agent that is installed on-premises
245      * uses this hostname to mount the SMB server in a network.</p>  <p>This name
246      * must either be DNS-compliant or must be an IP version 4 (IPv4) address.</p>
247      *
248      */
WithServerHostname(Aws::String && value)249     inline CreateLocationSmbRequest& WithServerHostname(Aws::String&& value) { SetServerHostname(std::move(value)); return *this;}
250 
251     /**
252      * <p>The name of the SMB server. This value is the IP address or Domain Name
253      * Service (DNS) name of the SMB server. An agent that is installed on-premises
254      * uses this hostname to mount the SMB server in a network.</p>  <p>This name
255      * must either be DNS-compliant or must be an IP version 4 (IPv4) address.</p>
256      *
257      */
WithServerHostname(const char * value)258     inline CreateLocationSmbRequest& WithServerHostname(const char* value) { SetServerHostname(value); return *this;}
259 
260 
261     /**
262      * <p>The user who can mount the share, has the permissions to access files and
263      * folders in the SMB share.</p> <p>For information about choosing a user name that
264      * ensures sufficient permissions to files, folders, and metadata, see <a
265      * href="create-smb-location.html#SMBuser">user</a>.</p>
266      */
GetUser()267     inline const Aws::String& GetUser() const{ return m_user; }
268 
269     /**
270      * <p>The user who can mount the share, has the permissions to access files and
271      * folders in the SMB share.</p> <p>For information about choosing a user name that
272      * ensures sufficient permissions to files, folders, and metadata, see <a
273      * href="create-smb-location.html#SMBuser">user</a>.</p>
274      */
UserHasBeenSet()275     inline bool UserHasBeenSet() const { return m_userHasBeenSet; }
276 
277     /**
278      * <p>The user who can mount the share, has the permissions to access files and
279      * folders in the SMB share.</p> <p>For information about choosing a user name that
280      * ensures sufficient permissions to files, folders, and metadata, see <a
281      * href="create-smb-location.html#SMBuser">user</a>.</p>
282      */
SetUser(const Aws::String & value)283     inline void SetUser(const Aws::String& value) { m_userHasBeenSet = true; m_user = value; }
284 
285     /**
286      * <p>The user who can mount the share, has the permissions to access files and
287      * folders in the SMB share.</p> <p>For information about choosing a user name that
288      * ensures sufficient permissions to files, folders, and metadata, see <a
289      * href="create-smb-location.html#SMBuser">user</a>.</p>
290      */
SetUser(Aws::String && value)291     inline void SetUser(Aws::String&& value) { m_userHasBeenSet = true; m_user = std::move(value); }
292 
293     /**
294      * <p>The user who can mount the share, has the permissions to access files and
295      * folders in the SMB share.</p> <p>For information about choosing a user name that
296      * ensures sufficient permissions to files, folders, and metadata, see <a
297      * href="create-smb-location.html#SMBuser">user</a>.</p>
298      */
SetUser(const char * value)299     inline void SetUser(const char* value) { m_userHasBeenSet = true; m_user.assign(value); }
300 
301     /**
302      * <p>The user who can mount the share, has the permissions to access files and
303      * folders in the SMB share.</p> <p>For information about choosing a user name that
304      * ensures sufficient permissions to files, folders, and metadata, see <a
305      * href="create-smb-location.html#SMBuser">user</a>.</p>
306      */
WithUser(const Aws::String & value)307     inline CreateLocationSmbRequest& WithUser(const Aws::String& value) { SetUser(value); return *this;}
308 
309     /**
310      * <p>The user who can mount the share, has the permissions to access files and
311      * folders in the SMB share.</p> <p>For information about choosing a user name that
312      * ensures sufficient permissions to files, folders, and metadata, see <a
313      * href="create-smb-location.html#SMBuser">user</a>.</p>
314      */
WithUser(Aws::String && value)315     inline CreateLocationSmbRequest& WithUser(Aws::String&& value) { SetUser(std::move(value)); return *this;}
316 
317     /**
318      * <p>The user who can mount the share, has the permissions to access files and
319      * folders in the SMB share.</p> <p>For information about choosing a user name that
320      * ensures sufficient permissions to files, folders, and metadata, see <a
321      * href="create-smb-location.html#SMBuser">user</a>.</p>
322      */
WithUser(const char * value)323     inline CreateLocationSmbRequest& WithUser(const char* value) { SetUser(value); return *this;}
324 
325 
326     /**
327      * <p>The name of the Windows domain that the SMB server belongs to.</p>
328      */
GetDomain()329     inline const Aws::String& GetDomain() const{ return m_domain; }
330 
331     /**
332      * <p>The name of the Windows domain that the SMB server belongs to.</p>
333      */
DomainHasBeenSet()334     inline bool DomainHasBeenSet() const { return m_domainHasBeenSet; }
335 
336     /**
337      * <p>The name of the Windows domain that the SMB server belongs to.</p>
338      */
SetDomain(const Aws::String & value)339     inline void SetDomain(const Aws::String& value) { m_domainHasBeenSet = true; m_domain = value; }
340 
341     /**
342      * <p>The name of the Windows domain that the SMB server belongs to.</p>
343      */
SetDomain(Aws::String && value)344     inline void SetDomain(Aws::String&& value) { m_domainHasBeenSet = true; m_domain = std::move(value); }
345 
346     /**
347      * <p>The name of the Windows domain that the SMB server belongs to.</p>
348      */
SetDomain(const char * value)349     inline void SetDomain(const char* value) { m_domainHasBeenSet = true; m_domain.assign(value); }
350 
351     /**
352      * <p>The name of the Windows domain that the SMB server belongs to.</p>
353      */
WithDomain(const Aws::String & value)354     inline CreateLocationSmbRequest& WithDomain(const Aws::String& value) { SetDomain(value); return *this;}
355 
356     /**
357      * <p>The name of the Windows domain that the SMB server belongs to.</p>
358      */
WithDomain(Aws::String && value)359     inline CreateLocationSmbRequest& WithDomain(Aws::String&& value) { SetDomain(std::move(value)); return *this;}
360 
361     /**
362      * <p>The name of the Windows domain that the SMB server belongs to.</p>
363      */
WithDomain(const char * value)364     inline CreateLocationSmbRequest& WithDomain(const char* value) { SetDomain(value); return *this;}
365 
366 
367     /**
368      * <p>The password of the user who can mount the share, has the permissions to
369      * access files and folders in the SMB share.</p>
370      */
GetPassword()371     inline const Aws::String& GetPassword() const{ return m_password; }
372 
373     /**
374      * <p>The password of the user who can mount the share, has the permissions to
375      * access files and folders in the SMB share.</p>
376      */
PasswordHasBeenSet()377     inline bool PasswordHasBeenSet() const { return m_passwordHasBeenSet; }
378 
379     /**
380      * <p>The password of the user who can mount the share, has the permissions to
381      * access files and folders in the SMB share.</p>
382      */
SetPassword(const Aws::String & value)383     inline void SetPassword(const Aws::String& value) { m_passwordHasBeenSet = true; m_password = value; }
384 
385     /**
386      * <p>The password of the user who can mount the share, has the permissions to
387      * access files and folders in the SMB share.</p>
388      */
SetPassword(Aws::String && value)389     inline void SetPassword(Aws::String&& value) { m_passwordHasBeenSet = true; m_password = std::move(value); }
390 
391     /**
392      * <p>The password of the user who can mount the share, has the permissions to
393      * access files and folders in the SMB share.</p>
394      */
SetPassword(const char * value)395     inline void SetPassword(const char* value) { m_passwordHasBeenSet = true; m_password.assign(value); }
396 
397     /**
398      * <p>The password of the user who can mount the share, has the permissions to
399      * access files and folders in the SMB share.</p>
400      */
WithPassword(const Aws::String & value)401     inline CreateLocationSmbRequest& WithPassword(const Aws::String& value) { SetPassword(value); return *this;}
402 
403     /**
404      * <p>The password of the user who can mount the share, has the permissions to
405      * access files and folders in the SMB share.</p>
406      */
WithPassword(Aws::String && value)407     inline CreateLocationSmbRequest& WithPassword(Aws::String&& value) { SetPassword(std::move(value)); return *this;}
408 
409     /**
410      * <p>The password of the user who can mount the share, has the permissions to
411      * access files and folders in the SMB share.</p>
412      */
WithPassword(const char * value)413     inline CreateLocationSmbRequest& WithPassword(const char* value) { SetPassword(value); return *this;}
414 
415 
416     /**
417      * <p>The Amazon Resource Names (ARNs) of agents to use for a Simple Message Block
418      * (SMB) location. </p>
419      */
GetAgentArns()420     inline const Aws::Vector<Aws::String>& GetAgentArns() const{ return m_agentArns; }
421 
422     /**
423      * <p>The Amazon Resource Names (ARNs) of agents to use for a Simple Message Block
424      * (SMB) location. </p>
425      */
AgentArnsHasBeenSet()426     inline bool AgentArnsHasBeenSet() const { return m_agentArnsHasBeenSet; }
427 
428     /**
429      * <p>The Amazon Resource Names (ARNs) of agents to use for a Simple Message Block
430      * (SMB) location. </p>
431      */
SetAgentArns(const Aws::Vector<Aws::String> & value)432     inline void SetAgentArns(const Aws::Vector<Aws::String>& value) { m_agentArnsHasBeenSet = true; m_agentArns = value; }
433 
434     /**
435      * <p>The Amazon Resource Names (ARNs) of agents to use for a Simple Message Block
436      * (SMB) location. </p>
437      */
SetAgentArns(Aws::Vector<Aws::String> && value)438     inline void SetAgentArns(Aws::Vector<Aws::String>&& value) { m_agentArnsHasBeenSet = true; m_agentArns = std::move(value); }
439 
440     /**
441      * <p>The Amazon Resource Names (ARNs) of agents to use for a Simple Message Block
442      * (SMB) location. </p>
443      */
WithAgentArns(const Aws::Vector<Aws::String> & value)444     inline CreateLocationSmbRequest& WithAgentArns(const Aws::Vector<Aws::String>& value) { SetAgentArns(value); return *this;}
445 
446     /**
447      * <p>The Amazon Resource Names (ARNs) of agents to use for a Simple Message Block
448      * (SMB) location. </p>
449      */
WithAgentArns(Aws::Vector<Aws::String> && value)450     inline CreateLocationSmbRequest& WithAgentArns(Aws::Vector<Aws::String>&& value) { SetAgentArns(std::move(value)); return *this;}
451 
452     /**
453      * <p>The Amazon Resource Names (ARNs) of agents to use for a Simple Message Block
454      * (SMB) location. </p>
455      */
AddAgentArns(const Aws::String & value)456     inline CreateLocationSmbRequest& AddAgentArns(const Aws::String& value) { m_agentArnsHasBeenSet = true; m_agentArns.push_back(value); return *this; }
457 
458     /**
459      * <p>The Amazon Resource Names (ARNs) of agents to use for a Simple Message Block
460      * (SMB) location. </p>
461      */
AddAgentArns(Aws::String && value)462     inline CreateLocationSmbRequest& AddAgentArns(Aws::String&& value) { m_agentArnsHasBeenSet = true; m_agentArns.push_back(std::move(value)); return *this; }
463 
464     /**
465      * <p>The Amazon Resource Names (ARNs) of agents to use for a Simple Message Block
466      * (SMB) location. </p>
467      */
AddAgentArns(const char * value)468     inline CreateLocationSmbRequest& AddAgentArns(const char* value) { m_agentArnsHasBeenSet = true; m_agentArns.push_back(value); return *this; }
469 
470 
471     /**
472      * <p>The mount options used by DataSync to access the SMB server.</p>
473      */
GetMountOptions()474     inline const SmbMountOptions& GetMountOptions() const{ return m_mountOptions; }
475 
476     /**
477      * <p>The mount options used by DataSync to access the SMB server.</p>
478      */
MountOptionsHasBeenSet()479     inline bool MountOptionsHasBeenSet() const { return m_mountOptionsHasBeenSet; }
480 
481     /**
482      * <p>The mount options used by DataSync to access the SMB server.</p>
483      */
SetMountOptions(const SmbMountOptions & value)484     inline void SetMountOptions(const SmbMountOptions& value) { m_mountOptionsHasBeenSet = true; m_mountOptions = value; }
485 
486     /**
487      * <p>The mount options used by DataSync to access the SMB server.</p>
488      */
SetMountOptions(SmbMountOptions && value)489     inline void SetMountOptions(SmbMountOptions&& value) { m_mountOptionsHasBeenSet = true; m_mountOptions = std::move(value); }
490 
491     /**
492      * <p>The mount options used by DataSync to access the SMB server.</p>
493      */
WithMountOptions(const SmbMountOptions & value)494     inline CreateLocationSmbRequest& WithMountOptions(const SmbMountOptions& value) { SetMountOptions(value); return *this;}
495 
496     /**
497      * <p>The mount options used by DataSync to access the SMB server.</p>
498      */
WithMountOptions(SmbMountOptions && value)499     inline CreateLocationSmbRequest& WithMountOptions(SmbMountOptions&& value) { SetMountOptions(std::move(value)); return *this;}
500 
501 
502     /**
503      * <p>The key-value pair that represents the tag that you want to add to the
504      * location. The value can be an empty string. We recommend using tags to name your
505      * resources.</p>
506      */
GetTags()507     inline const Aws::Vector<TagListEntry>& GetTags() const{ return m_tags; }
508 
509     /**
510      * <p>The key-value pair that represents the tag that you want to add to the
511      * location. The value can be an empty string. We recommend using tags to name your
512      * resources.</p>
513      */
TagsHasBeenSet()514     inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; }
515 
516     /**
517      * <p>The key-value pair that represents the tag that you want to add to the
518      * location. The value can be an empty string. We recommend using tags to name your
519      * resources.</p>
520      */
SetTags(const Aws::Vector<TagListEntry> & value)521     inline void SetTags(const Aws::Vector<TagListEntry>& value) { m_tagsHasBeenSet = true; m_tags = value; }
522 
523     /**
524      * <p>The key-value pair that represents the tag that you want to add to the
525      * location. The value can be an empty string. We recommend using tags to name your
526      * resources.</p>
527      */
SetTags(Aws::Vector<TagListEntry> && value)528     inline void SetTags(Aws::Vector<TagListEntry>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); }
529 
530     /**
531      * <p>The key-value pair that represents the tag that you want to add to the
532      * location. The value can be an empty string. We recommend using tags to name your
533      * resources.</p>
534      */
WithTags(const Aws::Vector<TagListEntry> & value)535     inline CreateLocationSmbRequest& WithTags(const Aws::Vector<TagListEntry>& value) { SetTags(value); return *this;}
536 
537     /**
538      * <p>The key-value pair that represents the tag that you want to add to the
539      * location. The value can be an empty string. We recommend using tags to name your
540      * resources.</p>
541      */
WithTags(Aws::Vector<TagListEntry> && value)542     inline CreateLocationSmbRequest& WithTags(Aws::Vector<TagListEntry>&& value) { SetTags(std::move(value)); return *this;}
543 
544     /**
545      * <p>The key-value pair that represents the tag that you want to add to the
546      * location. The value can be an empty string. We recommend using tags to name your
547      * resources.</p>
548      */
AddTags(const TagListEntry & value)549     inline CreateLocationSmbRequest& AddTags(const TagListEntry& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; }
550 
551     /**
552      * <p>The key-value pair that represents the tag that you want to add to the
553      * location. The value can be an empty string. We recommend using tags to name your
554      * resources.</p>
555      */
AddTags(TagListEntry && value)556     inline CreateLocationSmbRequest& AddTags(TagListEntry&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; }
557 
558   private:
559 
560     Aws::String m_subdirectory;
561     bool m_subdirectoryHasBeenSet;
562 
563     Aws::String m_serverHostname;
564     bool m_serverHostnameHasBeenSet;
565 
566     Aws::String m_user;
567     bool m_userHasBeenSet;
568 
569     Aws::String m_domain;
570     bool m_domainHasBeenSet;
571 
572     Aws::String m_password;
573     bool m_passwordHasBeenSet;
574 
575     Aws::Vector<Aws::String> m_agentArns;
576     bool m_agentArnsHasBeenSet;
577 
578     SmbMountOptions m_mountOptions;
579     bool m_mountOptionsHasBeenSet;
580 
581     Aws::Vector<TagListEntry> m_tags;
582     bool m_tagsHasBeenSet;
583   };
584 
585 } // namespace Model
586 } // namespace DataSync
587 } // namespace Aws
588