/**
* 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 CloudWatchRUM
{
/**
* With Amazon CloudWatch RUM, you can perform real-user monitoring to collect
* client-side data about your web application performance from actual user
* sessions in real time. The data collected includes page load times, client-side
* errors, and user behavior. When you view this data, you can see it all
* aggregated together and also see breakdowns by the browsers and devices that
* your customers use.
You can use the collected data to quickly identify
* and debug client-side performance issues. CloudWatch RUM helps you visualize
* anomalies in your application performance and find relevant debugging data such
* as error messages, stack traces, and user sessions. You can also use RUM to
* understand the range of end-user impact including the number of users,
* geolocations, and browsers used.
*/
class AWS_CLOUDWATCHRUM_API CloudWatchRUMClient : 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 CloudWatchRUMClientConfiguration ClientConfigurationType;
typedef CloudWatchRUMEndpointProvider 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.
*/
CloudWatchRUMClient(const Aws::CloudWatchRUM::CloudWatchRUMClientConfiguration& clientConfiguration = Aws::CloudWatchRUM::CloudWatchRUMClientConfiguration(),
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.
*/
CloudWatchRUMClient(const Aws::Auth::AWSCredentials& credentials,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::CloudWatchRUM::CloudWatchRUMClientConfiguration& clientConfiguration = Aws::CloudWatchRUM::CloudWatchRUMClientConfiguration());
/**
* 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
*/
CloudWatchRUMClient(const std::shared_ptr& credentialsProvider,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::CloudWatchRUM::CloudWatchRUMClientConfiguration& clientConfiguration = Aws::CloudWatchRUM::CloudWatchRUMClientConfiguration());
/* 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.
*/
CloudWatchRUMClient(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.
*/
CloudWatchRUMClient(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
*/
CloudWatchRUMClient(const std::shared_ptr& credentialsProvider,
const Aws::Client::ClientConfiguration& clientConfiguration);
/* End of legacy constructors due deprecation */
virtual ~CloudWatchRUMClient();
/**
* Specifies the extended metrics and custom metrics that you want a CloudWatch
* RUM app monitor to send to a destination. Valid destinations include CloudWatch
* and Evidently.
By default, RUM app monitors send some metrics to
* CloudWatch. These default metrics are listed in CloudWatch
* metrics that you can collect with CloudWatch RUM.
In addition to
* these default metrics, you can choose to send extended metrics or custom metrics
* or both.
-
Extended metrics enable you to send metrics with
* additional dimensions not included in the default metrics. You can also send
* extended metrics to Evidently as well as CloudWatch. The valid dimension names
* for the additional dimensions for extended metrics are BrowserName
,
* CountryCode
, DeviceType
, FileType
,
* OSName
, and PageId
. For more information, see
* Extended metrics that you can send to CloudWatch and CloudWatch
* Evidently.
-
Custom metrics are metrics that you define. You
* can send custom metrics to CloudWatch or to CloudWatch Evidently or to both.
* With custom metrics, you can use any metric name and namespace, and to derive
* the metrics you can use any custom events, built-in events, custom attributes,
* or default attributes.
You can't send custom metrics to the
* AWS/RUM
namespace. You must send custom metrics to a custom
* namespace that you define. The namespace that you use can't start with
* AWS/
. CloudWatch RUM prepends RUM/CustomMetrics/
to
* the custom namespace that you define, so the final namespace for your metrics in
* CloudWatch is RUM/CustomMetrics/your-custom-namespace
.
*
The maximum number of metric definitions that you can specify in
* one BatchCreateRumMetricDefinitions
operation is 200.
The
* maximum number of metric definitions that one destination can contain is
* 2000.
Extended metrics sent to CloudWatch and RUM custom metrics are
* charged as CloudWatch custom metrics. Each combination of additional dimension
* name and dimension value counts as a custom metric. For more information, see Amazon CloudWatch
* Pricing.
You must have already created a destination for the metrics
* before you send them. For more information, see PutRumMetricsDestination.
* If some metric definitions specified in a
* BatchCreateRumMetricDefinitions
operations are not valid, those
* metric definitions fail and return errors, but all valid metric definitions in
* the same operation still succeed.
See Also:
AWS
* API Reference
*/
virtual Model::BatchCreateRumMetricDefinitionsOutcome BatchCreateRumMetricDefinitions(const Model::BatchCreateRumMetricDefinitionsRequest& request) const;
/**
* A Callable wrapper for BatchCreateRumMetricDefinitions that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::BatchCreateRumMetricDefinitionsOutcomeCallable BatchCreateRumMetricDefinitionsCallable(const BatchCreateRumMetricDefinitionsRequestT& request) const
{
return SubmitCallable(&CloudWatchRUMClient::BatchCreateRumMetricDefinitions, request);
}
/**
* An Async wrapper for BatchCreateRumMetricDefinitions that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void BatchCreateRumMetricDefinitionsAsync(const BatchCreateRumMetricDefinitionsRequestT& request, const BatchCreateRumMetricDefinitionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchRUMClient::BatchCreateRumMetricDefinitions, request, handler, context);
}
/**
* Removes the specified metrics from being sent to an extended metrics
* destination.
If some metric definition IDs specified in a
* BatchDeleteRumMetricDefinitions
operations are not valid, those
* metric definitions fail and return errors, but all valid metric definition IDs
* in the same operation are still deleted.
The maximum number of metric
* definitions that you can specify in one
* BatchDeleteRumMetricDefinitions
operation is 200.
See
* Also:
AWS
* API Reference
*/
virtual Model::BatchDeleteRumMetricDefinitionsOutcome BatchDeleteRumMetricDefinitions(const Model::BatchDeleteRumMetricDefinitionsRequest& request) const;
/**
* A Callable wrapper for BatchDeleteRumMetricDefinitions that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::BatchDeleteRumMetricDefinitionsOutcomeCallable BatchDeleteRumMetricDefinitionsCallable(const BatchDeleteRumMetricDefinitionsRequestT& request) const
{
return SubmitCallable(&CloudWatchRUMClient::BatchDeleteRumMetricDefinitions, request);
}
/**
* An Async wrapper for BatchDeleteRumMetricDefinitions that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void BatchDeleteRumMetricDefinitionsAsync(const BatchDeleteRumMetricDefinitionsRequestT& request, const BatchDeleteRumMetricDefinitionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchRUMClient::BatchDeleteRumMetricDefinitions, request, handler, context);
}
/**
* Retrieves the list of metrics and dimensions that a RUM app monitor is
* sending to a single destination.
See Also:
AWS
* API Reference
*/
virtual Model::BatchGetRumMetricDefinitionsOutcome BatchGetRumMetricDefinitions(const Model::BatchGetRumMetricDefinitionsRequest& request) const;
/**
* A Callable wrapper for BatchGetRumMetricDefinitions that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::BatchGetRumMetricDefinitionsOutcomeCallable BatchGetRumMetricDefinitionsCallable(const BatchGetRumMetricDefinitionsRequestT& request) const
{
return SubmitCallable(&CloudWatchRUMClient::BatchGetRumMetricDefinitions, request);
}
/**
* An Async wrapper for BatchGetRumMetricDefinitions that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void BatchGetRumMetricDefinitionsAsync(const BatchGetRumMetricDefinitionsRequestT& request, const BatchGetRumMetricDefinitionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchRUMClient::BatchGetRumMetricDefinitions, request, handler, context);
}
/**
* Creates a Amazon CloudWatch RUM app monitor, which collects telemetry data
* from your application and sends that data to RUM. The data includes performance
* and reliability information such as page load time, client-side errors, and user
* behavior.
You use this operation only to create a new app monitor. To
* update an existing app monitor, use UpdateAppMonitor
* instead.
After you create an app monitor, sign in to the CloudWatch RUM
* console to get the JavaScript code snippet to add to your web application. For
* more information, see How
* do I find a code snippet that I've already generated?
See
* Also:
AWS
* API Reference
*/
virtual Model::CreateAppMonitorOutcome CreateAppMonitor(const Model::CreateAppMonitorRequest& request) const;
/**
* A Callable wrapper for CreateAppMonitor that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateAppMonitorOutcomeCallable CreateAppMonitorCallable(const CreateAppMonitorRequestT& request) const
{
return SubmitCallable(&CloudWatchRUMClient::CreateAppMonitor, request);
}
/**
* An Async wrapper for CreateAppMonitor that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateAppMonitorAsync(const CreateAppMonitorRequestT& request, const CreateAppMonitorResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchRUMClient::CreateAppMonitor, request, handler, context);
}
/**
* Deletes an existing app monitor. This immediately stops the collection of
* data.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteAppMonitorOutcome DeleteAppMonitor(const Model::DeleteAppMonitorRequest& request) const;
/**
* A Callable wrapper for DeleteAppMonitor that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteAppMonitorOutcomeCallable DeleteAppMonitorCallable(const DeleteAppMonitorRequestT& request) const
{
return SubmitCallable(&CloudWatchRUMClient::DeleteAppMonitor, request);
}
/**
* An Async wrapper for DeleteAppMonitor that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteAppMonitorAsync(const DeleteAppMonitorRequestT& request, const DeleteAppMonitorResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchRUMClient::DeleteAppMonitor, request, handler, context);
}
/**
* Deletes a destination for CloudWatch RUM extended metrics, so that the
* specified app monitor stops sending extended metrics to that
* destination.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteRumMetricsDestinationOutcome DeleteRumMetricsDestination(const Model::DeleteRumMetricsDestinationRequest& request) const;
/**
* A Callable wrapper for DeleteRumMetricsDestination that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteRumMetricsDestinationOutcomeCallable DeleteRumMetricsDestinationCallable(const DeleteRumMetricsDestinationRequestT& request) const
{
return SubmitCallable(&CloudWatchRUMClient::DeleteRumMetricsDestination, request);
}
/**
* An Async wrapper for DeleteRumMetricsDestination that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteRumMetricsDestinationAsync(const DeleteRumMetricsDestinationRequestT& request, const DeleteRumMetricsDestinationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchRUMClient::DeleteRumMetricsDestination, request, handler, context);
}
/**
* Retrieves the complete configuration information for one app
* monitor.
See Also:
AWS
* API Reference
*/
virtual Model::GetAppMonitorOutcome GetAppMonitor(const Model::GetAppMonitorRequest& request) const;
/**
* A Callable wrapper for GetAppMonitor that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetAppMonitorOutcomeCallable GetAppMonitorCallable(const GetAppMonitorRequestT& request) const
{
return SubmitCallable(&CloudWatchRUMClient::GetAppMonitor, request);
}
/**
* An Async wrapper for GetAppMonitor that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetAppMonitorAsync(const GetAppMonitorRequestT& request, const GetAppMonitorResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchRUMClient::GetAppMonitor, request, handler, context);
}
/**
* Retrieves the raw performance events that RUM has collected from your web
* application, so that you can do your own processing or analysis of this
* data.
See Also:
AWS
* API Reference
*/
virtual Model::GetAppMonitorDataOutcome GetAppMonitorData(const Model::GetAppMonitorDataRequest& request) const;
/**
* A Callable wrapper for GetAppMonitorData that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetAppMonitorDataOutcomeCallable GetAppMonitorDataCallable(const GetAppMonitorDataRequestT& request) const
{
return SubmitCallable(&CloudWatchRUMClient::GetAppMonitorData, request);
}
/**
* An Async wrapper for GetAppMonitorData that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetAppMonitorDataAsync(const GetAppMonitorDataRequestT& request, const GetAppMonitorDataResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchRUMClient::GetAppMonitorData, request, handler, context);
}
/**
* Returns a list of the Amazon CloudWatch RUM app monitors in the
* account.
See Also:
AWS
* API Reference
*/
virtual Model::ListAppMonitorsOutcome ListAppMonitors(const Model::ListAppMonitorsRequest& request) const;
/**
* A Callable wrapper for ListAppMonitors that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListAppMonitorsOutcomeCallable ListAppMonitorsCallable(const ListAppMonitorsRequestT& request) const
{
return SubmitCallable(&CloudWatchRUMClient::ListAppMonitors, request);
}
/**
* An Async wrapper for ListAppMonitors that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListAppMonitorsAsync(const ListAppMonitorsRequestT& request, const ListAppMonitorsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchRUMClient::ListAppMonitors, request, handler, context);
}
/**
* Returns a list of destinations that you have created to receive RUM extended
* metrics, for the specified app monitor.
For more information about
* extended metrics, see AddRumMetrics.
See
* Also:
AWS
* API Reference
*/
virtual Model::ListRumMetricsDestinationsOutcome ListRumMetricsDestinations(const Model::ListRumMetricsDestinationsRequest& request) const;
/**
* A Callable wrapper for ListRumMetricsDestinations that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListRumMetricsDestinationsOutcomeCallable ListRumMetricsDestinationsCallable(const ListRumMetricsDestinationsRequestT& request) const
{
return SubmitCallable(&CloudWatchRUMClient::ListRumMetricsDestinations, request);
}
/**
* An Async wrapper for ListRumMetricsDestinations that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListRumMetricsDestinationsAsync(const ListRumMetricsDestinationsRequestT& request, const ListRumMetricsDestinationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchRUMClient::ListRumMetricsDestinations, request, handler, context);
}
/**
* Displays the tags associated with a CloudWatch RUM resource.
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(&CloudWatchRUMClient::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(&CloudWatchRUMClient::ListTagsForResource, request, handler, context);
}
/**
* Sends telemetry events about your application performance and user behavior
* to CloudWatch RUM. The code snippet that RUM generates for you to add to your
* application includes PutRumEvents
operations to send this data to
* RUM.
Each PutRumEvents
operation can send a batch of events
* from one user session.
See Also:
AWS
* API Reference
*/
virtual Model::PutRumEventsOutcome PutRumEvents(const Model::PutRumEventsRequest& request) const;
/**
* A Callable wrapper for PutRumEvents that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutRumEventsOutcomeCallable PutRumEventsCallable(const PutRumEventsRequestT& request) const
{
return SubmitCallable(&CloudWatchRUMClient::PutRumEvents, request);
}
/**
* An Async wrapper for PutRumEvents that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutRumEventsAsync(const PutRumEventsRequestT& request, const PutRumEventsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchRUMClient::PutRumEvents, request, handler, context);
}
/**
* Creates or updates a destination to receive extended metrics from CloudWatch
* RUM. You can send extended metrics to CloudWatch or to a CloudWatch Evidently
* experiment.
For more information about extended metrics, see BatchCreateRumMetricDefinitions.
See
* Also:
AWS
* API Reference
*/
virtual Model::PutRumMetricsDestinationOutcome PutRumMetricsDestination(const Model::PutRumMetricsDestinationRequest& request) const;
/**
* A Callable wrapper for PutRumMetricsDestination that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutRumMetricsDestinationOutcomeCallable PutRumMetricsDestinationCallable(const PutRumMetricsDestinationRequestT& request) const
{
return SubmitCallable(&CloudWatchRUMClient::PutRumMetricsDestination, request);
}
/**
* An Async wrapper for PutRumMetricsDestination that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutRumMetricsDestinationAsync(const PutRumMetricsDestinationRequestT& request, const PutRumMetricsDestinationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchRUMClient::PutRumMetricsDestination, request, handler, context);
}
/**
* Assigns one or more tags (key-value pairs) to the specified CloudWatch RUM
* resource. Currently, the only resources that can be tagged app monitors.
* 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 alarm. 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 resource.
For more information, see
* Tagging
* Amazon Web Services resources.
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(&CloudWatchRUMClient::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(&CloudWatchRUMClient::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(&CloudWatchRUMClient::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(&CloudWatchRUMClient::UntagResource, request, handler, context);
}
/**
* Updates the configuration of an existing app monitor. When you use this
* operation, only the parts of the app monitor configuration that you specify in
* this operation are changed. For any parameters that you omit, the existing
* values are kept.
You can't use this operation to change the tags of an
* existing app monitor. To change the tags of an existing app monitor, use TagResource.
* To create a new app monitor, use CreateAppMonitor.
* After you update an app monitor, sign in to the CloudWatch RUM console to get
* the updated JavaScript code snippet to add to your web application. For more
* information, see How
* do I find a code snippet that I've already generated?
See
* Also:
AWS
* API Reference
*/
virtual Model::UpdateAppMonitorOutcome UpdateAppMonitor(const Model::UpdateAppMonitorRequest& request) const;
/**
* A Callable wrapper for UpdateAppMonitor that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateAppMonitorOutcomeCallable UpdateAppMonitorCallable(const UpdateAppMonitorRequestT& request) const
{
return SubmitCallable(&CloudWatchRUMClient::UpdateAppMonitor, request);
}
/**
* An Async wrapper for UpdateAppMonitor that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateAppMonitorAsync(const UpdateAppMonitorRequestT& request, const UpdateAppMonitorResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchRUMClient::UpdateAppMonitor, request, handler, context);
}
/**
* Modifies one existing metric definition for CloudWatch RUM extended metrics.
* For more information about extended metrics, see BatchCreateRumMetricsDefinitions.
See
* Also:
AWS
* API Reference
*/
virtual Model::UpdateRumMetricDefinitionOutcome UpdateRumMetricDefinition(const Model::UpdateRumMetricDefinitionRequest& request) const;
/**
* A Callable wrapper for UpdateRumMetricDefinition that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateRumMetricDefinitionOutcomeCallable UpdateRumMetricDefinitionCallable(const UpdateRumMetricDefinitionRequestT& request) const
{
return SubmitCallable(&CloudWatchRUMClient::UpdateRumMetricDefinition, request);
}
/**
* An Async wrapper for UpdateRumMetricDefinition that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateRumMetricDefinitionAsync(const UpdateRumMetricDefinitionRequestT& request, const UpdateRumMetricDefinitionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchRUMClient::UpdateRumMetricDefinition, request, handler, context);
}
void OverrideEndpoint(const Aws::String& endpoint);
std::shared_ptr& accessEndpointProvider();
private:
friend class Aws::Client::ClientWithAsyncTemplateMethods;
void init(const CloudWatchRUMClientConfiguration& clientConfiguration);
CloudWatchRUMClientConfiguration m_clientConfiguration;
std::shared_ptr m_executor;
std::shared_ptr m_endpointProvider;
};
} // namespace CloudWatchRUM
} // namespace Aws