/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Http { class HttpClient; class HttpClientFactory; } // namespace Http namespace Utils { template< typename R, typename E> class Outcome; namespace Threading { class Executor; } // namespace Threading } // namespace Utils namespace Auth { class AWSCredentials; class AWSCredentialsProvider; } // namespace Auth namespace Client { class RetryStrategy; } // namespace Client namespace Synthetics { namespace Model { class CreateCanaryRequest; class DeleteCanaryRequest; class DescribeCanariesRequest; class DescribeCanariesLastRunRequest; class DescribeRuntimeVersionsRequest; class GetCanaryRequest; class GetCanaryRunsRequest; class ListTagsForResourceRequest; class StartCanaryRequest; class StopCanaryRequest; class TagResourceRequest; class UntagResourceRequest; class UpdateCanaryRequest; typedef Aws::Utils::Outcome CreateCanaryOutcome; typedef Aws::Utils::Outcome DeleteCanaryOutcome; typedef Aws::Utils::Outcome DescribeCanariesOutcome; typedef Aws::Utils::Outcome DescribeCanariesLastRunOutcome; typedef Aws::Utils::Outcome DescribeRuntimeVersionsOutcome; typedef Aws::Utils::Outcome GetCanaryOutcome; typedef Aws::Utils::Outcome GetCanaryRunsOutcome; typedef Aws::Utils::Outcome ListTagsForResourceOutcome; typedef Aws::Utils::Outcome StartCanaryOutcome; typedef Aws::Utils::Outcome StopCanaryOutcome; typedef Aws::Utils::Outcome TagResourceOutcome; typedef Aws::Utils::Outcome UntagResourceOutcome; typedef Aws::Utils::Outcome UpdateCanaryOutcome; typedef std::future CreateCanaryOutcomeCallable; typedef std::future DeleteCanaryOutcomeCallable; typedef std::future DescribeCanariesOutcomeCallable; typedef std::future DescribeCanariesLastRunOutcomeCallable; typedef std::future DescribeRuntimeVersionsOutcomeCallable; typedef std::future GetCanaryOutcomeCallable; typedef std::future GetCanaryRunsOutcomeCallable; typedef std::future ListTagsForResourceOutcomeCallable; typedef std::future StartCanaryOutcomeCallable; typedef std::future StopCanaryOutcomeCallable; typedef std::future TagResourceOutcomeCallable; typedef std::future UntagResourceOutcomeCallable; typedef std::future UpdateCanaryOutcomeCallable; } // namespace Model class SyntheticsClient; typedef std::function&) > CreateCanaryResponseReceivedHandler; typedef std::function&) > DeleteCanaryResponseReceivedHandler; typedef std::function&) > DescribeCanariesResponseReceivedHandler; typedef std::function&) > DescribeCanariesLastRunResponseReceivedHandler; typedef std::function&) > DescribeRuntimeVersionsResponseReceivedHandler; typedef std::function&) > GetCanaryResponseReceivedHandler; typedef std::function&) > GetCanaryRunsResponseReceivedHandler; typedef std::function&) > ListTagsForResourceResponseReceivedHandler; typedef std::function&) > StartCanaryResponseReceivedHandler; typedef std::function&) > StopCanaryResponseReceivedHandler; typedef std::function&) > TagResourceResponseReceivedHandler; typedef std::function&) > UntagResourceResponseReceivedHandler; typedef std::function&) > UpdateCanaryResponseReceivedHandler; /** * Amazon CloudWatch Synthetics

You can use Amazon * CloudWatch Synthetics to continually monitor your services. You can create and * manage canaries, which are modular, lightweight scripts that monitor your * endpoints and APIs from the outside-in. You can set up your canaries to run 24 * hours a day, once per minute. The canaries help you check the availability and * latency of your web services and troubleshoot anomalies by investigating load * time data, screenshots of the UI, logs, and metrics. The canaries seamlessly * integrate with CloudWatch ServiceLens to help you trace the causes of impacted * nodes in your applications. For more information, see Using * ServiceLens to Monitor the Health of Your Applications in the Amazon * CloudWatch User Guide.

Before you create and manage canaries, be * aware of the security considerations. For more information, see Security * Considerations for Synthetics Canaries.

