/** * 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