/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.cloudwatchrum; import javax.annotation.Generated; import com.amazonaws.*; import com.amazonaws.regions.*; import com.amazonaws.services.cloudwatchrum.model.*; /** * Interface for accessing CloudWatch RUM. *

* Note: Do not directly implement this interface, new methods are added to it regularly. Extend from * {@link com.amazonaws.services.cloudwatchrum.AbstractAWSCloudWatchRUM} instead. *

*

*

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

*/ @Generated("com.amazonaws:aws-java-sdk-code-generator") public interface AWSCloudWatchRUM { /** * The region metadata service name for computing region endpoints. You can use this value to retrieve metadata * (such as supported regions) of the service. * * @see RegionUtils#getRegionsForService(String) */ String ENDPOINT_PREFIX = "rum"; /** *

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

* *

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

* * @param batchCreateRumMetricDefinitionsRequest * @return Result of the BatchCreateRumMetricDefinitions operation returned by the service. * @throws ConflictException * This operation attempted to create a resource that already exists. * @throws ServiceQuotaExceededException * This request exceeds a service quota. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @throws ThrottlingException * The request was throttled because of quota limits. * @throws AccessDeniedException * You don't have sufficient permissions to perform this action. * @sample AWSCloudWatchRUM.BatchCreateRumMetricDefinitions * @see AWS API Documentation */ BatchCreateRumMetricDefinitionsResult batchCreateRumMetricDefinitions(BatchCreateRumMetricDefinitionsRequest batchCreateRumMetricDefinitionsRequest); /** *

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

* * @param batchDeleteRumMetricDefinitionsRequest * @return Result of the BatchDeleteRumMetricDefinitions operation returned by the service. * @throws ConflictException * This operation attempted to create a resource that already exists. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @throws ThrottlingException * The request was throttled because of quota limits. * @throws AccessDeniedException * You don't have sufficient permissions to perform this action. * @sample AWSCloudWatchRUM.BatchDeleteRumMetricDefinitions * @see AWS API Documentation */ BatchDeleteRumMetricDefinitionsResult batchDeleteRumMetricDefinitions(BatchDeleteRumMetricDefinitionsRequest batchDeleteRumMetricDefinitionsRequest); /** *

* Retrieves the list of metrics and dimensions that a RUM app monitor is sending to a single destination. *

* * @param batchGetRumMetricDefinitionsRequest * @return Result of the BatchGetRumMetricDefinitions operation returned by the service. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @throws AccessDeniedException * You don't have sufficient permissions to perform this action. * @sample AWSCloudWatchRUM.BatchGetRumMetricDefinitions * @see AWS API Documentation */ BatchGetRumMetricDefinitionsResult batchGetRumMetricDefinitions(BatchGetRumMetricDefinitionsRequest batchGetRumMetricDefinitionsRequest); /** *

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

* * @param createAppMonitorRequest * @return Result of the CreateAppMonitor operation returned by the service. * @throws ConflictException * This operation attempted to create a resource that already exists. * @throws ServiceQuotaExceededException * This request exceeds a service quota. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @throws ThrottlingException * The request was throttled because of quota limits. * @throws AccessDeniedException * You don't have sufficient permissions to perform this action. * @sample AWSCloudWatchRUM.CreateAppMonitor * @see AWS API * Documentation */ CreateAppMonitorResult createAppMonitor(CreateAppMonitorRequest createAppMonitorRequest); /** *

* Deletes an existing app monitor. This immediately stops the collection of data. *

* * @param deleteAppMonitorRequest * @return Result of the DeleteAppMonitor operation returned by the service. * @throws ConflictException * This operation attempted to create a resource that already exists. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @throws ThrottlingException * The request was throttled because of quota limits. * @throws AccessDeniedException * You don't have sufficient permissions to perform this action. * @sample AWSCloudWatchRUM.DeleteAppMonitor * @see AWS API * Documentation */ DeleteAppMonitorResult deleteAppMonitor(DeleteAppMonitorRequest deleteAppMonitorRequest); /** *

* Deletes a destination for CloudWatch RUM extended metrics, so that the specified app monitor stops sending * extended metrics to that destination. *

* * @param deleteRumMetricsDestinationRequest * @return Result of the DeleteRumMetricsDestination operation returned by the service. * @throws ConflictException * This operation attempted to create a resource that already exists. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @throws ThrottlingException * The request was throttled because of quota limits. * @throws AccessDeniedException * You don't have sufficient permissions to perform this action. * @sample AWSCloudWatchRUM.DeleteRumMetricsDestination * @see AWS API Documentation */ DeleteRumMetricsDestinationResult deleteRumMetricsDestination(DeleteRumMetricsDestinationRequest deleteRumMetricsDestinationRequest); /** *

* Retrieves the complete configuration information for one app monitor. *

* * @param getAppMonitorRequest * @return Result of the GetAppMonitor operation returned by the service. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @throws ThrottlingException * The request was throttled because of quota limits. * @throws AccessDeniedException * You don't have sufficient permissions to perform this action. * @sample AWSCloudWatchRUM.GetAppMonitor * @see AWS API * Documentation */ GetAppMonitorResult getAppMonitor(GetAppMonitorRequest getAppMonitorRequest); /** *

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

* * @param getAppMonitorDataRequest * @return Result of the GetAppMonitorData operation returned by the service. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @throws ThrottlingException * The request was throttled because of quota limits. * @throws AccessDeniedException * You don't have sufficient permissions to perform this action. * @sample AWSCloudWatchRUM.GetAppMonitorData * @see AWS API * Documentation */ GetAppMonitorDataResult getAppMonitorData(GetAppMonitorDataRequest getAppMonitorDataRequest); /** *

* Returns a list of the Amazon CloudWatch RUM app monitors in the account. *

* * @param listAppMonitorsRequest * @return Result of the ListAppMonitors operation returned by the service. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @throws ThrottlingException * The request was throttled because of quota limits. * @throws AccessDeniedException * You don't have sufficient permissions to perform this action. * @sample AWSCloudWatchRUM.ListAppMonitors * @see AWS API * Documentation */ ListAppMonitorsResult listAppMonitors(ListAppMonitorsRequest listAppMonitorsRequest); /** *

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

* * @param listRumMetricsDestinationsRequest * @return Result of the ListRumMetricsDestinations operation returned by the service. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @throws AccessDeniedException * You don't have sufficient permissions to perform this action. * @sample AWSCloudWatchRUM.ListRumMetricsDestinations * @see AWS * API Documentation */ ListRumMetricsDestinationsResult listRumMetricsDestinations(ListRumMetricsDestinationsRequest listRumMetricsDestinationsRequest); /** *

* Displays the tags associated with a CloudWatch RUM resource. *

* * @param listTagsForResourceRequest * @return Result of the ListTagsForResource operation returned by the service. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @sample AWSCloudWatchRUM.ListTagsForResource * @see AWS API * Documentation */ ListTagsForResourceResult listTagsForResource(ListTagsForResourceRequest listTagsForResourceRequest); /** *

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

* * @param putRumEventsRequest * @return Result of the PutRumEvents operation returned by the service. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @throws ThrottlingException * The request was throttled because of quota limits. * @throws AccessDeniedException * You don't have sufficient permissions to perform this action. * @sample AWSCloudWatchRUM.PutRumEvents * @see AWS API * Documentation */ PutRumEventsResult putRumEvents(PutRumEventsRequest putRumEventsRequest); /** *

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

* * @param putRumMetricsDestinationRequest * @return Result of the PutRumMetricsDestination operation returned by the service. * @throws ConflictException * This operation attempted to create a resource that already exists. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @throws ThrottlingException * The request was throttled because of quota limits. * @throws AccessDeniedException * You don't have sufficient permissions to perform this action. * @sample AWSCloudWatchRUM.PutRumMetricsDestination * @see AWS * API Documentation */ PutRumMetricsDestinationResult putRumMetricsDestination(PutRumMetricsDestinationRequest putRumMetricsDestinationRequest); /** *

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

* * @param tagResourceRequest * @return Result of the TagResource operation returned by the service. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @sample AWSCloudWatchRUM.TagResource * @see AWS API * Documentation */ TagResourceResult tagResource(TagResourceRequest tagResourceRequest); /** *

* Removes one or more tags from the specified resource. *

* * @param untagResourceRequest * @return Result of the UntagResource operation returned by the service. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @sample AWSCloudWatchRUM.UntagResource * @see AWS API * Documentation */ UntagResourceResult untagResource(UntagResourceRequest untagResourceRequest); /** *

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

* * @param updateAppMonitorRequest * @return Result of the UpdateAppMonitor operation returned by the service. * @throws ConflictException * This operation attempted to create a resource that already exists. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @throws ThrottlingException * The request was throttled because of quota limits. * @throws AccessDeniedException * You don't have sufficient permissions to perform this action. * @sample AWSCloudWatchRUM.UpdateAppMonitor * @see AWS API * Documentation */ UpdateAppMonitorResult updateAppMonitor(UpdateAppMonitorRequest updateAppMonitorRequest); /** *

* Modifies one existing metric definition for CloudWatch RUM extended metrics. For more information about extended * metrics, see BatchCreateRumMetricsDefinitions. *

* * @param updateRumMetricDefinitionRequest * @return Result of the UpdateRumMetricDefinition operation returned by the service. * @throws ConflictException * This operation attempted to create a resource that already exists. * @throws ServiceQuotaExceededException * This request exceeds a service quota. * @throws ResourceNotFoundException * Resource not found. * @throws InternalServerException * Internal service exception. * @throws ValidationException * One of the arguments for the request is not valid. * @throws ThrottlingException * The request was throttled because of quota limits. * @throws AccessDeniedException * You don't have sufficient permissions to perform this action. * @sample AWSCloudWatchRUM.UpdateRumMetricDefinition * @see AWS * API Documentation */ UpdateRumMetricDefinitionResult updateRumMetricDefinition(UpdateRumMetricDefinitionRequest updateRumMetricDefinitionRequest); /** * Shuts down this client object, releasing any resources that might be held open. This is an optional method, and * callers are not expected to call it, but can if they want to explicitly release any open resources. Once a client * has been shutdown, it should not be used to make any more requests. */ void shutdown(); /** * Returns additional metadata for a previously executed successful request, typically used for debugging issues * where a service isn't acting as expected. This data isn't considered part of the result data returned by an * operation, so it's available through this separate, diagnostic interface. *

* Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic * information for an executed request, you should use this method to retrieve it as soon as possible after * executing a request. * * @param request * The originally executed request. * * @return The response metadata for the specified request, or null if none is available. */ ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request); }