*/ class AWS_SYNTHETICS_API SyntheticsClient : public Aws::Client::AWSJsonClient { public: typedef Aws::Client::AWSJsonClient BASECLASS; /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ SyntheticsClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ SyntheticsClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ SyntheticsClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); virtual ~SyntheticsClient(); /** *

Creates a canary. Canaries are scripts that monitor your endpoints and APIs * from the outside-in. Canaries help you check the availability and latency of * your web services and troubleshoot anomalies by investigating load time data, * screenshots of the UI, logs, and metrics. You can set up a canary to run * continuously or just once.

Do not use CreateCanary to * modify an existing canary. Use UpdateCanary * instead.

To create canaries, you must have the * CloudWatchSyntheticsFullAccess policy. If you are creating a new * IAM role for the canary, you also need the the iam:CreateRole, * iam:CreatePolicy and iam:AttachRolePolicy permissions. * For more information, see Necessary * Roles and Permissions.

Do not include secrets or proprietary * information in your canary names. The canary name makes up part of the Amazon * Resource Name (ARN) for the canary, and the ARN is included in outbound calls * over the internet. For more information, see Security * Considerations for Synthetics Canaries.

See Also:

AWS * API Reference

*/ virtual Model::CreateCanaryOutcome CreateCanary(const Model::CreateCanaryRequest& request) const; /** *

Creates a canary. Canaries are scripts that monitor your endpoints and APIs * from the outside-in. Canaries help you check the availability and latency of * your web services and troubleshoot anomalies by investigating load time data, * screenshots of the UI, logs, and metrics. You can set up a canary to run * continuously or just once.

Do not use CreateCanary to * modify an existing canary. Use UpdateCanary * instead.

To create canaries, you must have the * CloudWatchSyntheticsFullAccess policy. If you are creating a new * IAM role for the canary, you also need the the iam:CreateRole, * iam:CreatePolicy and iam:AttachRolePolicy permissions. * For more information, see Necessary * Roles and Permissions.

Do not include secrets or proprietary * information in your canary names. The canary name makes up part of the Amazon * Resource Name (ARN) for the canary, and the ARN is included in outbound calls * over the internet. For more information, see Security * Considerations for Synthetics Canaries.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateCanaryOutcomeCallable CreateCanaryCallable(const Model::CreateCanaryRequest& request) const; /** *

Creates a canary. Canaries are scripts that monitor your endpoints and APIs * from the outside-in. Canaries help you check the availability and latency of * your web services and troubleshoot anomalies by investigating load time data, * screenshots of the UI, logs, and metrics. You can set up a canary to run * continuously or just once.

Do not use CreateCanary to * modify an existing canary. Use UpdateCanary * instead.

To create canaries, you must have the * CloudWatchSyntheticsFullAccess policy. If you are creating a new * IAM role for the canary, you also need the the iam:CreateRole, * iam:CreatePolicy and iam:AttachRolePolicy permissions. * For more information, see Necessary * Roles and Permissions.

Do not include secrets or proprietary * information in your canary names. The canary name makes up part of the Amazon * Resource Name (ARN) for the canary, and the ARN is included in outbound calls * over the internet. For more information, see Security * Considerations for Synthetics Canaries.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateCanaryAsync(const Model::CreateCanaryRequest& request, const CreateCanaryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Permanently deletes the specified canary.

When you delete a canary, * resources used and created by the canary are not automatically deleted. After * you delete a canary that you do not intend to use again, you should also delete * the following:

  • The Lambda functions and layers used by this * canary. These have the prefix cwsyn-MyCanaryName .

  • *
  • The CloudWatch alarms created for this canary. These alarms have a name * of Synthetics-SharpDrop-Alarm-MyCanaryName .

  • *

    Amazon S3 objects and buckets, such as the canary's artifact location.

    *
  • IAM roles created for the canary. If they were created in the * console, these roles have the name * role/service-role/CloudWatchSyntheticsRole-MyCanaryName .

    *
  • CloudWatch Logs log groups created for the canary. These logs * groups have the name /aws/lambda/cwsyn-MyCanaryName .

    *

Before you delete a canary, you might want to use * GetCanary to display the information about this canary. Make note * of the information returned by this operation so that you can delete these * resources after you delete the canary.

See Also:

AWS * API Reference

*/ virtual Model::DeleteCanaryOutcome DeleteCanary(const Model::DeleteCanaryRequest& request) const; /** *

Permanently deletes the specified canary.

When you delete a canary, * resources used and created by the canary are not automatically deleted. After * you delete a canary that you do not intend to use again, you should also delete * the following:

  • The Lambda functions and layers used by this * canary. These have the prefix cwsyn-MyCanaryName .

  • *
  • The CloudWatch alarms created for this canary. These alarms have a name * of Synthetics-SharpDrop-Alarm-MyCanaryName .

  • *

    Amazon S3 objects and buckets, such as the canary's artifact location.

    *
  • IAM roles created for the canary. If they were created in the * console, these roles have the name * role/service-role/CloudWatchSyntheticsRole-MyCanaryName .

    *
  • CloudWatch Logs log groups created for the canary. These logs * groups have the name /aws/lambda/cwsyn-MyCanaryName .

    *

Before you delete a canary, you might want to use * GetCanary to display the information about this canary. Make note * of the information returned by this operation so that you can delete these * resources after you delete the canary.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteCanaryOutcomeCallable DeleteCanaryCallable(const Model::DeleteCanaryRequest& request) const; /** *

Permanently deletes the specified canary.

When you delete a canary, * resources used and created by the canary are not automatically deleted. After * you delete a canary that you do not intend to use again, you should also delete * the following:

  • The Lambda functions and layers used by this * canary. These have the prefix cwsyn-MyCanaryName .

  • *
  • The CloudWatch alarms created for this canary. These alarms have a name * of Synthetics-SharpDrop-Alarm-MyCanaryName .

  • *

    Amazon S3 objects and buckets, such as the canary's artifact location.

    *
  • IAM roles created for the canary. If they were created in the * console, these roles have the name * role/service-role/CloudWatchSyntheticsRole-MyCanaryName .

    *
  • CloudWatch Logs log groups created for the canary. These logs * groups have the name /aws/lambda/cwsyn-MyCanaryName .

    *

Before you delete a canary, you might want to use * GetCanary to display the information about this canary. Make note * of the information returned by this operation so that you can delete these * resources after you delete the canary.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteCanaryAsync(const Model::DeleteCanaryRequest& request, const DeleteCanaryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

This operation returns a list of the canaries in your account, along with * full details about each canary.

This operation does not have * resource-level authorization, so if a user is able to use * DescribeCanaries, the user can see all of the canaries in the * account. A deny policy can only be used to restrict access to all canaries. It * cannot be used on specific resources.

See Also:

AWS * API Reference

*/ virtual Model::DescribeCanariesOutcome DescribeCanaries(const Model::DescribeCanariesRequest& request) const; /** *

This operation returns a list of the canaries in your account, along with * full details about each canary.

This operation does not have * resource-level authorization, so if a user is able to use * DescribeCanaries, the user can see all of the canaries in the * account. A deny policy can only be used to restrict access to all canaries. It * cannot be used on specific resources.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeCanariesOutcomeCallable DescribeCanariesCallable(const Model::DescribeCanariesRequest& request) const; /** *

This operation returns a list of the canaries in your account, along with * full details about each canary.

This operation does not have * resource-level authorization, so if a user is able to use * DescribeCanaries, the user can see all of the canaries in the * account. A deny policy can only be used to restrict access to all canaries. It * cannot be used on specific resources.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeCanariesAsync(const Model::DescribeCanariesRequest& request, const DescribeCanariesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Use this operation to see information from the most recent run of each canary * that you have created.

See Also:

AWS * API Reference

*/ virtual Model::DescribeCanariesLastRunOutcome DescribeCanariesLastRun(const Model::DescribeCanariesLastRunRequest& request) const; /** *

Use this operation to see information from the most recent run of each canary * that you have created.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeCanariesLastRunOutcomeCallable DescribeCanariesLastRunCallable(const Model::DescribeCanariesLastRunRequest& request) const; /** *

Use this operation to see information from the most recent run of each canary * that you have created.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeCanariesLastRunAsync(const Model::DescribeCanariesLastRunRequest& request, const DescribeCanariesLastRunResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns a list of Synthetics canary runtime versions. For more information, * see * Canary Runtime Versions.

See Also:

AWS * API Reference

*/ virtual Model::DescribeRuntimeVersionsOutcome DescribeRuntimeVersions(const Model::DescribeRuntimeVersionsRequest& request) const; /** *

Returns a list of Synthetics canary runtime versions. For more information, * see * Canary Runtime Versions.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeRuntimeVersionsOutcomeCallable DescribeRuntimeVersionsCallable(const Model::DescribeRuntimeVersionsRequest& request) const; /** *

Returns a list of Synthetics canary runtime versions. For more information, * see * Canary Runtime Versions.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeRuntimeVersionsAsync(const Model::DescribeRuntimeVersionsRequest& request, const DescribeRuntimeVersionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves complete information about one canary. You must specify the name of * the canary that you want. To get a list of canaries and their names, use DescribeCanaries.

See * Also:

AWS * API Reference

*/ virtual Model::GetCanaryOutcome GetCanary(const Model::GetCanaryRequest& request) const; /** *

Retrieves complete information about one canary. You must specify the name of * the canary that you want. To get a list of canaries and their names, use DescribeCanaries.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetCanaryOutcomeCallable GetCanaryCallable(const Model::GetCanaryRequest& request) const; /** *

Retrieves complete information about one canary. You must specify the name of * the canary that you want. To get a list of canaries and their names, use DescribeCanaries.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetCanaryAsync(const Model::GetCanaryRequest& request, const GetCanaryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves a list of runs for a specified canary.

See Also:

* AWS * API Reference

*/ virtual Model::GetCanaryRunsOutcome GetCanaryRuns(const Model::GetCanaryRunsRequest& request) const; /** *

Retrieves a list of runs for a specified canary.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetCanaryRunsOutcomeCallable GetCanaryRunsCallable(const Model::GetCanaryRunsRequest& request) const; /** *

Retrieves a list of runs for a specified canary.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetCanaryRunsAsync(const Model::GetCanaryRunsRequest& request, const GetCanaryRunsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Displays the tags associated with a canary.

See Also:

AWS * API Reference

*/ virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; /** *

Displays the tags associated with a canary.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const; /** *

Displays the tags associated with a canary.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Use this operation to run a canary that has already been created. The * frequency of the canary runs is determined by the value of the canary's * Schedule. To see a canary's schedule, use GetCanary.

See * Also:

AWS * API Reference

*/ virtual Model::StartCanaryOutcome StartCanary(const Model::StartCanaryRequest& request) const; /** *

Use this operation to run a canary that has already been created. The * frequency of the canary runs is determined by the value of the canary's * Schedule. To see a canary's schedule, use GetCanary.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::StartCanaryOutcomeCallable StartCanaryCallable(const Model::StartCanaryRequest& request) const; /** *

Use this operation to run a canary that has already been created. The * frequency of the canary runs is determined by the value of the canary's * Schedule. To see a canary's schedule, use GetCanary.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void StartCanaryAsync(const Model::StartCanaryRequest& request, const StartCanaryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Stops the canary to prevent all future runs. If the canary is currently * running, Synthetics stops waiting for the current run of the specified canary to * complete. The run that is in progress completes on its own, publishes metrics, * and uploads artifacts, but it is not recorded in Synthetics as a completed * run.

You can use StartCanary to start it running again with * the canary’s current schedule at any point in the future.

See * Also:

AWS * API Reference

*/ virtual Model::StopCanaryOutcome StopCanary(const Model::StopCanaryRequest& request) const; /** *

Stops the canary to prevent all future runs. If the canary is currently * running, Synthetics stops waiting for the current run of the specified canary to * complete. The run that is in progress completes on its own, publishes metrics, * and uploads artifacts, but it is not recorded in Synthetics as a completed * run.

You can use StartCanary to start it running again with * the canary’s current schedule at any point in the future.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::StopCanaryOutcomeCallable StopCanaryCallable(const Model::StopCanaryRequest& request) const; /** *

Stops the canary to prevent all future runs. If the canary is currently * running, Synthetics stops waiting for the current run of the specified canary to * complete. The run that is in progress completes on its own, publishes metrics, * and uploads artifacts, but it is not recorded in Synthetics as a completed * run.

You can use StartCanary to start it running again with * the canary’s current schedule at any point in the future.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void StopCanaryAsync(const Model::StopCanaryRequest& request, const StopCanaryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Assigns one or more tags (key-value pairs) to the specified canary.

*

Tags can help you organize and categorize your resources. You can also use * them to scope user permissions, by granting a user permission to access or * change only resources with certain tag values.

Tags don't have any * semantic meaning to AWS and are interpreted strictly as strings of * characters.

You can use the TagResource action with a canary * that already has tags. If you specify a new tag key for the alarm, this tag is * appended to the list of tags associated with the alarm. If you specify a tag key * that is already associated with the alarm, the new tag value that you specify * replaces the previous value for that tag.

You can associate as many as 50 * tags with a canary.

See Also:

AWS * API Reference

*/ virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; /** *

Assigns one or more tags (key-value pairs) to the specified canary.

*

Tags can help you organize and categorize your resources. You can also use * them to scope user permissions, by granting a user permission to access or * change only resources with certain tag values.

Tags don't have any * semantic meaning to AWS and are interpreted strictly as strings of * characters.

You can use the TagResource action with a canary * that already has tags. If you specify a new tag key for the alarm, this tag is * appended to the list of tags associated with the alarm. If you specify a tag key * that is already associated with the alarm, the new tag value that you specify * replaces the previous value for that tag.

You can associate as many as 50 * tags with a canary.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const; /** *

Assigns one or more tags (key-value pairs) to the specified canary.

*

Tags can help you organize and categorize your resources. You can also use * them to scope user permissions, by granting a user permission to access or * change only resources with certain tag values.

Tags don't have any * semantic meaning to AWS and are interpreted strictly as strings of * characters.

You can use the TagResource action with a canary * that already has tags. If you specify a new tag key for the alarm, this tag is * appended to the list of tags associated with the alarm. If you specify a tag key * that is already associated with the alarm, the new tag value that you specify * replaces the previous value for that tag.

You can associate as many as 50 * tags with a canary.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Removes one or more tags from the specified canary.

See Also:

* AWS * API Reference

*/ virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; /** *

Removes one or more tags from the specified canary.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const; /** *

Removes one or more tags from the specified canary.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Use this operation to change the settings of a canary that has already been * created.

You can't use this operation to update the tags of an existing * canary. To change the tags of an existing canary, use TagResource.

See * Also:

AWS * API Reference

*/ virtual Model::UpdateCanaryOutcome UpdateCanary(const Model::UpdateCanaryRequest& request) const; /** *

Use this operation to change the settings of a canary that has already been * created.

You can't use this operation to update the tags of an existing * canary. To change the tags of an existing canary, use TagResource.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateCanaryOutcomeCallable UpdateCanaryCallable(const Model::UpdateCanaryRequest& request) const; /** *

Use this operation to change the settings of a canary that has already been * created.

You can't use this operation to update the tags of an existing * canary. To change the tags of an existing canary, use TagResource.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateCanaryAsync(const Model::UpdateCanaryRequest& request, const UpdateCanaryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void CreateCanaryAsyncHelper(const Model::CreateCanaryRequest& request, const CreateCanaryResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteCanaryAsyncHelper(const Model::DeleteCanaryRequest& request, const DeleteCanaryResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeCanariesAsyncHelper(const Model::DescribeCanariesRequest& request, const DescribeCanariesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeCanariesLastRunAsyncHelper(const Model::DescribeCanariesLastRunRequest& request, const DescribeCanariesLastRunResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeRuntimeVersionsAsyncHelper(const Model::DescribeRuntimeVersionsRequest& request, const DescribeRuntimeVersionsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetCanaryAsyncHelper(const Model::GetCanaryRequest& request, const GetCanaryResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetCanaryRunsAsyncHelper(const Model::GetCanaryRunsRequest& request, const GetCanaryRunsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void StartCanaryAsyncHelper(const Model::StartCanaryRequest& request, const StartCanaryResponseReceivedHandler& handler, const std::shared_ptr& context) const; void StopCanaryAsyncHelper(const Model::StopCanaryRequest& request, const StopCanaryResponseReceivedHandler& handler, const std::shared_ptr& context) const; void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateCanaryAsyncHelper(const Model::UpdateCanaryRequest& request, const UpdateCanaryResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace Synthetics } // namespace Aws