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/panorama/Panorama_EXPORTS.h>
8 #include <aws/panorama/PanoramaErrors.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/panorama/model/CreateApplicationInstanceResult.h>
15 #include <aws/panorama/model/CreateJobForDevicesResult.h>
16 #include <aws/panorama/model/CreateNodeFromTemplateJobResult.h>
17 #include <aws/panorama/model/CreatePackageResult.h>
18 #include <aws/panorama/model/CreatePackageImportJobResult.h>
19 #include <aws/panorama/model/DeleteDeviceResult.h>
20 #include <aws/panorama/model/DeletePackageResult.h>
21 #include <aws/panorama/model/DeregisterPackageVersionResult.h>
22 #include <aws/panorama/model/DescribeApplicationInstanceResult.h>
23 #include <aws/panorama/model/DescribeApplicationInstanceDetailsResult.h>
24 #include <aws/panorama/model/DescribeDeviceResult.h>
25 #include <aws/panorama/model/DescribeDeviceJobResult.h>
26 #include <aws/panorama/model/DescribeNodeResult.h>
27 #include <aws/panorama/model/DescribeNodeFromTemplateJobResult.h>
28 #include <aws/panorama/model/DescribePackageResult.h>
29 #include <aws/panorama/model/DescribePackageImportJobResult.h>
30 #include <aws/panorama/model/DescribePackageVersionResult.h>
31 #include <aws/panorama/model/ListApplicationInstanceDependenciesResult.h>
32 #include <aws/panorama/model/ListApplicationInstanceNodeInstancesResult.h>
33 #include <aws/panorama/model/ListApplicationInstancesResult.h>
34 #include <aws/panorama/model/ListDevicesResult.h>
35 #include <aws/panorama/model/ListDevicesJobsResult.h>
36 #include <aws/panorama/model/ListNodeFromTemplateJobsResult.h>
37 #include <aws/panorama/model/ListNodesResult.h>
38 #include <aws/panorama/model/ListPackageImportJobsResult.h>
39 #include <aws/panorama/model/ListPackagesResult.h>
40 #include <aws/panorama/model/ListTagsForResourceResult.h>
41 #include <aws/panorama/model/ProvisionDeviceResult.h>
42 #include <aws/panorama/model/RegisterPackageVersionResult.h>
43 #include <aws/panorama/model/RemoveApplicationInstanceResult.h>
44 #include <aws/panorama/model/TagResourceResult.h>
45 #include <aws/panorama/model/UntagResourceResult.h>
46 #include <aws/panorama/model/UpdateDeviceMetadataResult.h>
47 #include <aws/core/client/AsyncCallerContext.h>
48 #include <aws/core/http/HttpTypes.h>
49 #include <future>
50 #include <functional>
51 
52 namespace Aws
53 {
54 
55 namespace Http
56 {
57   class HttpClient;
58   class HttpClientFactory;
59 } // namespace Http
60 
61 namespace Utils
62 {
63   template< typename R, typename E> class Outcome;
64 namespace Threading
65 {
66   class Executor;
67 } // namespace Threading
68 } // namespace Utils
69 
70 namespace Auth
71 {
72   class AWSCredentials;
73   class AWSCredentialsProvider;
74 } // namespace Auth
75 
76 namespace Client
77 {
78   class RetryStrategy;
79 } // namespace Client
80 
81 namespace Panorama
82 {
83 
84 namespace Model
85 {
86         class CreateApplicationInstanceRequest;
87         class CreateJobForDevicesRequest;
88         class CreateNodeFromTemplateJobRequest;
89         class CreatePackageRequest;
90         class CreatePackageImportJobRequest;
91         class DeleteDeviceRequest;
92         class DeletePackageRequest;
93         class DeregisterPackageVersionRequest;
94         class DescribeApplicationInstanceRequest;
95         class DescribeApplicationInstanceDetailsRequest;
96         class DescribeDeviceRequest;
97         class DescribeDeviceJobRequest;
98         class DescribeNodeRequest;
99         class DescribeNodeFromTemplateJobRequest;
100         class DescribePackageRequest;
101         class DescribePackageImportJobRequest;
102         class DescribePackageVersionRequest;
103         class ListApplicationInstanceDependenciesRequest;
104         class ListApplicationInstanceNodeInstancesRequest;
105         class ListApplicationInstancesRequest;
106         class ListDevicesRequest;
107         class ListDevicesJobsRequest;
108         class ListNodeFromTemplateJobsRequest;
109         class ListNodesRequest;
110         class ListPackageImportJobsRequest;
111         class ListPackagesRequest;
112         class ListTagsForResourceRequest;
113         class ProvisionDeviceRequest;
114         class RegisterPackageVersionRequest;
115         class RemoveApplicationInstanceRequest;
116         class TagResourceRequest;
117         class UntagResourceRequest;
118         class UpdateDeviceMetadataRequest;
119 
120         typedef Aws::Utils::Outcome<CreateApplicationInstanceResult, PanoramaError> CreateApplicationInstanceOutcome;
121         typedef Aws::Utils::Outcome<CreateJobForDevicesResult, PanoramaError> CreateJobForDevicesOutcome;
122         typedef Aws::Utils::Outcome<CreateNodeFromTemplateJobResult, PanoramaError> CreateNodeFromTemplateJobOutcome;
123         typedef Aws::Utils::Outcome<CreatePackageResult, PanoramaError> CreatePackageOutcome;
124         typedef Aws::Utils::Outcome<CreatePackageImportJobResult, PanoramaError> CreatePackageImportJobOutcome;
125         typedef Aws::Utils::Outcome<DeleteDeviceResult, PanoramaError> DeleteDeviceOutcome;
126         typedef Aws::Utils::Outcome<DeletePackageResult, PanoramaError> DeletePackageOutcome;
127         typedef Aws::Utils::Outcome<DeregisterPackageVersionResult, PanoramaError> DeregisterPackageVersionOutcome;
128         typedef Aws::Utils::Outcome<DescribeApplicationInstanceResult, PanoramaError> DescribeApplicationInstanceOutcome;
129         typedef Aws::Utils::Outcome<DescribeApplicationInstanceDetailsResult, PanoramaError> DescribeApplicationInstanceDetailsOutcome;
130         typedef Aws::Utils::Outcome<DescribeDeviceResult, PanoramaError> DescribeDeviceOutcome;
131         typedef Aws::Utils::Outcome<DescribeDeviceJobResult, PanoramaError> DescribeDeviceJobOutcome;
132         typedef Aws::Utils::Outcome<DescribeNodeResult, PanoramaError> DescribeNodeOutcome;
133         typedef Aws::Utils::Outcome<DescribeNodeFromTemplateJobResult, PanoramaError> DescribeNodeFromTemplateJobOutcome;
134         typedef Aws::Utils::Outcome<DescribePackageResult, PanoramaError> DescribePackageOutcome;
135         typedef Aws::Utils::Outcome<DescribePackageImportJobResult, PanoramaError> DescribePackageImportJobOutcome;
136         typedef Aws::Utils::Outcome<DescribePackageVersionResult, PanoramaError> DescribePackageVersionOutcome;
137         typedef Aws::Utils::Outcome<ListApplicationInstanceDependenciesResult, PanoramaError> ListApplicationInstanceDependenciesOutcome;
138         typedef Aws::Utils::Outcome<ListApplicationInstanceNodeInstancesResult, PanoramaError> ListApplicationInstanceNodeInstancesOutcome;
139         typedef Aws::Utils::Outcome<ListApplicationInstancesResult, PanoramaError> ListApplicationInstancesOutcome;
140         typedef Aws::Utils::Outcome<ListDevicesResult, PanoramaError> ListDevicesOutcome;
141         typedef Aws::Utils::Outcome<ListDevicesJobsResult, PanoramaError> ListDevicesJobsOutcome;
142         typedef Aws::Utils::Outcome<ListNodeFromTemplateJobsResult, PanoramaError> ListNodeFromTemplateJobsOutcome;
143         typedef Aws::Utils::Outcome<ListNodesResult, PanoramaError> ListNodesOutcome;
144         typedef Aws::Utils::Outcome<ListPackageImportJobsResult, PanoramaError> ListPackageImportJobsOutcome;
145         typedef Aws::Utils::Outcome<ListPackagesResult, PanoramaError> ListPackagesOutcome;
146         typedef Aws::Utils::Outcome<ListTagsForResourceResult, PanoramaError> ListTagsForResourceOutcome;
147         typedef Aws::Utils::Outcome<ProvisionDeviceResult, PanoramaError> ProvisionDeviceOutcome;
148         typedef Aws::Utils::Outcome<RegisterPackageVersionResult, PanoramaError> RegisterPackageVersionOutcome;
149         typedef Aws::Utils::Outcome<RemoveApplicationInstanceResult, PanoramaError> RemoveApplicationInstanceOutcome;
150         typedef Aws::Utils::Outcome<TagResourceResult, PanoramaError> TagResourceOutcome;
151         typedef Aws::Utils::Outcome<UntagResourceResult, PanoramaError> UntagResourceOutcome;
152         typedef Aws::Utils::Outcome<UpdateDeviceMetadataResult, PanoramaError> UpdateDeviceMetadataOutcome;
153 
154         typedef std::future<CreateApplicationInstanceOutcome> CreateApplicationInstanceOutcomeCallable;
155         typedef std::future<CreateJobForDevicesOutcome> CreateJobForDevicesOutcomeCallable;
156         typedef std::future<CreateNodeFromTemplateJobOutcome> CreateNodeFromTemplateJobOutcomeCallable;
157         typedef std::future<CreatePackageOutcome> CreatePackageOutcomeCallable;
158         typedef std::future<CreatePackageImportJobOutcome> CreatePackageImportJobOutcomeCallable;
159         typedef std::future<DeleteDeviceOutcome> DeleteDeviceOutcomeCallable;
160         typedef std::future<DeletePackageOutcome> DeletePackageOutcomeCallable;
161         typedef std::future<DeregisterPackageVersionOutcome> DeregisterPackageVersionOutcomeCallable;
162         typedef std::future<DescribeApplicationInstanceOutcome> DescribeApplicationInstanceOutcomeCallable;
163         typedef std::future<DescribeApplicationInstanceDetailsOutcome> DescribeApplicationInstanceDetailsOutcomeCallable;
164         typedef std::future<DescribeDeviceOutcome> DescribeDeviceOutcomeCallable;
165         typedef std::future<DescribeDeviceJobOutcome> DescribeDeviceJobOutcomeCallable;
166         typedef std::future<DescribeNodeOutcome> DescribeNodeOutcomeCallable;
167         typedef std::future<DescribeNodeFromTemplateJobOutcome> DescribeNodeFromTemplateJobOutcomeCallable;
168         typedef std::future<DescribePackageOutcome> DescribePackageOutcomeCallable;
169         typedef std::future<DescribePackageImportJobOutcome> DescribePackageImportJobOutcomeCallable;
170         typedef std::future<DescribePackageVersionOutcome> DescribePackageVersionOutcomeCallable;
171         typedef std::future<ListApplicationInstanceDependenciesOutcome> ListApplicationInstanceDependenciesOutcomeCallable;
172         typedef std::future<ListApplicationInstanceNodeInstancesOutcome> ListApplicationInstanceNodeInstancesOutcomeCallable;
173         typedef std::future<ListApplicationInstancesOutcome> ListApplicationInstancesOutcomeCallable;
174         typedef std::future<ListDevicesOutcome> ListDevicesOutcomeCallable;
175         typedef std::future<ListDevicesJobsOutcome> ListDevicesJobsOutcomeCallable;
176         typedef std::future<ListNodeFromTemplateJobsOutcome> ListNodeFromTemplateJobsOutcomeCallable;
177         typedef std::future<ListNodesOutcome> ListNodesOutcomeCallable;
178         typedef std::future<ListPackageImportJobsOutcome> ListPackageImportJobsOutcomeCallable;
179         typedef std::future<ListPackagesOutcome> ListPackagesOutcomeCallable;
180         typedef std::future<ListTagsForResourceOutcome> ListTagsForResourceOutcomeCallable;
181         typedef std::future<ProvisionDeviceOutcome> ProvisionDeviceOutcomeCallable;
182         typedef std::future<RegisterPackageVersionOutcome> RegisterPackageVersionOutcomeCallable;
183         typedef std::future<RemoveApplicationInstanceOutcome> RemoveApplicationInstanceOutcomeCallable;
184         typedef std::future<TagResourceOutcome> TagResourceOutcomeCallable;
185         typedef std::future<UntagResourceOutcome> UntagResourceOutcomeCallable;
186         typedef std::future<UpdateDeviceMetadataOutcome> UpdateDeviceMetadataOutcomeCallable;
187 } // namespace Model
188 
189   class PanoramaClient;
190 
191     typedef std::function<void(const PanoramaClient*, const Model::CreateApplicationInstanceRequest&, const Model::CreateApplicationInstanceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateApplicationInstanceResponseReceivedHandler;
192     typedef std::function<void(const PanoramaClient*, const Model::CreateJobForDevicesRequest&, const Model::CreateJobForDevicesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateJobForDevicesResponseReceivedHandler;
193     typedef std::function<void(const PanoramaClient*, const Model::CreateNodeFromTemplateJobRequest&, const Model::CreateNodeFromTemplateJobOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateNodeFromTemplateJobResponseReceivedHandler;
194     typedef std::function<void(const PanoramaClient*, const Model::CreatePackageRequest&, const Model::CreatePackageOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreatePackageResponseReceivedHandler;
195     typedef std::function<void(const PanoramaClient*, const Model::CreatePackageImportJobRequest&, const Model::CreatePackageImportJobOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreatePackageImportJobResponseReceivedHandler;
196     typedef std::function<void(const PanoramaClient*, const Model::DeleteDeviceRequest&, const Model::DeleteDeviceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteDeviceResponseReceivedHandler;
197     typedef std::function<void(const PanoramaClient*, const Model::DeletePackageRequest&, const Model::DeletePackageOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeletePackageResponseReceivedHandler;
198     typedef std::function<void(const PanoramaClient*, const Model::DeregisterPackageVersionRequest&, const Model::DeregisterPackageVersionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeregisterPackageVersionResponseReceivedHandler;
199     typedef std::function<void(const PanoramaClient*, const Model::DescribeApplicationInstanceRequest&, const Model::DescribeApplicationInstanceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeApplicationInstanceResponseReceivedHandler;
200     typedef std::function<void(const PanoramaClient*, const Model::DescribeApplicationInstanceDetailsRequest&, const Model::DescribeApplicationInstanceDetailsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeApplicationInstanceDetailsResponseReceivedHandler;
201     typedef std::function<void(const PanoramaClient*, const Model::DescribeDeviceRequest&, const Model::DescribeDeviceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeDeviceResponseReceivedHandler;
202     typedef std::function<void(const PanoramaClient*, const Model::DescribeDeviceJobRequest&, const Model::DescribeDeviceJobOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeDeviceJobResponseReceivedHandler;
203     typedef std::function<void(const PanoramaClient*, const Model::DescribeNodeRequest&, const Model::DescribeNodeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeNodeResponseReceivedHandler;
204     typedef std::function<void(const PanoramaClient*, const Model::DescribeNodeFromTemplateJobRequest&, const Model::DescribeNodeFromTemplateJobOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeNodeFromTemplateJobResponseReceivedHandler;
205     typedef std::function<void(const PanoramaClient*, const Model::DescribePackageRequest&, const Model::DescribePackageOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribePackageResponseReceivedHandler;
206     typedef std::function<void(const PanoramaClient*, const Model::DescribePackageImportJobRequest&, const Model::DescribePackageImportJobOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribePackageImportJobResponseReceivedHandler;
207     typedef std::function<void(const PanoramaClient*, const Model::DescribePackageVersionRequest&, const Model::DescribePackageVersionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribePackageVersionResponseReceivedHandler;
208     typedef std::function<void(const PanoramaClient*, const Model::ListApplicationInstanceDependenciesRequest&, const Model::ListApplicationInstanceDependenciesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListApplicationInstanceDependenciesResponseReceivedHandler;
209     typedef std::function<void(const PanoramaClient*, const Model::ListApplicationInstanceNodeInstancesRequest&, const Model::ListApplicationInstanceNodeInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListApplicationInstanceNodeInstancesResponseReceivedHandler;
210     typedef std::function<void(const PanoramaClient*, const Model::ListApplicationInstancesRequest&, const Model::ListApplicationInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListApplicationInstancesResponseReceivedHandler;
211     typedef std::function<void(const PanoramaClient*, const Model::ListDevicesRequest&, const Model::ListDevicesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListDevicesResponseReceivedHandler;
212     typedef std::function<void(const PanoramaClient*, const Model::ListDevicesJobsRequest&, const Model::ListDevicesJobsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListDevicesJobsResponseReceivedHandler;
213     typedef std::function<void(const PanoramaClient*, const Model::ListNodeFromTemplateJobsRequest&, const Model::ListNodeFromTemplateJobsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListNodeFromTemplateJobsResponseReceivedHandler;
214     typedef std::function<void(const PanoramaClient*, const Model::ListNodesRequest&, const Model::ListNodesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListNodesResponseReceivedHandler;
215     typedef std::function<void(const PanoramaClient*, const Model::ListPackageImportJobsRequest&, const Model::ListPackageImportJobsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListPackageImportJobsResponseReceivedHandler;
216     typedef std::function<void(const PanoramaClient*, const Model::ListPackagesRequest&, const Model::ListPackagesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListPackagesResponseReceivedHandler;
217     typedef std::function<void(const PanoramaClient*, const Model::ListTagsForResourceRequest&, const Model::ListTagsForResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTagsForResourceResponseReceivedHandler;
218     typedef std::function<void(const PanoramaClient*, const Model::ProvisionDeviceRequest&, const Model::ProvisionDeviceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ProvisionDeviceResponseReceivedHandler;
219     typedef std::function<void(const PanoramaClient*, const Model::RegisterPackageVersionRequest&, const Model::RegisterPackageVersionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RegisterPackageVersionResponseReceivedHandler;
220     typedef std::function<void(const PanoramaClient*, const Model::RemoveApplicationInstanceRequest&, const Model::RemoveApplicationInstanceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RemoveApplicationInstanceResponseReceivedHandler;
221     typedef std::function<void(const PanoramaClient*, const Model::TagResourceRequest&, const Model::TagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TagResourceResponseReceivedHandler;
222     typedef std::function<void(const PanoramaClient*, const Model::UntagResourceRequest&, const Model::UntagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UntagResourceResponseReceivedHandler;
223     typedef std::function<void(const PanoramaClient*, const Model::UpdateDeviceMetadataRequest&, const Model::UpdateDeviceMetadataOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateDeviceMetadataResponseReceivedHandler;
224 
225   /**
226    * <fullname>AWS Panorama</fullname> <p> <b>Overview</b> </p> <p>This is the <i>AWS
227    * Panorama API Reference</i>. For an introduction to the service, see <a
228    * href="https://docs.aws.amazon.com/panorama/latest/dev/panorama-welcome.html">What
229    * is AWS Panorama?</a> in the <i>AWS Panorama Developer Guide</i>.</p>
230    */
231   class AWS_PANORAMA_API PanoramaClient : public Aws::Client::AWSJsonClient
232   {
233     public:
234       typedef Aws::Client::AWSJsonClient BASECLASS;
235 
236        /**
237         * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
238         * is not specified, it will be initialized to default values.
239         */
240         PanoramaClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
241 
242        /**
243         * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
244         * is not specified, it will be initialized to default values.
245         */
246         PanoramaClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
247 
248        /**
249         * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
250         * the default http client factory will be used
251         */
252         PanoramaClient(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
253             const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
254 
255         virtual ~PanoramaClient();
256 
257 
258         /**
259          * <p>Creates an application instance and deploys it to a device.</p><p><h3>See
260          * Also:</h3>   <a
261          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/CreateApplicationInstance">AWS
262          * API Reference</a></p>
263          */
264         virtual Model::CreateApplicationInstanceOutcome CreateApplicationInstance(const Model::CreateApplicationInstanceRequest& request) const;
265 
266         /**
267          * <p>Creates an application instance and deploys it to a device.</p><p><h3>See
268          * Also:</h3>   <a
269          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/CreateApplicationInstance">AWS
270          * API Reference</a></p>
271          *
272          * returns a future to the operation so that it can be executed in parallel to other requests.
273          */
274         virtual Model::CreateApplicationInstanceOutcomeCallable CreateApplicationInstanceCallable(const Model::CreateApplicationInstanceRequest& request) const;
275 
276         /**
277          * <p>Creates an application instance and deploys it to a device.</p><p><h3>See
278          * Also:</h3>   <a
279          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/CreateApplicationInstance">AWS
280          * API Reference</a></p>
281          *
282          * Queues the request into a thread executor and triggers associated callback when operation has finished.
283          */
284         virtual void CreateApplicationInstanceAsync(const Model::CreateApplicationInstanceRequest& request, const CreateApplicationInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
285 
286         /**
287          * <p>Creates a job to run on one or more devices.</p><p><h3>See Also:</h3>   <a
288          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/CreateJobForDevices">AWS
289          * API Reference</a></p>
290          */
291         virtual Model::CreateJobForDevicesOutcome CreateJobForDevices(const Model::CreateJobForDevicesRequest& request) const;
292 
293         /**
294          * <p>Creates a job to run on one or more devices.</p><p><h3>See Also:</h3>   <a
295          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/CreateJobForDevices">AWS
296          * API Reference</a></p>
297          *
298          * returns a future to the operation so that it can be executed in parallel to other requests.
299          */
300         virtual Model::CreateJobForDevicesOutcomeCallable CreateJobForDevicesCallable(const Model::CreateJobForDevicesRequest& request) const;
301 
302         /**
303          * <p>Creates a job to run on one or more devices.</p><p><h3>See Also:</h3>   <a
304          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/CreateJobForDevices">AWS
305          * API Reference</a></p>
306          *
307          * Queues the request into a thread executor and triggers associated callback when operation has finished.
308          */
309         virtual void CreateJobForDevicesAsync(const Model::CreateJobForDevicesRequest& request, const CreateJobForDevicesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
310 
311         /**
312          * <p>Creates a camera stream node.</p><p><h3>See Also:</h3>   <a
313          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/CreateNodeFromTemplateJob">AWS
314          * API Reference</a></p>
315          */
316         virtual Model::CreateNodeFromTemplateJobOutcome CreateNodeFromTemplateJob(const Model::CreateNodeFromTemplateJobRequest& request) const;
317 
318         /**
319          * <p>Creates a camera stream node.</p><p><h3>See Also:</h3>   <a
320          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/CreateNodeFromTemplateJob">AWS
321          * API Reference</a></p>
322          *
323          * returns a future to the operation so that it can be executed in parallel to other requests.
324          */
325         virtual Model::CreateNodeFromTemplateJobOutcomeCallable CreateNodeFromTemplateJobCallable(const Model::CreateNodeFromTemplateJobRequest& request) const;
326 
327         /**
328          * <p>Creates a camera stream node.</p><p><h3>See Also:</h3>   <a
329          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/CreateNodeFromTemplateJob">AWS
330          * API Reference</a></p>
331          *
332          * Queues the request into a thread executor and triggers associated callback when operation has finished.
333          */
334         virtual void CreateNodeFromTemplateJobAsync(const Model::CreateNodeFromTemplateJobRequest& request, const CreateNodeFromTemplateJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
335 
336         /**
337          * <p>Creates a package and storage location in an Amazon S3 access
338          * point.</p><p><h3>See Also:</h3>   <a
339          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/CreatePackage">AWS
340          * API Reference</a></p>
341          */
342         virtual Model::CreatePackageOutcome CreatePackage(const Model::CreatePackageRequest& request) const;
343 
344         /**
345          * <p>Creates a package and storage location in an Amazon S3 access
346          * point.</p><p><h3>See Also:</h3>   <a
347          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/CreatePackage">AWS
348          * API Reference</a></p>
349          *
350          * returns a future to the operation so that it can be executed in parallel to other requests.
351          */
352         virtual Model::CreatePackageOutcomeCallable CreatePackageCallable(const Model::CreatePackageRequest& request) const;
353 
354         /**
355          * <p>Creates a package and storage location in an Amazon S3 access
356          * point.</p><p><h3>See Also:</h3>   <a
357          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/CreatePackage">AWS
358          * API Reference</a></p>
359          *
360          * Queues the request into a thread executor and triggers associated callback when operation has finished.
361          */
362         virtual void CreatePackageAsync(const Model::CreatePackageRequest& request, const CreatePackageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
363 
364         /**
365          * <p>Imports a node package.</p><p><h3>See Also:</h3>   <a
366          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/CreatePackageImportJob">AWS
367          * API Reference</a></p>
368          */
369         virtual Model::CreatePackageImportJobOutcome CreatePackageImportJob(const Model::CreatePackageImportJobRequest& request) const;
370 
371         /**
372          * <p>Imports a node package.</p><p><h3>See Also:</h3>   <a
373          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/CreatePackageImportJob">AWS
374          * API Reference</a></p>
375          *
376          * returns a future to the operation so that it can be executed in parallel to other requests.
377          */
378         virtual Model::CreatePackageImportJobOutcomeCallable CreatePackageImportJobCallable(const Model::CreatePackageImportJobRequest& request) const;
379 
380         /**
381          * <p>Imports a node package.</p><p><h3>See Also:</h3>   <a
382          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/CreatePackageImportJob">AWS
383          * API Reference</a></p>
384          *
385          * Queues the request into a thread executor and triggers associated callback when operation has finished.
386          */
387         virtual void CreatePackageImportJobAsync(const Model::CreatePackageImportJobRequest& request, const CreatePackageImportJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
388 
389         /**
390          * <p>Deletes a device.</p><p><h3>See Also:</h3>   <a
391          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DeleteDevice">AWS
392          * API Reference</a></p>
393          */
394         virtual Model::DeleteDeviceOutcome DeleteDevice(const Model::DeleteDeviceRequest& request) const;
395 
396         /**
397          * <p>Deletes a device.</p><p><h3>See Also:</h3>   <a
398          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DeleteDevice">AWS
399          * API Reference</a></p>
400          *
401          * returns a future to the operation so that it can be executed in parallel to other requests.
402          */
403         virtual Model::DeleteDeviceOutcomeCallable DeleteDeviceCallable(const Model::DeleteDeviceRequest& request) const;
404 
405         /**
406          * <p>Deletes a device.</p><p><h3>See Also:</h3>   <a
407          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DeleteDevice">AWS
408          * API Reference</a></p>
409          *
410          * Queues the request into a thread executor and triggers associated callback when operation has finished.
411          */
412         virtual void DeleteDeviceAsync(const Model::DeleteDeviceRequest& request, const DeleteDeviceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
413 
414         /**
415          * <p>Deletes a package.</p><p><h3>See Also:</h3>   <a
416          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DeletePackage">AWS
417          * API Reference</a></p>
418          */
419         virtual Model::DeletePackageOutcome DeletePackage(const Model::DeletePackageRequest& request) const;
420 
421         /**
422          * <p>Deletes a package.</p><p><h3>See Also:</h3>   <a
423          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DeletePackage">AWS
424          * API Reference</a></p>
425          *
426          * returns a future to the operation so that it can be executed in parallel to other requests.
427          */
428         virtual Model::DeletePackageOutcomeCallable DeletePackageCallable(const Model::DeletePackageRequest& request) const;
429 
430         /**
431          * <p>Deletes a package.</p><p><h3>See Also:</h3>   <a
432          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DeletePackage">AWS
433          * API Reference</a></p>
434          *
435          * Queues the request into a thread executor and triggers associated callback when operation has finished.
436          */
437         virtual void DeletePackageAsync(const Model::DeletePackageRequest& request, const DeletePackageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
438 
439         /**
440          * <p>Deregisters a package version.</p><p><h3>See Also:</h3>   <a
441          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DeregisterPackageVersion">AWS
442          * API Reference</a></p>
443          */
444         virtual Model::DeregisterPackageVersionOutcome DeregisterPackageVersion(const Model::DeregisterPackageVersionRequest& request) const;
445 
446         /**
447          * <p>Deregisters a package version.</p><p><h3>See Also:</h3>   <a
448          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DeregisterPackageVersion">AWS
449          * API Reference</a></p>
450          *
451          * returns a future to the operation so that it can be executed in parallel to other requests.
452          */
453         virtual Model::DeregisterPackageVersionOutcomeCallable DeregisterPackageVersionCallable(const Model::DeregisterPackageVersionRequest& request) const;
454 
455         /**
456          * <p>Deregisters a package version.</p><p><h3>See Also:</h3>   <a
457          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DeregisterPackageVersion">AWS
458          * API Reference</a></p>
459          *
460          * Queues the request into a thread executor and triggers associated callback when operation has finished.
461          */
462         virtual void DeregisterPackageVersionAsync(const Model::DeregisterPackageVersionRequest& request, const DeregisterPackageVersionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
463 
464         /**
465          * <p>Returns information about an application instance on a device.</p><p><h3>See
466          * Also:</h3>   <a
467          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribeApplicationInstance">AWS
468          * API Reference</a></p>
469          */
470         virtual Model::DescribeApplicationInstanceOutcome DescribeApplicationInstance(const Model::DescribeApplicationInstanceRequest& request) const;
471 
472         /**
473          * <p>Returns information about an application instance on a device.</p><p><h3>See
474          * Also:</h3>   <a
475          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribeApplicationInstance">AWS
476          * API Reference</a></p>
477          *
478          * returns a future to the operation so that it can be executed in parallel to other requests.
479          */
480         virtual Model::DescribeApplicationInstanceOutcomeCallable DescribeApplicationInstanceCallable(const Model::DescribeApplicationInstanceRequest& request) const;
481 
482         /**
483          * <p>Returns information about an application instance on a device.</p><p><h3>See
484          * Also:</h3>   <a
485          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribeApplicationInstance">AWS
486          * API Reference</a></p>
487          *
488          * Queues the request into a thread executor and triggers associated callback when operation has finished.
489          */
490         virtual void DescribeApplicationInstanceAsync(const Model::DescribeApplicationInstanceRequest& request, const DescribeApplicationInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
491 
492         /**
493          * <p>Returns information about an application instance's configuration
494          * manifest.</p><p><h3>See Also:</h3>   <a
495          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribeApplicationInstanceDetails">AWS
496          * API Reference</a></p>
497          */
498         virtual Model::DescribeApplicationInstanceDetailsOutcome DescribeApplicationInstanceDetails(const Model::DescribeApplicationInstanceDetailsRequest& request) const;
499 
500         /**
501          * <p>Returns information about an application instance's configuration
502          * manifest.</p><p><h3>See Also:</h3>   <a
503          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribeApplicationInstanceDetails">AWS
504          * API Reference</a></p>
505          *
506          * returns a future to the operation so that it can be executed in parallel to other requests.
507          */
508         virtual Model::DescribeApplicationInstanceDetailsOutcomeCallable DescribeApplicationInstanceDetailsCallable(const Model::DescribeApplicationInstanceDetailsRequest& request) const;
509 
510         /**
511          * <p>Returns information about an application instance's configuration
512          * manifest.</p><p><h3>See Also:</h3>   <a
513          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribeApplicationInstanceDetails">AWS
514          * API Reference</a></p>
515          *
516          * Queues the request into a thread executor and triggers associated callback when operation has finished.
517          */
518         virtual void DescribeApplicationInstanceDetailsAsync(const Model::DescribeApplicationInstanceDetailsRequest& request, const DescribeApplicationInstanceDetailsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
519 
520         /**
521          * <p>Returns information about a device.</p><p><h3>See Also:</h3>   <a
522          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribeDevice">AWS
523          * API Reference</a></p>
524          */
525         virtual Model::DescribeDeviceOutcome DescribeDevice(const Model::DescribeDeviceRequest& request) const;
526 
527         /**
528          * <p>Returns information about a device.</p><p><h3>See Also:</h3>   <a
529          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribeDevice">AWS
530          * API Reference</a></p>
531          *
532          * returns a future to the operation so that it can be executed in parallel to other requests.
533          */
534         virtual Model::DescribeDeviceOutcomeCallable DescribeDeviceCallable(const Model::DescribeDeviceRequest& request) const;
535 
536         /**
537          * <p>Returns information about a device.</p><p><h3>See Also:</h3>   <a
538          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribeDevice">AWS
539          * API Reference</a></p>
540          *
541          * Queues the request into a thread executor and triggers associated callback when operation has finished.
542          */
543         virtual void DescribeDeviceAsync(const Model::DescribeDeviceRequest& request, const DescribeDeviceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
544 
545         /**
546          * <p>Returns information about a device job.</p><p><h3>See Also:</h3>   <a
547          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribeDeviceJob">AWS
548          * API Reference</a></p>
549          */
550         virtual Model::DescribeDeviceJobOutcome DescribeDeviceJob(const Model::DescribeDeviceJobRequest& request) const;
551 
552         /**
553          * <p>Returns information about a device job.</p><p><h3>See Also:</h3>   <a
554          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribeDeviceJob">AWS
555          * API Reference</a></p>
556          *
557          * returns a future to the operation so that it can be executed in parallel to other requests.
558          */
559         virtual Model::DescribeDeviceJobOutcomeCallable DescribeDeviceJobCallable(const Model::DescribeDeviceJobRequest& request) const;
560 
561         /**
562          * <p>Returns information about a device job.</p><p><h3>See Also:</h3>   <a
563          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribeDeviceJob">AWS
564          * API Reference</a></p>
565          *
566          * Queues the request into a thread executor and triggers associated callback when operation has finished.
567          */
568         virtual void DescribeDeviceJobAsync(const Model::DescribeDeviceJobRequest& request, const DescribeDeviceJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
569 
570         /**
571          * <p>Returns information about a node.</p><p><h3>See Also:</h3>   <a
572          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribeNode">AWS
573          * API Reference</a></p>
574          */
575         virtual Model::DescribeNodeOutcome DescribeNode(const Model::DescribeNodeRequest& request) const;
576 
577         /**
578          * <p>Returns information about a node.</p><p><h3>See Also:</h3>   <a
579          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribeNode">AWS
580          * API Reference</a></p>
581          *
582          * returns a future to the operation so that it can be executed in parallel to other requests.
583          */
584         virtual Model::DescribeNodeOutcomeCallable DescribeNodeCallable(const Model::DescribeNodeRequest& request) const;
585 
586         /**
587          * <p>Returns information about a node.</p><p><h3>See Also:</h3>   <a
588          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribeNode">AWS
589          * API Reference</a></p>
590          *
591          * Queues the request into a thread executor and triggers associated callback when operation has finished.
592          */
593         virtual void DescribeNodeAsync(const Model::DescribeNodeRequest& request, const DescribeNodeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
594 
595         /**
596          * <p>Returns information about a job to create a camera stream node.</p><p><h3>See
597          * Also:</h3>   <a
598          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribeNodeFromTemplateJob">AWS
599          * API Reference</a></p>
600          */
601         virtual Model::DescribeNodeFromTemplateJobOutcome DescribeNodeFromTemplateJob(const Model::DescribeNodeFromTemplateJobRequest& request) const;
602 
603         /**
604          * <p>Returns information about a job to create a camera stream node.</p><p><h3>See
605          * Also:</h3>   <a
606          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribeNodeFromTemplateJob">AWS
607          * API Reference</a></p>
608          *
609          * returns a future to the operation so that it can be executed in parallel to other requests.
610          */
611         virtual Model::DescribeNodeFromTemplateJobOutcomeCallable DescribeNodeFromTemplateJobCallable(const Model::DescribeNodeFromTemplateJobRequest& request) const;
612 
613         /**
614          * <p>Returns information about a job to create a camera stream node.</p><p><h3>See
615          * Also:</h3>   <a
616          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribeNodeFromTemplateJob">AWS
617          * API Reference</a></p>
618          *
619          * Queues the request into a thread executor and triggers associated callback when operation has finished.
620          */
621         virtual void DescribeNodeFromTemplateJobAsync(const Model::DescribeNodeFromTemplateJobRequest& request, const DescribeNodeFromTemplateJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
622 
623         /**
624          * <p>Returns information about a package.</p><p><h3>See Also:</h3>   <a
625          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribePackage">AWS
626          * API Reference</a></p>
627          */
628         virtual Model::DescribePackageOutcome DescribePackage(const Model::DescribePackageRequest& request) const;
629 
630         /**
631          * <p>Returns information about a package.</p><p><h3>See Also:</h3>   <a
632          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribePackage">AWS
633          * API Reference</a></p>
634          *
635          * returns a future to the operation so that it can be executed in parallel to other requests.
636          */
637         virtual Model::DescribePackageOutcomeCallable DescribePackageCallable(const Model::DescribePackageRequest& request) const;
638 
639         /**
640          * <p>Returns information about a package.</p><p><h3>See Also:</h3>   <a
641          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribePackage">AWS
642          * API Reference</a></p>
643          *
644          * Queues the request into a thread executor and triggers associated callback when operation has finished.
645          */
646         virtual void DescribePackageAsync(const Model::DescribePackageRequest& request, const DescribePackageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
647 
648         /**
649          * <p>Returns information about a package import job.</p><p><h3>See Also:</h3>   <a
650          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribePackageImportJob">AWS
651          * API Reference</a></p>
652          */
653         virtual Model::DescribePackageImportJobOutcome DescribePackageImportJob(const Model::DescribePackageImportJobRequest& request) const;
654 
655         /**
656          * <p>Returns information about a package import job.</p><p><h3>See Also:</h3>   <a
657          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribePackageImportJob">AWS
658          * API Reference</a></p>
659          *
660          * returns a future to the operation so that it can be executed in parallel to other requests.
661          */
662         virtual Model::DescribePackageImportJobOutcomeCallable DescribePackageImportJobCallable(const Model::DescribePackageImportJobRequest& request) const;
663 
664         /**
665          * <p>Returns information about a package import job.</p><p><h3>See Also:</h3>   <a
666          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribePackageImportJob">AWS
667          * API Reference</a></p>
668          *
669          * Queues the request into a thread executor and triggers associated callback when operation has finished.
670          */
671         virtual void DescribePackageImportJobAsync(const Model::DescribePackageImportJobRequest& request, const DescribePackageImportJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
672 
673         /**
674          * <p>Returns information about a package version.</p><p><h3>See Also:</h3>   <a
675          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribePackageVersion">AWS
676          * API Reference</a></p>
677          */
678         virtual Model::DescribePackageVersionOutcome DescribePackageVersion(const Model::DescribePackageVersionRequest& request) const;
679 
680         /**
681          * <p>Returns information about a package version.</p><p><h3>See Also:</h3>   <a
682          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribePackageVersion">AWS
683          * API Reference</a></p>
684          *
685          * returns a future to the operation so that it can be executed in parallel to other requests.
686          */
687         virtual Model::DescribePackageVersionOutcomeCallable DescribePackageVersionCallable(const Model::DescribePackageVersionRequest& request) const;
688 
689         /**
690          * <p>Returns information about a package version.</p><p><h3>See Also:</h3>   <a
691          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/DescribePackageVersion">AWS
692          * API Reference</a></p>
693          *
694          * Queues the request into a thread executor and triggers associated callback when operation has finished.
695          */
696         virtual void DescribePackageVersionAsync(const Model::DescribePackageVersionRequest& request, const DescribePackageVersionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
697 
698         /**
699          * <p>Returns a list of application instance dependencies.</p><p><h3>See Also:</h3>
700          * <a
701          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListApplicationInstanceDependencies">AWS
702          * API Reference</a></p>
703          */
704         virtual Model::ListApplicationInstanceDependenciesOutcome ListApplicationInstanceDependencies(const Model::ListApplicationInstanceDependenciesRequest& request) const;
705 
706         /**
707          * <p>Returns a list of application instance dependencies.</p><p><h3>See Also:</h3>
708          * <a
709          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListApplicationInstanceDependencies">AWS
710          * API Reference</a></p>
711          *
712          * returns a future to the operation so that it can be executed in parallel to other requests.
713          */
714         virtual Model::ListApplicationInstanceDependenciesOutcomeCallable ListApplicationInstanceDependenciesCallable(const Model::ListApplicationInstanceDependenciesRequest& request) const;
715 
716         /**
717          * <p>Returns a list of application instance dependencies.</p><p><h3>See Also:</h3>
718          * <a
719          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListApplicationInstanceDependencies">AWS
720          * API Reference</a></p>
721          *
722          * Queues the request into a thread executor and triggers associated callback when operation has finished.
723          */
724         virtual void ListApplicationInstanceDependenciesAsync(const Model::ListApplicationInstanceDependenciesRequest& request, const ListApplicationInstanceDependenciesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
725 
726         /**
727          * <p>Returns a list of application node instances.</p><p><h3>See Also:</h3>   <a
728          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListApplicationInstanceNodeInstances">AWS
729          * API Reference</a></p>
730          */
731         virtual Model::ListApplicationInstanceNodeInstancesOutcome ListApplicationInstanceNodeInstances(const Model::ListApplicationInstanceNodeInstancesRequest& request) const;
732 
733         /**
734          * <p>Returns a list of application node instances.</p><p><h3>See Also:</h3>   <a
735          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListApplicationInstanceNodeInstances">AWS
736          * API Reference</a></p>
737          *
738          * returns a future to the operation so that it can be executed in parallel to other requests.
739          */
740         virtual Model::ListApplicationInstanceNodeInstancesOutcomeCallable ListApplicationInstanceNodeInstancesCallable(const Model::ListApplicationInstanceNodeInstancesRequest& request) const;
741 
742         /**
743          * <p>Returns a list of application node instances.</p><p><h3>See Also:</h3>   <a
744          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListApplicationInstanceNodeInstances">AWS
745          * API Reference</a></p>
746          *
747          * Queues the request into a thread executor and triggers associated callback when operation has finished.
748          */
749         virtual void ListApplicationInstanceNodeInstancesAsync(const Model::ListApplicationInstanceNodeInstancesRequest& request, const ListApplicationInstanceNodeInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
750 
751         /**
752          * <p>Returns a list of application instances.</p><p><h3>See Also:</h3>   <a
753          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListApplicationInstances">AWS
754          * API Reference</a></p>
755          */
756         virtual Model::ListApplicationInstancesOutcome ListApplicationInstances(const Model::ListApplicationInstancesRequest& request) const;
757 
758         /**
759          * <p>Returns a list of application instances.</p><p><h3>See Also:</h3>   <a
760          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListApplicationInstances">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::ListApplicationInstancesOutcomeCallable ListApplicationInstancesCallable(const Model::ListApplicationInstancesRequest& request) const;
766 
767         /**
768          * <p>Returns a list of application instances.</p><p><h3>See Also:</h3>   <a
769          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListApplicationInstances">AWS
770          * API Reference</a></p>
771          *
772          * Queues the request into a thread executor and triggers associated callback when operation has finished.
773          */
774         virtual void ListApplicationInstancesAsync(const Model::ListApplicationInstancesRequest& request, const ListApplicationInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
775 
776         /**
777          * <p>Returns a list of devices.</p><p><h3>See Also:</h3>   <a
778          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListDevices">AWS
779          * API Reference</a></p>
780          */
781         virtual Model::ListDevicesOutcome ListDevices(const Model::ListDevicesRequest& request) const;
782 
783         /**
784          * <p>Returns a list of devices.</p><p><h3>See Also:</h3>   <a
785          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListDevices">AWS
786          * API Reference</a></p>
787          *
788          * returns a future to the operation so that it can be executed in parallel to other requests.
789          */
790         virtual Model::ListDevicesOutcomeCallable ListDevicesCallable(const Model::ListDevicesRequest& request) const;
791 
792         /**
793          * <p>Returns a list of devices.</p><p><h3>See Also:</h3>   <a
794          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListDevices">AWS
795          * API Reference</a></p>
796          *
797          * Queues the request into a thread executor and triggers associated callback when operation has finished.
798          */
799         virtual void ListDevicesAsync(const Model::ListDevicesRequest& request, const ListDevicesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
800 
801         /**
802          * <p>Returns a list of jobs.</p><p><h3>See Also:</h3>   <a
803          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListDevicesJobs">AWS
804          * API Reference</a></p>
805          */
806         virtual Model::ListDevicesJobsOutcome ListDevicesJobs(const Model::ListDevicesJobsRequest& request) const;
807 
808         /**
809          * <p>Returns a list of jobs.</p><p><h3>See Also:</h3>   <a
810          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListDevicesJobs">AWS
811          * API Reference</a></p>
812          *
813          * returns a future to the operation so that it can be executed in parallel to other requests.
814          */
815         virtual Model::ListDevicesJobsOutcomeCallable ListDevicesJobsCallable(const Model::ListDevicesJobsRequest& request) const;
816 
817         /**
818          * <p>Returns a list of jobs.</p><p><h3>See Also:</h3>   <a
819          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListDevicesJobs">AWS
820          * API Reference</a></p>
821          *
822          * Queues the request into a thread executor and triggers associated callback when operation has finished.
823          */
824         virtual void ListDevicesJobsAsync(const Model::ListDevicesJobsRequest& request, const ListDevicesJobsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
825 
826         /**
827          * <p>Returns a list of camera stream node jobs.</p><p><h3>See Also:</h3>   <a
828          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListNodeFromTemplateJobs">AWS
829          * API Reference</a></p>
830          */
831         virtual Model::ListNodeFromTemplateJobsOutcome ListNodeFromTemplateJobs(const Model::ListNodeFromTemplateJobsRequest& request) const;
832 
833         /**
834          * <p>Returns a list of camera stream node jobs.</p><p><h3>See Also:</h3>   <a
835          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListNodeFromTemplateJobs">AWS
836          * API Reference</a></p>
837          *
838          * returns a future to the operation so that it can be executed in parallel to other requests.
839          */
840         virtual Model::ListNodeFromTemplateJobsOutcomeCallable ListNodeFromTemplateJobsCallable(const Model::ListNodeFromTemplateJobsRequest& request) const;
841 
842         /**
843          * <p>Returns a list of camera stream node jobs.</p><p><h3>See Also:</h3>   <a
844          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListNodeFromTemplateJobs">AWS
845          * API Reference</a></p>
846          *
847          * Queues the request into a thread executor and triggers associated callback when operation has finished.
848          */
849         virtual void ListNodeFromTemplateJobsAsync(const Model::ListNodeFromTemplateJobsRequest& request, const ListNodeFromTemplateJobsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
850 
851         /**
852          * <p>Returns a list of nodes.</p><p><h3>See Also:</h3>   <a
853          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListNodes">AWS
854          * API Reference</a></p>
855          */
856         virtual Model::ListNodesOutcome ListNodes(const Model::ListNodesRequest& request) const;
857 
858         /**
859          * <p>Returns a list of nodes.</p><p><h3>See Also:</h3>   <a
860          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListNodes">AWS
861          * API Reference</a></p>
862          *
863          * returns a future to the operation so that it can be executed in parallel to other requests.
864          */
865         virtual Model::ListNodesOutcomeCallable ListNodesCallable(const Model::ListNodesRequest& request) const;
866 
867         /**
868          * <p>Returns a list of nodes.</p><p><h3>See Also:</h3>   <a
869          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListNodes">AWS
870          * API Reference</a></p>
871          *
872          * Queues the request into a thread executor and triggers associated callback when operation has finished.
873          */
874         virtual void ListNodesAsync(const Model::ListNodesRequest& request, const ListNodesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
875 
876         /**
877          * <p>Returns a list of package import jobs.</p><p><h3>See Also:</h3>   <a
878          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListPackageImportJobs">AWS
879          * API Reference</a></p>
880          */
881         virtual Model::ListPackageImportJobsOutcome ListPackageImportJobs(const Model::ListPackageImportJobsRequest& request) const;
882 
883         /**
884          * <p>Returns a list of package import jobs.</p><p><h3>See Also:</h3>   <a
885          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListPackageImportJobs">AWS
886          * API Reference</a></p>
887          *
888          * returns a future to the operation so that it can be executed in parallel to other requests.
889          */
890         virtual Model::ListPackageImportJobsOutcomeCallable ListPackageImportJobsCallable(const Model::ListPackageImportJobsRequest& request) const;
891 
892         /**
893          * <p>Returns a list of package import jobs.</p><p><h3>See Also:</h3>   <a
894          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListPackageImportJobs">AWS
895          * API Reference</a></p>
896          *
897          * Queues the request into a thread executor and triggers associated callback when operation has finished.
898          */
899         virtual void ListPackageImportJobsAsync(const Model::ListPackageImportJobsRequest& request, const ListPackageImportJobsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
900 
901         /**
902          * <p>Returns a list of packages.</p><p><h3>See Also:</h3>   <a
903          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListPackages">AWS
904          * API Reference</a></p>
905          */
906         virtual Model::ListPackagesOutcome ListPackages(const Model::ListPackagesRequest& request) const;
907 
908         /**
909          * <p>Returns a list of packages.</p><p><h3>See Also:</h3>   <a
910          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListPackages">AWS
911          * API Reference</a></p>
912          *
913          * returns a future to the operation so that it can be executed in parallel to other requests.
914          */
915         virtual Model::ListPackagesOutcomeCallable ListPackagesCallable(const Model::ListPackagesRequest& request) const;
916 
917         /**
918          * <p>Returns a list of packages.</p><p><h3>See Also:</h3>   <a
919          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListPackages">AWS
920          * API Reference</a></p>
921          *
922          * Queues the request into a thread executor and triggers associated callback when operation has finished.
923          */
924         virtual void ListPackagesAsync(const Model::ListPackagesRequest& request, const ListPackagesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
925 
926         /**
927          * <p>Returns a list of tags for a resource.</p><p><h3>See Also:</h3>   <a
928          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListTagsForResource">AWS
929          * API Reference</a></p>
930          */
931         virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const;
932 
933         /**
934          * <p>Returns a list of tags for a resource.</p><p><h3>See Also:</h3>   <a
935          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListTagsForResource">AWS
936          * API Reference</a></p>
937          *
938          * returns a future to the operation so that it can be executed in parallel to other requests.
939          */
940         virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const;
941 
942         /**
943          * <p>Returns a list of tags for a resource.</p><p><h3>See Also:</h3>   <a
944          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ListTagsForResource">AWS
945          * API Reference</a></p>
946          *
947          * Queues the request into a thread executor and triggers associated callback when operation has finished.
948          */
949         virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
950 
951         /**
952          * <p>Creates a device and returns a configuration archive. The configuration
953          * archive is a ZIP file that contains a provisioning certificate that is valid for
954          * 5 minutes. Transfer the configuration archive to the device with the included
955          * USB storage device within 5 minutes.</p><p><h3>See Also:</h3>   <a
956          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ProvisionDevice">AWS
957          * API Reference</a></p>
958          */
959         virtual Model::ProvisionDeviceOutcome ProvisionDevice(const Model::ProvisionDeviceRequest& request) const;
960 
961         /**
962          * <p>Creates a device and returns a configuration archive. The configuration
963          * archive is a ZIP file that contains a provisioning certificate that is valid for
964          * 5 minutes. Transfer the configuration archive to the device with the included
965          * USB storage device within 5 minutes.</p><p><h3>See Also:</h3>   <a
966          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ProvisionDevice">AWS
967          * API Reference</a></p>
968          *
969          * returns a future to the operation so that it can be executed in parallel to other requests.
970          */
971         virtual Model::ProvisionDeviceOutcomeCallable ProvisionDeviceCallable(const Model::ProvisionDeviceRequest& request) const;
972 
973         /**
974          * <p>Creates a device and returns a configuration archive. The configuration
975          * archive is a ZIP file that contains a provisioning certificate that is valid for
976          * 5 minutes. Transfer the configuration archive to the device with the included
977          * USB storage device within 5 minutes.</p><p><h3>See Also:</h3>   <a
978          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/ProvisionDevice">AWS
979          * API Reference</a></p>
980          *
981          * Queues the request into a thread executor and triggers associated callback when operation has finished.
982          */
983         virtual void ProvisionDeviceAsync(const Model::ProvisionDeviceRequest& request, const ProvisionDeviceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
984 
985         /**
986          * <p>Registers a package version.</p><p><h3>See Also:</h3>   <a
987          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/RegisterPackageVersion">AWS
988          * API Reference</a></p>
989          */
990         virtual Model::RegisterPackageVersionOutcome RegisterPackageVersion(const Model::RegisterPackageVersionRequest& request) const;
991 
992         /**
993          * <p>Registers a package version.</p><p><h3>See Also:</h3>   <a
994          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/RegisterPackageVersion">AWS
995          * API Reference</a></p>
996          *
997          * returns a future to the operation so that it can be executed in parallel to other requests.
998          */
999         virtual Model::RegisterPackageVersionOutcomeCallable RegisterPackageVersionCallable(const Model::RegisterPackageVersionRequest& request) const;
1000 
1001         /**
1002          * <p>Registers a package version.</p><p><h3>See Also:</h3>   <a
1003          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/RegisterPackageVersion">AWS
1004          * API Reference</a></p>
1005          *
1006          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1007          */
1008         virtual void RegisterPackageVersionAsync(const Model::RegisterPackageVersionRequest& request, const RegisterPackageVersionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1009 
1010         /**
1011          * <p>Removes an application instance.</p><p><h3>See Also:</h3>   <a
1012          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/RemoveApplicationInstance">AWS
1013          * API Reference</a></p>
1014          */
1015         virtual Model::RemoveApplicationInstanceOutcome RemoveApplicationInstance(const Model::RemoveApplicationInstanceRequest& request) const;
1016 
1017         /**
1018          * <p>Removes an application instance.</p><p><h3>See Also:</h3>   <a
1019          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/RemoveApplicationInstance">AWS
1020          * API Reference</a></p>
1021          *
1022          * returns a future to the operation so that it can be executed in parallel to other requests.
1023          */
1024         virtual Model::RemoveApplicationInstanceOutcomeCallable RemoveApplicationInstanceCallable(const Model::RemoveApplicationInstanceRequest& request) const;
1025 
1026         /**
1027          * <p>Removes an application instance.</p><p><h3>See Also:</h3>   <a
1028          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/RemoveApplicationInstance">AWS
1029          * API Reference</a></p>
1030          *
1031          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1032          */
1033         virtual void RemoveApplicationInstanceAsync(const Model::RemoveApplicationInstanceRequest& request, const RemoveApplicationInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1034 
1035         /**
1036          * <p>Tags a resource.</p><p><h3>See Also:</h3>   <a
1037          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/TagResource">AWS
1038          * API Reference</a></p>
1039          */
1040         virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const;
1041 
1042         /**
1043          * <p>Tags a resource.</p><p><h3>See Also:</h3>   <a
1044          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/TagResource">AWS
1045          * API Reference</a></p>
1046          *
1047          * returns a future to the operation so that it can be executed in parallel to other requests.
1048          */
1049         virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const;
1050 
1051         /**
1052          * <p>Tags a resource.</p><p><h3>See Also:</h3>   <a
1053          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/TagResource">AWS
1054          * API Reference</a></p>
1055          *
1056          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1057          */
1058         virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1059 
1060         /**
1061          * <p>Removes tags from a resource.</p><p><h3>See Also:</h3>   <a
1062          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/UntagResource">AWS
1063          * API Reference</a></p>
1064          */
1065         virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const;
1066 
1067         /**
1068          * <p>Removes tags from a resource.</p><p><h3>See Also:</h3>   <a
1069          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/UntagResource">AWS
1070          * API Reference</a></p>
1071          *
1072          * returns a future to the operation so that it can be executed in parallel to other requests.
1073          */
1074         virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const;
1075 
1076         /**
1077          * <p>Removes tags from a resource.</p><p><h3>See Also:</h3>   <a
1078          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/UntagResource">AWS
1079          * API Reference</a></p>
1080          *
1081          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1082          */
1083         virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1084 
1085         /**
1086          * <p>Updates a device's metadata.</p><p><h3>See Also:</h3>   <a
1087          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/UpdateDeviceMetadata">AWS
1088          * API Reference</a></p>
1089          */
1090         virtual Model::UpdateDeviceMetadataOutcome UpdateDeviceMetadata(const Model::UpdateDeviceMetadataRequest& request) const;
1091 
1092         /**
1093          * <p>Updates a device's metadata.</p><p><h3>See Also:</h3>   <a
1094          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/UpdateDeviceMetadata">AWS
1095          * API Reference</a></p>
1096          *
1097          * returns a future to the operation so that it can be executed in parallel to other requests.
1098          */
1099         virtual Model::UpdateDeviceMetadataOutcomeCallable UpdateDeviceMetadataCallable(const Model::UpdateDeviceMetadataRequest& request) const;
1100 
1101         /**
1102          * <p>Updates a device's metadata.</p><p><h3>See Also:</h3>   <a
1103          * href="http://docs.aws.amazon.com/goto/WebAPI/panorama-2019-07-24/UpdateDeviceMetadata">AWS
1104          * API Reference</a></p>
1105          *
1106          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1107          */
1108         virtual void UpdateDeviceMetadataAsync(const Model::UpdateDeviceMetadataRequest& request, const UpdateDeviceMetadataResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1109 
1110 
1111       void OverrideEndpoint(const Aws::String& endpoint);
1112     private:
1113       void init(const Aws::Client::ClientConfiguration& clientConfiguration);
1114         void CreateApplicationInstanceAsyncHelper(const Model::CreateApplicationInstanceRequest& request, const CreateApplicationInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1115         void CreateJobForDevicesAsyncHelper(const Model::CreateJobForDevicesRequest& request, const CreateJobForDevicesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1116         void CreateNodeFromTemplateJobAsyncHelper(const Model::CreateNodeFromTemplateJobRequest& request, const CreateNodeFromTemplateJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1117         void CreatePackageAsyncHelper(const Model::CreatePackageRequest& request, const CreatePackageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1118         void CreatePackageImportJobAsyncHelper(const Model::CreatePackageImportJobRequest& request, const CreatePackageImportJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1119         void DeleteDeviceAsyncHelper(const Model::DeleteDeviceRequest& request, const DeleteDeviceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1120         void DeletePackageAsyncHelper(const Model::DeletePackageRequest& request, const DeletePackageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1121         void DeregisterPackageVersionAsyncHelper(const Model::DeregisterPackageVersionRequest& request, const DeregisterPackageVersionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1122         void DescribeApplicationInstanceAsyncHelper(const Model::DescribeApplicationInstanceRequest& request, const DescribeApplicationInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1123         void DescribeApplicationInstanceDetailsAsyncHelper(const Model::DescribeApplicationInstanceDetailsRequest& request, const DescribeApplicationInstanceDetailsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1124         void DescribeDeviceAsyncHelper(const Model::DescribeDeviceRequest& request, const DescribeDeviceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1125         void DescribeDeviceJobAsyncHelper(const Model::DescribeDeviceJobRequest& request, const DescribeDeviceJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1126         void DescribeNodeAsyncHelper(const Model::DescribeNodeRequest& request, const DescribeNodeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1127         void DescribeNodeFromTemplateJobAsyncHelper(const Model::DescribeNodeFromTemplateJobRequest& request, const DescribeNodeFromTemplateJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1128         void DescribePackageAsyncHelper(const Model::DescribePackageRequest& request, const DescribePackageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1129         void DescribePackageImportJobAsyncHelper(const Model::DescribePackageImportJobRequest& request, const DescribePackageImportJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1130         void DescribePackageVersionAsyncHelper(const Model::DescribePackageVersionRequest& request, const DescribePackageVersionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1131         void ListApplicationInstanceDependenciesAsyncHelper(const Model::ListApplicationInstanceDependenciesRequest& request, const ListApplicationInstanceDependenciesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1132         void ListApplicationInstanceNodeInstancesAsyncHelper(const Model::ListApplicationInstanceNodeInstancesRequest& request, const ListApplicationInstanceNodeInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1133         void ListApplicationInstancesAsyncHelper(const Model::ListApplicationInstancesRequest& request, const ListApplicationInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1134         void ListDevicesAsyncHelper(const Model::ListDevicesRequest& request, const ListDevicesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1135         void ListDevicesJobsAsyncHelper(const Model::ListDevicesJobsRequest& request, const ListDevicesJobsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1136         void ListNodeFromTemplateJobsAsyncHelper(const Model::ListNodeFromTemplateJobsRequest& request, const ListNodeFromTemplateJobsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1137         void ListNodesAsyncHelper(const Model::ListNodesRequest& request, const ListNodesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1138         void ListPackageImportJobsAsyncHelper(const Model::ListPackageImportJobsRequest& request, const ListPackageImportJobsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1139         void ListPackagesAsyncHelper(const Model::ListPackagesRequest& request, const ListPackagesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1140         void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1141         void ProvisionDeviceAsyncHelper(const Model::ProvisionDeviceRequest& request, const ProvisionDeviceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1142         void RegisterPackageVersionAsyncHelper(const Model::RegisterPackageVersionRequest& request, const RegisterPackageVersionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1143         void RemoveApplicationInstanceAsyncHelper(const Model::RemoveApplicationInstanceRequest& request, const RemoveApplicationInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1144         void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1145         void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1146         void UpdateDeviceMetadataAsyncHelper(const Model::UpdateDeviceMetadataRequest& request, const UpdateDeviceMetadataResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1147 
1148       Aws::String m_uri;
1149       Aws::String m_configScheme;
1150       std::shared_ptr<Aws::Utils::Threading::Executor> m_executor;
1151   };
1152 
1153 } // namespace Panorama
1154 } // namespace Aws
1155