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/synthetics/Synthetics_EXPORTS.h>
8 #include <aws/synthetics/SyntheticsErrors.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/synthetics/model/CreateCanaryResult.h>
15 #include <aws/synthetics/model/DeleteCanaryResult.h>
16 #include <aws/synthetics/model/DescribeCanariesResult.h>
17 #include <aws/synthetics/model/DescribeCanariesLastRunResult.h>
18 #include <aws/synthetics/model/DescribeRuntimeVersionsResult.h>
19 #include <aws/synthetics/model/GetCanaryResult.h>
20 #include <aws/synthetics/model/GetCanaryRunsResult.h>
21 #include <aws/synthetics/model/ListTagsForResourceResult.h>
22 #include <aws/synthetics/model/StartCanaryResult.h>
23 #include <aws/synthetics/model/StopCanaryResult.h>
24 #include <aws/synthetics/model/TagResourceResult.h>
25 #include <aws/synthetics/model/UntagResourceResult.h>
26 #include <aws/synthetics/model/UpdateCanaryResult.h>
27 #include <aws/core/client/AsyncCallerContext.h>
28 #include <aws/core/http/HttpTypes.h>
29 #include <future>
30 #include <functional>
31 
32 namespace Aws
33 {
34 
35 namespace Http
36 {
37   class HttpClient;
38   class HttpClientFactory;
39 } // namespace Http
40 
41 namespace Utils
42 {
43   template< typename R, typename E> class Outcome;
44 namespace Threading
45 {
46   class Executor;
47 } // namespace Threading
48 } // namespace Utils
49 
50 namespace Auth
51 {
52   class AWSCredentials;
53   class AWSCredentialsProvider;
54 } // namespace Auth
55 
56 namespace Client
57 {
58   class RetryStrategy;
59 } // namespace Client
60 
61 namespace Synthetics
62 {
63 
64 namespace Model
65 {
66         class CreateCanaryRequest;
67         class DeleteCanaryRequest;
68         class DescribeCanariesRequest;
69         class DescribeCanariesLastRunRequest;
70         class DescribeRuntimeVersionsRequest;
71         class GetCanaryRequest;
72         class GetCanaryRunsRequest;
73         class ListTagsForResourceRequest;
74         class StartCanaryRequest;
75         class StopCanaryRequest;
76         class TagResourceRequest;
77         class UntagResourceRequest;
78         class UpdateCanaryRequest;
79 
80         typedef Aws::Utils::Outcome<CreateCanaryResult, SyntheticsError> CreateCanaryOutcome;
81         typedef Aws::Utils::Outcome<DeleteCanaryResult, SyntheticsError> DeleteCanaryOutcome;
82         typedef Aws::Utils::Outcome<DescribeCanariesResult, SyntheticsError> DescribeCanariesOutcome;
83         typedef Aws::Utils::Outcome<DescribeCanariesLastRunResult, SyntheticsError> DescribeCanariesLastRunOutcome;
84         typedef Aws::Utils::Outcome<DescribeRuntimeVersionsResult, SyntheticsError> DescribeRuntimeVersionsOutcome;
85         typedef Aws::Utils::Outcome<GetCanaryResult, SyntheticsError> GetCanaryOutcome;
86         typedef Aws::Utils::Outcome<GetCanaryRunsResult, SyntheticsError> GetCanaryRunsOutcome;
87         typedef Aws::Utils::Outcome<ListTagsForResourceResult, SyntheticsError> ListTagsForResourceOutcome;
88         typedef Aws::Utils::Outcome<StartCanaryResult, SyntheticsError> StartCanaryOutcome;
89         typedef Aws::Utils::Outcome<StopCanaryResult, SyntheticsError> StopCanaryOutcome;
90         typedef Aws::Utils::Outcome<TagResourceResult, SyntheticsError> TagResourceOutcome;
91         typedef Aws::Utils::Outcome<UntagResourceResult, SyntheticsError> UntagResourceOutcome;
92         typedef Aws::Utils::Outcome<UpdateCanaryResult, SyntheticsError> UpdateCanaryOutcome;
93 
94         typedef std::future<CreateCanaryOutcome> CreateCanaryOutcomeCallable;
95         typedef std::future<DeleteCanaryOutcome> DeleteCanaryOutcomeCallable;
96         typedef std::future<DescribeCanariesOutcome> DescribeCanariesOutcomeCallable;
97         typedef std::future<DescribeCanariesLastRunOutcome> DescribeCanariesLastRunOutcomeCallable;
98         typedef std::future<DescribeRuntimeVersionsOutcome> DescribeRuntimeVersionsOutcomeCallable;
99         typedef std::future<GetCanaryOutcome> GetCanaryOutcomeCallable;
100         typedef std::future<GetCanaryRunsOutcome> GetCanaryRunsOutcomeCallable;
101         typedef std::future<ListTagsForResourceOutcome> ListTagsForResourceOutcomeCallable;
102         typedef std::future<StartCanaryOutcome> StartCanaryOutcomeCallable;
103         typedef std::future<StopCanaryOutcome> StopCanaryOutcomeCallable;
104         typedef std::future<TagResourceOutcome> TagResourceOutcomeCallable;
105         typedef std::future<UntagResourceOutcome> UntagResourceOutcomeCallable;
106         typedef std::future<UpdateCanaryOutcome> UpdateCanaryOutcomeCallable;
107 } // namespace Model
108 
109   class SyntheticsClient;
110 
111     typedef std::function<void(const SyntheticsClient*, const Model::CreateCanaryRequest&, const Model::CreateCanaryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateCanaryResponseReceivedHandler;
112     typedef std::function<void(const SyntheticsClient*, const Model::DeleteCanaryRequest&, const Model::DeleteCanaryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteCanaryResponseReceivedHandler;
113     typedef std::function<void(const SyntheticsClient*, const Model::DescribeCanariesRequest&, const Model::DescribeCanariesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeCanariesResponseReceivedHandler;
114     typedef std::function<void(const SyntheticsClient*, const Model::DescribeCanariesLastRunRequest&, const Model::DescribeCanariesLastRunOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeCanariesLastRunResponseReceivedHandler;
115     typedef std::function<void(const SyntheticsClient*, const Model::DescribeRuntimeVersionsRequest&, const Model::DescribeRuntimeVersionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeRuntimeVersionsResponseReceivedHandler;
116     typedef std::function<void(const SyntheticsClient*, const Model::GetCanaryRequest&, const Model::GetCanaryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetCanaryResponseReceivedHandler;
117     typedef std::function<void(const SyntheticsClient*, const Model::GetCanaryRunsRequest&, const Model::GetCanaryRunsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetCanaryRunsResponseReceivedHandler;
118     typedef std::function<void(const SyntheticsClient*, const Model::ListTagsForResourceRequest&, const Model::ListTagsForResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTagsForResourceResponseReceivedHandler;
119     typedef std::function<void(const SyntheticsClient*, const Model::StartCanaryRequest&, const Model::StartCanaryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StartCanaryResponseReceivedHandler;
120     typedef std::function<void(const SyntheticsClient*, const Model::StopCanaryRequest&, const Model::StopCanaryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StopCanaryResponseReceivedHandler;
121     typedef std::function<void(const SyntheticsClient*, const Model::TagResourceRequest&, const Model::TagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TagResourceResponseReceivedHandler;
122     typedef std::function<void(const SyntheticsClient*, const Model::UntagResourceRequest&, const Model::UntagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UntagResourceResponseReceivedHandler;
123     typedef std::function<void(const SyntheticsClient*, const Model::UpdateCanaryRequest&, const Model::UpdateCanaryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateCanaryResponseReceivedHandler;
124 
125   /**
126    * <fullname>Amazon CloudWatch Synthetics</fullname> <p>You can use Amazon
127    * CloudWatch Synthetics to continually monitor your services. You can create and
128    * manage <i>canaries</i>, which are modular, lightweight scripts that monitor your
129    * endpoints and APIs from the outside-in. You can set up your canaries to run 24
130    * hours a day, once per minute. The canaries help you check the availability and
131    * latency of your web services and troubleshoot anomalies by investigating load
132    * time data, screenshots of the UI, logs, and metrics. The canaries seamlessly
133    * integrate with CloudWatch ServiceLens to help you trace the causes of impacted
134    * nodes in your applications. For more information, see <a
135    * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ServiceLens.html">Using
136    * ServiceLens to Monitor the Health of Your Applications</a> in the <i>Amazon
137    * CloudWatch User Guide</i>.</p> <p>Before you create and manage canaries, be
138    * aware of the security considerations. For more information, see <a
139    * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/servicelens_canaries_security.html">Security
140    * Considerations for Synthetics Canaries</a>.</p>
141    */
142   class AWS_SYNTHETICS_API SyntheticsClient : public Aws::Client::AWSJsonClient
143   {
144     public:
145       typedef Aws::Client::AWSJsonClient BASECLASS;
146 
147        /**
148         * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
149         * is not specified, it will be initialized to default values.
150         */
151         SyntheticsClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
152 
153        /**
154         * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
155         * is not specified, it will be initialized to default values.
156         */
157         SyntheticsClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
158 
159        /**
160         * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
161         * the default http client factory will be used
162         */
163         SyntheticsClient(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
164             const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
165 
166         virtual ~SyntheticsClient();
167 
168 
169         /**
170          * <p>Creates a canary. Canaries are scripts that monitor your endpoints and APIs
171          * from the outside-in. Canaries help you check the availability and latency of
172          * your web services and troubleshoot anomalies by investigating load time data,
173          * screenshots of the UI, logs, and metrics. You can set up a canary to run
174          * continuously or just once. </p> <p>Do not use <code>CreateCanary</code> to
175          * modify an existing canary. Use <a
176          * href="https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_UpdateCanary.html">UpdateCanary</a>
177          * instead.</p> <p>To create canaries, you must have the
178          * <code>CloudWatchSyntheticsFullAccess</code> policy. If you are creating a new
179          * IAM role for the canary, you also need the the <code>iam:CreateRole</code>,
180          * <code>iam:CreatePolicy</code> and <code>iam:AttachRolePolicy</code> permissions.
181          * For more information, see <a
182          * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Roles">Necessary
183          * Roles and Permissions</a>.</p> <p>Do not include secrets or proprietary
184          * information in your canary names. The canary name makes up part of the Amazon
185          * Resource Name (ARN) for the canary, and the ARN is included in outbound calls
186          * over the internet. For more information, see <a
187          * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/servicelens_canaries_security.html">Security
188          * Considerations for Synthetics Canaries</a>.</p><p><h3>See Also:</h3>   <a
189          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/CreateCanary">AWS
190          * API Reference</a></p>
191          */
192         virtual Model::CreateCanaryOutcome CreateCanary(const Model::CreateCanaryRequest& request) const;
193 
194         /**
195          * <p>Creates a canary. Canaries are scripts that monitor your endpoints and APIs
196          * from the outside-in. Canaries help you check the availability and latency of
197          * your web services and troubleshoot anomalies by investigating load time data,
198          * screenshots of the UI, logs, and metrics. You can set up a canary to run
199          * continuously or just once. </p> <p>Do not use <code>CreateCanary</code> to
200          * modify an existing canary. Use <a
201          * href="https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_UpdateCanary.html">UpdateCanary</a>
202          * instead.</p> <p>To create canaries, you must have the
203          * <code>CloudWatchSyntheticsFullAccess</code> policy. If you are creating a new
204          * IAM role for the canary, you also need the the <code>iam:CreateRole</code>,
205          * <code>iam:CreatePolicy</code> and <code>iam:AttachRolePolicy</code> permissions.
206          * For more information, see <a
207          * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Roles">Necessary
208          * Roles and Permissions</a>.</p> <p>Do not include secrets or proprietary
209          * information in your canary names. The canary name makes up part of the Amazon
210          * Resource Name (ARN) for the canary, and the ARN is included in outbound calls
211          * over the internet. For more information, see <a
212          * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/servicelens_canaries_security.html">Security
213          * Considerations for Synthetics Canaries</a>.</p><p><h3>See Also:</h3>   <a
214          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/CreateCanary">AWS
215          * API Reference</a></p>
216          *
217          * returns a future to the operation so that it can be executed in parallel to other requests.
218          */
219         virtual Model::CreateCanaryOutcomeCallable CreateCanaryCallable(const Model::CreateCanaryRequest& request) const;
220 
221         /**
222          * <p>Creates a canary. Canaries are scripts that monitor your endpoints and APIs
223          * from the outside-in. Canaries help you check the availability and latency of
224          * your web services and troubleshoot anomalies by investigating load time data,
225          * screenshots of the UI, logs, and metrics. You can set up a canary to run
226          * continuously or just once. </p> <p>Do not use <code>CreateCanary</code> to
227          * modify an existing canary. Use <a
228          * href="https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_UpdateCanary.html">UpdateCanary</a>
229          * instead.</p> <p>To create canaries, you must have the
230          * <code>CloudWatchSyntheticsFullAccess</code> policy. If you are creating a new
231          * IAM role for the canary, you also need the the <code>iam:CreateRole</code>,
232          * <code>iam:CreatePolicy</code> and <code>iam:AttachRolePolicy</code> permissions.
233          * For more information, see <a
234          * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Roles">Necessary
235          * Roles and Permissions</a>.</p> <p>Do not include secrets or proprietary
236          * information in your canary names. The canary name makes up part of the Amazon
237          * Resource Name (ARN) for the canary, and the ARN is included in outbound calls
238          * over the internet. For more information, see <a
239          * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/servicelens_canaries_security.html">Security
240          * Considerations for Synthetics Canaries</a>.</p><p><h3>See Also:</h3>   <a
241          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/CreateCanary">AWS
242          * API Reference</a></p>
243          *
244          * Queues the request into a thread executor and triggers associated callback when operation has finished.
245          */
246         virtual void CreateCanaryAsync(const Model::CreateCanaryRequest& request, const CreateCanaryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
247 
248         /**
249          * <p>Permanently deletes the specified canary.</p> <p>When you delete a canary,
250          * resources used and created by the canary are not automatically deleted. After
251          * you delete a canary that you do not intend to use again, you should also delete
252          * the following:</p> <ul> <li> <p>The Lambda functions and layers used by this
253          * canary. These have the prefix <code>cwsyn-<i>MyCanaryName</i> </code>.</p> </li>
254          * <li> <p>The CloudWatch alarms created for this canary. These alarms have a name
255          * of <code>Synthetics-SharpDrop-Alarm-<i>MyCanaryName</i> </code>.</p> </li> <li>
256          * <p>Amazon S3 objects and buckets, such as the canary's artifact location.</p>
257          * </li> <li> <p>IAM roles created for the canary. If they were created in the
258          * console, these roles have the name <code>
259          * role/service-role/CloudWatchSyntheticsRole-<i>MyCanaryName</i> </code>.</p>
260          * </li> <li> <p>CloudWatch Logs log groups created for the canary. These logs
261          * groups have the name <code>/aws/lambda/cwsyn-<i>MyCanaryName</i> </code>. </p>
262          * </li> </ul> <p>Before you delete a canary, you might want to use
263          * <code>GetCanary</code> to display the information about this canary. Make note
264          * of the information returned by this operation so that you can delete these
265          * resources after you delete the canary.</p><p><h3>See Also:</h3>   <a
266          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/DeleteCanary">AWS
267          * API Reference</a></p>
268          */
269         virtual Model::DeleteCanaryOutcome DeleteCanary(const Model::DeleteCanaryRequest& request) const;
270 
271         /**
272          * <p>Permanently deletes the specified canary.</p> <p>When you delete a canary,
273          * resources used and created by the canary are not automatically deleted. After
274          * you delete a canary that you do not intend to use again, you should also delete
275          * the following:</p> <ul> <li> <p>The Lambda functions and layers used by this
276          * canary. These have the prefix <code>cwsyn-<i>MyCanaryName</i> </code>.</p> </li>
277          * <li> <p>The CloudWatch alarms created for this canary. These alarms have a name
278          * of <code>Synthetics-SharpDrop-Alarm-<i>MyCanaryName</i> </code>.</p> </li> <li>
279          * <p>Amazon S3 objects and buckets, such as the canary's artifact location.</p>
280          * </li> <li> <p>IAM roles created for the canary. If they were created in the
281          * console, these roles have the name <code>
282          * role/service-role/CloudWatchSyntheticsRole-<i>MyCanaryName</i> </code>.</p>
283          * </li> <li> <p>CloudWatch Logs log groups created for the canary. These logs
284          * groups have the name <code>/aws/lambda/cwsyn-<i>MyCanaryName</i> </code>. </p>
285          * </li> </ul> <p>Before you delete a canary, you might want to use
286          * <code>GetCanary</code> to display the information about this canary. Make note
287          * of the information returned by this operation so that you can delete these
288          * resources after you delete the canary.</p><p><h3>See Also:</h3>   <a
289          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/DeleteCanary">AWS
290          * API Reference</a></p>
291          *
292          * returns a future to the operation so that it can be executed in parallel to other requests.
293          */
294         virtual Model::DeleteCanaryOutcomeCallable DeleteCanaryCallable(const Model::DeleteCanaryRequest& request) const;
295 
296         /**
297          * <p>Permanently deletes the specified canary.</p> <p>When you delete a canary,
298          * resources used and created by the canary are not automatically deleted. After
299          * you delete a canary that you do not intend to use again, you should also delete
300          * the following:</p> <ul> <li> <p>The Lambda functions and layers used by this
301          * canary. These have the prefix <code>cwsyn-<i>MyCanaryName</i> </code>.</p> </li>
302          * <li> <p>The CloudWatch alarms created for this canary. These alarms have a name
303          * of <code>Synthetics-SharpDrop-Alarm-<i>MyCanaryName</i> </code>.</p> </li> <li>
304          * <p>Amazon S3 objects and buckets, such as the canary's artifact location.</p>
305          * </li> <li> <p>IAM roles created for the canary. If they were created in the
306          * console, these roles have the name <code>
307          * role/service-role/CloudWatchSyntheticsRole-<i>MyCanaryName</i> </code>.</p>
308          * </li> <li> <p>CloudWatch Logs log groups created for the canary. These logs
309          * groups have the name <code>/aws/lambda/cwsyn-<i>MyCanaryName</i> </code>. </p>
310          * </li> </ul> <p>Before you delete a canary, you might want to use
311          * <code>GetCanary</code> to display the information about this canary. Make note
312          * of the information returned by this operation so that you can delete these
313          * resources after you delete the canary.</p><p><h3>See Also:</h3>   <a
314          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/DeleteCanary">AWS
315          * API Reference</a></p>
316          *
317          * Queues the request into a thread executor and triggers associated callback when operation has finished.
318          */
319         virtual void DeleteCanaryAsync(const Model::DeleteCanaryRequest& request, const DeleteCanaryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
320 
321         /**
322          * <p>This operation returns a list of the canaries in your account, along with
323          * full details about each canary.</p> <p>This operation does not have
324          * resource-level authorization, so if a user is able to use
325          * <code>DescribeCanaries</code>, the user can see all of the canaries in the
326          * account. A deny policy can only be used to restrict access to all canaries. It
327          * cannot be used on specific resources. </p><p><h3>See Also:</h3>   <a
328          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/DescribeCanaries">AWS
329          * API Reference</a></p>
330          */
331         virtual Model::DescribeCanariesOutcome DescribeCanaries(const Model::DescribeCanariesRequest& request) const;
332 
333         /**
334          * <p>This operation returns a list of the canaries in your account, along with
335          * full details about each canary.</p> <p>This operation does not have
336          * resource-level authorization, so if a user is able to use
337          * <code>DescribeCanaries</code>, the user can see all of the canaries in the
338          * account. A deny policy can only be used to restrict access to all canaries. It
339          * cannot be used on specific resources. </p><p><h3>See Also:</h3>   <a
340          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/DescribeCanaries">AWS
341          * API Reference</a></p>
342          *
343          * returns a future to the operation so that it can be executed in parallel to other requests.
344          */
345         virtual Model::DescribeCanariesOutcomeCallable DescribeCanariesCallable(const Model::DescribeCanariesRequest& request) const;
346 
347         /**
348          * <p>This operation returns a list of the canaries in your account, along with
349          * full details about each canary.</p> <p>This operation does not have
350          * resource-level authorization, so if a user is able to use
351          * <code>DescribeCanaries</code>, the user can see all of the canaries in the
352          * account. A deny policy can only be used to restrict access to all canaries. It
353          * cannot be used on specific resources. </p><p><h3>See Also:</h3>   <a
354          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/DescribeCanaries">AWS
355          * API Reference</a></p>
356          *
357          * Queues the request into a thread executor and triggers associated callback when operation has finished.
358          */
359         virtual void DescribeCanariesAsync(const Model::DescribeCanariesRequest& request, const DescribeCanariesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
360 
361         /**
362          * <p>Use this operation to see information from the most recent run of each canary
363          * that you have created.</p><p><h3>See Also:</h3>   <a
364          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/DescribeCanariesLastRun">AWS
365          * API Reference</a></p>
366          */
367         virtual Model::DescribeCanariesLastRunOutcome DescribeCanariesLastRun(const Model::DescribeCanariesLastRunRequest& request) const;
368 
369         /**
370          * <p>Use this operation to see information from the most recent run of each canary
371          * that you have created.</p><p><h3>See Also:</h3>   <a
372          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/DescribeCanariesLastRun">AWS
373          * API Reference</a></p>
374          *
375          * returns a future to the operation so that it can be executed in parallel to other requests.
376          */
377         virtual Model::DescribeCanariesLastRunOutcomeCallable DescribeCanariesLastRunCallable(const Model::DescribeCanariesLastRunRequest& request) const;
378 
379         /**
380          * <p>Use this operation to see information from the most recent run of each canary
381          * that you have created.</p><p><h3>See Also:</h3>   <a
382          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/DescribeCanariesLastRun">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 DescribeCanariesLastRunAsync(const Model::DescribeCanariesLastRunRequest& request, const DescribeCanariesLastRunResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
388 
389         /**
390          * <p>Returns a list of Synthetics canary runtime versions. For more information,
391          * see <a
392          * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library.html">
393          * Canary Runtime Versions</a>.</p><p><h3>See Also:</h3>   <a
394          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/DescribeRuntimeVersions">AWS
395          * API Reference</a></p>
396          */
397         virtual Model::DescribeRuntimeVersionsOutcome DescribeRuntimeVersions(const Model::DescribeRuntimeVersionsRequest& request) const;
398 
399         /**
400          * <p>Returns a list of Synthetics canary runtime versions. For more information,
401          * see <a
402          * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library.html">
403          * Canary Runtime Versions</a>.</p><p><h3>See Also:</h3>   <a
404          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/DescribeRuntimeVersions">AWS
405          * API Reference</a></p>
406          *
407          * returns a future to the operation so that it can be executed in parallel to other requests.
408          */
409         virtual Model::DescribeRuntimeVersionsOutcomeCallable DescribeRuntimeVersionsCallable(const Model::DescribeRuntimeVersionsRequest& request) const;
410 
411         /**
412          * <p>Returns a list of Synthetics canary runtime versions. For more information,
413          * see <a
414          * href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Library.html">
415          * Canary Runtime Versions</a>.</p><p><h3>See Also:</h3>   <a
416          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/DescribeRuntimeVersions">AWS
417          * API Reference</a></p>
418          *
419          * Queues the request into a thread executor and triggers associated callback when operation has finished.
420          */
421         virtual void DescribeRuntimeVersionsAsync(const Model::DescribeRuntimeVersionsRequest& request, const DescribeRuntimeVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
422 
423         /**
424          * <p>Retrieves complete information about one canary. You must specify the name of
425          * the canary that you want. To get a list of canaries and their names, use <a
426          * href="https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_DescribeCanaries.html">DescribeCanaries</a>.</p><p><h3>See
427          * Also:</h3>   <a
428          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/GetCanary">AWS
429          * API Reference</a></p>
430          */
431         virtual Model::GetCanaryOutcome GetCanary(const Model::GetCanaryRequest& request) const;
432 
433         /**
434          * <p>Retrieves complete information about one canary. You must specify the name of
435          * the canary that you want. To get a list of canaries and their names, use <a
436          * href="https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_DescribeCanaries.html">DescribeCanaries</a>.</p><p><h3>See
437          * Also:</h3>   <a
438          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/GetCanary">AWS
439          * API Reference</a></p>
440          *
441          * returns a future to the operation so that it can be executed in parallel to other requests.
442          */
443         virtual Model::GetCanaryOutcomeCallable GetCanaryCallable(const Model::GetCanaryRequest& request) const;
444 
445         /**
446          * <p>Retrieves complete information about one canary. You must specify the name of
447          * the canary that you want. To get a list of canaries and their names, use <a
448          * href="https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_DescribeCanaries.html">DescribeCanaries</a>.</p><p><h3>See
449          * Also:</h3>   <a
450          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/GetCanary">AWS
451          * API Reference</a></p>
452          *
453          * Queues the request into a thread executor and triggers associated callback when operation has finished.
454          */
455         virtual void GetCanaryAsync(const Model::GetCanaryRequest& request, const GetCanaryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
456 
457         /**
458          * <p>Retrieves a list of runs for a specified canary.</p><p><h3>See Also:</h3>
459          * <a
460          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/GetCanaryRuns">AWS
461          * API Reference</a></p>
462          */
463         virtual Model::GetCanaryRunsOutcome GetCanaryRuns(const Model::GetCanaryRunsRequest& request) const;
464 
465         /**
466          * <p>Retrieves a list of runs for a specified canary.</p><p><h3>See Also:</h3>
467          * <a
468          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/GetCanaryRuns">AWS
469          * API Reference</a></p>
470          *
471          * returns a future to the operation so that it can be executed in parallel to other requests.
472          */
473         virtual Model::GetCanaryRunsOutcomeCallable GetCanaryRunsCallable(const Model::GetCanaryRunsRequest& request) const;
474 
475         /**
476          * <p>Retrieves a list of runs for a specified canary.</p><p><h3>See Also:</h3>
477          * <a
478          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/GetCanaryRuns">AWS
479          * API Reference</a></p>
480          *
481          * Queues the request into a thread executor and triggers associated callback when operation has finished.
482          */
483         virtual void GetCanaryRunsAsync(const Model::GetCanaryRunsRequest& request, const GetCanaryRunsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
484 
485         /**
486          * <p>Displays the tags associated with a canary.</p><p><h3>See Also:</h3>   <a
487          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/ListTagsForResource">AWS
488          * API Reference</a></p>
489          */
490         virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const;
491 
492         /**
493          * <p>Displays the tags associated with a canary.</p><p><h3>See Also:</h3>   <a
494          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/ListTagsForResource">AWS
495          * API Reference</a></p>
496          *
497          * returns a future to the operation so that it can be executed in parallel to other requests.
498          */
499         virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const;
500 
501         /**
502          * <p>Displays the tags associated with a canary.</p><p><h3>See Also:</h3>   <a
503          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/ListTagsForResource">AWS
504          * API Reference</a></p>
505          *
506          * Queues the request into a thread executor and triggers associated callback when operation has finished.
507          */
508         virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
509 
510         /**
511          * <p>Use this operation to run a canary that has already been created. The
512          * frequency of the canary runs is determined by the value of the canary's
513          * <code>Schedule</code>. To see a canary's schedule, use <a
514          * href="https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_GetCanary.html">GetCanary</a>.</p><p><h3>See
515          * Also:</h3>   <a
516          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/StartCanary">AWS
517          * API Reference</a></p>
518          */
519         virtual Model::StartCanaryOutcome StartCanary(const Model::StartCanaryRequest& request) const;
520 
521         /**
522          * <p>Use this operation to run a canary that has already been created. The
523          * frequency of the canary runs is determined by the value of the canary's
524          * <code>Schedule</code>. To see a canary's schedule, use <a
525          * href="https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_GetCanary.html">GetCanary</a>.</p><p><h3>See
526          * Also:</h3>   <a
527          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/StartCanary">AWS
528          * API Reference</a></p>
529          *
530          * returns a future to the operation so that it can be executed in parallel to other requests.
531          */
532         virtual Model::StartCanaryOutcomeCallable StartCanaryCallable(const Model::StartCanaryRequest& request) const;
533 
534         /**
535          * <p>Use this operation to run a canary that has already been created. The
536          * frequency of the canary runs is determined by the value of the canary's
537          * <code>Schedule</code>. To see a canary's schedule, use <a
538          * href="https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_GetCanary.html">GetCanary</a>.</p><p><h3>See
539          * Also:</h3>   <a
540          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/StartCanary">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 StartCanaryAsync(const Model::StartCanaryRequest& request, const StartCanaryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
546 
547         /**
548          * <p>Stops the canary to prevent all future runs. If the canary is currently
549          * running, Synthetics stops waiting for the current run of the specified canary to
550          * complete. The run that is in progress completes on its own, publishes metrics,
551          * and uploads artifacts, but it is not recorded in Synthetics as a completed
552          * run.</p> <p>You can use <code>StartCanary</code> to start it running again with
553          * the canary’s current schedule at any point in the future. </p><p><h3>See
554          * Also:</h3>   <a
555          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/StopCanary">AWS
556          * API Reference</a></p>
557          */
558         virtual Model::StopCanaryOutcome StopCanary(const Model::StopCanaryRequest& request) const;
559 
560         /**
561          * <p>Stops the canary to prevent all future runs. If the canary is currently
562          * running, Synthetics stops waiting for the current run of the specified canary to
563          * complete. The run that is in progress completes on its own, publishes metrics,
564          * and uploads artifacts, but it is not recorded in Synthetics as a completed
565          * run.</p> <p>You can use <code>StartCanary</code> to start it running again with
566          * the canary’s current schedule at any point in the future. </p><p><h3>See
567          * Also:</h3>   <a
568          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/StopCanary">AWS
569          * API Reference</a></p>
570          *
571          * returns a future to the operation so that it can be executed in parallel to other requests.
572          */
573         virtual Model::StopCanaryOutcomeCallable StopCanaryCallable(const Model::StopCanaryRequest& request) const;
574 
575         /**
576          * <p>Stops the canary to prevent all future runs. If the canary is currently
577          * running, Synthetics stops waiting for the current run of the specified canary to
578          * complete. The run that is in progress completes on its own, publishes metrics,
579          * and uploads artifacts, but it is not recorded in Synthetics as a completed
580          * run.</p> <p>You can use <code>StartCanary</code> to start it running again with
581          * the canary’s current schedule at any point in the future. </p><p><h3>See
582          * Also:</h3>   <a
583          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/StopCanary">AWS
584          * API Reference</a></p>
585          *
586          * Queues the request into a thread executor and triggers associated callback when operation has finished.
587          */
588         virtual void StopCanaryAsync(const Model::StopCanaryRequest& request, const StopCanaryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
589 
590         /**
591          * <p>Assigns one or more tags (key-value pairs) to the specified canary. </p>
592          * <p>Tags can help you organize and categorize your resources. You can also use
593          * them to scope user permissions, by granting a user permission to access or
594          * change only resources with certain tag values.</p> <p>Tags don't have any
595          * semantic meaning to Amazon Web Services and are interpreted strictly as strings
596          * of characters.</p> <p>You can use the <code>TagResource</code> action with a
597          * canary that already has tags. If you specify a new tag key for the alarm, this
598          * tag is appended to the list of tags associated with the alarm. If you specify a
599          * tag key that is already associated with the alarm, the new tag value that you
600          * specify replaces the previous value for that tag.</p> <p>You can associate as
601          * many as 50 tags with a canary.</p><p><h3>See Also:</h3>   <a
602          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/TagResource">AWS
603          * API Reference</a></p>
604          */
605         virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const;
606 
607         /**
608          * <p>Assigns one or more tags (key-value pairs) to the specified canary. </p>
609          * <p>Tags can help you organize and categorize your resources. You can also use
610          * them to scope user permissions, by granting a user permission to access or
611          * change only resources with certain tag values.</p> <p>Tags don't have any
612          * semantic meaning to Amazon Web Services and are interpreted strictly as strings
613          * of characters.</p> <p>You can use the <code>TagResource</code> action with a
614          * canary that already has tags. If you specify a new tag key for the alarm, this
615          * tag is appended to the list of tags associated with the alarm. If you specify a
616          * tag key that is already associated with the alarm, the new tag value that you
617          * specify replaces the previous value for that tag.</p> <p>You can associate as
618          * many as 50 tags with a canary.</p><p><h3>See Also:</h3>   <a
619          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/TagResource">AWS
620          * API Reference</a></p>
621          *
622          * returns a future to the operation so that it can be executed in parallel to other requests.
623          */
624         virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const;
625 
626         /**
627          * <p>Assigns one or more tags (key-value pairs) to the specified canary. </p>
628          * <p>Tags can help you organize and categorize your resources. You can also use
629          * them to scope user permissions, by granting a user permission to access or
630          * change only resources with certain tag values.</p> <p>Tags don't have any
631          * semantic meaning to Amazon Web Services and are interpreted strictly as strings
632          * of characters.</p> <p>You can use the <code>TagResource</code> action with a
633          * canary that already has tags. If you specify a new tag key for the alarm, this
634          * tag is appended to the list of tags associated with the alarm. If you specify a
635          * tag key that is already associated with the alarm, the new tag value that you
636          * specify replaces the previous value for that tag.</p> <p>You can associate as
637          * many as 50 tags with a canary.</p><p><h3>See Also:</h3>   <a
638          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/TagResource">AWS
639          * API Reference</a></p>
640          *
641          * Queues the request into a thread executor and triggers associated callback when operation has finished.
642          */
643         virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
644 
645         /**
646          * <p>Removes one or more tags from the specified canary.</p><p><h3>See Also:</h3>
647          * <a
648          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/UntagResource">AWS
649          * API Reference</a></p>
650          */
651         virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const;
652 
653         /**
654          * <p>Removes one or more tags from the specified canary.</p><p><h3>See Also:</h3>
655          * <a
656          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/UntagResource">AWS
657          * API Reference</a></p>
658          *
659          * returns a future to the operation so that it can be executed in parallel to other requests.
660          */
661         virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const;
662 
663         /**
664          * <p>Removes one or more tags from the specified canary.</p><p><h3>See Also:</h3>
665          * <a
666          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/UntagResource">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 UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
672 
673         /**
674          * <p>Use this operation to change the settings of a canary that has already been
675          * created.</p> <p>You can't use this operation to update the tags of an existing
676          * canary. To change the tags of an existing canary, use <a
677          * href="https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_TagResource.html">TagResource</a>.</p><p><h3>See
678          * Also:</h3>   <a
679          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/UpdateCanary">AWS
680          * API Reference</a></p>
681          */
682         virtual Model::UpdateCanaryOutcome UpdateCanary(const Model::UpdateCanaryRequest& request) const;
683 
684         /**
685          * <p>Use this operation to change the settings of a canary that has already been
686          * created.</p> <p>You can't use this operation to update the tags of an existing
687          * canary. To change the tags of an existing canary, use <a
688          * href="https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_TagResource.html">TagResource</a>.</p><p><h3>See
689          * Also:</h3>   <a
690          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/UpdateCanary">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::UpdateCanaryOutcomeCallable UpdateCanaryCallable(const Model::UpdateCanaryRequest& request) const;
696 
697         /**
698          * <p>Use this operation to change the settings of a canary that has already been
699          * created.</p> <p>You can't use this operation to update the tags of an existing
700          * canary. To change the tags of an existing canary, use <a
701          * href="https://docs.aws.amazon.com/AmazonSynthetics/latest/APIReference/API_TagResource.html">TagResource</a>.</p><p><h3>See
702          * Also:</h3>   <a
703          * href="http://docs.aws.amazon.com/goto/WebAPI/synthetics-2017-10-11/UpdateCanary">AWS
704          * API Reference</a></p>
705          *
706          * Queues the request into a thread executor and triggers associated callback when operation has finished.
707          */
708         virtual void UpdateCanaryAsync(const Model::UpdateCanaryRequest& request, const UpdateCanaryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
709 
710 
711       void OverrideEndpoint(const Aws::String& endpoint);
712     private:
713       void init(const Aws::Client::ClientConfiguration& clientConfiguration);
714         void CreateCanaryAsyncHelper(const Model::CreateCanaryRequest& request, const CreateCanaryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
715         void DeleteCanaryAsyncHelper(const Model::DeleteCanaryRequest& request, const DeleteCanaryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
716         void DescribeCanariesAsyncHelper(const Model::DescribeCanariesRequest& request, const DescribeCanariesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
717         void DescribeCanariesLastRunAsyncHelper(const Model::DescribeCanariesLastRunRequest& request, const DescribeCanariesLastRunResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
718         void DescribeRuntimeVersionsAsyncHelper(const Model::DescribeRuntimeVersionsRequest& request, const DescribeRuntimeVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
719         void GetCanaryAsyncHelper(const Model::GetCanaryRequest& request, const GetCanaryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
720         void GetCanaryRunsAsyncHelper(const Model::GetCanaryRunsRequest& request, const GetCanaryRunsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
721         void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
722         void StartCanaryAsyncHelper(const Model::StartCanaryRequest& request, const StartCanaryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
723         void StopCanaryAsyncHelper(const Model::StopCanaryRequest& request, const StopCanaryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
724         void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
725         void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
726         void UpdateCanaryAsyncHelper(const Model::UpdateCanaryRequest& request, const UpdateCanaryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
727 
728       Aws::String m_uri;
729       Aws::String m_configScheme;
730       std::shared_ptr<Aws::Utils::Threading::Executor> m_executor;
731   };
732 
733 } // namespace Synthetics
734 } // namespace Aws
735