/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include
#include
#include
#include
#include
#include
namespace Aws
{
namespace Synthetics
{
/**
* 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 Aws::Client::ClientWithAsyncTemplateMethods
{
public:
typedef Aws::Client::AWSJsonClient BASECLASS;
static const char* SERVICE_NAME;
static const char* ALLOCATION_TAG;
typedef SyntheticsClientConfiguration ClientConfigurationType;
typedef SyntheticsEndpointProvider EndpointProviderType;
/**
* 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::Synthetics::SyntheticsClientConfiguration& clientConfiguration = Aws::Synthetics::SyntheticsClientConfiguration(),
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG));
/**
* 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,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::Synthetics::SyntheticsClientConfiguration& clientConfiguration = Aws::Synthetics::SyntheticsClientConfiguration());
/**
* 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,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::Synthetics::SyntheticsClientConfiguration& clientConfiguration = Aws::Synthetics::SyntheticsClientConfiguration());
/* Legacy constructors due deprecation */
/**
* 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);
/**
* 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);
/**
* 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);
/* End of legacy constructors due deprecation */
virtual ~SyntheticsClient();
/**
* Associates a canary with a group. Using groups can help you with managing and
* automating your canaries, and you can also view aggregated run results and
* statistics for all canaries in a group.
You must run this operation in
* the Region where the canary exists.
See Also:
AWS
* API Reference
*/
virtual Model::AssociateResourceOutcome AssociateResource(const Model::AssociateResourceRequest& request) const;
/**
* A Callable wrapper for AssociateResource that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateResourceOutcomeCallable AssociateResourceCallable(const AssociateResourceRequestT& request) const
{
return SubmitCallable(&SyntheticsClient::AssociateResource, request);
}
/**
* An Async wrapper for AssociateResource that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateResourceAsync(const AssociateResourceRequestT& request, const AssociateResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SyntheticsClient::AssociateResource, request, handler, context);
}
/**
* 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 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;
/**
* A Callable wrapper for CreateCanary that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateCanaryOutcomeCallable CreateCanaryCallable(const CreateCanaryRequestT& request) const
{
return SubmitCallable(&SyntheticsClient::CreateCanary, request);
}
/**
* An Async wrapper for CreateCanary that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateCanaryAsync(const CreateCanaryRequestT& request, const CreateCanaryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SyntheticsClient::CreateCanary, request, handler, context);
}
/**
* Creates a group which you can use to associate canaries with each other,
* including cross-Region canaries. Using groups can help you with managing and
* automating your canaries, and you can also view aggregated run results and
* statistics for all canaries in a group.
Groups are global resources.
* When you create a group, it is replicated across Amazon Web Services Regions,
* and you can view it and add canaries to it from any Region. Although the group
* ARN format reflects the Region name where it was created, a group is not
* constrained to any Region. This means that you can put canaries from multiple
* Regions into the same group, and then use that group to view and manage all of
* those canaries in a single view.
Groups are supported in all Regions
* except the Regions that are disabled by default. For more information about
* these Regions, see Enabling
* a Region.
Each group can contain as many as 10 canaries. You can have
* as many as 20 groups in your account. Any single canary can be a member of up to
* 10 groups.
See Also:
AWS
* API Reference
*/
virtual Model::CreateGroupOutcome CreateGroup(const Model::CreateGroupRequest& request) const;
/**
* A Callable wrapper for CreateGroup that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateGroupOutcomeCallable CreateGroupCallable(const CreateGroupRequestT& request) const
{
return SubmitCallable(&SyntheticsClient::CreateGroup, request);
}
/**
* An Async wrapper for CreateGroup that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateGroupAsync(const CreateGroupRequestT& request, const CreateGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SyntheticsClient::CreateGroup, request, handler, context);
}
/**
* Permanently deletes the specified canary.
If you specify
* DeleteLambda
to true
, CloudWatch Synthetics also
* deletes the Lambda functions and layers that are used by the canary.
* Other 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 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;
/**
* A Callable wrapper for DeleteCanary that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteCanaryOutcomeCallable DeleteCanaryCallable(const DeleteCanaryRequestT& request) const
{
return SubmitCallable(&SyntheticsClient::DeleteCanary, request);
}
/**
* An Async wrapper for DeleteCanary that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteCanaryAsync(const DeleteCanaryRequestT& request, const DeleteCanaryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SyntheticsClient::DeleteCanary, request, handler, context);
}
/**
* Deletes a group. The group doesn't need to be empty to be deleted. If there
* are canaries in the group, they are not deleted when you delete the group.
* Groups are a global resource that appear in all Regions, but the request to
* delete a group must be made from its home Region. You can find the home Region
* of a group within its ARN.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteGroupOutcome DeleteGroup(const Model::DeleteGroupRequest& request) const;
/**
* A Callable wrapper for DeleteGroup that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteGroupOutcomeCallable DeleteGroupCallable(const DeleteGroupRequestT& request) const
{
return SubmitCallable(&SyntheticsClient::DeleteGroup, request);
}
/**
* An Async wrapper for DeleteGroup that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteGroupAsync(const DeleteGroupRequestT& request, const DeleteGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SyntheticsClient::DeleteGroup, request, handler, context);
}
/**
* This operation returns a list of the canaries in your account, along with
* full details about each canary.
This operation supports resource-level
* authorization using an IAM policy and the Names
parameter. If you
* specify the Names
parameter, the operation is successful only if
* you have authorization to view all the canaries that you specify in your
* request. If you do not have permission to view any of the canaries, the request
* fails with a 403 response.
You are required to use the Names
* parameter if you are logged on to a user or role that has an IAM policy that
* restricts which canaries that you are allowed to view. For more information, see
*
* Limiting a user to viewing specific canaries.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeCanariesOutcome DescribeCanaries(const Model::DescribeCanariesRequest& request) const;
/**
* A Callable wrapper for DescribeCanaries that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeCanariesOutcomeCallable DescribeCanariesCallable(const DescribeCanariesRequestT& request) const
{
return SubmitCallable(&SyntheticsClient::DescribeCanaries, request);
}
/**
* An Async wrapper for DescribeCanaries that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeCanariesAsync(const DescribeCanariesRequestT& request, const DescribeCanariesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SyntheticsClient::DescribeCanaries, request, handler, context);
}
/**
* Use this operation to see information from the most recent run of each canary
* that you have created.
This operation supports resource-level
* authorization using an IAM policy and the Names
parameter. If you
* specify the Names
parameter, the operation is successful only if
* you have authorization to view all the canaries that you specify in your
* request. If you do not have permission to view any of the canaries, the request
* fails with a 403 response.
You are required to use the Names
* parameter if you are logged on to a user or role that has an IAM policy that
* restricts which canaries that you are allowed to view. For more information, see
*
* Limiting a user to viewing specific canaries.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeCanariesLastRunOutcome DescribeCanariesLastRun(const Model::DescribeCanariesLastRunRequest& request) const;
/**
* A Callable wrapper for DescribeCanariesLastRun that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeCanariesLastRunOutcomeCallable DescribeCanariesLastRunCallable(const DescribeCanariesLastRunRequestT& request) const
{
return SubmitCallable(&SyntheticsClient::DescribeCanariesLastRun, request);
}
/**
* An Async wrapper for DescribeCanariesLastRun that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeCanariesLastRunAsync(const DescribeCanariesLastRunRequestT& request, const DescribeCanariesLastRunResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SyntheticsClient::DescribeCanariesLastRun, request, handler, context);
}
/**
* 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;
/**
* A Callable wrapper for DescribeRuntimeVersions that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeRuntimeVersionsOutcomeCallable DescribeRuntimeVersionsCallable(const DescribeRuntimeVersionsRequestT& request) const
{
return SubmitCallable(&SyntheticsClient::DescribeRuntimeVersions, request);
}
/**
* An Async wrapper for DescribeRuntimeVersions that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeRuntimeVersionsAsync(const DescribeRuntimeVersionsRequestT& request, const DescribeRuntimeVersionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SyntheticsClient::DescribeRuntimeVersions, request, handler, context);
}
/**
* Removes a canary from a group. You must run this operation in the Region
* where the canary exists.
See Also:
AWS
* API Reference
*/
virtual Model::DisassociateResourceOutcome DisassociateResource(const Model::DisassociateResourceRequest& request) const;
/**
* A Callable wrapper for DisassociateResource that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DisassociateResourceOutcomeCallable DisassociateResourceCallable(const DisassociateResourceRequestT& request) const
{
return SubmitCallable(&SyntheticsClient::DisassociateResource, request);
}
/**
* An Async wrapper for DisassociateResource that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DisassociateResourceAsync(const DisassociateResourceRequestT& request, const DisassociateResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SyntheticsClient::DisassociateResource, request, handler, context);
}
/**
* 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;
/**
* A Callable wrapper for GetCanary that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetCanaryOutcomeCallable GetCanaryCallable(const GetCanaryRequestT& request) const
{
return SubmitCallable(&SyntheticsClient::GetCanary, request);
}
/**
* An Async wrapper for GetCanary that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetCanaryAsync(const GetCanaryRequestT& request, const GetCanaryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SyntheticsClient::GetCanary, request, handler, context);
}
/**
* Retrieves a list of runs for a specified canary.
See Also:
* AWS
* API Reference
*/
virtual Model::GetCanaryRunsOutcome GetCanaryRuns(const Model::GetCanaryRunsRequest& request) const;
/**
* A Callable wrapper for GetCanaryRuns that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetCanaryRunsOutcomeCallable GetCanaryRunsCallable(const GetCanaryRunsRequestT& request) const
{
return SubmitCallable(&SyntheticsClient::GetCanaryRuns, request);
}
/**
* An Async wrapper for GetCanaryRuns that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetCanaryRunsAsync(const GetCanaryRunsRequestT& request, const GetCanaryRunsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SyntheticsClient::GetCanaryRuns, request, handler, context);
}
/**
* Returns information about one group. Groups are a global resource, so you can
* use this operation from any Region.
See Also:
AWS
* API Reference
*/
virtual Model::GetGroupOutcome GetGroup(const Model::GetGroupRequest& request) const;
/**
* A Callable wrapper for GetGroup that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetGroupOutcomeCallable GetGroupCallable(const GetGroupRequestT& request) const
{
return SubmitCallable(&SyntheticsClient::GetGroup, request);
}
/**
* An Async wrapper for GetGroup that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetGroupAsync(const GetGroupRequestT& request, const GetGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SyntheticsClient::GetGroup, request, handler, context);
}
/**
* Returns a list of the groups that the specified canary is associated with.
* The canary that you specify must be in the current Region.
See
* Also:
AWS
* API Reference
*/
virtual Model::ListAssociatedGroupsOutcome ListAssociatedGroups(const Model::ListAssociatedGroupsRequest& request) const;
/**
* A Callable wrapper for ListAssociatedGroups that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListAssociatedGroupsOutcomeCallable ListAssociatedGroupsCallable(const ListAssociatedGroupsRequestT& request) const
{
return SubmitCallable(&SyntheticsClient::ListAssociatedGroups, request);
}
/**
* An Async wrapper for ListAssociatedGroups that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListAssociatedGroupsAsync(const ListAssociatedGroupsRequestT& request, const ListAssociatedGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SyntheticsClient::ListAssociatedGroups, request, handler, context);
}
/**
* This operation returns a list of the ARNs of the canaries that are associated
* with the specified group.
See Also:
AWS
* API Reference
*/
virtual Model::ListGroupResourcesOutcome ListGroupResources(const Model::ListGroupResourcesRequest& request) const;
/**
* A Callable wrapper for ListGroupResources that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListGroupResourcesOutcomeCallable ListGroupResourcesCallable(const ListGroupResourcesRequestT& request) const
{
return SubmitCallable(&SyntheticsClient::ListGroupResources, request);
}
/**
* An Async wrapper for ListGroupResources that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListGroupResourcesAsync(const ListGroupResourcesRequestT& request, const ListGroupResourcesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SyntheticsClient::ListGroupResources, request, handler, context);
}
/**
* Returns a list of all groups in the account, displaying their names, unique
* IDs, and ARNs. The groups from all Regions are returned.
See
* Also:
AWS
* API Reference
*/
virtual Model::ListGroupsOutcome ListGroups(const Model::ListGroupsRequest& request) const;
/**
* A Callable wrapper for ListGroups that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListGroupsOutcomeCallable ListGroupsCallable(const ListGroupsRequestT& request) const
{
return SubmitCallable(&SyntheticsClient::ListGroups, request);
}
/**
* An Async wrapper for ListGroups that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListGroupsAsync(const ListGroupsRequestT& request, const ListGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SyntheticsClient::ListGroups, request, handler, context);
}
/**
* Displays the tags associated with a canary or group.
See Also:
* AWS
* API Reference
*/
virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const;
/**
* A Callable wrapper for ListTagsForResource that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const ListTagsForResourceRequestT& request) const
{
return SubmitCallable(&SyntheticsClient::ListTagsForResource, request);
}
/**
* An Async wrapper for ListTagsForResource that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListTagsForResourceAsync(const ListTagsForResourceRequestT& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SyntheticsClient::ListTagsForResource, request, handler, context);
}
/**
* 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;
/**
* A Callable wrapper for StartCanary that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::StartCanaryOutcomeCallable StartCanaryCallable(const StartCanaryRequestT& request) const
{
return SubmitCallable(&SyntheticsClient::StartCanary, request);
}
/**
* An Async wrapper for StartCanary that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void StartCanaryAsync(const StartCanaryRequestT& request, const StartCanaryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SyntheticsClient::StartCanary, request, handler, context);
}
/**
* Stops the canary to prevent all future runs. If the canary is currently
* running,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;
/**
* A Callable wrapper for StopCanary that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::StopCanaryOutcomeCallable StopCanaryCallable(const StopCanaryRequestT& request) const
{
return SubmitCallable(&SyntheticsClient::StopCanary, request);
}
/**
* An Async wrapper for StopCanary that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void StopCanaryAsync(const StopCanaryRequestT& request, const StopCanaryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SyntheticsClient::StopCanary, request, handler, context);
}
/**
* Assigns one or more tags (key-value pairs) to the specified canary or group.
*
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 Amazon Web Services and are interpreted strictly as strings
* of characters.
You can use the TagResource
action with a
* resource that already has tags. If you specify a new tag key for the resource,
* this tag is appended to the list of tags associated with the resource. If you
* specify a tag key that is already associated with the resource, 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 or group.
See Also:
* AWS
* API Reference
*/
virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const;
/**
* A Callable wrapper for TagResource that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::TagResourceOutcomeCallable TagResourceCallable(const TagResourceRequestT& request) const
{
return SubmitCallable(&SyntheticsClient::TagResource, request);
}
/**
* An Async wrapper for TagResource that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void TagResourceAsync(const TagResourceRequestT& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SyntheticsClient::TagResource, request, handler, context);
}
/**
* Removes one or more tags from the specified resource.
See
* Also:
AWS
* API Reference
*/
virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const;
/**
* A Callable wrapper for UntagResource that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UntagResourceOutcomeCallable UntagResourceCallable(const UntagResourceRequestT& request) const
{
return SubmitCallable(&SyntheticsClient::UntagResource, request);
}
/**
* An Async wrapper for UntagResource that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UntagResourceAsync(const UntagResourceRequestT& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SyntheticsClient::UntagResource, request, handler, context);
}
/**
* Updates the configuration 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;
/**
* A Callable wrapper for UpdateCanary that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateCanaryOutcomeCallable UpdateCanaryCallable(const UpdateCanaryRequestT& request) const
{
return SubmitCallable(&SyntheticsClient::UpdateCanary, request);
}
/**
* An Async wrapper for UpdateCanary that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateCanaryAsync(const UpdateCanaryRequestT& request, const UpdateCanaryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SyntheticsClient::UpdateCanary, request, handler, context);
}
void OverrideEndpoint(const Aws::String& endpoint);
std::shared_ptr& accessEndpointProvider();
private:
friend class Aws::Client::ClientWithAsyncTemplateMethods;
void init(const SyntheticsClientConfiguration& clientConfiguration);
SyntheticsClientConfiguration m_clientConfiguration;
std::shared_ptr m_executor;
std::shared_ptr m_endpointProvider;
};
} // namespace Synthetics
} // namespace Aws