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/mediaconvert/MediaConvert_EXPORTS.h>
8 #include <aws/mediaconvert/MediaConvertErrors.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/mediaconvert/model/AssociateCertificateResult.h>
15 #include <aws/mediaconvert/model/CancelJobResult.h>
16 #include <aws/mediaconvert/model/CreateJobResult.h>
17 #include <aws/mediaconvert/model/CreateJobTemplateResult.h>
18 #include <aws/mediaconvert/model/CreatePresetResult.h>
19 #include <aws/mediaconvert/model/CreateQueueResult.h>
20 #include <aws/mediaconvert/model/DeleteJobTemplateResult.h>
21 #include <aws/mediaconvert/model/DeletePolicyResult.h>
22 #include <aws/mediaconvert/model/DeletePresetResult.h>
23 #include <aws/mediaconvert/model/DeleteQueueResult.h>
24 #include <aws/mediaconvert/model/DescribeEndpointsResult.h>
25 #include <aws/mediaconvert/model/DisassociateCertificateResult.h>
26 #include <aws/mediaconvert/model/GetJobResult.h>
27 #include <aws/mediaconvert/model/GetJobTemplateResult.h>
28 #include <aws/mediaconvert/model/GetPolicyResult.h>
29 #include <aws/mediaconvert/model/GetPresetResult.h>
30 #include <aws/mediaconvert/model/GetQueueResult.h>
31 #include <aws/mediaconvert/model/ListJobTemplatesResult.h>
32 #include <aws/mediaconvert/model/ListJobsResult.h>
33 #include <aws/mediaconvert/model/ListPresetsResult.h>
34 #include <aws/mediaconvert/model/ListQueuesResult.h>
35 #include <aws/mediaconvert/model/ListTagsForResourceResult.h>
36 #include <aws/mediaconvert/model/PutPolicyResult.h>
37 #include <aws/mediaconvert/model/TagResourceResult.h>
38 #include <aws/mediaconvert/model/UntagResourceResult.h>
39 #include <aws/mediaconvert/model/UpdateJobTemplateResult.h>
40 #include <aws/mediaconvert/model/UpdatePresetResult.h>
41 #include <aws/mediaconvert/model/UpdateQueueResult.h>
42 #include <aws/core/client/AsyncCallerContext.h>
43 #include <aws/core/http/HttpTypes.h>
44 #include <future>
45 #include <functional>
46 
47 namespace Aws
48 {
49 
50 namespace Http
51 {
52   class HttpClient;
53   class HttpClientFactory;
54 } // namespace Http
55 
56 namespace Utils
57 {
58   template< typename R, typename E> class Outcome;
59 namespace Threading
60 {
61   class Executor;
62 } // namespace Threading
63 } // namespace Utils
64 
65 namespace Auth
66 {
67   class AWSCredentials;
68   class AWSCredentialsProvider;
69 } // namespace Auth
70 
71 namespace Client
72 {
73   class RetryStrategy;
74 } // namespace Client
75 
76 namespace MediaConvert
77 {
78 
79 namespace Model
80 {
81         class AssociateCertificateRequest;
82         class CancelJobRequest;
83         class CreateJobRequest;
84         class CreateJobTemplateRequest;
85         class CreatePresetRequest;
86         class CreateQueueRequest;
87         class DeleteJobTemplateRequest;
88         class DeletePolicyRequest;
89         class DeletePresetRequest;
90         class DeleteQueueRequest;
91         class DescribeEndpointsRequest;
92         class DisassociateCertificateRequest;
93         class GetJobRequest;
94         class GetJobTemplateRequest;
95         class GetPolicyRequest;
96         class GetPresetRequest;
97         class GetQueueRequest;
98         class ListJobTemplatesRequest;
99         class ListJobsRequest;
100         class ListPresetsRequest;
101         class ListQueuesRequest;
102         class ListTagsForResourceRequest;
103         class PutPolicyRequest;
104         class TagResourceRequest;
105         class UntagResourceRequest;
106         class UpdateJobTemplateRequest;
107         class UpdatePresetRequest;
108         class UpdateQueueRequest;
109 
110         typedef Aws::Utils::Outcome<AssociateCertificateResult, MediaConvertError> AssociateCertificateOutcome;
111         typedef Aws::Utils::Outcome<CancelJobResult, MediaConvertError> CancelJobOutcome;
112         typedef Aws::Utils::Outcome<CreateJobResult, MediaConvertError> CreateJobOutcome;
113         typedef Aws::Utils::Outcome<CreateJobTemplateResult, MediaConvertError> CreateJobTemplateOutcome;
114         typedef Aws::Utils::Outcome<CreatePresetResult, MediaConvertError> CreatePresetOutcome;
115         typedef Aws::Utils::Outcome<CreateQueueResult, MediaConvertError> CreateQueueOutcome;
116         typedef Aws::Utils::Outcome<DeleteJobTemplateResult, MediaConvertError> DeleteJobTemplateOutcome;
117         typedef Aws::Utils::Outcome<DeletePolicyResult, MediaConvertError> DeletePolicyOutcome;
118         typedef Aws::Utils::Outcome<DeletePresetResult, MediaConvertError> DeletePresetOutcome;
119         typedef Aws::Utils::Outcome<DeleteQueueResult, MediaConvertError> DeleteQueueOutcome;
120         typedef Aws::Utils::Outcome<DescribeEndpointsResult, MediaConvertError> DescribeEndpointsOutcome;
121         typedef Aws::Utils::Outcome<DisassociateCertificateResult, MediaConvertError> DisassociateCertificateOutcome;
122         typedef Aws::Utils::Outcome<GetJobResult, MediaConvertError> GetJobOutcome;
123         typedef Aws::Utils::Outcome<GetJobTemplateResult, MediaConvertError> GetJobTemplateOutcome;
124         typedef Aws::Utils::Outcome<GetPolicyResult, MediaConvertError> GetPolicyOutcome;
125         typedef Aws::Utils::Outcome<GetPresetResult, MediaConvertError> GetPresetOutcome;
126         typedef Aws::Utils::Outcome<GetQueueResult, MediaConvertError> GetQueueOutcome;
127         typedef Aws::Utils::Outcome<ListJobTemplatesResult, MediaConvertError> ListJobTemplatesOutcome;
128         typedef Aws::Utils::Outcome<ListJobsResult, MediaConvertError> ListJobsOutcome;
129         typedef Aws::Utils::Outcome<ListPresetsResult, MediaConvertError> ListPresetsOutcome;
130         typedef Aws::Utils::Outcome<ListQueuesResult, MediaConvertError> ListQueuesOutcome;
131         typedef Aws::Utils::Outcome<ListTagsForResourceResult, MediaConvertError> ListTagsForResourceOutcome;
132         typedef Aws::Utils::Outcome<PutPolicyResult, MediaConvertError> PutPolicyOutcome;
133         typedef Aws::Utils::Outcome<TagResourceResult, MediaConvertError> TagResourceOutcome;
134         typedef Aws::Utils::Outcome<UntagResourceResult, MediaConvertError> UntagResourceOutcome;
135         typedef Aws::Utils::Outcome<UpdateJobTemplateResult, MediaConvertError> UpdateJobTemplateOutcome;
136         typedef Aws::Utils::Outcome<UpdatePresetResult, MediaConvertError> UpdatePresetOutcome;
137         typedef Aws::Utils::Outcome<UpdateQueueResult, MediaConvertError> UpdateQueueOutcome;
138 
139         typedef std::future<AssociateCertificateOutcome> AssociateCertificateOutcomeCallable;
140         typedef std::future<CancelJobOutcome> CancelJobOutcomeCallable;
141         typedef std::future<CreateJobOutcome> CreateJobOutcomeCallable;
142         typedef std::future<CreateJobTemplateOutcome> CreateJobTemplateOutcomeCallable;
143         typedef std::future<CreatePresetOutcome> CreatePresetOutcomeCallable;
144         typedef std::future<CreateQueueOutcome> CreateQueueOutcomeCallable;
145         typedef std::future<DeleteJobTemplateOutcome> DeleteJobTemplateOutcomeCallable;
146         typedef std::future<DeletePolicyOutcome> DeletePolicyOutcomeCallable;
147         typedef std::future<DeletePresetOutcome> DeletePresetOutcomeCallable;
148         typedef std::future<DeleteQueueOutcome> DeleteQueueOutcomeCallable;
149         typedef std::future<DescribeEndpointsOutcome> DescribeEndpointsOutcomeCallable;
150         typedef std::future<DisassociateCertificateOutcome> DisassociateCertificateOutcomeCallable;
151         typedef std::future<GetJobOutcome> GetJobOutcomeCallable;
152         typedef std::future<GetJobTemplateOutcome> GetJobTemplateOutcomeCallable;
153         typedef std::future<GetPolicyOutcome> GetPolicyOutcomeCallable;
154         typedef std::future<GetPresetOutcome> GetPresetOutcomeCallable;
155         typedef std::future<GetQueueOutcome> GetQueueOutcomeCallable;
156         typedef std::future<ListJobTemplatesOutcome> ListJobTemplatesOutcomeCallable;
157         typedef std::future<ListJobsOutcome> ListJobsOutcomeCallable;
158         typedef std::future<ListPresetsOutcome> ListPresetsOutcomeCallable;
159         typedef std::future<ListQueuesOutcome> ListQueuesOutcomeCallable;
160         typedef std::future<ListTagsForResourceOutcome> ListTagsForResourceOutcomeCallable;
161         typedef std::future<PutPolicyOutcome> PutPolicyOutcomeCallable;
162         typedef std::future<TagResourceOutcome> TagResourceOutcomeCallable;
163         typedef std::future<UntagResourceOutcome> UntagResourceOutcomeCallable;
164         typedef std::future<UpdateJobTemplateOutcome> UpdateJobTemplateOutcomeCallable;
165         typedef std::future<UpdatePresetOutcome> UpdatePresetOutcomeCallable;
166         typedef std::future<UpdateQueueOutcome> UpdateQueueOutcomeCallable;
167 } // namespace Model
168 
169   class MediaConvertClient;
170 
171     typedef std::function<void(const MediaConvertClient*, const Model::AssociateCertificateRequest&, const Model::AssociateCertificateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AssociateCertificateResponseReceivedHandler;
172     typedef std::function<void(const MediaConvertClient*, const Model::CancelJobRequest&, const Model::CancelJobOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CancelJobResponseReceivedHandler;
173     typedef std::function<void(const MediaConvertClient*, const Model::CreateJobRequest&, const Model::CreateJobOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateJobResponseReceivedHandler;
174     typedef std::function<void(const MediaConvertClient*, const Model::CreateJobTemplateRequest&, const Model::CreateJobTemplateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateJobTemplateResponseReceivedHandler;
175     typedef std::function<void(const MediaConvertClient*, const Model::CreatePresetRequest&, const Model::CreatePresetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreatePresetResponseReceivedHandler;
176     typedef std::function<void(const MediaConvertClient*, const Model::CreateQueueRequest&, const Model::CreateQueueOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateQueueResponseReceivedHandler;
177     typedef std::function<void(const MediaConvertClient*, const Model::DeleteJobTemplateRequest&, const Model::DeleteJobTemplateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteJobTemplateResponseReceivedHandler;
178     typedef std::function<void(const MediaConvertClient*, const Model::DeletePolicyRequest&, const Model::DeletePolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeletePolicyResponseReceivedHandler;
179     typedef std::function<void(const MediaConvertClient*, const Model::DeletePresetRequest&, const Model::DeletePresetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeletePresetResponseReceivedHandler;
180     typedef std::function<void(const MediaConvertClient*, const Model::DeleteQueueRequest&, const Model::DeleteQueueOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteQueueResponseReceivedHandler;
181     typedef std::function<void(const MediaConvertClient*, const Model::DescribeEndpointsRequest&, const Model::DescribeEndpointsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeEndpointsResponseReceivedHandler;
182     typedef std::function<void(const MediaConvertClient*, const Model::DisassociateCertificateRequest&, const Model::DisassociateCertificateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisassociateCertificateResponseReceivedHandler;
183     typedef std::function<void(const MediaConvertClient*, const Model::GetJobRequest&, const Model::GetJobOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetJobResponseReceivedHandler;
184     typedef std::function<void(const MediaConvertClient*, const Model::GetJobTemplateRequest&, const Model::GetJobTemplateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetJobTemplateResponseReceivedHandler;
185     typedef std::function<void(const MediaConvertClient*, const Model::GetPolicyRequest&, const Model::GetPolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetPolicyResponseReceivedHandler;
186     typedef std::function<void(const MediaConvertClient*, const Model::GetPresetRequest&, const Model::GetPresetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetPresetResponseReceivedHandler;
187     typedef std::function<void(const MediaConvertClient*, const Model::GetQueueRequest&, const Model::GetQueueOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetQueueResponseReceivedHandler;
188     typedef std::function<void(const MediaConvertClient*, const Model::ListJobTemplatesRequest&, const Model::ListJobTemplatesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListJobTemplatesResponseReceivedHandler;
189     typedef std::function<void(const MediaConvertClient*, const Model::ListJobsRequest&, const Model::ListJobsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListJobsResponseReceivedHandler;
190     typedef std::function<void(const MediaConvertClient*, const Model::ListPresetsRequest&, const Model::ListPresetsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListPresetsResponseReceivedHandler;
191     typedef std::function<void(const MediaConvertClient*, const Model::ListQueuesRequest&, const Model::ListQueuesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListQueuesResponseReceivedHandler;
192     typedef std::function<void(const MediaConvertClient*, const Model::ListTagsForResourceRequest&, const Model::ListTagsForResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTagsForResourceResponseReceivedHandler;
193     typedef std::function<void(const MediaConvertClient*, const Model::PutPolicyRequest&, const Model::PutPolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutPolicyResponseReceivedHandler;
194     typedef std::function<void(const MediaConvertClient*, const Model::TagResourceRequest&, const Model::TagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TagResourceResponseReceivedHandler;
195     typedef std::function<void(const MediaConvertClient*, const Model::UntagResourceRequest&, const Model::UntagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UntagResourceResponseReceivedHandler;
196     typedef std::function<void(const MediaConvertClient*, const Model::UpdateJobTemplateRequest&, const Model::UpdateJobTemplateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateJobTemplateResponseReceivedHandler;
197     typedef std::function<void(const MediaConvertClient*, const Model::UpdatePresetRequest&, const Model::UpdatePresetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdatePresetResponseReceivedHandler;
198     typedef std::function<void(const MediaConvertClient*, const Model::UpdateQueueRequest&, const Model::UpdateQueueOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateQueueResponseReceivedHandler;
199 
200   /**
201    * AWS Elemental MediaConvert
202    */
203   class AWS_MEDIACONVERT_API MediaConvertClient : public Aws::Client::AWSJsonClient
204   {
205     public:
206       typedef Aws::Client::AWSJsonClient BASECLASS;
207 
208        /**
209         * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
210         * is not specified, it will be initialized to default values.
211         */
212         MediaConvertClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
213 
214        /**
215         * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
216         * is not specified, it will be initialized to default values.
217         */
218         MediaConvertClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
219 
220        /**
221         * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
222         * the default http client factory will be used
223         */
224         MediaConvertClient(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
225             const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
226 
227         virtual ~MediaConvertClient();
228 
229 
230         /**
231          * Associates an AWS Certificate Manager (ACM) Amazon Resource Name (ARN) with AWS
232          * Elemental MediaConvert.<p><h3>See Also:</h3>   <a
233          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/AssociateCertificate">AWS
234          * API Reference</a></p>
235          */
236         virtual Model::AssociateCertificateOutcome AssociateCertificate(const Model::AssociateCertificateRequest& request) const;
237 
238         /**
239          * Associates an AWS Certificate Manager (ACM) Amazon Resource Name (ARN) with AWS
240          * Elemental MediaConvert.<p><h3>See Also:</h3>   <a
241          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/AssociateCertificate">AWS
242          * API Reference</a></p>
243          *
244          * returns a future to the operation so that it can be executed in parallel to other requests.
245          */
246         virtual Model::AssociateCertificateOutcomeCallable AssociateCertificateCallable(const Model::AssociateCertificateRequest& request) const;
247 
248         /**
249          * Associates an AWS Certificate Manager (ACM) Amazon Resource Name (ARN) with AWS
250          * Elemental MediaConvert.<p><h3>See Also:</h3>   <a
251          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/AssociateCertificate">AWS
252          * API Reference</a></p>
253          *
254          * Queues the request into a thread executor and triggers associated callback when operation has finished.
255          */
256         virtual void AssociateCertificateAsync(const Model::AssociateCertificateRequest& request, const AssociateCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
257 
258         /**
259          * Permanently cancel a job. Once you have canceled a job, you can't start it
260          * again.<p><h3>See Also:</h3>   <a
261          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/CancelJob">AWS
262          * API Reference</a></p>
263          */
264         virtual Model::CancelJobOutcome CancelJob(const Model::CancelJobRequest& request) const;
265 
266         /**
267          * Permanently cancel a job. Once you have canceled a job, you can't start it
268          * again.<p><h3>See Also:</h3>   <a
269          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/CancelJob">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::CancelJobOutcomeCallable CancelJobCallable(const Model::CancelJobRequest& request) const;
275 
276         /**
277          * Permanently cancel a job. Once you have canceled a job, you can't start it
278          * again.<p><h3>See Also:</h3>   <a
279          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/CancelJob">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 CancelJobAsync(const Model::CancelJobRequest& request, const CancelJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
285 
286         /**
287          * Create a new transcoding job. For information about jobs and job settings, see
288          * the User Guide at
289          * http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html<p><h3>See
290          * Also:</h3>   <a
291          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/CreateJob">AWS
292          * API Reference</a></p>
293          */
294         virtual Model::CreateJobOutcome CreateJob(const Model::CreateJobRequest& request) const;
295 
296         /**
297          * Create a new transcoding job. For information about jobs and job settings, see
298          * the User Guide at
299          * http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html<p><h3>See
300          * Also:</h3>   <a
301          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/CreateJob">AWS
302          * API Reference</a></p>
303          *
304          * returns a future to the operation so that it can be executed in parallel to other requests.
305          */
306         virtual Model::CreateJobOutcomeCallable CreateJobCallable(const Model::CreateJobRequest& request) const;
307 
308         /**
309          * Create a new transcoding job. For information about jobs and job settings, see
310          * the User Guide at
311          * http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html<p><h3>See
312          * Also:</h3>   <a
313          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/CreateJob">AWS
314          * API Reference</a></p>
315          *
316          * Queues the request into a thread executor and triggers associated callback when operation has finished.
317          */
318         virtual void CreateJobAsync(const Model::CreateJobRequest& request, const CreateJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
319 
320         /**
321          * Create a new job template. For information about job templates see the User
322          * Guide at
323          * http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html<p><h3>See
324          * Also:</h3>   <a
325          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/CreateJobTemplate">AWS
326          * API Reference</a></p>
327          */
328         virtual Model::CreateJobTemplateOutcome CreateJobTemplate(const Model::CreateJobTemplateRequest& request) const;
329 
330         /**
331          * Create a new job template. For information about job templates see the User
332          * Guide at
333          * http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html<p><h3>See
334          * Also:</h3>   <a
335          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/CreateJobTemplate">AWS
336          * API Reference</a></p>
337          *
338          * returns a future to the operation so that it can be executed in parallel to other requests.
339          */
340         virtual Model::CreateJobTemplateOutcomeCallable CreateJobTemplateCallable(const Model::CreateJobTemplateRequest& request) const;
341 
342         /**
343          * Create a new job template. For information about job templates see the User
344          * Guide at
345          * http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html<p><h3>See
346          * Also:</h3>   <a
347          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/CreateJobTemplate">AWS
348          * API Reference</a></p>
349          *
350          * Queues the request into a thread executor and triggers associated callback when operation has finished.
351          */
352         virtual void CreateJobTemplateAsync(const Model::CreateJobTemplateRequest& request, const CreateJobTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
353 
354         /**
355          * Create a new preset. For information about job templates see the User Guide at
356          * http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html<p><h3>See
357          * Also:</h3>   <a
358          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/CreatePreset">AWS
359          * API Reference</a></p>
360          */
361         virtual Model::CreatePresetOutcome CreatePreset(const Model::CreatePresetRequest& request) const;
362 
363         /**
364          * Create a new preset. For information about job templates see the User Guide at
365          * http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html<p><h3>See
366          * Also:</h3>   <a
367          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/CreatePreset">AWS
368          * API Reference</a></p>
369          *
370          * returns a future to the operation so that it can be executed in parallel to other requests.
371          */
372         virtual Model::CreatePresetOutcomeCallable CreatePresetCallable(const Model::CreatePresetRequest& request) const;
373 
374         /**
375          * Create a new preset. For information about job templates see the User Guide at
376          * http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html<p><h3>See
377          * Also:</h3>   <a
378          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/CreatePreset">AWS
379          * API Reference</a></p>
380          *
381          * Queues the request into a thread executor and triggers associated callback when operation has finished.
382          */
383         virtual void CreatePresetAsync(const Model::CreatePresetRequest& request, const CreatePresetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
384 
385         /**
386          * Create a new transcoding queue. For information about queues, see Working With
387          * Queues in the User Guide at
388          * https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-queues.html<p><h3>See
389          * Also:</h3>   <a
390          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/CreateQueue">AWS
391          * API Reference</a></p>
392          */
393         virtual Model::CreateQueueOutcome CreateQueue(const Model::CreateQueueRequest& request) const;
394 
395         /**
396          * Create a new transcoding queue. For information about queues, see Working With
397          * Queues in the User Guide at
398          * https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-queues.html<p><h3>See
399          * Also:</h3>   <a
400          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/CreateQueue">AWS
401          * API Reference</a></p>
402          *
403          * returns a future to the operation so that it can be executed in parallel to other requests.
404          */
405         virtual Model::CreateQueueOutcomeCallable CreateQueueCallable(const Model::CreateQueueRequest& request) const;
406 
407         /**
408          * Create a new transcoding queue. For information about queues, see Working With
409          * Queues in the User Guide at
410          * https://docs.aws.amazon.com/mediaconvert/latest/ug/working-with-queues.html<p><h3>See
411          * Also:</h3>   <a
412          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/CreateQueue">AWS
413          * API Reference</a></p>
414          *
415          * Queues the request into a thread executor and triggers associated callback when operation has finished.
416          */
417         virtual void CreateQueueAsync(const Model::CreateQueueRequest& request, const CreateQueueResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
418 
419         /**
420          * Permanently delete a job template you have created.<p><h3>See Also:</h3>   <a
421          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/DeleteJobTemplate">AWS
422          * API Reference</a></p>
423          */
424         virtual Model::DeleteJobTemplateOutcome DeleteJobTemplate(const Model::DeleteJobTemplateRequest& request) const;
425 
426         /**
427          * Permanently delete a job template you have created.<p><h3>See Also:</h3>   <a
428          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/DeleteJobTemplate">AWS
429          * API Reference</a></p>
430          *
431          * returns a future to the operation so that it can be executed in parallel to other requests.
432          */
433         virtual Model::DeleteJobTemplateOutcomeCallable DeleteJobTemplateCallable(const Model::DeleteJobTemplateRequest& request) const;
434 
435         /**
436          * Permanently delete a job template you have created.<p><h3>See Also:</h3>   <a
437          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/DeleteJobTemplate">AWS
438          * API Reference</a></p>
439          *
440          * Queues the request into a thread executor and triggers associated callback when operation has finished.
441          */
442         virtual void DeleteJobTemplateAsync(const Model::DeleteJobTemplateRequest& request, const DeleteJobTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
443 
444         /**
445          * Permanently delete a policy that you created.<p><h3>See Also:</h3>   <a
446          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/DeletePolicy">AWS
447          * API Reference</a></p>
448          */
449         virtual Model::DeletePolicyOutcome DeletePolicy(const Model::DeletePolicyRequest& request) const;
450 
451         /**
452          * Permanently delete a policy that you created.<p><h3>See Also:</h3>   <a
453          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/DeletePolicy">AWS
454          * API Reference</a></p>
455          *
456          * returns a future to the operation so that it can be executed in parallel to other requests.
457          */
458         virtual Model::DeletePolicyOutcomeCallable DeletePolicyCallable(const Model::DeletePolicyRequest& request) const;
459 
460         /**
461          * Permanently delete a policy that you created.<p><h3>See Also:</h3>   <a
462          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/DeletePolicy">AWS
463          * API Reference</a></p>
464          *
465          * Queues the request into a thread executor and triggers associated callback when operation has finished.
466          */
467         virtual void DeletePolicyAsync(const Model::DeletePolicyRequest& request, const DeletePolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
468 
469         /**
470          * Permanently delete a preset you have created.<p><h3>See Also:</h3>   <a
471          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/DeletePreset">AWS
472          * API Reference</a></p>
473          */
474         virtual Model::DeletePresetOutcome DeletePreset(const Model::DeletePresetRequest& request) const;
475 
476         /**
477          * Permanently delete a preset you have created.<p><h3>See Also:</h3>   <a
478          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/DeletePreset">AWS
479          * API Reference</a></p>
480          *
481          * returns a future to the operation so that it can be executed in parallel to other requests.
482          */
483         virtual Model::DeletePresetOutcomeCallable DeletePresetCallable(const Model::DeletePresetRequest& request) const;
484 
485         /**
486          * Permanently delete a preset you have created.<p><h3>See Also:</h3>   <a
487          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/DeletePreset">AWS
488          * API Reference</a></p>
489          *
490          * Queues the request into a thread executor and triggers associated callback when operation has finished.
491          */
492         virtual void DeletePresetAsync(const Model::DeletePresetRequest& request, const DeletePresetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
493 
494         /**
495          * Permanently delete a queue you have created.<p><h3>See Also:</h3>   <a
496          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/DeleteQueue">AWS
497          * API Reference</a></p>
498          */
499         virtual Model::DeleteQueueOutcome DeleteQueue(const Model::DeleteQueueRequest& request) const;
500 
501         /**
502          * Permanently delete a queue you have created.<p><h3>See Also:</h3>   <a
503          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/DeleteQueue">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::DeleteQueueOutcomeCallable DeleteQueueCallable(const Model::DeleteQueueRequest& request) const;
509 
510         /**
511          * Permanently delete a queue you have created.<p><h3>See Also:</h3>   <a
512          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/DeleteQueue">AWS
513          * API Reference</a></p>
514          *
515          * Queues the request into a thread executor and triggers associated callback when operation has finished.
516          */
517         virtual void DeleteQueueAsync(const Model::DeleteQueueRequest& request, const DeleteQueueResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
518 
519         /**
520          * Send an request with an empty body to the regional API endpoint to get your
521          * account API endpoint.<p><h3>See Also:</h3>   <a
522          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/DescribeEndpoints">AWS
523          * API Reference</a></p>
524          */
525         virtual Model::DescribeEndpointsOutcome DescribeEndpoints(const Model::DescribeEndpointsRequest& request) const;
526 
527         /**
528          * Send an request with an empty body to the regional API endpoint to get your
529          * account API endpoint.<p><h3>See Also:</h3>   <a
530          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/DescribeEndpoints">AWS
531          * API Reference</a></p>
532          *
533          * returns a future to the operation so that it can be executed in parallel to other requests.
534          */
535         virtual Model::DescribeEndpointsOutcomeCallable DescribeEndpointsCallable(const Model::DescribeEndpointsRequest& request) const;
536 
537         /**
538          * Send an request with an empty body to the regional API endpoint to get your
539          * account API endpoint.<p><h3>See Also:</h3>   <a
540          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/DescribeEndpoints">AWS
541          * API Reference</a></p>
542          *
543          * Queues the request into a thread executor and triggers associated callback when operation has finished.
544          */
545         virtual void DescribeEndpointsAsync(const Model::DescribeEndpointsRequest& request, const DescribeEndpointsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
546 
547         /**
548          * Removes an association between the Amazon Resource Name (ARN) of an AWS
549          * Certificate Manager (ACM) certificate and an AWS Elemental MediaConvert
550          * resource.<p><h3>See Also:</h3>   <a
551          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/DisassociateCertificate">AWS
552          * API Reference</a></p>
553          */
554         virtual Model::DisassociateCertificateOutcome DisassociateCertificate(const Model::DisassociateCertificateRequest& request) const;
555 
556         /**
557          * Removes an association between the Amazon Resource Name (ARN) of an AWS
558          * Certificate Manager (ACM) certificate and an AWS Elemental MediaConvert
559          * resource.<p><h3>See Also:</h3>   <a
560          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/DisassociateCertificate">AWS
561          * API Reference</a></p>
562          *
563          * returns a future to the operation so that it can be executed in parallel to other requests.
564          */
565         virtual Model::DisassociateCertificateOutcomeCallable DisassociateCertificateCallable(const Model::DisassociateCertificateRequest& request) const;
566 
567         /**
568          * Removes an association between the Amazon Resource Name (ARN) of an AWS
569          * Certificate Manager (ACM) certificate and an AWS Elemental MediaConvert
570          * resource.<p><h3>See Also:</h3>   <a
571          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/DisassociateCertificate">AWS
572          * API Reference</a></p>
573          *
574          * Queues the request into a thread executor and triggers associated callback when operation has finished.
575          */
576         virtual void DisassociateCertificateAsync(const Model::DisassociateCertificateRequest& request, const DisassociateCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
577 
578         /**
579          * Retrieve the JSON for a specific completed transcoding job.<p><h3>See Also:</h3>
580          * <a
581          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/GetJob">AWS
582          * API Reference</a></p>
583          */
584         virtual Model::GetJobOutcome GetJob(const Model::GetJobRequest& request) const;
585 
586         /**
587          * Retrieve the JSON for a specific completed transcoding job.<p><h3>See Also:</h3>
588          * <a
589          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/GetJob">AWS
590          * API Reference</a></p>
591          *
592          * returns a future to the operation so that it can be executed in parallel to other requests.
593          */
594         virtual Model::GetJobOutcomeCallable GetJobCallable(const Model::GetJobRequest& request) const;
595 
596         /**
597          * Retrieve the JSON for a specific completed transcoding job.<p><h3>See Also:</h3>
598          * <a
599          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/GetJob">AWS
600          * API Reference</a></p>
601          *
602          * Queues the request into a thread executor and triggers associated callback when operation has finished.
603          */
604         virtual void GetJobAsync(const Model::GetJobRequest& request, const GetJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
605 
606         /**
607          * Retrieve the JSON for a specific job template.<p><h3>See Also:</h3>   <a
608          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/GetJobTemplate">AWS
609          * API Reference</a></p>
610          */
611         virtual Model::GetJobTemplateOutcome GetJobTemplate(const Model::GetJobTemplateRequest& request) const;
612 
613         /**
614          * Retrieve the JSON for a specific job template.<p><h3>See Also:</h3>   <a
615          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/GetJobTemplate">AWS
616          * API Reference</a></p>
617          *
618          * returns a future to the operation so that it can be executed in parallel to other requests.
619          */
620         virtual Model::GetJobTemplateOutcomeCallable GetJobTemplateCallable(const Model::GetJobTemplateRequest& request) const;
621 
622         /**
623          * Retrieve the JSON for a specific job template.<p><h3>See Also:</h3>   <a
624          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/GetJobTemplate">AWS
625          * API Reference</a></p>
626          *
627          * Queues the request into a thread executor and triggers associated callback when operation has finished.
628          */
629         virtual void GetJobTemplateAsync(const Model::GetJobTemplateRequest& request, const GetJobTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
630 
631         /**
632          * Retrieve the JSON for your policy.<p><h3>See Also:</h3>   <a
633          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/GetPolicy">AWS
634          * API Reference</a></p>
635          */
636         virtual Model::GetPolicyOutcome GetPolicy(const Model::GetPolicyRequest& request) const;
637 
638         /**
639          * Retrieve the JSON for your policy.<p><h3>See Also:</h3>   <a
640          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/GetPolicy">AWS
641          * API Reference</a></p>
642          *
643          * returns a future to the operation so that it can be executed in parallel to other requests.
644          */
645         virtual Model::GetPolicyOutcomeCallable GetPolicyCallable(const Model::GetPolicyRequest& request) const;
646 
647         /**
648          * Retrieve the JSON for your policy.<p><h3>See Also:</h3>   <a
649          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/GetPolicy">AWS
650          * API Reference</a></p>
651          *
652          * Queues the request into a thread executor and triggers associated callback when operation has finished.
653          */
654         virtual void GetPolicyAsync(const Model::GetPolicyRequest& request, const GetPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
655 
656         /**
657          * Retrieve the JSON for a specific preset.<p><h3>See Also:</h3>   <a
658          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/GetPreset">AWS
659          * API Reference</a></p>
660          */
661         virtual Model::GetPresetOutcome GetPreset(const Model::GetPresetRequest& request) const;
662 
663         /**
664          * Retrieve the JSON for a specific preset.<p><h3>See Also:</h3>   <a
665          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/GetPreset">AWS
666          * API Reference</a></p>
667          *
668          * returns a future to the operation so that it can be executed in parallel to other requests.
669          */
670         virtual Model::GetPresetOutcomeCallable GetPresetCallable(const Model::GetPresetRequest& request) const;
671 
672         /**
673          * Retrieve the JSON for a specific preset.<p><h3>See Also:</h3>   <a
674          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/GetPreset">AWS
675          * API Reference</a></p>
676          *
677          * Queues the request into a thread executor and triggers associated callback when operation has finished.
678          */
679         virtual void GetPresetAsync(const Model::GetPresetRequest& request, const GetPresetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
680 
681         /**
682          * Retrieve the JSON for a specific queue.<p><h3>See Also:</h3>   <a
683          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/GetQueue">AWS
684          * API Reference</a></p>
685          */
686         virtual Model::GetQueueOutcome GetQueue(const Model::GetQueueRequest& request) const;
687 
688         /**
689          * Retrieve the JSON for a specific queue.<p><h3>See Also:</h3>   <a
690          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/GetQueue">AWS
691          * API Reference</a></p>
692          *
693          * returns a future to the operation so that it can be executed in parallel to other requests.
694          */
695         virtual Model::GetQueueOutcomeCallable GetQueueCallable(const Model::GetQueueRequest& request) const;
696 
697         /**
698          * Retrieve the JSON for a specific queue.<p><h3>See Also:</h3>   <a
699          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/GetQueue">AWS
700          * API Reference</a></p>
701          *
702          * Queues the request into a thread executor and triggers associated callback when operation has finished.
703          */
704         virtual void GetQueueAsync(const Model::GetQueueRequest& request, const GetQueueResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
705 
706         /**
707          * Retrieve a JSON array of up to twenty of your job templates. This will return
708          * the templates themselves, not just a list of them. To retrieve the next twenty
709          * templates, use the nextToken string returned with the array<p><h3>See Also:</h3>
710          * <a
711          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/ListJobTemplates">AWS
712          * API Reference</a></p>
713          */
714         virtual Model::ListJobTemplatesOutcome ListJobTemplates(const Model::ListJobTemplatesRequest& request) const;
715 
716         /**
717          * Retrieve a JSON array of up to twenty of your job templates. This will return
718          * the templates themselves, not just a list of them. To retrieve the next twenty
719          * templates, use the nextToken string returned with the array<p><h3>See Also:</h3>
720          * <a
721          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/ListJobTemplates">AWS
722          * API Reference</a></p>
723          *
724          * returns a future to the operation so that it can be executed in parallel to other requests.
725          */
726         virtual Model::ListJobTemplatesOutcomeCallable ListJobTemplatesCallable(const Model::ListJobTemplatesRequest& request) const;
727 
728         /**
729          * Retrieve a JSON array of up to twenty of your job templates. This will return
730          * the templates themselves, not just a list of them. To retrieve the next twenty
731          * templates, use the nextToken string returned with the array<p><h3>See Also:</h3>
732          * <a
733          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/ListJobTemplates">AWS
734          * API Reference</a></p>
735          *
736          * Queues the request into a thread executor and triggers associated callback when operation has finished.
737          */
738         virtual void ListJobTemplatesAsync(const Model::ListJobTemplatesRequest& request, const ListJobTemplatesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
739 
740         /**
741          * Retrieve a JSON array of up to twenty of your most recently created jobs. This
742          * array includes in-process, completed, and errored jobs. This will return the
743          * jobs themselves, not just a list of the jobs. To retrieve the twenty next most
744          * recent jobs, use the nextToken string returned with the array.<p><h3>See
745          * Also:</h3>   <a
746          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/ListJobs">AWS
747          * API Reference</a></p>
748          */
749         virtual Model::ListJobsOutcome ListJobs(const Model::ListJobsRequest& request) const;
750 
751         /**
752          * Retrieve a JSON array of up to twenty of your most recently created jobs. This
753          * array includes in-process, completed, and errored jobs. This will return the
754          * jobs themselves, not just a list of the jobs. To retrieve the twenty next most
755          * recent jobs, use the nextToken string returned with the array.<p><h3>See
756          * Also:</h3>   <a
757          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/ListJobs">AWS
758          * API Reference</a></p>
759          *
760          * returns a future to the operation so that it can be executed in parallel to other requests.
761          */
762         virtual Model::ListJobsOutcomeCallable ListJobsCallable(const Model::ListJobsRequest& request) const;
763 
764         /**
765          * Retrieve a JSON array of up to twenty of your most recently created jobs. This
766          * array includes in-process, completed, and errored jobs. This will return the
767          * jobs themselves, not just a list of the jobs. To retrieve the twenty next most
768          * recent jobs, use the nextToken string returned with the array.<p><h3>See
769          * Also:</h3>   <a
770          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/ListJobs">AWS
771          * API Reference</a></p>
772          *
773          * Queues the request into a thread executor and triggers associated callback when operation has finished.
774          */
775         virtual void ListJobsAsync(const Model::ListJobsRequest& request, const ListJobsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
776 
777         /**
778          * Retrieve a JSON array of up to twenty of your presets. This will return the
779          * presets themselves, not just a list of them. To retrieve the next twenty
780          * presets, use the nextToken string returned with the array.<p><h3>See Also:</h3>
781          * <a
782          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/ListPresets">AWS
783          * API Reference</a></p>
784          */
785         virtual Model::ListPresetsOutcome ListPresets(const Model::ListPresetsRequest& request) const;
786 
787         /**
788          * Retrieve a JSON array of up to twenty of your presets. This will return the
789          * presets themselves, not just a list of them. To retrieve the next twenty
790          * presets, use the nextToken string returned with the array.<p><h3>See Also:</h3>
791          * <a
792          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/ListPresets">AWS
793          * API Reference</a></p>
794          *
795          * returns a future to the operation so that it can be executed in parallel to other requests.
796          */
797         virtual Model::ListPresetsOutcomeCallable ListPresetsCallable(const Model::ListPresetsRequest& request) const;
798 
799         /**
800          * Retrieve a JSON array of up to twenty of your presets. This will return the
801          * presets themselves, not just a list of them. To retrieve the next twenty
802          * presets, use the nextToken string returned with the array.<p><h3>See Also:</h3>
803          * <a
804          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/ListPresets">AWS
805          * API Reference</a></p>
806          *
807          * Queues the request into a thread executor and triggers associated callback when operation has finished.
808          */
809         virtual void ListPresetsAsync(const Model::ListPresetsRequest& request, const ListPresetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
810 
811         /**
812          * Retrieve a JSON array of up to twenty of your queues. This will return the
813          * queues themselves, not just a list of them. To retrieve the next twenty queues,
814          * use the nextToken string returned with the array.<p><h3>See Also:</h3>   <a
815          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/ListQueues">AWS
816          * API Reference</a></p>
817          */
818         virtual Model::ListQueuesOutcome ListQueues(const Model::ListQueuesRequest& request) const;
819 
820         /**
821          * Retrieve a JSON array of up to twenty of your queues. This will return the
822          * queues themselves, not just a list of them. To retrieve the next twenty queues,
823          * use the nextToken string returned with the array.<p><h3>See Also:</h3>   <a
824          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/ListQueues">AWS
825          * API Reference</a></p>
826          *
827          * returns a future to the operation so that it can be executed in parallel to other requests.
828          */
829         virtual Model::ListQueuesOutcomeCallable ListQueuesCallable(const Model::ListQueuesRequest& request) const;
830 
831         /**
832          * Retrieve a JSON array of up to twenty of your queues. This will return the
833          * queues themselves, not just a list of them. To retrieve the next twenty queues,
834          * use the nextToken string returned with the array.<p><h3>See Also:</h3>   <a
835          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/ListQueues">AWS
836          * API Reference</a></p>
837          *
838          * Queues the request into a thread executor and triggers associated callback when operation has finished.
839          */
840         virtual void ListQueuesAsync(const Model::ListQueuesRequest& request, const ListQueuesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
841 
842         /**
843          * Retrieve the tags for a MediaConvert resource.<p><h3>See Also:</h3>   <a
844          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/ListTagsForResource">AWS
845          * API Reference</a></p>
846          */
847         virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const;
848 
849         /**
850          * Retrieve the tags for a MediaConvert resource.<p><h3>See Also:</h3>   <a
851          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/ListTagsForResource">AWS
852          * API Reference</a></p>
853          *
854          * returns a future to the operation so that it can be executed in parallel to other requests.
855          */
856         virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const;
857 
858         /**
859          * Retrieve the tags for a MediaConvert resource.<p><h3>See Also:</h3>   <a
860          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/ListTagsForResource">AWS
861          * API Reference</a></p>
862          *
863          * Queues the request into a thread executor and triggers associated callback when operation has finished.
864          */
865         virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
866 
867         /**
868          * Create or change your policy. For more information about policies, see the user
869          * guide at
870          * http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html<p><h3>See
871          * Also:</h3>   <a
872          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/PutPolicy">AWS
873          * API Reference</a></p>
874          */
875         virtual Model::PutPolicyOutcome PutPolicy(const Model::PutPolicyRequest& request) const;
876 
877         /**
878          * Create or change your policy. For more information about policies, see the user
879          * guide at
880          * http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html<p><h3>See
881          * Also:</h3>   <a
882          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/PutPolicy">AWS
883          * API Reference</a></p>
884          *
885          * returns a future to the operation so that it can be executed in parallel to other requests.
886          */
887         virtual Model::PutPolicyOutcomeCallable PutPolicyCallable(const Model::PutPolicyRequest& request) const;
888 
889         /**
890          * Create or change your policy. For more information about policies, see the user
891          * guide at
892          * http://docs.aws.amazon.com/mediaconvert/latest/ug/what-is.html<p><h3>See
893          * Also:</h3>   <a
894          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/PutPolicy">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 PutPolicyAsync(const Model::PutPolicyRequest& request, const PutPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
900 
901         /**
902          * Add tags to a MediaConvert queue, preset, or job template. For information about
903          * tagging, see the User Guide at
904          * https://docs.aws.amazon.com/mediaconvert/latest/ug/tagging-resources.html<p><h3>See
905          * Also:</h3>   <a
906          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/TagResource">AWS
907          * API Reference</a></p>
908          */
909         virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const;
910 
911         /**
912          * Add tags to a MediaConvert queue, preset, or job template. For information about
913          * tagging, see the User Guide at
914          * https://docs.aws.amazon.com/mediaconvert/latest/ug/tagging-resources.html<p><h3>See
915          * Also:</h3>   <a
916          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/TagResource">AWS
917          * API Reference</a></p>
918          *
919          * returns a future to the operation so that it can be executed in parallel to other requests.
920          */
921         virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const;
922 
923         /**
924          * Add tags to a MediaConvert queue, preset, or job template. For information about
925          * tagging, see the User Guide at
926          * https://docs.aws.amazon.com/mediaconvert/latest/ug/tagging-resources.html<p><h3>See
927          * Also:</h3>   <a
928          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/TagResource">AWS
929          * API Reference</a></p>
930          *
931          * Queues the request into a thread executor and triggers associated callback when operation has finished.
932          */
933         virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
934 
935         /**
936          * Remove tags from a MediaConvert queue, preset, or job template. For information
937          * about tagging, see the User Guide at
938          * https://docs.aws.amazon.com/mediaconvert/latest/ug/tagging-resources.html<p><h3>See
939          * Also:</h3>   <a
940          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/UntagResource">AWS
941          * API Reference</a></p>
942          */
943         virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const;
944 
945         /**
946          * Remove tags from a MediaConvert queue, preset, or job template. For information
947          * about tagging, see the User Guide at
948          * https://docs.aws.amazon.com/mediaconvert/latest/ug/tagging-resources.html<p><h3>See
949          * Also:</h3>   <a
950          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/UntagResource">AWS
951          * API Reference</a></p>
952          *
953          * returns a future to the operation so that it can be executed in parallel to other requests.
954          */
955         virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const;
956 
957         /**
958          * Remove tags from a MediaConvert queue, preset, or job template. For information
959          * about tagging, see the User Guide at
960          * https://docs.aws.amazon.com/mediaconvert/latest/ug/tagging-resources.html<p><h3>See
961          * Also:</h3>   <a
962          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/UntagResource">AWS
963          * API Reference</a></p>
964          *
965          * Queues the request into a thread executor and triggers associated callback when operation has finished.
966          */
967         virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
968 
969         /**
970          * Modify one of your existing job templates.<p><h3>See Also:</h3>   <a
971          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/UpdateJobTemplate">AWS
972          * API Reference</a></p>
973          */
974         virtual Model::UpdateJobTemplateOutcome UpdateJobTemplate(const Model::UpdateJobTemplateRequest& request) const;
975 
976         /**
977          * Modify one of your existing job templates.<p><h3>See Also:</h3>   <a
978          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/UpdateJobTemplate">AWS
979          * API Reference</a></p>
980          *
981          * returns a future to the operation so that it can be executed in parallel to other requests.
982          */
983         virtual Model::UpdateJobTemplateOutcomeCallable UpdateJobTemplateCallable(const Model::UpdateJobTemplateRequest& request) const;
984 
985         /**
986          * Modify one of your existing job templates.<p><h3>See Also:</h3>   <a
987          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/UpdateJobTemplate">AWS
988          * API Reference</a></p>
989          *
990          * Queues the request into a thread executor and triggers associated callback when operation has finished.
991          */
992         virtual void UpdateJobTemplateAsync(const Model::UpdateJobTemplateRequest& request, const UpdateJobTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
993 
994         /**
995          * Modify one of your existing presets.<p><h3>See Also:</h3>   <a
996          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/UpdatePreset">AWS
997          * API Reference</a></p>
998          */
999         virtual Model::UpdatePresetOutcome UpdatePreset(const Model::UpdatePresetRequest& request) const;
1000 
1001         /**
1002          * Modify one of your existing presets.<p><h3>See Also:</h3>   <a
1003          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/UpdatePreset">AWS
1004          * API Reference</a></p>
1005          *
1006          * returns a future to the operation so that it can be executed in parallel to other requests.
1007          */
1008         virtual Model::UpdatePresetOutcomeCallable UpdatePresetCallable(const Model::UpdatePresetRequest& request) const;
1009 
1010         /**
1011          * Modify one of your existing presets.<p><h3>See Also:</h3>   <a
1012          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/UpdatePreset">AWS
1013          * API Reference</a></p>
1014          *
1015          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1016          */
1017         virtual void UpdatePresetAsync(const Model::UpdatePresetRequest& request, const UpdatePresetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1018 
1019         /**
1020          * Modify one of your existing queues.<p><h3>See Also:</h3>   <a
1021          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/UpdateQueue">AWS
1022          * API Reference</a></p>
1023          */
1024         virtual Model::UpdateQueueOutcome UpdateQueue(const Model::UpdateQueueRequest& request) const;
1025 
1026         /**
1027          * Modify one of your existing queues.<p><h3>See Also:</h3>   <a
1028          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/UpdateQueue">AWS
1029          * API Reference</a></p>
1030          *
1031          * returns a future to the operation so that it can be executed in parallel to other requests.
1032          */
1033         virtual Model::UpdateQueueOutcomeCallable UpdateQueueCallable(const Model::UpdateQueueRequest& request) const;
1034 
1035         /**
1036          * Modify one of your existing queues.<p><h3>See Also:</h3>   <a
1037          * href="http://docs.aws.amazon.com/goto/WebAPI/mediaconvert-2017-08-29/UpdateQueue">AWS
1038          * API Reference</a></p>
1039          *
1040          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1041          */
1042         virtual void UpdateQueueAsync(const Model::UpdateQueueRequest& request, const UpdateQueueResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1043 
1044 
1045       void OverrideEndpoint(const Aws::String& endpoint);
1046     private:
1047       void init(const Aws::Client::ClientConfiguration& clientConfiguration);
1048         void AssociateCertificateAsyncHelper(const Model::AssociateCertificateRequest& request, const AssociateCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1049         void CancelJobAsyncHelper(const Model::CancelJobRequest& request, const CancelJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1050         void CreateJobAsyncHelper(const Model::CreateJobRequest& request, const CreateJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1051         void CreateJobTemplateAsyncHelper(const Model::CreateJobTemplateRequest& request, const CreateJobTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1052         void CreatePresetAsyncHelper(const Model::CreatePresetRequest& request, const CreatePresetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1053         void CreateQueueAsyncHelper(const Model::CreateQueueRequest& request, const CreateQueueResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1054         void DeleteJobTemplateAsyncHelper(const Model::DeleteJobTemplateRequest& request, const DeleteJobTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1055         void DeletePolicyAsyncHelper(const Model::DeletePolicyRequest& request, const DeletePolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1056         void DeletePresetAsyncHelper(const Model::DeletePresetRequest& request, const DeletePresetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1057         void DeleteQueueAsyncHelper(const Model::DeleteQueueRequest& request, const DeleteQueueResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1058         void DescribeEndpointsAsyncHelper(const Model::DescribeEndpointsRequest& request, const DescribeEndpointsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1059         void DisassociateCertificateAsyncHelper(const Model::DisassociateCertificateRequest& request, const DisassociateCertificateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1060         void GetJobAsyncHelper(const Model::GetJobRequest& request, const GetJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1061         void GetJobTemplateAsyncHelper(const Model::GetJobTemplateRequest& request, const GetJobTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1062         void GetPolicyAsyncHelper(const Model::GetPolicyRequest& request, const GetPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1063         void GetPresetAsyncHelper(const Model::GetPresetRequest& request, const GetPresetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1064         void GetQueueAsyncHelper(const Model::GetQueueRequest& request, const GetQueueResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1065         void ListJobTemplatesAsyncHelper(const Model::ListJobTemplatesRequest& request, const ListJobTemplatesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1066         void ListJobsAsyncHelper(const Model::ListJobsRequest& request, const ListJobsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1067         void ListPresetsAsyncHelper(const Model::ListPresetsRequest& request, const ListPresetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1068         void ListQueuesAsyncHelper(const Model::ListQueuesRequest& request, const ListQueuesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1069         void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1070         void PutPolicyAsyncHelper(const Model::PutPolicyRequest& request, const PutPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1071         void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1072         void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1073         void UpdateJobTemplateAsyncHelper(const Model::UpdateJobTemplateRequest& request, const UpdateJobTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1074         void UpdatePresetAsyncHelper(const Model::UpdatePresetRequest& request, const UpdatePresetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1075         void UpdateQueueAsyncHelper(const Model::UpdateQueueRequest& request, const UpdateQueueResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1076 
1077       Aws::String m_uri;
1078       Aws::String m_configScheme;
1079       std::shared_ptr<Aws::Utils::Threading::Executor> m_executor;
1080   };
1081 
1082 } // namespace MediaConvert
1083 } // namespace Aws
1084