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/fsx/FSx_EXPORTS.h>
8 #include <aws/fsx/FSxErrors.h>
9 #include <aws/core/client/AWSError.h>
10 #include <aws/core/client/ClientConfiguration.h>
11 #include <aws/core/client/AWSClient.h>
12 #include <aws/core/utils/memory/stl/AWSString.h>
13 #include <aws/core/utils/json/JsonSerializer.h>
14 #include <aws/fsx/model/AssociateFileSystemAliasesResult.h>
15 #include <aws/fsx/model/CancelDataRepositoryTaskResult.h>
16 #include <aws/fsx/model/CopyBackupResult.h>
17 #include <aws/fsx/model/CreateBackupResult.h>
18 #include <aws/fsx/model/CreateDataRepositoryTaskResult.h>
19 #include <aws/fsx/model/CreateFileSystemResult.h>
20 #include <aws/fsx/model/CreateFileSystemFromBackupResult.h>
21 #include <aws/fsx/model/CreateStorageVirtualMachineResult.h>
22 #include <aws/fsx/model/CreateVolumeResult.h>
23 #include <aws/fsx/model/CreateVolumeFromBackupResult.h>
24 #include <aws/fsx/model/DeleteBackupResult.h>
25 #include <aws/fsx/model/DeleteFileSystemResult.h>
26 #include <aws/fsx/model/DeleteStorageVirtualMachineResult.h>
27 #include <aws/fsx/model/DeleteVolumeResult.h>
28 #include <aws/fsx/model/DescribeBackupsResult.h>
29 #include <aws/fsx/model/DescribeDataRepositoryTasksResult.h>
30 #include <aws/fsx/model/DescribeFileSystemAliasesResult.h>
31 #include <aws/fsx/model/DescribeFileSystemsResult.h>
32 #include <aws/fsx/model/DescribeStorageVirtualMachinesResult.h>
33 #include <aws/fsx/model/DescribeVolumesResult.h>
34 #include <aws/fsx/model/DisassociateFileSystemAliasesResult.h>
35 #include <aws/fsx/model/ListTagsForResourceResult.h>
36 #include <aws/fsx/model/TagResourceResult.h>
37 #include <aws/fsx/model/UntagResourceResult.h>
38 #include <aws/fsx/model/UpdateFileSystemResult.h>
39 #include <aws/fsx/model/UpdateStorageVirtualMachineResult.h>
40 #include <aws/fsx/model/UpdateVolumeResult.h>
41 #include <aws/core/client/AsyncCallerContext.h>
42 #include <aws/core/http/HttpTypes.h>
43 #include <future>
44 #include <functional>
45 
46 namespace Aws
47 {
48 
49 namespace Http
50 {
51   class HttpClient;
52   class HttpClientFactory;
53 } // namespace Http
54 
55 namespace Utils
56 {
57   template< typename R, typename E> class Outcome;
58 namespace Threading
59 {
60   class Executor;
61 } // namespace Threading
62 } // namespace Utils
63 
64 namespace Auth
65 {
66   class AWSCredentials;
67   class AWSCredentialsProvider;
68 } // namespace Auth
69 
70 namespace Client
71 {
72   class RetryStrategy;
73 } // namespace Client
74 
75 namespace FSx
76 {
77 
78 namespace Model
79 {
80         class AssociateFileSystemAliasesRequest;
81         class CancelDataRepositoryTaskRequest;
82         class CopyBackupRequest;
83         class CreateBackupRequest;
84         class CreateDataRepositoryTaskRequest;
85         class CreateFileSystemRequest;
86         class CreateFileSystemFromBackupRequest;
87         class CreateStorageVirtualMachineRequest;
88         class CreateVolumeRequest;
89         class CreateVolumeFromBackupRequest;
90         class DeleteBackupRequest;
91         class DeleteFileSystemRequest;
92         class DeleteStorageVirtualMachineRequest;
93         class DeleteVolumeRequest;
94         class DescribeBackupsRequest;
95         class DescribeDataRepositoryTasksRequest;
96         class DescribeFileSystemAliasesRequest;
97         class DescribeFileSystemsRequest;
98         class DescribeStorageVirtualMachinesRequest;
99         class DescribeVolumesRequest;
100         class DisassociateFileSystemAliasesRequest;
101         class ListTagsForResourceRequest;
102         class TagResourceRequest;
103         class UntagResourceRequest;
104         class UpdateFileSystemRequest;
105         class UpdateStorageVirtualMachineRequest;
106         class UpdateVolumeRequest;
107 
108         typedef Aws::Utils::Outcome<AssociateFileSystemAliasesResult, FSxError> AssociateFileSystemAliasesOutcome;
109         typedef Aws::Utils::Outcome<CancelDataRepositoryTaskResult, FSxError> CancelDataRepositoryTaskOutcome;
110         typedef Aws::Utils::Outcome<CopyBackupResult, FSxError> CopyBackupOutcome;
111         typedef Aws::Utils::Outcome<CreateBackupResult, FSxError> CreateBackupOutcome;
112         typedef Aws::Utils::Outcome<CreateDataRepositoryTaskResult, FSxError> CreateDataRepositoryTaskOutcome;
113         typedef Aws::Utils::Outcome<CreateFileSystemResult, FSxError> CreateFileSystemOutcome;
114         typedef Aws::Utils::Outcome<CreateFileSystemFromBackupResult, FSxError> CreateFileSystemFromBackupOutcome;
115         typedef Aws::Utils::Outcome<CreateStorageVirtualMachineResult, FSxError> CreateStorageVirtualMachineOutcome;
116         typedef Aws::Utils::Outcome<CreateVolumeResult, FSxError> CreateVolumeOutcome;
117         typedef Aws::Utils::Outcome<CreateVolumeFromBackupResult, FSxError> CreateVolumeFromBackupOutcome;
118         typedef Aws::Utils::Outcome<DeleteBackupResult, FSxError> DeleteBackupOutcome;
119         typedef Aws::Utils::Outcome<DeleteFileSystemResult, FSxError> DeleteFileSystemOutcome;
120         typedef Aws::Utils::Outcome<DeleteStorageVirtualMachineResult, FSxError> DeleteStorageVirtualMachineOutcome;
121         typedef Aws::Utils::Outcome<DeleteVolumeResult, FSxError> DeleteVolumeOutcome;
122         typedef Aws::Utils::Outcome<DescribeBackupsResult, FSxError> DescribeBackupsOutcome;
123         typedef Aws::Utils::Outcome<DescribeDataRepositoryTasksResult, FSxError> DescribeDataRepositoryTasksOutcome;
124         typedef Aws::Utils::Outcome<DescribeFileSystemAliasesResult, FSxError> DescribeFileSystemAliasesOutcome;
125         typedef Aws::Utils::Outcome<DescribeFileSystemsResult, FSxError> DescribeFileSystemsOutcome;
126         typedef Aws::Utils::Outcome<DescribeStorageVirtualMachinesResult, FSxError> DescribeStorageVirtualMachinesOutcome;
127         typedef Aws::Utils::Outcome<DescribeVolumesResult, FSxError> DescribeVolumesOutcome;
128         typedef Aws::Utils::Outcome<DisassociateFileSystemAliasesResult, FSxError> DisassociateFileSystemAliasesOutcome;
129         typedef Aws::Utils::Outcome<ListTagsForResourceResult, FSxError> ListTagsForResourceOutcome;
130         typedef Aws::Utils::Outcome<TagResourceResult, FSxError> TagResourceOutcome;
131         typedef Aws::Utils::Outcome<UntagResourceResult, FSxError> UntagResourceOutcome;
132         typedef Aws::Utils::Outcome<UpdateFileSystemResult, FSxError> UpdateFileSystemOutcome;
133         typedef Aws::Utils::Outcome<UpdateStorageVirtualMachineResult, FSxError> UpdateStorageVirtualMachineOutcome;
134         typedef Aws::Utils::Outcome<UpdateVolumeResult, FSxError> UpdateVolumeOutcome;
135 
136         typedef std::future<AssociateFileSystemAliasesOutcome> AssociateFileSystemAliasesOutcomeCallable;
137         typedef std::future<CancelDataRepositoryTaskOutcome> CancelDataRepositoryTaskOutcomeCallable;
138         typedef std::future<CopyBackupOutcome> CopyBackupOutcomeCallable;
139         typedef std::future<CreateBackupOutcome> CreateBackupOutcomeCallable;
140         typedef std::future<CreateDataRepositoryTaskOutcome> CreateDataRepositoryTaskOutcomeCallable;
141         typedef std::future<CreateFileSystemOutcome> CreateFileSystemOutcomeCallable;
142         typedef std::future<CreateFileSystemFromBackupOutcome> CreateFileSystemFromBackupOutcomeCallable;
143         typedef std::future<CreateStorageVirtualMachineOutcome> CreateStorageVirtualMachineOutcomeCallable;
144         typedef std::future<CreateVolumeOutcome> CreateVolumeOutcomeCallable;
145         typedef std::future<CreateVolumeFromBackupOutcome> CreateVolumeFromBackupOutcomeCallable;
146         typedef std::future<DeleteBackupOutcome> DeleteBackupOutcomeCallable;
147         typedef std::future<DeleteFileSystemOutcome> DeleteFileSystemOutcomeCallable;
148         typedef std::future<DeleteStorageVirtualMachineOutcome> DeleteStorageVirtualMachineOutcomeCallable;
149         typedef std::future<DeleteVolumeOutcome> DeleteVolumeOutcomeCallable;
150         typedef std::future<DescribeBackupsOutcome> DescribeBackupsOutcomeCallable;
151         typedef std::future<DescribeDataRepositoryTasksOutcome> DescribeDataRepositoryTasksOutcomeCallable;
152         typedef std::future<DescribeFileSystemAliasesOutcome> DescribeFileSystemAliasesOutcomeCallable;
153         typedef std::future<DescribeFileSystemsOutcome> DescribeFileSystemsOutcomeCallable;
154         typedef std::future<DescribeStorageVirtualMachinesOutcome> DescribeStorageVirtualMachinesOutcomeCallable;
155         typedef std::future<DescribeVolumesOutcome> DescribeVolumesOutcomeCallable;
156         typedef std::future<DisassociateFileSystemAliasesOutcome> DisassociateFileSystemAliasesOutcomeCallable;
157         typedef std::future<ListTagsForResourceOutcome> ListTagsForResourceOutcomeCallable;
158         typedef std::future<TagResourceOutcome> TagResourceOutcomeCallable;
159         typedef std::future<UntagResourceOutcome> UntagResourceOutcomeCallable;
160         typedef std::future<UpdateFileSystemOutcome> UpdateFileSystemOutcomeCallable;
161         typedef std::future<UpdateStorageVirtualMachineOutcome> UpdateStorageVirtualMachineOutcomeCallable;
162         typedef std::future<UpdateVolumeOutcome> UpdateVolumeOutcomeCallable;
163 } // namespace Model
164 
165   class FSxClient;
166 
167     typedef std::function<void(const FSxClient*, const Model::AssociateFileSystemAliasesRequest&, const Model::AssociateFileSystemAliasesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AssociateFileSystemAliasesResponseReceivedHandler;
168     typedef std::function<void(const FSxClient*, const Model::CancelDataRepositoryTaskRequest&, const Model::CancelDataRepositoryTaskOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CancelDataRepositoryTaskResponseReceivedHandler;
169     typedef std::function<void(const FSxClient*, const Model::CopyBackupRequest&, const Model::CopyBackupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CopyBackupResponseReceivedHandler;
170     typedef std::function<void(const FSxClient*, const Model::CreateBackupRequest&, const Model::CreateBackupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateBackupResponseReceivedHandler;
171     typedef std::function<void(const FSxClient*, const Model::CreateDataRepositoryTaskRequest&, const Model::CreateDataRepositoryTaskOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateDataRepositoryTaskResponseReceivedHandler;
172     typedef std::function<void(const FSxClient*, const Model::CreateFileSystemRequest&, const Model::CreateFileSystemOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateFileSystemResponseReceivedHandler;
173     typedef std::function<void(const FSxClient*, const Model::CreateFileSystemFromBackupRequest&, const Model::CreateFileSystemFromBackupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateFileSystemFromBackupResponseReceivedHandler;
174     typedef std::function<void(const FSxClient*, const Model::CreateStorageVirtualMachineRequest&, const Model::CreateStorageVirtualMachineOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateStorageVirtualMachineResponseReceivedHandler;
175     typedef std::function<void(const FSxClient*, const Model::CreateVolumeRequest&, const Model::CreateVolumeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateVolumeResponseReceivedHandler;
176     typedef std::function<void(const FSxClient*, const Model::CreateVolumeFromBackupRequest&, const Model::CreateVolumeFromBackupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateVolumeFromBackupResponseReceivedHandler;
177     typedef std::function<void(const FSxClient*, const Model::DeleteBackupRequest&, const Model::DeleteBackupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBackupResponseReceivedHandler;
178     typedef std::function<void(const FSxClient*, const Model::DeleteFileSystemRequest&, const Model::DeleteFileSystemOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteFileSystemResponseReceivedHandler;
179     typedef std::function<void(const FSxClient*, const Model::DeleteStorageVirtualMachineRequest&, const Model::DeleteStorageVirtualMachineOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteStorageVirtualMachineResponseReceivedHandler;
180     typedef std::function<void(const FSxClient*, const Model::DeleteVolumeRequest&, const Model::DeleteVolumeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteVolumeResponseReceivedHandler;
181     typedef std::function<void(const FSxClient*, const Model::DescribeBackupsRequest&, const Model::DescribeBackupsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeBackupsResponseReceivedHandler;
182     typedef std::function<void(const FSxClient*, const Model::DescribeDataRepositoryTasksRequest&, const Model::DescribeDataRepositoryTasksOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeDataRepositoryTasksResponseReceivedHandler;
183     typedef std::function<void(const FSxClient*, const Model::DescribeFileSystemAliasesRequest&, const Model::DescribeFileSystemAliasesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeFileSystemAliasesResponseReceivedHandler;
184     typedef std::function<void(const FSxClient*, const Model::DescribeFileSystemsRequest&, const Model::DescribeFileSystemsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeFileSystemsResponseReceivedHandler;
185     typedef std::function<void(const FSxClient*, const Model::DescribeStorageVirtualMachinesRequest&, const Model::DescribeStorageVirtualMachinesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeStorageVirtualMachinesResponseReceivedHandler;
186     typedef std::function<void(const FSxClient*, const Model::DescribeVolumesRequest&, const Model::DescribeVolumesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeVolumesResponseReceivedHandler;
187     typedef std::function<void(const FSxClient*, const Model::DisassociateFileSystemAliasesRequest&, const Model::DisassociateFileSystemAliasesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisassociateFileSystemAliasesResponseReceivedHandler;
188     typedef std::function<void(const FSxClient*, const Model::ListTagsForResourceRequest&, const Model::ListTagsForResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTagsForResourceResponseReceivedHandler;
189     typedef std::function<void(const FSxClient*, const Model::TagResourceRequest&, const Model::TagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TagResourceResponseReceivedHandler;
190     typedef std::function<void(const FSxClient*, const Model::UntagResourceRequest&, const Model::UntagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UntagResourceResponseReceivedHandler;
191     typedef std::function<void(const FSxClient*, const Model::UpdateFileSystemRequest&, const Model::UpdateFileSystemOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateFileSystemResponseReceivedHandler;
192     typedef std::function<void(const FSxClient*, const Model::UpdateStorageVirtualMachineRequest&, const Model::UpdateStorageVirtualMachineOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateStorageVirtualMachineResponseReceivedHandler;
193     typedef std::function<void(const FSxClient*, const Model::UpdateVolumeRequest&, const Model::UpdateVolumeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateVolumeResponseReceivedHandler;
194 
195   /**
196    * <p>Amazon FSx is a fully managed service that makes it easy for storage and
197    * application administrators to launch and use shared file storage.</p>
198    */
199   class AWS_FSX_API FSxClient : public Aws::Client::AWSJsonClient
200   {
201     public:
202       typedef Aws::Client::AWSJsonClient BASECLASS;
203 
204        /**
205         * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
206         * is not specified, it will be initialized to default values.
207         */
208         FSxClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
209 
210        /**
211         * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
212         * is not specified, it will be initialized to default values.
213         */
214         FSxClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
215 
216        /**
217         * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
218         * the default http client factory will be used
219         */
220         FSxClient(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
221             const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
222 
223         virtual ~FSxClient();
224 
225 
226         /**
227          * <p>Use this action to associate one or more Domain Name Server (DNS) aliases
228          * with an existing Amazon FSx for Windows File Server file system. A file system
229          * can have a maximum of 50 DNS aliases associated with it at any one time. If you
230          * try to associate a DNS alias that is already associated with the file system,
231          * FSx takes no action on that alias in the request. For more information, see <a
232          * href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html">Working
233          * with DNS Aliases</a> and <a
234          * href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/walkthrough05-file-system-custom-CNAME.html">Walkthrough
235          * 5: Using DNS aliases to access your file system</a>, including additional steps
236          * you must take to be able to access your file system using a DNS alias.</p>
237          * <p>The system response shows the DNS aliases that Amazon FSx is attempting to
238          * associate with the file system. Use the API operation to monitor the status of
239          * the aliases Amazon FSx is associating with the file system.</p><p><h3>See
240          * Also:</h3>   <a
241          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/AssociateFileSystemAliases">AWS
242          * API Reference</a></p>
243          */
244         virtual Model::AssociateFileSystemAliasesOutcome AssociateFileSystemAliases(const Model::AssociateFileSystemAliasesRequest& request) const;
245 
246         /**
247          * <p>Use this action to associate one or more Domain Name Server (DNS) aliases
248          * with an existing Amazon FSx for Windows File Server file system. A file system
249          * can have a maximum of 50 DNS aliases associated with it at any one time. If you
250          * try to associate a DNS alias that is already associated with the file system,
251          * FSx takes no action on that alias in the request. For more information, see <a
252          * href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html">Working
253          * with DNS Aliases</a> and <a
254          * href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/walkthrough05-file-system-custom-CNAME.html">Walkthrough
255          * 5: Using DNS aliases to access your file system</a>, including additional steps
256          * you must take to be able to access your file system using a DNS alias.</p>
257          * <p>The system response shows the DNS aliases that Amazon FSx is attempting to
258          * associate with the file system. Use the API operation to monitor the status of
259          * the aliases Amazon FSx is associating with the file system.</p><p><h3>See
260          * Also:</h3>   <a
261          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/AssociateFileSystemAliases">AWS
262          * API Reference</a></p>
263          *
264          * returns a future to the operation so that it can be executed in parallel to other requests.
265          */
266         virtual Model::AssociateFileSystemAliasesOutcomeCallable AssociateFileSystemAliasesCallable(const Model::AssociateFileSystemAliasesRequest& request) const;
267 
268         /**
269          * <p>Use this action to associate one or more Domain Name Server (DNS) aliases
270          * with an existing Amazon FSx for Windows File Server file system. A file system
271          * can have a maximum of 50 DNS aliases associated with it at any one time. If you
272          * try to associate a DNS alias that is already associated with the file system,
273          * FSx takes no action on that alias in the request. For more information, see <a
274          * href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html">Working
275          * with DNS Aliases</a> and <a
276          * href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/walkthrough05-file-system-custom-CNAME.html">Walkthrough
277          * 5: Using DNS aliases to access your file system</a>, including additional steps
278          * you must take to be able to access your file system using a DNS alias.</p>
279          * <p>The system response shows the DNS aliases that Amazon FSx is attempting to
280          * associate with the file system. Use the API operation to monitor the status of
281          * the aliases Amazon FSx is associating with the file system.</p><p><h3>See
282          * Also:</h3>   <a
283          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/AssociateFileSystemAliases">AWS
284          * API Reference</a></p>
285          *
286          * Queues the request into a thread executor and triggers associated callback when operation has finished.
287          */
288         virtual void AssociateFileSystemAliasesAsync(const Model::AssociateFileSystemAliasesRequest& request, const AssociateFileSystemAliasesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
289 
290         /**
291          * <p>Cancels an existing Amazon FSx for Lustre data repository task if that task
292          * is in either the <code>PENDING</code> or <code>EXECUTING</code> state. When you
293          * cancel a task, Amazon FSx does the following.</p> <ul> <li> <p>Any files that
294          * FSx has already exported are not reverted.</p> </li> <li> <p>FSx continues to
295          * export any files that are "in-flight" when the cancel operation is received.</p>
296          * </li> <li> <p>FSx does not export any files that have not yet been exported.</p>
297          * </li> </ul><p><h3>See Also:</h3>   <a
298          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CancelDataRepositoryTask">AWS
299          * API Reference</a></p>
300          */
301         virtual Model::CancelDataRepositoryTaskOutcome CancelDataRepositoryTask(const Model::CancelDataRepositoryTaskRequest& request) const;
302 
303         /**
304          * <p>Cancels an existing Amazon FSx for Lustre data repository task if that task
305          * is in either the <code>PENDING</code> or <code>EXECUTING</code> state. When you
306          * cancel a task, Amazon FSx does the following.</p> <ul> <li> <p>Any files that
307          * FSx has already exported are not reverted.</p> </li> <li> <p>FSx continues to
308          * export any files that are "in-flight" when the cancel operation is received.</p>
309          * </li> <li> <p>FSx does not export any files that have not yet been exported.</p>
310          * </li> </ul><p><h3>See Also:</h3>   <a
311          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CancelDataRepositoryTask">AWS
312          * API Reference</a></p>
313          *
314          * returns a future to the operation so that it can be executed in parallel to other requests.
315          */
316         virtual Model::CancelDataRepositoryTaskOutcomeCallable CancelDataRepositoryTaskCallable(const Model::CancelDataRepositoryTaskRequest& request) const;
317 
318         /**
319          * <p>Cancels an existing Amazon FSx for Lustre data repository task if that task
320          * is in either the <code>PENDING</code> or <code>EXECUTING</code> state. When you
321          * cancel a task, Amazon FSx does the following.</p> <ul> <li> <p>Any files that
322          * FSx has already exported are not reverted.</p> </li> <li> <p>FSx continues to
323          * export any files that are "in-flight" when the cancel operation is received.</p>
324          * </li> <li> <p>FSx does not export any files that have not yet been exported.</p>
325          * </li> </ul><p><h3>See Also:</h3>   <a
326          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CancelDataRepositoryTask">AWS
327          * API Reference</a></p>
328          *
329          * Queues the request into a thread executor and triggers associated callback when operation has finished.
330          */
331         virtual void CancelDataRepositoryTaskAsync(const Model::CancelDataRepositoryTaskRequest& request, const CancelDataRepositoryTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
332 
333         /**
334          * <p>Copies an existing backup within the same Amazon Web Services account to
335          * another Amazon Web Services Region (cross-Region copy) or within the same Amazon
336          * Web Services Region (in-Region copy). You can have up to five backup copy
337          * requests in progress to a single destination Region per account.</p> <p>You can
338          * use cross-Region backup copies for cross-region disaster recovery. You
339          * periodically take backups and copy them to another Region so that in the event
340          * of a disaster in the primary Region, you can restore from backup and recover
341          * availability quickly in the other Region. You can make cross-Region copies only
342          * within your Amazon Web Services partition.</p> <p> You can also use backup
343          * copies to clone your file data set to another Region or within the same
344          * Region.</p> <p>You can use the <code>SourceRegion</code> parameter to specify
345          * the Amazon Web Services Region from which the backup will be copied. For
346          * example, if you make the call from the <code>us-west-1</code> Region and want to
347          * copy a backup from the <code>us-east-2</code> Region, you specify
348          * <code>us-east-2</code> in the <code>SourceRegion</code> parameter to make a
349          * cross-Region copy. If you don't specify a Region, the backup copy is created in
350          * the same Region where the request is sent from (in-Region copy).</p> <p>For more
351          * information on creating backup copies, see <a
352          * href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/using-backups.html#copy-backups">
353          * Copying backups</a> in the <i>Amazon FSx for Windows User Guide</i> and <a
354          * href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-backups-fsx.html#copy-backups">Copying
355          * backups</a> in the <i>Amazon FSx for Lustre User Guide</i>.</p><p><h3>See
356          * Also:</h3>   <a
357          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CopyBackup">AWS API
358          * Reference</a></p>
359          */
360         virtual Model::CopyBackupOutcome CopyBackup(const Model::CopyBackupRequest& request) const;
361 
362         /**
363          * <p>Copies an existing backup within the same Amazon Web Services account to
364          * another Amazon Web Services Region (cross-Region copy) or within the same Amazon
365          * Web Services Region (in-Region copy). You can have up to five backup copy
366          * requests in progress to a single destination Region per account.</p> <p>You can
367          * use cross-Region backup copies for cross-region disaster recovery. You
368          * periodically take backups and copy them to another Region so that in the event
369          * of a disaster in the primary Region, you can restore from backup and recover
370          * availability quickly in the other Region. You can make cross-Region copies only
371          * within your Amazon Web Services partition.</p> <p> You can also use backup
372          * copies to clone your file data set to another Region or within the same
373          * Region.</p> <p>You can use the <code>SourceRegion</code> parameter to specify
374          * the Amazon Web Services Region from which the backup will be copied. For
375          * example, if you make the call from the <code>us-west-1</code> Region and want to
376          * copy a backup from the <code>us-east-2</code> Region, you specify
377          * <code>us-east-2</code> in the <code>SourceRegion</code> parameter to make a
378          * cross-Region copy. If you don't specify a Region, the backup copy is created in
379          * the same Region where the request is sent from (in-Region copy).</p> <p>For more
380          * information on creating backup copies, see <a
381          * href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/using-backups.html#copy-backups">
382          * Copying backups</a> in the <i>Amazon FSx for Windows User Guide</i> and <a
383          * href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-backups-fsx.html#copy-backups">Copying
384          * backups</a> in the <i>Amazon FSx for Lustre User Guide</i>.</p><p><h3>See
385          * Also:</h3>   <a
386          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CopyBackup">AWS API
387          * Reference</a></p>
388          *
389          * returns a future to the operation so that it can be executed in parallel to other requests.
390          */
391         virtual Model::CopyBackupOutcomeCallable CopyBackupCallable(const Model::CopyBackupRequest& request) const;
392 
393         /**
394          * <p>Copies an existing backup within the same Amazon Web Services account to
395          * another Amazon Web Services Region (cross-Region copy) or within the same Amazon
396          * Web Services Region (in-Region copy). You can have up to five backup copy
397          * requests in progress to a single destination Region per account.</p> <p>You can
398          * use cross-Region backup copies for cross-region disaster recovery. You
399          * periodically take backups and copy them to another Region so that in the event
400          * of a disaster in the primary Region, you can restore from backup and recover
401          * availability quickly in the other Region. You can make cross-Region copies only
402          * within your Amazon Web Services partition.</p> <p> You can also use backup
403          * copies to clone your file data set to another Region or within the same
404          * Region.</p> <p>You can use the <code>SourceRegion</code> parameter to specify
405          * the Amazon Web Services Region from which the backup will be copied. For
406          * example, if you make the call from the <code>us-west-1</code> Region and want to
407          * copy a backup from the <code>us-east-2</code> Region, you specify
408          * <code>us-east-2</code> in the <code>SourceRegion</code> parameter to make a
409          * cross-Region copy. If you don't specify a Region, the backup copy is created in
410          * the same Region where the request is sent from (in-Region copy).</p> <p>For more
411          * information on creating backup copies, see <a
412          * href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/using-backups.html#copy-backups">
413          * Copying backups</a> in the <i>Amazon FSx for Windows User Guide</i> and <a
414          * href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-backups-fsx.html#copy-backups">Copying
415          * backups</a> in the <i>Amazon FSx for Lustre User Guide</i>.</p><p><h3>See
416          * Also:</h3>   <a
417          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CopyBackup">AWS API
418          * Reference</a></p>
419          *
420          * Queues the request into a thread executor and triggers associated callback when operation has finished.
421          */
422         virtual void CopyBackupAsync(const Model::CopyBackupRequest& request, const CopyBackupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
423 
424         /**
425          * <p>Creates a backup of an existing Amazon FSx for Windows File Server or Amazon
426          * FSx for Lustre file system, or of an Amazon FSx for NetApp ONTAP volume.
427          * Creating regular backups is a best practice, enabling you to restore a file
428          * system or volume from a backup if an issue arises with the original file system
429          * or volume.</p> <p>For Amazon FSx for Lustre file systems, you can create a
430          * backup only for file systems with the following configuration:</p> <ul> <li>
431          * <p>a Persistent deployment type</p> </li> <li> <p>is <i>not</i> linked to a data
432          * repository.</p> </li> </ul> <p>For more information about backups, see the
433          * following:</p> <ul> <li> <p>For Amazon FSx for Lustre, see <a
434          * href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-backups-fsx.html">Working
435          * with FSx for Lustre backups</a>.</p> </li> <li> <p>For Amazon FSx for Windows,
436          * see <a
437          * href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/using-backups.html">Working
438          * with FSx for Windows backups</a>.</p> </li> <li> <p>For Amazon FSx for NetApp
439          * ONTAP, see <a
440          * href="https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/using-backups.html">Working
441          * with FSx for NetApp ONTAP backups</a>.</p> </li> </ul> <p>If a backup with the
442          * specified client request token exists, and the parameters match, this operation
443          * returns the description of the existing backup. If a backup specified client
444          * request token exists, and the parameters don't match, this operation returns
445          * <code>IncompatibleParameterError</code>. If a backup with the specified client
446          * request token doesn't exist, <code>CreateBackup</code> does the following: </p>
447          * <ul> <li> <p>Creates a new Amazon FSx backup with an assigned ID, and an initial
448          * lifecycle state of <code>CREATING</code>.</p> </li> <li> <p>Returns the
449          * description of the backup.</p> </li> </ul> <p>By using the idempotent operation,
450          * you can retry a <code>CreateBackup</code> operation without the risk of creating
451          * an extra backup. This approach can be useful when an initial call fails in a way
452          * that makes it unclear whether a backup was created. If you use the same client
453          * request token and the initial call created a backup, the operation returns a
454          * successful result because all the parameters are the same.</p> <p>The
455          * <code>CreateBackup</code> operation returns while the backup's lifecycle state
456          * is still <code>CREATING</code>. You can check the backup creation status by
457          * calling the <a>DescribeBackups</a> operation, which returns the backup state
458          * along with other information.</p><p><h3>See Also:</h3>   <a
459          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CreateBackup">AWS
460          * API Reference</a></p>
461          */
462         virtual Model::CreateBackupOutcome CreateBackup(const Model::CreateBackupRequest& request) const;
463 
464         /**
465          * <p>Creates a backup of an existing Amazon FSx for Windows File Server or Amazon
466          * FSx for Lustre file system, or of an Amazon FSx for NetApp ONTAP volume.
467          * Creating regular backups is a best practice, enabling you to restore a file
468          * system or volume from a backup if an issue arises with the original file system
469          * or volume.</p> <p>For Amazon FSx for Lustre file systems, you can create a
470          * backup only for file systems with the following configuration:</p> <ul> <li>
471          * <p>a Persistent deployment type</p> </li> <li> <p>is <i>not</i> linked to a data
472          * repository.</p> </li> </ul> <p>For more information about backups, see the
473          * following:</p> <ul> <li> <p>For Amazon FSx for Lustre, see <a
474          * href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-backups-fsx.html">Working
475          * with FSx for Lustre backups</a>.</p> </li> <li> <p>For Amazon FSx for Windows,
476          * see <a
477          * href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/using-backups.html">Working
478          * with FSx for Windows backups</a>.</p> </li> <li> <p>For Amazon FSx for NetApp
479          * ONTAP, see <a
480          * href="https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/using-backups.html">Working
481          * with FSx for NetApp ONTAP backups</a>.</p> </li> </ul> <p>If a backup with the
482          * specified client request token exists, and the parameters match, this operation
483          * returns the description of the existing backup. If a backup specified client
484          * request token exists, and the parameters don't match, this operation returns
485          * <code>IncompatibleParameterError</code>. If a backup with the specified client
486          * request token doesn't exist, <code>CreateBackup</code> does the following: </p>
487          * <ul> <li> <p>Creates a new Amazon FSx backup with an assigned ID, and an initial
488          * lifecycle state of <code>CREATING</code>.</p> </li> <li> <p>Returns the
489          * description of the backup.</p> </li> </ul> <p>By using the idempotent operation,
490          * you can retry a <code>CreateBackup</code> operation without the risk of creating
491          * an extra backup. This approach can be useful when an initial call fails in a way
492          * that makes it unclear whether a backup was created. If you use the same client
493          * request token and the initial call created a backup, the operation returns a
494          * successful result because all the parameters are the same.</p> <p>The
495          * <code>CreateBackup</code> operation returns while the backup's lifecycle state
496          * is still <code>CREATING</code>. You can check the backup creation status by
497          * calling the <a>DescribeBackups</a> operation, which returns the backup state
498          * along with other information.</p><p><h3>See Also:</h3>   <a
499          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CreateBackup">AWS
500          * API Reference</a></p>
501          *
502          * returns a future to the operation so that it can be executed in parallel to other requests.
503          */
504         virtual Model::CreateBackupOutcomeCallable CreateBackupCallable(const Model::CreateBackupRequest& request) const;
505 
506         /**
507          * <p>Creates a backup of an existing Amazon FSx for Windows File Server or Amazon
508          * FSx for Lustre file system, or of an Amazon FSx for NetApp ONTAP volume.
509          * Creating regular backups is a best practice, enabling you to restore a file
510          * system or volume from a backup if an issue arises with the original file system
511          * or volume.</p> <p>For Amazon FSx for Lustre file systems, you can create a
512          * backup only for file systems with the following configuration:</p> <ul> <li>
513          * <p>a Persistent deployment type</p> </li> <li> <p>is <i>not</i> linked to a data
514          * repository.</p> </li> </ul> <p>For more information about backups, see the
515          * following:</p> <ul> <li> <p>For Amazon FSx for Lustre, see <a
516          * href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-backups-fsx.html">Working
517          * with FSx for Lustre backups</a>.</p> </li> <li> <p>For Amazon FSx for Windows,
518          * see <a
519          * href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/using-backups.html">Working
520          * with FSx for Windows backups</a>.</p> </li> <li> <p>For Amazon FSx for NetApp
521          * ONTAP, see <a
522          * href="https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/using-backups.html">Working
523          * with FSx for NetApp ONTAP backups</a>.</p> </li> </ul> <p>If a backup with the
524          * specified client request token exists, and the parameters match, this operation
525          * returns the description of the existing backup. If a backup specified client
526          * request token exists, and the parameters don't match, this operation returns
527          * <code>IncompatibleParameterError</code>. If a backup with the specified client
528          * request token doesn't exist, <code>CreateBackup</code> does the following: </p>
529          * <ul> <li> <p>Creates a new Amazon FSx backup with an assigned ID, and an initial
530          * lifecycle state of <code>CREATING</code>.</p> </li> <li> <p>Returns the
531          * description of the backup.</p> </li> </ul> <p>By using the idempotent operation,
532          * you can retry a <code>CreateBackup</code> operation without the risk of creating
533          * an extra backup. This approach can be useful when an initial call fails in a way
534          * that makes it unclear whether a backup was created. If you use the same client
535          * request token and the initial call created a backup, the operation returns a
536          * successful result because all the parameters are the same.</p> <p>The
537          * <code>CreateBackup</code> operation returns while the backup's lifecycle state
538          * is still <code>CREATING</code>. You can check the backup creation status by
539          * calling the <a>DescribeBackups</a> operation, which returns the backup state
540          * along with other information.</p><p><h3>See Also:</h3>   <a
541          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CreateBackup">AWS
542          * API Reference</a></p>
543          *
544          * Queues the request into a thread executor and triggers associated callback when operation has finished.
545          */
546         virtual void CreateBackupAsync(const Model::CreateBackupRequest& request, const CreateBackupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
547 
548         /**
549          * <p>Creates an Amazon FSx for Lustre data repository task. You use data
550          * repository tasks to perform bulk operations between your Amazon FSx file system
551          * and its linked data repository. An example of a data repository task is
552          * exporting any data and metadata changes, including POSIX metadata, to files,
553          * directories, and symbolic links (symlinks) from your FSx file system to its
554          * linked data repository. A <code>CreateDataRepositoryTask</code> operation will
555          * fail if a data repository is not linked to the FSx file system. To learn more
556          * about data repository tasks, see <a
557          * href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/data-repository-tasks.html">Data
558          * Repository Tasks</a>. To learn more about linking a data repository to your file
559          * system, see <a
560          * href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/create-fs-linked-data-repo.html">Linking
561          * your file system to an S3 bucket</a>.</p><p><h3>See Also:</h3>   <a
562          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CreateDataRepositoryTask">AWS
563          * API Reference</a></p>
564          */
565         virtual Model::CreateDataRepositoryTaskOutcome CreateDataRepositoryTask(const Model::CreateDataRepositoryTaskRequest& request) const;
566 
567         /**
568          * <p>Creates an Amazon FSx for Lustre data repository task. You use data
569          * repository tasks to perform bulk operations between your Amazon FSx file system
570          * and its linked data repository. An example of a data repository task is
571          * exporting any data and metadata changes, including POSIX metadata, to files,
572          * directories, and symbolic links (symlinks) from your FSx file system to its
573          * linked data repository. A <code>CreateDataRepositoryTask</code> operation will
574          * fail if a data repository is not linked to the FSx file system. To learn more
575          * about data repository tasks, see <a
576          * href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/data-repository-tasks.html">Data
577          * Repository Tasks</a>. To learn more about linking a data repository to your file
578          * system, see <a
579          * href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/create-fs-linked-data-repo.html">Linking
580          * your file system to an S3 bucket</a>.</p><p><h3>See Also:</h3>   <a
581          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CreateDataRepositoryTask">AWS
582          * API Reference</a></p>
583          *
584          * returns a future to the operation so that it can be executed in parallel to other requests.
585          */
586         virtual Model::CreateDataRepositoryTaskOutcomeCallable CreateDataRepositoryTaskCallable(const Model::CreateDataRepositoryTaskRequest& request) const;
587 
588         /**
589          * <p>Creates an Amazon FSx for Lustre data repository task. You use data
590          * repository tasks to perform bulk operations between your Amazon FSx file system
591          * and its linked data repository. An example of a data repository task is
592          * exporting any data and metadata changes, including POSIX metadata, to files,
593          * directories, and symbolic links (symlinks) from your FSx file system to its
594          * linked data repository. A <code>CreateDataRepositoryTask</code> operation will
595          * fail if a data repository is not linked to the FSx file system. To learn more
596          * about data repository tasks, see <a
597          * href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/data-repository-tasks.html">Data
598          * Repository Tasks</a>. To learn more about linking a data repository to your file
599          * system, see <a
600          * href="https://docs.aws.amazon.com/fsx/latest/LustreGuide/create-fs-linked-data-repo.html">Linking
601          * your file system to an S3 bucket</a>.</p><p><h3>See Also:</h3>   <a
602          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CreateDataRepositoryTask">AWS
603          * API Reference</a></p>
604          *
605          * Queues the request into a thread executor and triggers associated callback when operation has finished.
606          */
607         virtual void CreateDataRepositoryTaskAsync(const Model::CreateDataRepositoryTaskRequest& request, const CreateDataRepositoryTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
608 
609         /**
610          * <p>Creates a new, empty Amazon FSx file system.</p> <p>If a file system with the
611          * specified client request token exists and the parameters match,
612          * <code>CreateFileSystem</code> returns the description of the existing file
613          * system. If a file system specified client request token exists and the
614          * parameters don't match, this call returns
615          * <code>IncompatibleParameterError</code>. If a file system with the specified
616          * client request token doesn't exist, <code>CreateFileSystem</code> does the
617          * following: </p> <ul> <li> <p>Creates a new, empty Amazon FSx file system with an
618          * assigned ID, and an initial lifecycle state of <code>CREATING</code>.</p> </li>
619          * <li> <p>Returns the description of the file system.</p> </li> </ul> <p>This
620          * operation requires a client request token in the request that Amazon FSx uses to
621          * ensure idempotent creation. This means that calling the operation multiple times
622          * with the same client request token has no effect. By using the idempotent
623          * operation, you can retry a <code>CreateFileSystem</code> operation without the
624          * risk of creating an extra file system. This approach can be useful when an
625          * initial call fails in a way that makes it unclear whether a file system was
626          * created. Examples are if a transport level timeout occurred, or your connection
627          * was reset. If you use the same client request token and the initial call created
628          * a file system, the client receives success as long as the parameters are the
629          * same.</p>  <p>The <code>CreateFileSystem</code> call returns while the
630          * file system's lifecycle state is still <code>CREATING</code>. You can check the
631          * file-system creation status by calling the <a>DescribeFileSystems</a> operation,
632          * which returns the file system state along with other information.</p>
633          * <p><h3>See Also:</h3>   <a
634          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CreateFileSystem">AWS
635          * API Reference</a></p>
636          */
637         virtual Model::CreateFileSystemOutcome CreateFileSystem(const Model::CreateFileSystemRequest& request) const;
638 
639         /**
640          * <p>Creates a new, empty Amazon FSx file system.</p> <p>If a file system with the
641          * specified client request token exists and the parameters match,
642          * <code>CreateFileSystem</code> returns the description of the existing file
643          * system. If a file system specified client request token exists and the
644          * parameters don't match, this call returns
645          * <code>IncompatibleParameterError</code>. If a file system with the specified
646          * client request token doesn't exist, <code>CreateFileSystem</code> does the
647          * following: </p> <ul> <li> <p>Creates a new, empty Amazon FSx file system with an
648          * assigned ID, and an initial lifecycle state of <code>CREATING</code>.</p> </li>
649          * <li> <p>Returns the description of the file system.</p> </li> </ul> <p>This
650          * operation requires a client request token in the request that Amazon FSx uses to
651          * ensure idempotent creation. This means that calling the operation multiple times
652          * with the same client request token has no effect. By using the idempotent
653          * operation, you can retry a <code>CreateFileSystem</code> operation without the
654          * risk of creating an extra file system. This approach can be useful when an
655          * initial call fails in a way that makes it unclear whether a file system was
656          * created. Examples are if a transport level timeout occurred, or your connection
657          * was reset. If you use the same client request token and the initial call created
658          * a file system, the client receives success as long as the parameters are the
659          * same.</p>  <p>The <code>CreateFileSystem</code> call returns while the
660          * file system's lifecycle state is still <code>CREATING</code>. You can check the
661          * file-system creation status by calling the <a>DescribeFileSystems</a> operation,
662          * which returns the file system state along with other information.</p>
663          * <p><h3>See Also:</h3>   <a
664          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CreateFileSystem">AWS
665          * API Reference</a></p>
666          *
667          * returns a future to the operation so that it can be executed in parallel to other requests.
668          */
669         virtual Model::CreateFileSystemOutcomeCallable CreateFileSystemCallable(const Model::CreateFileSystemRequest& request) const;
670 
671         /**
672          * <p>Creates a new, empty Amazon FSx file system.</p> <p>If a file system with the
673          * specified client request token exists and the parameters match,
674          * <code>CreateFileSystem</code> returns the description of the existing file
675          * system. If a file system specified client request token exists and the
676          * parameters don't match, this call returns
677          * <code>IncompatibleParameterError</code>. If a file system with the specified
678          * client request token doesn't exist, <code>CreateFileSystem</code> does the
679          * following: </p> <ul> <li> <p>Creates a new, empty Amazon FSx file system with an
680          * assigned ID, and an initial lifecycle state of <code>CREATING</code>.</p> </li>
681          * <li> <p>Returns the description of the file system.</p> </li> </ul> <p>This
682          * operation requires a client request token in the request that Amazon FSx uses to
683          * ensure idempotent creation. This means that calling the operation multiple times
684          * with the same client request token has no effect. By using the idempotent
685          * operation, you can retry a <code>CreateFileSystem</code> operation without the
686          * risk of creating an extra file system. This approach can be useful when an
687          * initial call fails in a way that makes it unclear whether a file system was
688          * created. Examples are if a transport level timeout occurred, or your connection
689          * was reset. If you use the same client request token and the initial call created
690          * a file system, the client receives success as long as the parameters are the
691          * same.</p>  <p>The <code>CreateFileSystem</code> call returns while the
692          * file system's lifecycle state is still <code>CREATING</code>. You can check the
693          * file-system creation status by calling the <a>DescribeFileSystems</a> operation,
694          * which returns the file system state along with other information.</p>
695          * <p><h3>See Also:</h3>   <a
696          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CreateFileSystem">AWS
697          * API Reference</a></p>
698          *
699          * Queues the request into a thread executor and triggers associated callback when operation has finished.
700          */
701         virtual void CreateFileSystemAsync(const Model::CreateFileSystemRequest& request, const CreateFileSystemResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
702 
703         /**
704          * <p>Creates a new Amazon FSx for Lustre or Amazon FSx for Windows File Server
705          * file system from an existing Amazon FSx backup.</p> <p>If a file system with the
706          * specified client request token exists and the parameters match, this operation
707          * returns the description of the file system. If a client request token specified
708          * by the file system exists and the parameters don't match, this call returns
709          * <code>IncompatibleParameterError</code>. If a file system with the specified
710          * client request token doesn't exist, this operation does the following:</p> <ul>
711          * <li> <p>Creates a new Amazon FSx file system from backup with an assigned ID,
712          * and an initial lifecycle state of <code>CREATING</code>.</p> </li> <li>
713          * <p>Returns the description of the file system.</p> </li> </ul> <p>Parameters
714          * like Active Directory, default share name, automatic backup, and backup settings
715          * default to the parameters of the file system that was backed up, unless
716          * overridden. You can explicitly supply other settings.</p> <p>By using the
717          * idempotent operation, you can retry a <code>CreateFileSystemFromBackup</code>
718          * call without the risk of creating an extra file system. This approach can be
719          * useful when an initial call fails in a way that makes it unclear whether a file
720          * system was created. Examples are if a transport level timeout occurred, or your
721          * connection was reset. If you use the same client request token and the initial
722          * call created a file system, the client receives success as long as the
723          * parameters are the same.</p>  <p>The
724          * <code>CreateFileSystemFromBackup</code> call returns while the file system's
725          * lifecycle state is still <code>CREATING</code>. You can check the file-system
726          * creation status by calling the <a>DescribeFileSystems</a> operation, which
727          * returns the file system state along with other information.</p>
728          * <p><h3>See Also:</h3>   <a
729          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CreateFileSystemFromBackup">AWS
730          * API Reference</a></p>
731          */
732         virtual Model::CreateFileSystemFromBackupOutcome CreateFileSystemFromBackup(const Model::CreateFileSystemFromBackupRequest& request) const;
733 
734         /**
735          * <p>Creates a new Amazon FSx for Lustre or Amazon FSx for Windows File Server
736          * file system from an existing Amazon FSx backup.</p> <p>If a file system with the
737          * specified client request token exists and the parameters match, this operation
738          * returns the description of the file system. If a client request token specified
739          * by the file system exists and the parameters don't match, this call returns
740          * <code>IncompatibleParameterError</code>. If a file system with the specified
741          * client request token doesn't exist, this operation does the following:</p> <ul>
742          * <li> <p>Creates a new Amazon FSx file system from backup with an assigned ID,
743          * and an initial lifecycle state of <code>CREATING</code>.</p> </li> <li>
744          * <p>Returns the description of the file system.</p> </li> </ul> <p>Parameters
745          * like Active Directory, default share name, automatic backup, and backup settings
746          * default to the parameters of the file system that was backed up, unless
747          * overridden. You can explicitly supply other settings.</p> <p>By using the
748          * idempotent operation, you can retry a <code>CreateFileSystemFromBackup</code>
749          * call without the risk of creating an extra file system. This approach can be
750          * useful when an initial call fails in a way that makes it unclear whether a file
751          * system was created. Examples are if a transport level timeout occurred, or your
752          * connection was reset. If you use the same client request token and the initial
753          * call created a file system, the client receives success as long as the
754          * parameters are the same.</p>  <p>The
755          * <code>CreateFileSystemFromBackup</code> call returns while the file system's
756          * lifecycle state is still <code>CREATING</code>. You can check the file-system
757          * creation status by calling the <a>DescribeFileSystems</a> operation, which
758          * returns the file system state along with other information.</p>
759          * <p><h3>See Also:</h3>   <a
760          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CreateFileSystemFromBackup">AWS
761          * API Reference</a></p>
762          *
763          * returns a future to the operation so that it can be executed in parallel to other requests.
764          */
765         virtual Model::CreateFileSystemFromBackupOutcomeCallable CreateFileSystemFromBackupCallable(const Model::CreateFileSystemFromBackupRequest& request) const;
766 
767         /**
768          * <p>Creates a new Amazon FSx for Lustre or Amazon FSx for Windows File Server
769          * file system from an existing Amazon FSx backup.</p> <p>If a file system with the
770          * specified client request token exists and the parameters match, this operation
771          * returns the description of the file system. If a client request token specified
772          * by the file system exists and the parameters don't match, this call returns
773          * <code>IncompatibleParameterError</code>. If a file system with the specified
774          * client request token doesn't exist, this operation does the following:</p> <ul>
775          * <li> <p>Creates a new Amazon FSx file system from backup with an assigned ID,
776          * and an initial lifecycle state of <code>CREATING</code>.</p> </li> <li>
777          * <p>Returns the description of the file system.</p> </li> </ul> <p>Parameters
778          * like Active Directory, default share name, automatic backup, and backup settings
779          * default to the parameters of the file system that was backed up, unless
780          * overridden. You can explicitly supply other settings.</p> <p>By using the
781          * idempotent operation, you can retry a <code>CreateFileSystemFromBackup</code>
782          * call without the risk of creating an extra file system. This approach can be
783          * useful when an initial call fails in a way that makes it unclear whether a file
784          * system was created. Examples are if a transport level timeout occurred, or your
785          * connection was reset. If you use the same client request token and the initial
786          * call created a file system, the client receives success as long as the
787          * parameters are the same.</p>  <p>The
788          * <code>CreateFileSystemFromBackup</code> call returns while the file system's
789          * lifecycle state is still <code>CREATING</code>. You can check the file-system
790          * creation status by calling the <a>DescribeFileSystems</a> operation, which
791          * returns the file system state along with other information.</p>
792          * <p><h3>See Also:</h3>   <a
793          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CreateFileSystemFromBackup">AWS
794          * API Reference</a></p>
795          *
796          * Queues the request into a thread executor and triggers associated callback when operation has finished.
797          */
798         virtual void CreateFileSystemFromBackupAsync(const Model::CreateFileSystemFromBackupRequest& request, const CreateFileSystemFromBackupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
799 
800         /**
801          * <p>Creates a storage virtual machine (SVM) for an Amazon FSx for ONTAP file
802          * system.</p><p><h3>See Also:</h3>   <a
803          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CreateStorageVirtualMachine">AWS
804          * API Reference</a></p>
805          */
806         virtual Model::CreateStorageVirtualMachineOutcome CreateStorageVirtualMachine(const Model::CreateStorageVirtualMachineRequest& request) const;
807 
808         /**
809          * <p>Creates a storage virtual machine (SVM) for an Amazon FSx for ONTAP file
810          * system.</p><p><h3>See Also:</h3>   <a
811          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CreateStorageVirtualMachine">AWS
812          * API Reference</a></p>
813          *
814          * returns a future to the operation so that it can be executed in parallel to other requests.
815          */
816         virtual Model::CreateStorageVirtualMachineOutcomeCallable CreateStorageVirtualMachineCallable(const Model::CreateStorageVirtualMachineRequest& request) const;
817 
818         /**
819          * <p>Creates a storage virtual machine (SVM) for an Amazon FSx for ONTAP file
820          * system.</p><p><h3>See Also:</h3>   <a
821          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CreateStorageVirtualMachine">AWS
822          * API Reference</a></p>
823          *
824          * Queues the request into a thread executor and triggers associated callback when operation has finished.
825          */
826         virtual void CreateStorageVirtualMachineAsync(const Model::CreateStorageVirtualMachineRequest& request, const CreateStorageVirtualMachineResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
827 
828         /**
829          * <p>Creates an Amazon FSx for NetApp ONTAP storage volume.</p><p><h3>See
830          * Also:</h3>   <a
831          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CreateVolume">AWS
832          * API Reference</a></p>
833          */
834         virtual Model::CreateVolumeOutcome CreateVolume(const Model::CreateVolumeRequest& request) const;
835 
836         /**
837          * <p>Creates an Amazon FSx for NetApp ONTAP storage volume.</p><p><h3>See
838          * Also:</h3>   <a
839          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CreateVolume">AWS
840          * API Reference</a></p>
841          *
842          * returns a future to the operation so that it can be executed in parallel to other requests.
843          */
844         virtual Model::CreateVolumeOutcomeCallable CreateVolumeCallable(const Model::CreateVolumeRequest& request) const;
845 
846         /**
847          * <p>Creates an Amazon FSx for NetApp ONTAP storage volume.</p><p><h3>See
848          * Also:</h3>   <a
849          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CreateVolume">AWS
850          * API Reference</a></p>
851          *
852          * Queues the request into a thread executor and triggers associated callback when operation has finished.
853          */
854         virtual void CreateVolumeAsync(const Model::CreateVolumeRequest& request, const CreateVolumeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
855 
856         /**
857          * <p>Creates a new Amazon FSx for NetApp ONTAP volume from an existing Amazon FSx
858          * volume backup.</p><p><h3>See Also:</h3>   <a
859          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CreateVolumeFromBackup">AWS
860          * API Reference</a></p>
861          */
862         virtual Model::CreateVolumeFromBackupOutcome CreateVolumeFromBackup(const Model::CreateVolumeFromBackupRequest& request) const;
863 
864         /**
865          * <p>Creates a new Amazon FSx for NetApp ONTAP volume from an existing Amazon FSx
866          * volume backup.</p><p><h3>See Also:</h3>   <a
867          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CreateVolumeFromBackup">AWS
868          * API Reference</a></p>
869          *
870          * returns a future to the operation so that it can be executed in parallel to other requests.
871          */
872         virtual Model::CreateVolumeFromBackupOutcomeCallable CreateVolumeFromBackupCallable(const Model::CreateVolumeFromBackupRequest& request) const;
873 
874         /**
875          * <p>Creates a new Amazon FSx for NetApp ONTAP volume from an existing Amazon FSx
876          * volume backup.</p><p><h3>See Also:</h3>   <a
877          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/CreateVolumeFromBackup">AWS
878          * API Reference</a></p>
879          *
880          * Queues the request into a thread executor and triggers associated callback when operation has finished.
881          */
882         virtual void CreateVolumeFromBackupAsync(const Model::CreateVolumeFromBackupRequest& request, const CreateVolumeFromBackupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
883 
884         /**
885          * <p>Deletes an Amazon FSx backup, deleting its contents. After deletion, the
886          * backup no longer exists, and its data is gone.</p> <p>The
887          * <code>DeleteBackup</code> call returns instantly. The backup will not show up in
888          * later <code>DescribeBackups</code> calls.</p>  <p>The data in a
889          * deleted backup is also deleted and can't be recovered by any means.</p>
890          * <p><h3>See Also:</h3>   <a
891          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DeleteBackup">AWS
892          * API Reference</a></p>
893          */
894         virtual Model::DeleteBackupOutcome DeleteBackup(const Model::DeleteBackupRequest& request) const;
895 
896         /**
897          * <p>Deletes an Amazon FSx backup, deleting its contents. After deletion, the
898          * backup no longer exists, and its data is gone.</p> <p>The
899          * <code>DeleteBackup</code> call returns instantly. The backup will not show up in
900          * later <code>DescribeBackups</code> calls.</p>  <p>The data in a
901          * deleted backup is also deleted and can't be recovered by any means.</p>
902          * <p><h3>See Also:</h3>   <a
903          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DeleteBackup">AWS
904          * API Reference</a></p>
905          *
906          * returns a future to the operation so that it can be executed in parallel to other requests.
907          */
908         virtual Model::DeleteBackupOutcomeCallable DeleteBackupCallable(const Model::DeleteBackupRequest& request) const;
909 
910         /**
911          * <p>Deletes an Amazon FSx backup, deleting its contents. After deletion, the
912          * backup no longer exists, and its data is gone.</p> <p>The
913          * <code>DeleteBackup</code> call returns instantly. The backup will not show up in
914          * later <code>DescribeBackups</code> calls.</p>  <p>The data in a
915          * deleted backup is also deleted and can't be recovered by any means.</p>
916          * <p><h3>See Also:</h3>   <a
917          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DeleteBackup">AWS
918          * API Reference</a></p>
919          *
920          * Queues the request into a thread executor and triggers associated callback when operation has finished.
921          */
922         virtual void DeleteBackupAsync(const Model::DeleteBackupRequest& request, const DeleteBackupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
923 
924         /**
925          * <p>Deletes a file system, deleting its contents. After deletion, the file system
926          * no longer exists, and its data is gone. Any existing automatic backups will also
927          * be deleted.</p> <p>To delete an Amazon FSx for NetApp ONTAP file system, first
928          * delete all the volumes and SVMs on the file system. Then provide a
929          * <code>FileSystemId</code> value to the <code>DeleFileSystem</code>
930          * operation.</p> <p>By default, when you delete an Amazon FSx for Windows File
931          * Server file system, a final backup is created upon deletion. This final backup
932          * is not subject to the file system's retention policy, and must be manually
933          * deleted.</p> <p>The <code>DeleteFileSystem</code> action returns while the file
934          * system has the <code>DELETING</code> status. You can check the file system
935          * deletion status by calling the <a>DescribeFileSystems</a> action, which returns
936          * a list of file systems in your account. If you pass the file system ID for a
937          * deleted file system, the <a>DescribeFileSystems</a> returns a
938          * <code>FileSystemNotFound</code> error.</p>  <p>Deleting an Amazon FSx for
939          * Lustre file system will fail with a 400 BadRequest if a data repository task is
940          * in a <code>PENDING</code> or <code>EXECUTING</code> state.</p>
941          *  <p>The data in a deleted file system is also deleted and can't be
942          * recovered by any means.</p> <p><h3>See Also:</h3>   <a
943          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DeleteFileSystem">AWS
944          * API Reference</a></p>
945          */
946         virtual Model::DeleteFileSystemOutcome DeleteFileSystem(const Model::DeleteFileSystemRequest& request) const;
947 
948         /**
949          * <p>Deletes a file system, deleting its contents. After deletion, the file system
950          * no longer exists, and its data is gone. Any existing automatic backups will also
951          * be deleted.</p> <p>To delete an Amazon FSx for NetApp ONTAP file system, first
952          * delete all the volumes and SVMs on the file system. Then provide a
953          * <code>FileSystemId</code> value to the <code>DeleFileSystem</code>
954          * operation.</p> <p>By default, when you delete an Amazon FSx for Windows File
955          * Server file system, a final backup is created upon deletion. This final backup
956          * is not subject to the file system's retention policy, and must be manually
957          * deleted.</p> <p>The <code>DeleteFileSystem</code> action returns while the file
958          * system has the <code>DELETING</code> status. You can check the file system
959          * deletion status by calling the <a>DescribeFileSystems</a> action, which returns
960          * a list of file systems in your account. If you pass the file system ID for a
961          * deleted file system, the <a>DescribeFileSystems</a> returns a
962          * <code>FileSystemNotFound</code> error.</p>  <p>Deleting an Amazon FSx for
963          * Lustre file system will fail with a 400 BadRequest if a data repository task is
964          * in a <code>PENDING</code> or <code>EXECUTING</code> state.</p>
965          *  <p>The data in a deleted file system is also deleted and can't be
966          * recovered by any means.</p> <p><h3>See Also:</h3>   <a
967          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DeleteFileSystem">AWS
968          * API Reference</a></p>
969          *
970          * returns a future to the operation so that it can be executed in parallel to other requests.
971          */
972         virtual Model::DeleteFileSystemOutcomeCallable DeleteFileSystemCallable(const Model::DeleteFileSystemRequest& request) const;
973 
974         /**
975          * <p>Deletes a file system, deleting its contents. After deletion, the file system
976          * no longer exists, and its data is gone. Any existing automatic backups will also
977          * be deleted.</p> <p>To delete an Amazon FSx for NetApp ONTAP file system, first
978          * delete all the volumes and SVMs on the file system. Then provide a
979          * <code>FileSystemId</code> value to the <code>DeleFileSystem</code>
980          * operation.</p> <p>By default, when you delete an Amazon FSx for Windows File
981          * Server file system, a final backup is created upon deletion. This final backup
982          * is not subject to the file system's retention policy, and must be manually
983          * deleted.</p> <p>The <code>DeleteFileSystem</code> action returns while the file
984          * system has the <code>DELETING</code> status. You can check the file system
985          * deletion status by calling the <a>DescribeFileSystems</a> action, which returns
986          * a list of file systems in your account. If you pass the file system ID for a
987          * deleted file system, the <a>DescribeFileSystems</a> returns a
988          * <code>FileSystemNotFound</code> error.</p>  <p>Deleting an Amazon FSx for
989          * Lustre file system will fail with a 400 BadRequest if a data repository task is
990          * in a <code>PENDING</code> or <code>EXECUTING</code> state.</p>
991          *  <p>The data in a deleted file system is also deleted and can't be
992          * recovered by any means.</p> <p><h3>See Also:</h3>   <a
993          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DeleteFileSystem">AWS
994          * API Reference</a></p>
995          *
996          * Queues the request into a thread executor and triggers associated callback when operation has finished.
997          */
998         virtual void DeleteFileSystemAsync(const Model::DeleteFileSystemRequest& request, const DeleteFileSystemResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
999 
1000         /**
1001          * <p>Deletes an existing Amazon FSx for ONTAP storage virtual machine (SVM). Prior
1002          * to deleting an SVM, you must delete all non-root volumes in the SVM, otherwise
1003          * the operation will fail.</p><p><h3>See Also:</h3>   <a
1004          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DeleteStorageVirtualMachine">AWS
1005          * API Reference</a></p>
1006          */
1007         virtual Model::DeleteStorageVirtualMachineOutcome DeleteStorageVirtualMachine(const Model::DeleteStorageVirtualMachineRequest& request) const;
1008 
1009         /**
1010          * <p>Deletes an existing Amazon FSx for ONTAP storage virtual machine (SVM). Prior
1011          * to deleting an SVM, you must delete all non-root volumes in the SVM, otherwise
1012          * the operation will fail.</p><p><h3>See Also:</h3>   <a
1013          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DeleteStorageVirtualMachine">AWS
1014          * API Reference</a></p>
1015          *
1016          * returns a future to the operation so that it can be executed in parallel to other requests.
1017          */
1018         virtual Model::DeleteStorageVirtualMachineOutcomeCallable DeleteStorageVirtualMachineCallable(const Model::DeleteStorageVirtualMachineRequest& request) const;
1019 
1020         /**
1021          * <p>Deletes an existing Amazon FSx for ONTAP storage virtual machine (SVM). Prior
1022          * to deleting an SVM, you must delete all non-root volumes in the SVM, otherwise
1023          * the operation will fail.</p><p><h3>See Also:</h3>   <a
1024          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DeleteStorageVirtualMachine">AWS
1025          * API Reference</a></p>
1026          *
1027          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1028          */
1029         virtual void DeleteStorageVirtualMachineAsync(const Model::DeleteStorageVirtualMachineRequest& request, const DeleteStorageVirtualMachineResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1030 
1031         /**
1032          * <p>Deletes an Amazon FSx for NetApp ONTAP volume. When deleting a volume, you
1033          * have the option of creating a final backup. If you create a final backup, you
1034          * have the option to apply Tags to the backup. You need to have
1035          * <code>fsx:TagResource</code> permission in order to apply tags to the
1036          * backup.</p><p><h3>See Also:</h3>   <a
1037          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DeleteVolume">AWS
1038          * API Reference</a></p>
1039          */
1040         virtual Model::DeleteVolumeOutcome DeleteVolume(const Model::DeleteVolumeRequest& request) const;
1041 
1042         /**
1043          * <p>Deletes an Amazon FSx for NetApp ONTAP volume. When deleting a volume, you
1044          * have the option of creating a final backup. If you create a final backup, you
1045          * have the option to apply Tags to the backup. You need to have
1046          * <code>fsx:TagResource</code> permission in order to apply tags to the
1047          * backup.</p><p><h3>See Also:</h3>   <a
1048          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DeleteVolume">AWS
1049          * API Reference</a></p>
1050          *
1051          * returns a future to the operation so that it can be executed in parallel to other requests.
1052          */
1053         virtual Model::DeleteVolumeOutcomeCallable DeleteVolumeCallable(const Model::DeleteVolumeRequest& request) const;
1054 
1055         /**
1056          * <p>Deletes an Amazon FSx for NetApp ONTAP volume. When deleting a volume, you
1057          * have the option of creating a final backup. If you create a final backup, you
1058          * have the option to apply Tags to the backup. You need to have
1059          * <code>fsx:TagResource</code> permission in order to apply tags to the
1060          * backup.</p><p><h3>See Also:</h3>   <a
1061          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DeleteVolume">AWS
1062          * API Reference</a></p>
1063          *
1064          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1065          */
1066         virtual void DeleteVolumeAsync(const Model::DeleteVolumeRequest& request, const DeleteVolumeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1067 
1068         /**
1069          * <p>Returns the description of specific Amazon FSx backups, if a
1070          * <code>BackupIds</code> value is provided for that backup. Otherwise, it returns
1071          * all backups owned by your Amazon Web Services account in the Amazon Web Services
1072          * Region of the endpoint that you're calling.</p> <p>When retrieving all backups,
1073          * you can optionally specify the <code>MaxResults</code> parameter to limit the
1074          * number of backups in a response. If more backups remain, Amazon FSx returns a
1075          * <code>NextToken</code> value in the response. In this case, send a later request
1076          * with the <code>NextToken</code> request parameter set to the value of
1077          * <code>NextToken</code> from the last response.</p> <p>This action is used in an
1078          * iterative process to retrieve a list of your backups.
1079          * <code>DescribeBackups</code> is called first without a
1080          * <code>NextToken</code>value. Then the action continues to be called with the
1081          * <code>NextToken</code> parameter set to the value of the last
1082          * <code>NextToken</code> value until a response has no <code>NextToken</code>.</p>
1083          * <p>When using this action, keep the following in mind:</p> <ul> <li> <p>The
1084          * implementation might return fewer than <code>MaxResults</code> backup
1085          * descriptions while still including a <code>NextToken</code> value.</p> </li>
1086          * <li> <p>The order of backups returned in the response of one
1087          * <code>DescribeBackups</code> call and the order of backups returned across the
1088          * responses of a multi-call iteration is unspecified.</p> </li> </ul><p><h3>See
1089          * Also:</h3>   <a
1090          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DescribeBackups">AWS
1091          * API Reference</a></p>
1092          */
1093         virtual Model::DescribeBackupsOutcome DescribeBackups(const Model::DescribeBackupsRequest& request) const;
1094 
1095         /**
1096          * <p>Returns the description of specific Amazon FSx backups, if a
1097          * <code>BackupIds</code> value is provided for that backup. Otherwise, it returns
1098          * all backups owned by your Amazon Web Services account in the Amazon Web Services
1099          * Region of the endpoint that you're calling.</p> <p>When retrieving all backups,
1100          * you can optionally specify the <code>MaxResults</code> parameter to limit the
1101          * number of backups in a response. If more backups remain, Amazon FSx returns a
1102          * <code>NextToken</code> value in the response. In this case, send a later request
1103          * with the <code>NextToken</code> request parameter set to the value of
1104          * <code>NextToken</code> from the last response.</p> <p>This action is used in an
1105          * iterative process to retrieve a list of your backups.
1106          * <code>DescribeBackups</code> is called first without a
1107          * <code>NextToken</code>value. Then the action continues to be called with the
1108          * <code>NextToken</code> parameter set to the value of the last
1109          * <code>NextToken</code> value until a response has no <code>NextToken</code>.</p>
1110          * <p>When using this action, keep the following in mind:</p> <ul> <li> <p>The
1111          * implementation might return fewer than <code>MaxResults</code> backup
1112          * descriptions while still including a <code>NextToken</code> value.</p> </li>
1113          * <li> <p>The order of backups returned in the response of one
1114          * <code>DescribeBackups</code> call and the order of backups returned across the
1115          * responses of a multi-call iteration is unspecified.</p> </li> </ul><p><h3>See
1116          * Also:</h3>   <a
1117          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DescribeBackups">AWS
1118          * API Reference</a></p>
1119          *
1120          * returns a future to the operation so that it can be executed in parallel to other requests.
1121          */
1122         virtual Model::DescribeBackupsOutcomeCallable DescribeBackupsCallable(const Model::DescribeBackupsRequest& request) const;
1123 
1124         /**
1125          * <p>Returns the description of specific Amazon FSx backups, if a
1126          * <code>BackupIds</code> value is provided for that backup. Otherwise, it returns
1127          * all backups owned by your Amazon Web Services account in the Amazon Web Services
1128          * Region of the endpoint that you're calling.</p> <p>When retrieving all backups,
1129          * you can optionally specify the <code>MaxResults</code> parameter to limit the
1130          * number of backups in a response. If more backups remain, Amazon FSx returns a
1131          * <code>NextToken</code> value in the response. In this case, send a later request
1132          * with the <code>NextToken</code> request parameter set to the value of
1133          * <code>NextToken</code> from the last response.</p> <p>This action is used in an
1134          * iterative process to retrieve a list of your backups.
1135          * <code>DescribeBackups</code> is called first without a
1136          * <code>NextToken</code>value. Then the action continues to be called with the
1137          * <code>NextToken</code> parameter set to the value of the last
1138          * <code>NextToken</code> value until a response has no <code>NextToken</code>.</p>
1139          * <p>When using this action, keep the following in mind:</p> <ul> <li> <p>The
1140          * implementation might return fewer than <code>MaxResults</code> backup
1141          * descriptions while still including a <code>NextToken</code> value.</p> </li>
1142          * <li> <p>The order of backups returned in the response of one
1143          * <code>DescribeBackups</code> call and the order of backups returned across the
1144          * responses of a multi-call iteration is unspecified.</p> </li> </ul><p><h3>See
1145          * Also:</h3>   <a
1146          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DescribeBackups">AWS
1147          * API Reference</a></p>
1148          *
1149          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1150          */
1151         virtual void DescribeBackupsAsync(const Model::DescribeBackupsRequest& request, const DescribeBackupsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1152 
1153         /**
1154          * <p>Returns the description of specific Amazon FSx for Lustre data repository
1155          * tasks, if one or more <code>TaskIds</code> values are provided in the request,
1156          * or if filters are used in the request. You can use filters to narrow the
1157          * response to include just tasks for specific file systems, or tasks in a specific
1158          * lifecycle state. Otherwise, it returns all data repository tasks owned by your
1159          * Amazon Web Services account in the Amazon Web Services Region of the endpoint
1160          * that you're calling.</p> <p>When retrieving all tasks, you can paginate the
1161          * response by using the optional <code>MaxResults</code> parameter to limit the
1162          * number of tasks returned in a response. If more tasks remain, Amazon FSx returns
1163          * a <code>NextToken</code> value in the response. In this case, send a later
1164          * request with the <code>NextToken</code> request parameter set to the value of
1165          * <code>NextToken</code> from the last response.</p><p><h3>See Also:</h3>   <a
1166          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DescribeDataRepositoryTasks">AWS
1167          * API Reference</a></p>
1168          */
1169         virtual Model::DescribeDataRepositoryTasksOutcome DescribeDataRepositoryTasks(const Model::DescribeDataRepositoryTasksRequest& request) const;
1170 
1171         /**
1172          * <p>Returns the description of specific Amazon FSx for Lustre data repository
1173          * tasks, if one or more <code>TaskIds</code> values are provided in the request,
1174          * or if filters are used in the request. You can use filters to narrow the
1175          * response to include just tasks for specific file systems, or tasks in a specific
1176          * lifecycle state. Otherwise, it returns all data repository tasks owned by your
1177          * Amazon Web Services account in the Amazon Web Services Region of the endpoint
1178          * that you're calling.</p> <p>When retrieving all tasks, you can paginate the
1179          * response by using the optional <code>MaxResults</code> parameter to limit the
1180          * number of tasks returned in a response. If more tasks remain, Amazon FSx returns
1181          * a <code>NextToken</code> value in the response. In this case, send a later
1182          * request with the <code>NextToken</code> request parameter set to the value of
1183          * <code>NextToken</code> from the last response.</p><p><h3>See Also:</h3>   <a
1184          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DescribeDataRepositoryTasks">AWS
1185          * API Reference</a></p>
1186          *
1187          * returns a future to the operation so that it can be executed in parallel to other requests.
1188          */
1189         virtual Model::DescribeDataRepositoryTasksOutcomeCallable DescribeDataRepositoryTasksCallable(const Model::DescribeDataRepositoryTasksRequest& request) const;
1190 
1191         /**
1192          * <p>Returns the description of specific Amazon FSx for Lustre data repository
1193          * tasks, if one or more <code>TaskIds</code> values are provided in the request,
1194          * or if filters are used in the request. You can use filters to narrow the
1195          * response to include just tasks for specific file systems, or tasks in a specific
1196          * lifecycle state. Otherwise, it returns all data repository tasks owned by your
1197          * Amazon Web Services account in the Amazon Web Services Region of the endpoint
1198          * that you're calling.</p> <p>When retrieving all tasks, you can paginate the
1199          * response by using the optional <code>MaxResults</code> parameter to limit the
1200          * number of tasks returned in a response. If more tasks remain, Amazon FSx returns
1201          * a <code>NextToken</code> value in the response. In this case, send a later
1202          * request with the <code>NextToken</code> request parameter set to the value of
1203          * <code>NextToken</code> from the last response.</p><p><h3>See Also:</h3>   <a
1204          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DescribeDataRepositoryTasks">AWS
1205          * API Reference</a></p>
1206          *
1207          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1208          */
1209         virtual void DescribeDataRepositoryTasksAsync(const Model::DescribeDataRepositoryTasksRequest& request, const DescribeDataRepositoryTasksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1210 
1211         /**
1212          * <p>Returns the DNS aliases that are associated with the specified Amazon FSx for
1213          * Windows File Server file system. A history of all DNS aliases that have been
1214          * associated with and disassociated from the file system is available in the list
1215          * of <a>AdministrativeAction</a> provided in the <a>DescribeFileSystems</a>
1216          * operation response.</p><p><h3>See Also:</h3>   <a
1217          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DescribeFileSystemAliases">AWS
1218          * API Reference</a></p>
1219          */
1220         virtual Model::DescribeFileSystemAliasesOutcome DescribeFileSystemAliases(const Model::DescribeFileSystemAliasesRequest& request) const;
1221 
1222         /**
1223          * <p>Returns the DNS aliases that are associated with the specified Amazon FSx for
1224          * Windows File Server file system. A history of all DNS aliases that have been
1225          * associated with and disassociated from the file system is available in the list
1226          * of <a>AdministrativeAction</a> provided in the <a>DescribeFileSystems</a>
1227          * operation response.</p><p><h3>See Also:</h3>   <a
1228          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DescribeFileSystemAliases">AWS
1229          * API Reference</a></p>
1230          *
1231          * returns a future to the operation so that it can be executed in parallel to other requests.
1232          */
1233         virtual Model::DescribeFileSystemAliasesOutcomeCallable DescribeFileSystemAliasesCallable(const Model::DescribeFileSystemAliasesRequest& request) const;
1234 
1235         /**
1236          * <p>Returns the DNS aliases that are associated with the specified Amazon FSx for
1237          * Windows File Server file system. A history of all DNS aliases that have been
1238          * associated with and disassociated from the file system is available in the list
1239          * of <a>AdministrativeAction</a> provided in the <a>DescribeFileSystems</a>
1240          * operation response.</p><p><h3>See Also:</h3>   <a
1241          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DescribeFileSystemAliases">AWS
1242          * API Reference</a></p>
1243          *
1244          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1245          */
1246         virtual void DescribeFileSystemAliasesAsync(const Model::DescribeFileSystemAliasesRequest& request, const DescribeFileSystemAliasesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1247 
1248         /**
1249          * <p>Returns the description of specific Amazon FSx file systems, if a
1250          * <code>FileSystemIds</code> value is provided for that file system. Otherwise, it
1251          * returns descriptions of all file systems owned by your Amazon Web Services
1252          * account in the Amazon Web Services Region of the endpoint that you're
1253          * calling.</p> <p>When retrieving all file system descriptions, you can optionally
1254          * specify the <code>MaxResults</code> parameter to limit the number of
1255          * descriptions in a response. If more file system descriptions remain, Amazon FSx
1256          * returns a <code>NextToken</code> value in the response. In this case, send a
1257          * later request with the <code>NextToken</code> request parameter set to the value
1258          * of <code>NextToken</code> from the last response.</p> <p>This action is used in
1259          * an iterative process to retrieve a list of your file system descriptions.
1260          * <code>DescribeFileSystems</code> is called first without a
1261          * <code>NextToken</code>value. Then the action continues to be called with the
1262          * <code>NextToken</code> parameter set to the value of the last
1263          * <code>NextToken</code> value until a response has no <code>NextToken</code>.</p>
1264          * <p>When using this action, keep the following in mind:</p> <ul> <li> <p>The
1265          * implementation might return fewer than <code>MaxResults</code> file system
1266          * descriptions while still including a <code>NextToken</code> value.</p> </li>
1267          * <li> <p>The order of file systems returned in the response of one
1268          * <code>DescribeFileSystems</code> call and the order of file systems returned
1269          * across the responses of a multicall iteration is unspecified.</p> </li>
1270          * </ul><p><h3>See Also:</h3>   <a
1271          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DescribeFileSystems">AWS
1272          * API Reference</a></p>
1273          */
1274         virtual Model::DescribeFileSystemsOutcome DescribeFileSystems(const Model::DescribeFileSystemsRequest& request) const;
1275 
1276         /**
1277          * <p>Returns the description of specific Amazon FSx file systems, if a
1278          * <code>FileSystemIds</code> value is provided for that file system. Otherwise, it
1279          * returns descriptions of all file systems owned by your Amazon Web Services
1280          * account in the Amazon Web Services Region of the endpoint that you're
1281          * calling.</p> <p>When retrieving all file system descriptions, you can optionally
1282          * specify the <code>MaxResults</code> parameter to limit the number of
1283          * descriptions in a response. If more file system descriptions remain, Amazon FSx
1284          * returns a <code>NextToken</code> value in the response. In this case, send a
1285          * later request with the <code>NextToken</code> request parameter set to the value
1286          * of <code>NextToken</code> from the last response.</p> <p>This action is used in
1287          * an iterative process to retrieve a list of your file system descriptions.
1288          * <code>DescribeFileSystems</code> is called first without a
1289          * <code>NextToken</code>value. Then the action continues to be called with the
1290          * <code>NextToken</code> parameter set to the value of the last
1291          * <code>NextToken</code> value until a response has no <code>NextToken</code>.</p>
1292          * <p>When using this action, keep the following in mind:</p> <ul> <li> <p>The
1293          * implementation might return fewer than <code>MaxResults</code> file system
1294          * descriptions while still including a <code>NextToken</code> value.</p> </li>
1295          * <li> <p>The order of file systems returned in the response of one
1296          * <code>DescribeFileSystems</code> call and the order of file systems returned
1297          * across the responses of a multicall iteration is unspecified.</p> </li>
1298          * </ul><p><h3>See Also:</h3>   <a
1299          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DescribeFileSystems">AWS
1300          * API Reference</a></p>
1301          *
1302          * returns a future to the operation so that it can be executed in parallel to other requests.
1303          */
1304         virtual Model::DescribeFileSystemsOutcomeCallable DescribeFileSystemsCallable(const Model::DescribeFileSystemsRequest& request) const;
1305 
1306         /**
1307          * <p>Returns the description of specific Amazon FSx file systems, if a
1308          * <code>FileSystemIds</code> value is provided for that file system. Otherwise, it
1309          * returns descriptions of all file systems owned by your Amazon Web Services
1310          * account in the Amazon Web Services Region of the endpoint that you're
1311          * calling.</p> <p>When retrieving all file system descriptions, you can optionally
1312          * specify the <code>MaxResults</code> parameter to limit the number of
1313          * descriptions in a response. If more file system descriptions remain, Amazon FSx
1314          * returns a <code>NextToken</code> value in the response. In this case, send a
1315          * later request with the <code>NextToken</code> request parameter set to the value
1316          * of <code>NextToken</code> from the last response.</p> <p>This action is used in
1317          * an iterative process to retrieve a list of your file system descriptions.
1318          * <code>DescribeFileSystems</code> is called first without a
1319          * <code>NextToken</code>value. Then the action continues to be called with the
1320          * <code>NextToken</code> parameter set to the value of the last
1321          * <code>NextToken</code> value until a response has no <code>NextToken</code>.</p>
1322          * <p>When using this action, keep the following in mind:</p> <ul> <li> <p>The
1323          * implementation might return fewer than <code>MaxResults</code> file system
1324          * descriptions while still including a <code>NextToken</code> value.</p> </li>
1325          * <li> <p>The order of file systems returned in the response of one
1326          * <code>DescribeFileSystems</code> call and the order of file systems returned
1327          * across the responses of a multicall iteration is unspecified.</p> </li>
1328          * </ul><p><h3>See Also:</h3>   <a
1329          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DescribeFileSystems">AWS
1330          * API Reference</a></p>
1331          *
1332          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1333          */
1334         virtual void DescribeFileSystemsAsync(const Model::DescribeFileSystemsRequest& request, const DescribeFileSystemsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1335 
1336         /**
1337          * <p>Describes one or more Amazon FSx for NetApp ONTAP storage virtual machines
1338          * (SVMs).</p><p><h3>See Also:</h3>   <a
1339          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DescribeStorageVirtualMachines">AWS
1340          * API Reference</a></p>
1341          */
1342         virtual Model::DescribeStorageVirtualMachinesOutcome DescribeStorageVirtualMachines(const Model::DescribeStorageVirtualMachinesRequest& request) const;
1343 
1344         /**
1345          * <p>Describes one or more Amazon FSx for NetApp ONTAP storage virtual machines
1346          * (SVMs).</p><p><h3>See Also:</h3>   <a
1347          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DescribeStorageVirtualMachines">AWS
1348          * API Reference</a></p>
1349          *
1350          * returns a future to the operation so that it can be executed in parallel to other requests.
1351          */
1352         virtual Model::DescribeStorageVirtualMachinesOutcomeCallable DescribeStorageVirtualMachinesCallable(const Model::DescribeStorageVirtualMachinesRequest& request) const;
1353 
1354         /**
1355          * <p>Describes one or more Amazon FSx for NetApp ONTAP storage virtual machines
1356          * (SVMs).</p><p><h3>See Also:</h3>   <a
1357          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DescribeStorageVirtualMachines">AWS
1358          * API Reference</a></p>
1359          *
1360          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1361          */
1362         virtual void DescribeStorageVirtualMachinesAsync(const Model::DescribeStorageVirtualMachinesRequest& request, const DescribeStorageVirtualMachinesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1363 
1364         /**
1365          * <p>Describes one or more Amazon FSx for NetApp ONTAP volumes.</p><p><h3>See
1366          * Also:</h3>   <a
1367          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DescribeVolumes">AWS
1368          * API Reference</a></p>
1369          */
1370         virtual Model::DescribeVolumesOutcome DescribeVolumes(const Model::DescribeVolumesRequest& request) const;
1371 
1372         /**
1373          * <p>Describes one or more Amazon FSx for NetApp ONTAP volumes.</p><p><h3>See
1374          * Also:</h3>   <a
1375          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DescribeVolumes">AWS
1376          * API Reference</a></p>
1377          *
1378          * returns a future to the operation so that it can be executed in parallel to other requests.
1379          */
1380         virtual Model::DescribeVolumesOutcomeCallable DescribeVolumesCallable(const Model::DescribeVolumesRequest& request) const;
1381 
1382         /**
1383          * <p>Describes one or more Amazon FSx for NetApp ONTAP volumes.</p><p><h3>See
1384          * Also:</h3>   <a
1385          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DescribeVolumes">AWS
1386          * API Reference</a></p>
1387          *
1388          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1389          */
1390         virtual void DescribeVolumesAsync(const Model::DescribeVolumesRequest& request, const DescribeVolumesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1391 
1392         /**
1393          * <p>Use this action to disassociate, or remove, one or more Domain Name Service
1394          * (DNS) aliases from an Amazon FSx for Windows File Server file system. If you
1395          * attempt to disassociate a DNS alias that is not associated with the file system,
1396          * Amazon FSx responds with a 400 Bad Request. For more information, see <a
1397          * href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html">Working
1398          * with DNS Aliases</a>.</p> <p>The system generated response showing the DNS
1399          * aliases that Amazon FSx is attempting to disassociate from the file system. Use
1400          * the API operation to monitor the status of the aliases Amazon FSx is
1401          * disassociating with the file system.</p><p><h3>See Also:</h3>   <a
1402          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DisassociateFileSystemAliases">AWS
1403          * API Reference</a></p>
1404          */
1405         virtual Model::DisassociateFileSystemAliasesOutcome DisassociateFileSystemAliases(const Model::DisassociateFileSystemAliasesRequest& request) const;
1406 
1407         /**
1408          * <p>Use this action to disassociate, or remove, one or more Domain Name Service
1409          * (DNS) aliases from an Amazon FSx for Windows File Server file system. If you
1410          * attempt to disassociate a DNS alias that is not associated with the file system,
1411          * Amazon FSx responds with a 400 Bad Request. For more information, see <a
1412          * href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html">Working
1413          * with DNS Aliases</a>.</p> <p>The system generated response showing the DNS
1414          * aliases that Amazon FSx is attempting to disassociate from the file system. Use
1415          * the API operation to monitor the status of the aliases Amazon FSx is
1416          * disassociating with the file system.</p><p><h3>See Also:</h3>   <a
1417          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DisassociateFileSystemAliases">AWS
1418          * API Reference</a></p>
1419          *
1420          * returns a future to the operation so that it can be executed in parallel to other requests.
1421          */
1422         virtual Model::DisassociateFileSystemAliasesOutcomeCallable DisassociateFileSystemAliasesCallable(const Model::DisassociateFileSystemAliasesRequest& request) const;
1423 
1424         /**
1425          * <p>Use this action to disassociate, or remove, one or more Domain Name Service
1426          * (DNS) aliases from an Amazon FSx for Windows File Server file system. If you
1427          * attempt to disassociate a DNS alias that is not associated with the file system,
1428          * Amazon FSx responds with a 400 Bad Request. For more information, see <a
1429          * href="https://docs.aws.amazon.com/fsx/latest/WindowsGuide/managing-dns-aliases.html">Working
1430          * with DNS Aliases</a>.</p> <p>The system generated response showing the DNS
1431          * aliases that Amazon FSx is attempting to disassociate from the file system. Use
1432          * the API operation to monitor the status of the aliases Amazon FSx is
1433          * disassociating with the file system.</p><p><h3>See Also:</h3>   <a
1434          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/DisassociateFileSystemAliases">AWS
1435          * API Reference</a></p>
1436          *
1437          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1438          */
1439         virtual void DisassociateFileSystemAliasesAsync(const Model::DisassociateFileSystemAliasesRequest& request, const DisassociateFileSystemAliasesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1440 
1441         /**
1442          * <p>Lists tags for an Amazon FSx file systems and backups in the case of Amazon
1443          * FSx for Windows File Server.</p> <p>When retrieving all tags, you can optionally
1444          * specify the <code>MaxResults</code> parameter to limit the number of tags in a
1445          * response. If more tags remain, Amazon FSx returns a <code>NextToken</code> value
1446          * in the response. In this case, send a later request with the
1447          * <code>NextToken</code> request parameter set to the value of
1448          * <code>NextToken</code> from the last response.</p> <p>This action is used in an
1449          * iterative process to retrieve a list of your tags.
1450          * <code>ListTagsForResource</code> is called first without a
1451          * <code>NextToken</code>value. Then the action continues to be called with the
1452          * <code>NextToken</code> parameter set to the value of the last
1453          * <code>NextToken</code> value until a response has no <code>NextToken</code>.</p>
1454          * <p>When using this action, keep the following in mind:</p> <ul> <li> <p>The
1455          * implementation might return fewer than <code>MaxResults</code> file system
1456          * descriptions while still including a <code>NextToken</code> value.</p> </li>
1457          * <li> <p>The order of tags returned in the response of one
1458          * <code>ListTagsForResource</code> call and the order of tags returned across the
1459          * responses of a multi-call iteration is unspecified.</p> </li> </ul><p><h3>See
1460          * Also:</h3>   <a
1461          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/ListTagsForResource">AWS
1462          * API Reference</a></p>
1463          */
1464         virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const;
1465 
1466         /**
1467          * <p>Lists tags for an Amazon FSx file systems and backups in the case of Amazon
1468          * FSx for Windows File Server.</p> <p>When retrieving all tags, you can optionally
1469          * specify the <code>MaxResults</code> parameter to limit the number of tags in a
1470          * response. If more tags remain, Amazon FSx returns a <code>NextToken</code> value
1471          * in the response. In this case, send a later request with the
1472          * <code>NextToken</code> request parameter set to the value of
1473          * <code>NextToken</code> from the last response.</p> <p>This action is used in an
1474          * iterative process to retrieve a list of your tags.
1475          * <code>ListTagsForResource</code> is called first without a
1476          * <code>NextToken</code>value. Then the action continues to be called with the
1477          * <code>NextToken</code> parameter set to the value of the last
1478          * <code>NextToken</code> value until a response has no <code>NextToken</code>.</p>
1479          * <p>When using this action, keep the following in mind:</p> <ul> <li> <p>The
1480          * implementation might return fewer than <code>MaxResults</code> file system
1481          * descriptions while still including a <code>NextToken</code> value.</p> </li>
1482          * <li> <p>The order of tags returned in the response of one
1483          * <code>ListTagsForResource</code> call and the order of tags returned across the
1484          * responses of a multi-call iteration is unspecified.</p> </li> </ul><p><h3>See
1485          * Also:</h3>   <a
1486          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/ListTagsForResource">AWS
1487          * API Reference</a></p>
1488          *
1489          * returns a future to the operation so that it can be executed in parallel to other requests.
1490          */
1491         virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const;
1492 
1493         /**
1494          * <p>Lists tags for an Amazon FSx file systems and backups in the case of Amazon
1495          * FSx for Windows File Server.</p> <p>When retrieving all tags, you can optionally
1496          * specify the <code>MaxResults</code> parameter to limit the number of tags in a
1497          * response. If more tags remain, Amazon FSx returns a <code>NextToken</code> value
1498          * in the response. In this case, send a later request with the
1499          * <code>NextToken</code> request parameter set to the value of
1500          * <code>NextToken</code> from the last response.</p> <p>This action is used in an
1501          * iterative process to retrieve a list of your tags.
1502          * <code>ListTagsForResource</code> is called first without a
1503          * <code>NextToken</code>value. Then the action continues to be called with the
1504          * <code>NextToken</code> parameter set to the value of the last
1505          * <code>NextToken</code> value until a response has no <code>NextToken</code>.</p>
1506          * <p>When using this action, keep the following in mind:</p> <ul> <li> <p>The
1507          * implementation might return fewer than <code>MaxResults</code> file system
1508          * descriptions while still including a <code>NextToken</code> value.</p> </li>
1509          * <li> <p>The order of tags returned in the response of one
1510          * <code>ListTagsForResource</code> call and the order of tags returned across the
1511          * responses of a multi-call iteration is unspecified.</p> </li> </ul><p><h3>See
1512          * Also:</h3>   <a
1513          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/ListTagsForResource">AWS
1514          * API Reference</a></p>
1515          *
1516          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1517          */
1518         virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1519 
1520         /**
1521          * <p>Tags an Amazon FSx resource.</p><p><h3>See Also:</h3>   <a
1522          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/TagResource">AWS API
1523          * Reference</a></p>
1524          */
1525         virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const;
1526 
1527         /**
1528          * <p>Tags an Amazon FSx resource.</p><p><h3>See Also:</h3>   <a
1529          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/TagResource">AWS API
1530          * Reference</a></p>
1531          *
1532          * returns a future to the operation so that it can be executed in parallel to other requests.
1533          */
1534         virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const;
1535 
1536         /**
1537          * <p>Tags an Amazon FSx resource.</p><p><h3>See Also:</h3>   <a
1538          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/TagResource">AWS API
1539          * Reference</a></p>
1540          *
1541          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1542          */
1543         virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1544 
1545         /**
1546          * <p>This action removes a tag from an Amazon FSx resource.</p><p><h3>See
1547          * Also:</h3>   <a
1548          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/UntagResource">AWS
1549          * API Reference</a></p>
1550          */
1551         virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const;
1552 
1553         /**
1554          * <p>This action removes a tag from an Amazon FSx resource.</p><p><h3>See
1555          * Also:</h3>   <a
1556          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/UntagResource">AWS
1557          * API Reference</a></p>
1558          *
1559          * returns a future to the operation so that it can be executed in parallel to other requests.
1560          */
1561         virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const;
1562 
1563         /**
1564          * <p>This action removes a tag from an Amazon FSx resource.</p><p><h3>See
1565          * Also:</h3>   <a
1566          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/UntagResource">AWS
1567          * API Reference</a></p>
1568          *
1569          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1570          */
1571         virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1572 
1573         /**
1574          * <p>Use this operation to update the configuration of an existing Amazon FSx file
1575          * system. You can update multiple properties in a single request.</p> <p>For
1576          * Amazon FSx for Windows File Server file systems, you can update the following
1577          * properties:</p> <ul> <li> <p>AuditLogConfiguration</p> </li> <li>
1578          * <p>AutomaticBackupRetentionDays</p> </li> <li>
1579          * <p>DailyAutomaticBackupStartTime</p> </li> <li>
1580          * <p>SelfManagedActiveDirectoryConfiguration</p> </li> <li> <p>StorageCapacity</p>
1581          * </li> <li> <p>ThroughputCapacity</p> </li> <li>
1582          * <p>WeeklyMaintenanceStartTime</p> </li> </ul> <p>For Amazon FSx for Lustre file
1583          * systems, you can update the following properties:</p> <ul> <li>
1584          * <p>AutoImportPolicy</p> </li> <li> <p>AutomaticBackupRetentionDays</p> </li>
1585          * <li> <p>DailyAutomaticBackupStartTime</p> </li> <li> <p>DataCompressionType</p>
1586          * </li> <li> <p>StorageCapacity</p> </li> <li> <p>WeeklyMaintenanceStartTime</p>
1587          * </li> </ul> <p>For Amazon FSx for NetApp ONTAP file systems, you can update the
1588          * following properties:</p> <ul> <li> <p>AutomaticBackupRetentionDays</p> </li>
1589          * <li> <p>DailyAutomaticBackupStartTime</p> </li> <li> <p>FsxAdminPassword</p>
1590          * </li> <li> <p>WeeklyMaintenanceStartTime</p> </li> </ul><p><h3>See Also:</h3>
1591          * <a
1592          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/UpdateFileSystem">AWS
1593          * API Reference</a></p>
1594          */
1595         virtual Model::UpdateFileSystemOutcome UpdateFileSystem(const Model::UpdateFileSystemRequest& request) const;
1596 
1597         /**
1598          * <p>Use this operation to update the configuration of an existing Amazon FSx file
1599          * system. You can update multiple properties in a single request.</p> <p>For
1600          * Amazon FSx for Windows File Server file systems, you can update the following
1601          * properties:</p> <ul> <li> <p>AuditLogConfiguration</p> </li> <li>
1602          * <p>AutomaticBackupRetentionDays</p> </li> <li>
1603          * <p>DailyAutomaticBackupStartTime</p> </li> <li>
1604          * <p>SelfManagedActiveDirectoryConfiguration</p> </li> <li> <p>StorageCapacity</p>
1605          * </li> <li> <p>ThroughputCapacity</p> </li> <li>
1606          * <p>WeeklyMaintenanceStartTime</p> </li> </ul> <p>For Amazon FSx for Lustre file
1607          * systems, you can update the following properties:</p> <ul> <li>
1608          * <p>AutoImportPolicy</p> </li> <li> <p>AutomaticBackupRetentionDays</p> </li>
1609          * <li> <p>DailyAutomaticBackupStartTime</p> </li> <li> <p>DataCompressionType</p>
1610          * </li> <li> <p>StorageCapacity</p> </li> <li> <p>WeeklyMaintenanceStartTime</p>
1611          * </li> </ul> <p>For Amazon FSx for NetApp ONTAP file systems, you can update the
1612          * following properties:</p> <ul> <li> <p>AutomaticBackupRetentionDays</p> </li>
1613          * <li> <p>DailyAutomaticBackupStartTime</p> </li> <li> <p>FsxAdminPassword</p>
1614          * </li> <li> <p>WeeklyMaintenanceStartTime</p> </li> </ul><p><h3>See Also:</h3>
1615          * <a
1616          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/UpdateFileSystem">AWS
1617          * API Reference</a></p>
1618          *
1619          * returns a future to the operation so that it can be executed in parallel to other requests.
1620          */
1621         virtual Model::UpdateFileSystemOutcomeCallable UpdateFileSystemCallable(const Model::UpdateFileSystemRequest& request) const;
1622 
1623         /**
1624          * <p>Use this operation to update the configuration of an existing Amazon FSx file
1625          * system. You can update multiple properties in a single request.</p> <p>For
1626          * Amazon FSx for Windows File Server file systems, you can update the following
1627          * properties:</p> <ul> <li> <p>AuditLogConfiguration</p> </li> <li>
1628          * <p>AutomaticBackupRetentionDays</p> </li> <li>
1629          * <p>DailyAutomaticBackupStartTime</p> </li> <li>
1630          * <p>SelfManagedActiveDirectoryConfiguration</p> </li> <li> <p>StorageCapacity</p>
1631          * </li> <li> <p>ThroughputCapacity</p> </li> <li>
1632          * <p>WeeklyMaintenanceStartTime</p> </li> </ul> <p>For Amazon FSx for Lustre file
1633          * systems, you can update the following properties:</p> <ul> <li>
1634          * <p>AutoImportPolicy</p> </li> <li> <p>AutomaticBackupRetentionDays</p> </li>
1635          * <li> <p>DailyAutomaticBackupStartTime</p> </li> <li> <p>DataCompressionType</p>
1636          * </li> <li> <p>StorageCapacity</p> </li> <li> <p>WeeklyMaintenanceStartTime</p>
1637          * </li> </ul> <p>For Amazon FSx for NetApp ONTAP file systems, you can update the
1638          * following properties:</p> <ul> <li> <p>AutomaticBackupRetentionDays</p> </li>
1639          * <li> <p>DailyAutomaticBackupStartTime</p> </li> <li> <p>FsxAdminPassword</p>
1640          * </li> <li> <p>WeeklyMaintenanceStartTime</p> </li> </ul><p><h3>See Also:</h3>
1641          * <a
1642          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/UpdateFileSystem">AWS
1643          * API Reference</a></p>
1644          *
1645          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1646          */
1647         virtual void UpdateFileSystemAsync(const Model::UpdateFileSystemRequest& request, const UpdateFileSystemResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1648 
1649         /**
1650          * <p>Updates an Amazon FSx for ONTAP storage virtual machine (SVM).</p><p><h3>See
1651          * Also:</h3>   <a
1652          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/UpdateStorageVirtualMachine">AWS
1653          * API Reference</a></p>
1654          */
1655         virtual Model::UpdateStorageVirtualMachineOutcome UpdateStorageVirtualMachine(const Model::UpdateStorageVirtualMachineRequest& request) const;
1656 
1657         /**
1658          * <p>Updates an Amazon FSx for ONTAP storage virtual machine (SVM).</p><p><h3>See
1659          * Also:</h3>   <a
1660          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/UpdateStorageVirtualMachine">AWS
1661          * API Reference</a></p>
1662          *
1663          * returns a future to the operation so that it can be executed in parallel to other requests.
1664          */
1665         virtual Model::UpdateStorageVirtualMachineOutcomeCallable UpdateStorageVirtualMachineCallable(const Model::UpdateStorageVirtualMachineRequest& request) const;
1666 
1667         /**
1668          * <p>Updates an Amazon FSx for ONTAP storage virtual machine (SVM).</p><p><h3>See
1669          * Also:</h3>   <a
1670          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/UpdateStorageVirtualMachine">AWS
1671          * API Reference</a></p>
1672          *
1673          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1674          */
1675         virtual void UpdateStorageVirtualMachineAsync(const Model::UpdateStorageVirtualMachineRequest& request, const UpdateStorageVirtualMachineResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1676 
1677         /**
1678          * <p>Updates an Amazon FSx for NetApp ONTAP volume's configuration.</p><p><h3>See
1679          * Also:</h3>   <a
1680          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/UpdateVolume">AWS
1681          * API Reference</a></p>
1682          */
1683         virtual Model::UpdateVolumeOutcome UpdateVolume(const Model::UpdateVolumeRequest& request) const;
1684 
1685         /**
1686          * <p>Updates an Amazon FSx for NetApp ONTAP volume's configuration.</p><p><h3>See
1687          * Also:</h3>   <a
1688          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/UpdateVolume">AWS
1689          * API Reference</a></p>
1690          *
1691          * returns a future to the operation so that it can be executed in parallel to other requests.
1692          */
1693         virtual Model::UpdateVolumeOutcomeCallable UpdateVolumeCallable(const Model::UpdateVolumeRequest& request) const;
1694 
1695         /**
1696          * <p>Updates an Amazon FSx for NetApp ONTAP volume's configuration.</p><p><h3>See
1697          * Also:</h3>   <a
1698          * href="http://docs.aws.amazon.com/goto/WebAPI/fsx-2018-03-01/UpdateVolume">AWS
1699          * API Reference</a></p>
1700          *
1701          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1702          */
1703         virtual void UpdateVolumeAsync(const Model::UpdateVolumeRequest& request, const UpdateVolumeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1704 
1705 
1706       void OverrideEndpoint(const Aws::String& endpoint);
1707     private:
1708       void init(const Aws::Client::ClientConfiguration& clientConfiguration);
1709         void AssociateFileSystemAliasesAsyncHelper(const Model::AssociateFileSystemAliasesRequest& request, const AssociateFileSystemAliasesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1710         void CancelDataRepositoryTaskAsyncHelper(const Model::CancelDataRepositoryTaskRequest& request, const CancelDataRepositoryTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1711         void CopyBackupAsyncHelper(const Model::CopyBackupRequest& request, const CopyBackupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1712         void CreateBackupAsyncHelper(const Model::CreateBackupRequest& request, const CreateBackupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1713         void CreateDataRepositoryTaskAsyncHelper(const Model::CreateDataRepositoryTaskRequest& request, const CreateDataRepositoryTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1714         void CreateFileSystemAsyncHelper(const Model::CreateFileSystemRequest& request, const CreateFileSystemResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1715         void CreateFileSystemFromBackupAsyncHelper(const Model::CreateFileSystemFromBackupRequest& request, const CreateFileSystemFromBackupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1716         void CreateStorageVirtualMachineAsyncHelper(const Model::CreateStorageVirtualMachineRequest& request, const CreateStorageVirtualMachineResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1717         void CreateVolumeAsyncHelper(const Model::CreateVolumeRequest& request, const CreateVolumeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1718         void CreateVolumeFromBackupAsyncHelper(const Model::CreateVolumeFromBackupRequest& request, const CreateVolumeFromBackupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1719         void DeleteBackupAsyncHelper(const Model::DeleteBackupRequest& request, const DeleteBackupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1720         void DeleteFileSystemAsyncHelper(const Model::DeleteFileSystemRequest& request, const DeleteFileSystemResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1721         void DeleteStorageVirtualMachineAsyncHelper(const Model::DeleteStorageVirtualMachineRequest& request, const DeleteStorageVirtualMachineResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1722         void DeleteVolumeAsyncHelper(const Model::DeleteVolumeRequest& request, const DeleteVolumeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1723         void DescribeBackupsAsyncHelper(const Model::DescribeBackupsRequest& request, const DescribeBackupsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1724         void DescribeDataRepositoryTasksAsyncHelper(const Model::DescribeDataRepositoryTasksRequest& request, const DescribeDataRepositoryTasksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1725         void DescribeFileSystemAliasesAsyncHelper(const Model::DescribeFileSystemAliasesRequest& request, const DescribeFileSystemAliasesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1726         void DescribeFileSystemsAsyncHelper(const Model::DescribeFileSystemsRequest& request, const DescribeFileSystemsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1727         void DescribeStorageVirtualMachinesAsyncHelper(const Model::DescribeStorageVirtualMachinesRequest& request, const DescribeStorageVirtualMachinesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1728         void DescribeVolumesAsyncHelper(const Model::DescribeVolumesRequest& request, const DescribeVolumesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1729         void DisassociateFileSystemAliasesAsyncHelper(const Model::DisassociateFileSystemAliasesRequest& request, const DisassociateFileSystemAliasesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1730         void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1731         void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1732         void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1733         void UpdateFileSystemAsyncHelper(const Model::UpdateFileSystemRequest& request, const UpdateFileSystemResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1734         void UpdateStorageVirtualMachineAsyncHelper(const Model::UpdateStorageVirtualMachineRequest& request, const UpdateStorageVirtualMachineResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1735         void UpdateVolumeAsyncHelper(const Model::UpdateVolumeRequest& request, const UpdateVolumeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1736 
1737       Aws::String m_uri;
1738       Aws::String m_configScheme;
1739       std::shared_ptr<Aws::Utils::Threading::Executor> m_executor;
1740   };
1741 
1742 } // namespace FSx
1743 } // namespace Aws
1744