/**
* 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 CloudWatchLogs
{
/**
* You can use Amazon CloudWatch Logs to monitor, store, and access your log
* files from EC2 instances, CloudTrail, and other sources. You can then retrieve
* the associated log data from CloudWatch Logs using the CloudWatch console.
* Alternatively, you can use CloudWatch Logs commands in the Amazon Web Services
* CLI, CloudWatch Logs API, or CloudWatch Logs SDK.
You can use CloudWatch
* Logs to:
-
Monitor logs from EC2 instances in real time:
* You can use CloudWatch Logs to monitor applications and systems using log data.
* For example, CloudWatch Logs can track the number of errors that occur in your
* application logs. Then, it can send you a notification whenever the rate of
* errors exceeds a threshold that you specify. CloudWatch Logs uses your log data
* for monitoring so no code changes are required. For example, you can monitor
* application logs for specific literal terms (such as "NullReferenceException").
* You can also count the number of occurrences of a literal term at a particular
* position in log data (such as "404" status codes in an Apache access log). When
* the term you are searching for is found, CloudWatch Logs reports the data to a
* CloudWatch metric that you specify.
-
Monitor CloudTrail
* logged events: You can create alarms in CloudWatch and receive notifications
* of particular API activity as captured by CloudTrail. You can use the
* notification to perform troubleshooting.
-
Archive log
* data: You can use CloudWatch Logs to store your log data in highly durable
* storage. You can change the log retention setting so that any log events earlier
* than this setting are automatically deleted. The CloudWatch Logs agent helps to
* quickly send both rotated and non-rotated log data off of a host and into the
* log service. You can then access the raw log data when you need it.
*
*/
class AWS_CLOUDWATCHLOGS_API CloudWatchLogsClient : 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 CloudWatchLogsClientConfiguration ClientConfigurationType;
typedef CloudWatchLogsEndpointProvider 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.
*/
CloudWatchLogsClient(const Aws::CloudWatchLogs::CloudWatchLogsClientConfiguration& clientConfiguration = Aws::CloudWatchLogs::CloudWatchLogsClientConfiguration(),
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.
*/
CloudWatchLogsClient(const Aws::Auth::AWSCredentials& credentials,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::CloudWatchLogs::CloudWatchLogsClientConfiguration& clientConfiguration = Aws::CloudWatchLogs::CloudWatchLogsClientConfiguration());
/**
* 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
*/
CloudWatchLogsClient(const std::shared_ptr& credentialsProvider,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::CloudWatchLogs::CloudWatchLogsClientConfiguration& clientConfiguration = Aws::CloudWatchLogs::CloudWatchLogsClientConfiguration());
/* 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.
*/
CloudWatchLogsClient(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.
*/
CloudWatchLogsClient(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
*/
CloudWatchLogsClient(const std::shared_ptr& credentialsProvider,
const Aws::Client::ClientConfiguration& clientConfiguration);
/* End of legacy constructors due deprecation */
virtual ~CloudWatchLogsClient();
/**
* Associates the specified KMS key with either one log group in the account, or
* with all stored CloudWatch Logs query insights results in the account.
* When you use AssociateKmsKey
, you specify either the
* logGroupName
parameter or the resourceIdentifier
* parameter. You can't specify both of those parameters in the same operation.
* -
Specify the logGroupName
parameter to cause all log
* events stored in the log group to be encrypted with that key. Only the log
* events ingested after the key is associated are encrypted with that key.
* Associating a KMS key with a log group overrides any existing associations
* between the log group and a KMS key. After a KMS key is associated with a log
* group, all newly ingested data for the log group is encrypted using the KMS key.
* This association is stored as long as the data encrypted with the KMS key is
* still within CloudWatch Logs. This enables CloudWatch Logs to decrypt this data
* whenever it is requested.
Associating a key with a log group does not
* cause the results of queries of that log group to be encrypted with that key. To
* have query results encrypted with a KMS key, you must use an
* AssociateKmsKey
operation with the resourceIdentifier
* parameter that specifies a query-result
resource.
-
*
Specify the resourceIdentifier
parameter with a
* query-result
resource, to use that key to encrypt the stored
* results of all future StartQuery
* operations in the account. The response from a GetQueryResults
* operation will still return the query results in plain text.
Even if you
* have not associated a key with your query results, the query results are
* encrypted when stored, using the default CloudWatch Logs method.
If you
* run a query from a monitoring account that queries logs in a source account, the
* query results key from the monitoring account, if any, is used.
* If you delete the key that is used to encrypt log events or log
* group query results, then all the associated stored log events or query results
* that were encrypted with that key will be unencryptable and unusable.
* CloudWatch Logs supports only symmetric KMS keys. Do not
* use an associate an asymmetric KMS key with your log group or query results. For
* more information, see Using
* Symmetric and Asymmetric Keys.
It can take up to 5 minutes
* for this operation to take effect.
If you attempt to associate a KMS key
* with a log group but the KMS key does not exist or the KMS key is disabled, you
* receive an InvalidParameterException
error.
See
* Also:
AWS
* API Reference
*/
virtual Model::AssociateKmsKeyOutcome AssociateKmsKey(const Model::AssociateKmsKeyRequest& request) const;
/**
* A Callable wrapper for AssociateKmsKey that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateKmsKeyOutcomeCallable AssociateKmsKeyCallable(const AssociateKmsKeyRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::AssociateKmsKey, request);
}
/**
* An Async wrapper for AssociateKmsKey that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateKmsKeyAsync(const AssociateKmsKeyRequestT& request, const AssociateKmsKeyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::AssociateKmsKey, request, handler, context);
}
/**
* Cancels the specified export task.
The task must be in the
* PENDING
or RUNNING
state.
See Also:
* AWS
* API Reference
*/
virtual Model::CancelExportTaskOutcome CancelExportTask(const Model::CancelExportTaskRequest& request) const;
/**
* A Callable wrapper for CancelExportTask that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CancelExportTaskOutcomeCallable CancelExportTaskCallable(const CancelExportTaskRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::CancelExportTask, request);
}
/**
* An Async wrapper for CancelExportTask that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CancelExportTaskAsync(const CancelExportTaskRequestT& request, const CancelExportTaskResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::CancelExportTask, request, handler, context);
}
/**
* Creates an export task so that you can efficiently export data from a log
* group to an Amazon S3 bucket. When you perform a CreateExportTask
* operation, you must use credentials that have permission to write to the S3
* bucket that you specify as the destination.
Exporting log data to S3
* buckets that are encrypted by KMS is supported. Exporting log data to Amazon S3
* buckets that have S3 Object Lock enabled with a retention period is also
* supported.
Exporting to S3 buckets that are encrypted with AES-256 is
* supported.
This is an asynchronous call. If all the required information
* is provided, this operation initiates an export task and responds with the ID of
* the task. After the task has started, you can use DescribeExportTasks
* to get the status of the export task. Each account can only have one active
* (RUNNING
or PENDING
) export task at a time. To cancel
* an export task, use CancelExportTask.
* You can export logs from multiple log groups or multiple time ranges to the
* same S3 bucket. To separate log data for each export task, specify a prefix to
* be used as the Amazon S3 key prefix for all exported objects.
* Time-based sorting on chunks of log data inside an exported file is not
* guaranteed. You can sort the exported log field data by using Linux
* utilities.
See Also:
AWS
* API Reference
*/
virtual Model::CreateExportTaskOutcome CreateExportTask(const Model::CreateExportTaskRequest& request) const;
/**
* A Callable wrapper for CreateExportTask that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateExportTaskOutcomeCallable CreateExportTaskCallable(const CreateExportTaskRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::CreateExportTask, request);
}
/**
* An Async wrapper for CreateExportTask that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateExportTaskAsync(const CreateExportTaskRequestT& request, const CreateExportTaskResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::CreateExportTask, request, handler, context);
}
/**
* Creates a log group with the specified name. You can create up to 20,000 log
* groups per account.
You must use the following guidelines when naming a
* log group:
-
Log group names must be unique within a Region for
* an Amazon Web Services account.
-
Log group names can be between
* 1 and 512 characters long.
-
Log group names consist of the
* following characters: a-z, A-Z, 0-9, '_' (underscore), '-' (hyphen), '/'
* (forward slash), '.' (period), and '#' (number sign)
When you
* create a log group, by default the log events in the log group do not expire. To
* set a retention policy so that events expire and are deleted after a specified
* time, use PutRetentionPolicy.
* If you associate an KMS key with the log group, ingested data is encrypted
* using the KMS key. This association is stored as long as the data encrypted with
* the KMS key is still within CloudWatch Logs. This enables CloudWatch Logs to
* decrypt this data whenever it is requested.
If you attempt to associate a
* KMS key with the log group but the KMS key does not exist or the KMS key is
* disabled, you receive an InvalidParameterException
error.
* CloudWatch Logs supports only symmetric KMS keys. Do not
* associate an asymmetric KMS key with your log group. For more information, see
* Using
* Symmetric and Asymmetric Keys.
See Also:
AWS
* API Reference
*/
virtual Model::CreateLogGroupOutcome CreateLogGroup(const Model::CreateLogGroupRequest& request) const;
/**
* A Callable wrapper for CreateLogGroup that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateLogGroupOutcomeCallable CreateLogGroupCallable(const CreateLogGroupRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::CreateLogGroup, request);
}
/**
* An Async wrapper for CreateLogGroup that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateLogGroupAsync(const CreateLogGroupRequestT& request, const CreateLogGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::CreateLogGroup, request, handler, context);
}
/**
* Creates a log stream for the specified log group. A log stream is a sequence
* of log events that originate from a single source, such as an application
* instance or a resource that is being monitored.
There is no limit on the
* number of log streams that you can create for a log group. There is a limit of
* 50 TPS on CreateLogStream
operations, after which transactions are
* throttled.
You must use the following guidelines when naming a log
* stream:
-
Log stream names must be unique within the log
* group.
-
Log stream names can be between 1 and 512 characters
* long.
-
Don't use ':' (colon) or '*' (asterisk) characters.
*
See Also:
AWS
* API Reference
*/
virtual Model::CreateLogStreamOutcome CreateLogStream(const Model::CreateLogStreamRequest& request) const;
/**
* A Callable wrapper for CreateLogStream that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateLogStreamOutcomeCallable CreateLogStreamCallable(const CreateLogStreamRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::CreateLogStream, request);
}
/**
* An Async wrapper for CreateLogStream that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateLogStreamAsync(const CreateLogStreamRequestT& request, const CreateLogStreamResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::CreateLogStream, request, handler, context);
}
/**
* Deletes a CloudWatch Logs account policy.
To use this operation, you
* must be signed on with the logs:DeleteDataProtectionPolicy
and
* logs:DeleteAccountPolicy
permissions.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteAccountPolicyOutcome DeleteAccountPolicy(const Model::DeleteAccountPolicyRequest& request) const;
/**
* A Callable wrapper for DeleteAccountPolicy that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteAccountPolicyOutcomeCallable DeleteAccountPolicyCallable(const DeleteAccountPolicyRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::DeleteAccountPolicy, request);
}
/**
* An Async wrapper for DeleteAccountPolicy that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteAccountPolicyAsync(const DeleteAccountPolicyRequestT& request, const DeleteAccountPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::DeleteAccountPolicy, request, handler, context);
}
/**
* Deletes the data protection policy from the specified log group.
For
* more information about data protection policies, see PutDataProtectionPolicy.
See
* Also:
AWS
* API Reference
*/
virtual Model::DeleteDataProtectionPolicyOutcome DeleteDataProtectionPolicy(const Model::DeleteDataProtectionPolicyRequest& request) const;
/**
* A Callable wrapper for DeleteDataProtectionPolicy that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteDataProtectionPolicyOutcomeCallable DeleteDataProtectionPolicyCallable(const DeleteDataProtectionPolicyRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::DeleteDataProtectionPolicy, request);
}
/**
* An Async wrapper for DeleteDataProtectionPolicy that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteDataProtectionPolicyAsync(const DeleteDataProtectionPolicyRequestT& request, const DeleteDataProtectionPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::DeleteDataProtectionPolicy, request, handler, context);
}
/**
* Deletes the specified destination, and eventually disables all the
* subscription filters that publish to it. This operation does not delete the
* physical resource encapsulated by the destination.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteDestinationOutcome DeleteDestination(const Model::DeleteDestinationRequest& request) const;
/**
* A Callable wrapper for DeleteDestination that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteDestinationOutcomeCallable DeleteDestinationCallable(const DeleteDestinationRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::DeleteDestination, request);
}
/**
* An Async wrapper for DeleteDestination that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteDestinationAsync(const DeleteDestinationRequestT& request, const DeleteDestinationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::DeleteDestination, request, handler, context);
}
/**
* Deletes the specified log group and permanently deletes all the archived log
* events associated with the log group.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteLogGroupOutcome DeleteLogGroup(const Model::DeleteLogGroupRequest& request) const;
/**
* A Callable wrapper for DeleteLogGroup that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteLogGroupOutcomeCallable DeleteLogGroupCallable(const DeleteLogGroupRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::DeleteLogGroup, request);
}
/**
* An Async wrapper for DeleteLogGroup that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteLogGroupAsync(const DeleteLogGroupRequestT& request, const DeleteLogGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::DeleteLogGroup, request, handler, context);
}
/**
* Deletes the specified log stream and permanently deletes all the archived log
* events associated with the log stream.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteLogStreamOutcome DeleteLogStream(const Model::DeleteLogStreamRequest& request) const;
/**
* A Callable wrapper for DeleteLogStream that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteLogStreamOutcomeCallable DeleteLogStreamCallable(const DeleteLogStreamRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::DeleteLogStream, request);
}
/**
* An Async wrapper for DeleteLogStream that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteLogStreamAsync(const DeleteLogStreamRequestT& request, const DeleteLogStreamResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::DeleteLogStream, request, handler, context);
}
/**
* Deletes the specified metric filter.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteMetricFilterOutcome DeleteMetricFilter(const Model::DeleteMetricFilterRequest& request) const;
/**
* A Callable wrapper for DeleteMetricFilter that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteMetricFilterOutcomeCallable DeleteMetricFilterCallable(const DeleteMetricFilterRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::DeleteMetricFilter, request);
}
/**
* An Async wrapper for DeleteMetricFilter that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteMetricFilterAsync(const DeleteMetricFilterRequestT& request, const DeleteMetricFilterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::DeleteMetricFilter, request, handler, context);
}
/**
* Deletes a saved CloudWatch Logs Insights query definition. A query definition
* contains details about a saved CloudWatch Logs Insights query.
Each
* DeleteQueryDefinition
operation can delete one query
* definition.
You must have the logs:DeleteQueryDefinition
* permission to be able to perform this operation.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteQueryDefinitionOutcome DeleteQueryDefinition(const Model::DeleteQueryDefinitionRequest& request) const;
/**
* A Callable wrapper for DeleteQueryDefinition that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteQueryDefinitionOutcomeCallable DeleteQueryDefinitionCallable(const DeleteQueryDefinitionRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::DeleteQueryDefinition, request);
}
/**
* An Async wrapper for DeleteQueryDefinition that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteQueryDefinitionAsync(const DeleteQueryDefinitionRequestT& request, const DeleteQueryDefinitionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::DeleteQueryDefinition, request, handler, context);
}
/**
* Deletes a resource policy from this account. This revokes the access of the
* identities in that policy to put log events to this account.
See
* Also:
AWS
* API Reference
*/
virtual Model::DeleteResourcePolicyOutcome DeleteResourcePolicy(const Model::DeleteResourcePolicyRequest& request) const;
/**
* A Callable wrapper for DeleteResourcePolicy that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteResourcePolicyOutcomeCallable DeleteResourcePolicyCallable(const DeleteResourcePolicyRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::DeleteResourcePolicy, request);
}
/**
* An Async wrapper for DeleteResourcePolicy that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteResourcePolicyAsync(const DeleteResourcePolicyRequestT& request, const DeleteResourcePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::DeleteResourcePolicy, request, handler, context);
}
/**
* Deletes the specified retention policy.
Log events do not expire if
* they belong to log groups without a retention policy.
See Also:
* AWS
* API Reference
*/
virtual Model::DeleteRetentionPolicyOutcome DeleteRetentionPolicy(const Model::DeleteRetentionPolicyRequest& request) const;
/**
* A Callable wrapper for DeleteRetentionPolicy that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteRetentionPolicyOutcomeCallable DeleteRetentionPolicyCallable(const DeleteRetentionPolicyRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::DeleteRetentionPolicy, request);
}
/**
* An Async wrapper for DeleteRetentionPolicy that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteRetentionPolicyAsync(const DeleteRetentionPolicyRequestT& request, const DeleteRetentionPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::DeleteRetentionPolicy, request, handler, context);
}
/**
* Deletes the specified subscription filter.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteSubscriptionFilterOutcome DeleteSubscriptionFilter(const Model::DeleteSubscriptionFilterRequest& request) const;
/**
* A Callable wrapper for DeleteSubscriptionFilter that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteSubscriptionFilterOutcomeCallable DeleteSubscriptionFilterCallable(const DeleteSubscriptionFilterRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::DeleteSubscriptionFilter, request);
}
/**
* An Async wrapper for DeleteSubscriptionFilter that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteSubscriptionFilterAsync(const DeleteSubscriptionFilterRequestT& request, const DeleteSubscriptionFilterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::DeleteSubscriptionFilter, request, handler, context);
}
/**
* Returns a list of all CloudWatch Logs account policies in the
* account.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeAccountPoliciesOutcome DescribeAccountPolicies(const Model::DescribeAccountPoliciesRequest& request) const;
/**
* A Callable wrapper for DescribeAccountPolicies that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeAccountPoliciesOutcomeCallable DescribeAccountPoliciesCallable(const DescribeAccountPoliciesRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::DescribeAccountPolicies, request);
}
/**
* An Async wrapper for DescribeAccountPolicies that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeAccountPoliciesAsync(const DescribeAccountPoliciesRequestT& request, const DescribeAccountPoliciesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::DescribeAccountPolicies, request, handler, context);
}
/**
* Lists all your destinations. The results are ASCII-sorted by destination
* name.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeDestinationsOutcome DescribeDestinations(const Model::DescribeDestinationsRequest& request) const;
/**
* A Callable wrapper for DescribeDestinations that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeDestinationsOutcomeCallable DescribeDestinationsCallable(const DescribeDestinationsRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::DescribeDestinations, request);
}
/**
* An Async wrapper for DescribeDestinations that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeDestinationsAsync(const DescribeDestinationsRequestT& request, const DescribeDestinationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::DescribeDestinations, request, handler, context);
}
/**
* Lists the specified export tasks. You can list all your export tasks or
* filter the results based on task ID or task status.
See Also:
* AWS
* API Reference
*/
virtual Model::DescribeExportTasksOutcome DescribeExportTasks(const Model::DescribeExportTasksRequest& request) const;
/**
* A Callable wrapper for DescribeExportTasks that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeExportTasksOutcomeCallable DescribeExportTasksCallable(const DescribeExportTasksRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::DescribeExportTasks, request);
}
/**
* An Async wrapper for DescribeExportTasks that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeExportTasksAsync(const DescribeExportTasksRequestT& request, const DescribeExportTasksResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::DescribeExportTasks, request, handler, context);
}
/**
* Lists the specified log groups. You can list all your log groups or filter
* the results by prefix. The results are ASCII-sorted by log group name.
* CloudWatch Logs doesn’t support IAM policies that control access to the
* DescribeLogGroups
action by using the
* aws:ResourceTag/key-name
condition key. Other CloudWatch
* Logs actions do support the use of the aws:ResourceTag/key-name
*
condition key to control access. For more information about using tags
* to control access, see Controlling
* access to Amazon Web Services resources using tags.
If you are using
* CloudWatch cross-account observability, you can use this operation in a
* monitoring account and view data from the linked source accounts. For more
* information, see CloudWatch
* cross-account observability.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeLogGroupsOutcome DescribeLogGroups(const Model::DescribeLogGroupsRequest& request) const;
/**
* A Callable wrapper for DescribeLogGroups that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeLogGroupsOutcomeCallable DescribeLogGroupsCallable(const DescribeLogGroupsRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::DescribeLogGroups, request);
}
/**
* An Async wrapper for DescribeLogGroups that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeLogGroupsAsync(const DescribeLogGroupsRequestT& request, const DescribeLogGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::DescribeLogGroups, request, handler, context);
}
/**
* Lists the log streams for the specified log group. You can list all the log
* streams or filter the results by prefix. You can also control how the results
* are ordered.
You can specify the log group to search by using either
* logGroupIdentifier
or logGroupName
. You must include
* one of these two parameters, but you can't include both.
This operation
* has a limit of five transactions per second, after which transactions are
* throttled.
If you are using CloudWatch cross-account observability, you
* can use this operation in a monitoring account and view data from the linked
* source accounts. For more information, see CloudWatch
* cross-account observability.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeLogStreamsOutcome DescribeLogStreams(const Model::DescribeLogStreamsRequest& request) const;
/**
* A Callable wrapper for DescribeLogStreams that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeLogStreamsOutcomeCallable DescribeLogStreamsCallable(const DescribeLogStreamsRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::DescribeLogStreams, request);
}
/**
* An Async wrapper for DescribeLogStreams that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeLogStreamsAsync(const DescribeLogStreamsRequestT& request, const DescribeLogStreamsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::DescribeLogStreams, request, handler, context);
}
/**
* Lists the specified metric filters. You can list all of the metric filters or
* filter the results by log name, prefix, metric name, or metric namespace. The
* results are ASCII-sorted by filter name.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeMetricFiltersOutcome DescribeMetricFilters(const Model::DescribeMetricFiltersRequest& request) const;
/**
* A Callable wrapper for DescribeMetricFilters that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeMetricFiltersOutcomeCallable DescribeMetricFiltersCallable(const DescribeMetricFiltersRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::DescribeMetricFilters, request);
}
/**
* An Async wrapper for DescribeMetricFilters that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeMetricFiltersAsync(const DescribeMetricFiltersRequestT& request, const DescribeMetricFiltersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::DescribeMetricFilters, request, handler, context);
}
/**
* Returns a list of CloudWatch Logs Insights queries that are scheduled,
* running, or have been run recently in this account. You can request all queries
* or limit it to queries of a specific log group or queries with a certain
* status.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeQueriesOutcome DescribeQueries(const Model::DescribeQueriesRequest& request) const;
/**
* A Callable wrapper for DescribeQueries that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeQueriesOutcomeCallable DescribeQueriesCallable(const DescribeQueriesRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::DescribeQueries, request);
}
/**
* An Async wrapper for DescribeQueries that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeQueriesAsync(const DescribeQueriesRequestT& request, const DescribeQueriesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::DescribeQueries, request, handler, context);
}
/**
* This operation returns a paginated list of your saved CloudWatch Logs
* Insights query definitions.
You can use the
* queryDefinitionNamePrefix
parameter to limit the results to only
* the query definitions that have names that start with a certain
* string.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeQueryDefinitionsOutcome DescribeQueryDefinitions(const Model::DescribeQueryDefinitionsRequest& request) const;
/**
* A Callable wrapper for DescribeQueryDefinitions that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeQueryDefinitionsOutcomeCallable DescribeQueryDefinitionsCallable(const DescribeQueryDefinitionsRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::DescribeQueryDefinitions, request);
}
/**
* An Async wrapper for DescribeQueryDefinitions that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeQueryDefinitionsAsync(const DescribeQueryDefinitionsRequestT& request, const DescribeQueryDefinitionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::DescribeQueryDefinitions, request, handler, context);
}
/**
* Lists the resource policies in this account.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeResourcePoliciesOutcome DescribeResourcePolicies(const Model::DescribeResourcePoliciesRequest& request) const;
/**
* A Callable wrapper for DescribeResourcePolicies that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeResourcePoliciesOutcomeCallable DescribeResourcePoliciesCallable(const DescribeResourcePoliciesRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::DescribeResourcePolicies, request);
}
/**
* An Async wrapper for DescribeResourcePolicies that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeResourcePoliciesAsync(const DescribeResourcePoliciesRequestT& request, const DescribeResourcePoliciesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::DescribeResourcePolicies, request, handler, context);
}
/**
* Lists the subscription filters for the specified log group. You can list all
* the subscription filters or filter the results by prefix. The results are
* ASCII-sorted by filter name.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeSubscriptionFiltersOutcome DescribeSubscriptionFilters(const Model::DescribeSubscriptionFiltersRequest& request) const;
/**
* A Callable wrapper for DescribeSubscriptionFilters that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeSubscriptionFiltersOutcomeCallable DescribeSubscriptionFiltersCallable(const DescribeSubscriptionFiltersRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::DescribeSubscriptionFilters, request);
}
/**
* An Async wrapper for DescribeSubscriptionFilters that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeSubscriptionFiltersAsync(const DescribeSubscriptionFiltersRequestT& request, const DescribeSubscriptionFiltersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::DescribeSubscriptionFilters, request, handler, context);
}
/**
* Disassociates the specified KMS key from the specified log group or from all
* CloudWatch Logs Insights query results in the account.
When you use
* DisassociateKmsKey
, you specify either the
* logGroupName
parameter or the resourceIdentifier
* parameter. You can't specify both of those parameters in the same operation.
* -
Specify the logGroupName
parameter to stop using the
* KMS key to encrypt future log events ingested and stored in the log group.
* Instead, they will be encrypted with the default CloudWatch Logs method. The log
* events that were ingested while the key was associated with the log group are
* still encrypted with that key. Therefore, CloudWatch Logs will need permissions
* for the key whenever that data is accessed.
-
Specify the
* resourceIdentifier
parameter with the query-result
* resource to stop using the KMS key to encrypt the results of all future StartQuery
* operations in the account. They will instead be encrypted with the default
* CloudWatch Logs method. The results from queries that ran while the key was
* associated with the account are still encrypted with that key. Therefore,
* CloudWatch Logs will need permissions for the key whenever that data is
* accessed.
It can take up to 5 minutes for this operation to
* take effect.
See Also:
AWS
* API Reference
*/
virtual Model::DisassociateKmsKeyOutcome DisassociateKmsKey(const Model::DisassociateKmsKeyRequest& request) const;
/**
* A Callable wrapper for DisassociateKmsKey that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DisassociateKmsKeyOutcomeCallable DisassociateKmsKeyCallable(const DisassociateKmsKeyRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::DisassociateKmsKey, request);
}
/**
* An Async wrapper for DisassociateKmsKey that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DisassociateKmsKeyAsync(const DisassociateKmsKeyRequestT& request, const DisassociateKmsKeyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::DisassociateKmsKey, request, handler, context);
}
/**
* Lists log events from the specified log group. You can list all the log
* events or filter the results using a filter pattern, a time range, and the name
* of the log stream.
You must have the logs:FilterLogEvents
* permission to perform this operation.
You can specify the log group to
* search by using either logGroupIdentifier
or
* logGroupName
. You must include one of these two parameters, but you
* can't include both.
By default, this operation returns as many log
* events as can fit in 1 MB (up to 10,000 log events) or all the events found
* within the specified time range. If the results include a token, that means
* there are more log events available. You can get additional results by
* specifying the token in a subsequent call. This operation can return empty
* results while there are more log events available through the token.
The
* returned log events are sorted by event timestamp, the timestamp when the event
* was ingested by CloudWatch Logs, and the ID of the PutLogEvents
* request.
If you are using CloudWatch cross-account observability, you can
* use this operation in a monitoring account and view data from the linked source
* accounts. For more information, see CloudWatch
* cross-account observability.
See Also:
AWS
* API Reference
*/
virtual Model::FilterLogEventsOutcome FilterLogEvents(const Model::FilterLogEventsRequest& request) const;
/**
* A Callable wrapper for FilterLogEvents that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::FilterLogEventsOutcomeCallable FilterLogEventsCallable(const FilterLogEventsRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::FilterLogEvents, request);
}
/**
* An Async wrapper for FilterLogEvents that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void FilterLogEventsAsync(const FilterLogEventsRequestT& request, const FilterLogEventsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::FilterLogEvents, request, handler, context);
}
/**
* Returns information about a log group data protection policy.
See
* Also:
AWS
* API Reference
*/
virtual Model::GetDataProtectionPolicyOutcome GetDataProtectionPolicy(const Model::GetDataProtectionPolicyRequest& request) const;
/**
* A Callable wrapper for GetDataProtectionPolicy that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetDataProtectionPolicyOutcomeCallable GetDataProtectionPolicyCallable(const GetDataProtectionPolicyRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::GetDataProtectionPolicy, request);
}
/**
* An Async wrapper for GetDataProtectionPolicy that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetDataProtectionPolicyAsync(const GetDataProtectionPolicyRequestT& request, const GetDataProtectionPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::GetDataProtectionPolicy, request, handler, context);
}
/**
* Lists log events from the specified log stream. You can list all of the log
* events or filter using a time range.
By default, this operation returns
* as many log events as can fit in a response size of 1MB (up to 10,000 log
* events). You can get additional log events by specifying one of the tokens in a
* subsequent call. This operation can return empty results while there are more
* log events available through the token.
If you are using CloudWatch
* cross-account observability, you can use this operation in a monitoring account
* and view data from the linked source accounts. For more information, see CloudWatch
* cross-account observability.
You can specify the log group to search
* by using either logGroupIdentifier
or logGroupName
.
* You must include one of these two parameters, but you can't include both.
*
See Also:
AWS
* API Reference
*/
virtual Model::GetLogEventsOutcome GetLogEvents(const Model::GetLogEventsRequest& request) const;
/**
* A Callable wrapper for GetLogEvents that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetLogEventsOutcomeCallable GetLogEventsCallable(const GetLogEventsRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::GetLogEvents, request);
}
/**
* An Async wrapper for GetLogEvents that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetLogEventsAsync(const GetLogEventsRequestT& request, const GetLogEventsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::GetLogEvents, request, handler, context);
}
/**
* Returns a list of the fields that are included in log events in the specified
* log group. Includes the percentage of log events that contain each field. The
* search is limited to a time period that you specify.
You can specify the
* log group to search by using either logGroupIdentifier
or
* logGroupName
. You must specify one of these parameters, but you
* can't specify both.
In the results, fields that start with
* @
are fields generated by CloudWatch Logs. For example,
* @timestamp
is the timestamp of each log event. For more information
* about the fields that are generated by CloudWatch logs, see Supported
* Logs and Discovered Fields.
The response results are sorted by the
* frequency percentage, starting with the highest percentage.
If you are
* using CloudWatch cross-account observability, you can use this operation in a
* monitoring account and view data from the linked source accounts. For more
* information, see CloudWatch
* cross-account observability.
See Also:
AWS
* API Reference
*/
virtual Model::GetLogGroupFieldsOutcome GetLogGroupFields(const Model::GetLogGroupFieldsRequest& request) const;
/**
* A Callable wrapper for GetLogGroupFields that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetLogGroupFieldsOutcomeCallable GetLogGroupFieldsCallable(const GetLogGroupFieldsRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::GetLogGroupFields, request);
}
/**
* An Async wrapper for GetLogGroupFields that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetLogGroupFieldsAsync(const GetLogGroupFieldsRequestT& request, const GetLogGroupFieldsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::GetLogGroupFields, request, handler, context);
}
/**
* Retrieves all of the fields and values of a single log event. All fields are
* retrieved, even if the original query that produced the
* logRecordPointer
retrieved only a subset of fields. Fields are
* returned as field name/field value pairs.
The full unparsed log event is
* returned within @message
.
See Also:
AWS
* API Reference
*/
virtual Model::GetLogRecordOutcome GetLogRecord(const Model::GetLogRecordRequest& request) const;
/**
* A Callable wrapper for GetLogRecord that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetLogRecordOutcomeCallable GetLogRecordCallable(const GetLogRecordRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::GetLogRecord, request);
}
/**
* An Async wrapper for GetLogRecord that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetLogRecordAsync(const GetLogRecordRequestT& request, const GetLogRecordResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::GetLogRecord, request, handler, context);
}
/**
* Returns the results from the specified query.
Only the fields
* requested in the query are returned, along with a @ptr
field, which
* is the identifier for the log record. You can use the value of @ptr
* in a GetLogRecord
* operation to get the full log record.
GetQueryResults
does
* not start running a query. To run a query, use StartQuery.
* If the value of the Status
field in the output is
* Running
, this operation returns only partial results. If you see a
* value of Scheduled
or Running
for the status, you can
* retry the operation later to see the final results.
If you are using
* CloudWatch cross-account observability, you can use this operation in a
* monitoring account to start queries in linked source accounts. For more
* information, see CloudWatch
* cross-account observability.
See Also:
AWS
* API Reference
*/
virtual Model::GetQueryResultsOutcome GetQueryResults(const Model::GetQueryResultsRequest& request) const;
/**
* A Callable wrapper for GetQueryResults that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetQueryResultsOutcomeCallable GetQueryResultsCallable(const GetQueryResultsRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::GetQueryResults, request);
}
/**
* An Async wrapper for GetQueryResults that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetQueryResultsAsync(const GetQueryResultsRequestT& request, const GetQueryResultsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::GetQueryResults, request, handler, context);
}
/**
* Displays the tags associated with a CloudWatch Logs resource. Currently, log
* groups and destinations support tagging.
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(&CloudWatchLogsClient::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(&CloudWatchLogsClient::ListTagsForResource, request, handler, context);
}
/**
* Creates an account-level data protection policy that applies to all log
* groups in the account. A data protection policy can help safeguard sensitive
* data that's ingested by your log groups by auditing and masking the sensitive
* log data. Each account can have only one account-level policy.
* Sensitive data is detected and masked when it is ingested into a log group.
* When you set a data protection policy, log events ingested into the log groups
* before that time are not masked.
If you use
* PutAccountPolicy
to create a data protection policy for your whole
* account, it applies to both existing log groups and all log groups that are
* created later in this account. The account policy is applied to existing log
* groups with eventual consistency. It might take up to 5 minutes before sensitive
* data in existing log groups begins to be masked.
By default, when a user
* views a log event that includes masked data, the sensitive data is replaced by
* asterisks. A user who has the logs:Unmask
permission can use a GetLogEvents
* or FilterLogEvents
* operation with the unmask
parameter set to true
to
* view the unmasked log events. Users with the logs:Unmask
can also
* view unmasked data in the CloudWatch Logs console by running a CloudWatch Logs
* Insights query with the unmask
query command.
For more
* information, including a list of types of data that can be audited and masked,
* see Protect
* sensitive log data with masking.
To use the
* PutAccountPolicy
operation, you must be signed on with the
* logs:PutDataProtectionPolicy
and logs:PutAccountPolicy
* permissions.
The PutAccountPolicy
operation applies to all
* log groups in the account. You can also use PutDataProtectionPolicy
* to create a data protection policy that applies to just one log group. If a log
* group has its own data protection policy and the account also has an
* account-level data protection policy, then the two policies are cumulative. Any
* sensitive term specified in either policy is masked.
See Also:
* AWS
* API Reference
*/
virtual Model::PutAccountPolicyOutcome PutAccountPolicy(const Model::PutAccountPolicyRequest& request) const;
/**
* A Callable wrapper for PutAccountPolicy that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutAccountPolicyOutcomeCallable PutAccountPolicyCallable(const PutAccountPolicyRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::PutAccountPolicy, request);
}
/**
* An Async wrapper for PutAccountPolicy that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutAccountPolicyAsync(const PutAccountPolicyRequestT& request, const PutAccountPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::PutAccountPolicy, request, handler, context);
}
/**
* Creates a data protection policy for the specified log group. A data
* protection policy can help safeguard sensitive data that's ingested by the log
* group by auditing and masking the sensitive log data.
* Sensitive data is detected and masked when it is ingested into the log group.
* When you set a data protection policy, log events ingested into the log group
* before that time are not masked.
By default, when a user
* views a log event that includes masked data, the sensitive data is replaced by
* asterisks. A user who has the logs:Unmask
permission can use a GetLogEvents
* or FilterLogEvents
* operation with the unmask
parameter set to true
to
* view the unmasked log events. Users with the logs:Unmask
can also
* view unmasked data in the CloudWatch Logs console by running a CloudWatch Logs
* Insights query with the unmask
query command.
For more
* information, including a list of types of data that can be audited and masked,
* see Protect
* sensitive log data with masking.
The
* PutDataProtectionPolicy
operation applies to only the specified log
* group. You can also use PutAccountPolicy
* to create an account-level data protection policy that applies to all log groups
* in the account, including both existing log groups and log groups that are
* created level. If a log group has its own data protection policy and the account
* also has an account-level data protection policy, then the two policies are
* cumulative. Any sensitive term specified in either policy is
* masked.
See Also:
AWS
* API Reference
*/
virtual Model::PutDataProtectionPolicyOutcome PutDataProtectionPolicy(const Model::PutDataProtectionPolicyRequest& request) const;
/**
* A Callable wrapper for PutDataProtectionPolicy that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutDataProtectionPolicyOutcomeCallable PutDataProtectionPolicyCallable(const PutDataProtectionPolicyRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::PutDataProtectionPolicy, request);
}
/**
* An Async wrapper for PutDataProtectionPolicy that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutDataProtectionPolicyAsync(const PutDataProtectionPolicyRequestT& request, const PutDataProtectionPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::PutDataProtectionPolicy, request, handler, context);
}
/**
* Creates or updates a destination. This operation is used only to create
* destinations for cross-account subscriptions.
A destination encapsulates
* a physical resource (such as an Amazon Kinesis stream). With a destination, you
* can subscribe to a real-time stream of log events for a different account,
* ingested using PutLogEvents.
* Through an access policy, a destination controls what is written to it. By
* default, PutDestination
does not set any access policy with the
* destination, which means a cross-account user cannot call PutSubscriptionFilter
* against this destination. To enable this, the destination owner must call PutDestinationPolicy
* after PutDestination
.
To perform a
* PutDestination
operation, you must also have the
* iam:PassRole
permission.
See Also:
AWS
* API Reference
*/
virtual Model::PutDestinationOutcome PutDestination(const Model::PutDestinationRequest& request) const;
/**
* A Callable wrapper for PutDestination that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutDestinationOutcomeCallable PutDestinationCallable(const PutDestinationRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::PutDestination, request);
}
/**
* An Async wrapper for PutDestination that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutDestinationAsync(const PutDestinationRequestT& request, const PutDestinationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::PutDestination, request, handler, context);
}
/**
* Creates or updates an access policy associated with an existing destination.
* An access policy is an IAM
* policy document that is used to authorize claims to register a subscription
* filter against a given destination.
See Also:
AWS
* API Reference
*/
virtual Model::PutDestinationPolicyOutcome PutDestinationPolicy(const Model::PutDestinationPolicyRequest& request) const;
/**
* A Callable wrapper for PutDestinationPolicy that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutDestinationPolicyOutcomeCallable PutDestinationPolicyCallable(const PutDestinationPolicyRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::PutDestinationPolicy, request);
}
/**
* An Async wrapper for PutDestinationPolicy that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutDestinationPolicyAsync(const PutDestinationPolicyRequestT& request, const PutDestinationPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::PutDestinationPolicy, request, handler, context);
}
/**
* Uploads a batch of log events to the specified log stream.
* The sequence token is now ignored in PutLogEvents
actions.
* PutLogEvents
actions are always accepted and never return
* InvalidSequenceTokenException
or
* DataAlreadyAcceptedException
even if the sequence token is not
* valid. You can use parallel PutLogEvents
actions on the same log
* stream.
The batch of events must satisfy the following
* constraints:
-
The maximum batch size is 1,048,576 bytes. This
* size is calculated as the sum of all event messages in UTF-8, plus 26 bytes for
* each log event.
-
None of the log events in the batch can be
* more than 2 hours in the future.
-
None of the log events in the
* batch can be more than 14 days in the past. Also, none of the log events can be
* from earlier than the retention period of the log group.
-
The
* log events in the batch must be in chronological order by their timestamp. The
* timestamp is the time that the event occurred, expressed as the number of
* milliseconds after Jan 1, 1970 00:00:00 UTC
. (In Amazon Web
* Services Tools for PowerShell and the Amazon Web Services SDK for .NET, the
* timestamp is specified in .NET format: yyyy-mm-ddThh:mm:ss
. For
* example, 2017-09-15T13:45:30
.)
-
A batch of log
* events in a single request cannot span more than 24 hours. Otherwise, the
* operation fails.
-
Each log event can be no larger than 256
* KB.
-
The maximum number of log events in a batch is 10,000.
* -
The quota of five requests per second per log stream
* has been removed. Instead, PutLogEvents
actions are throttled based
* on a per-second per-account quota. You can request an increase to the per-second
* throttling quota by using the Service Quotas service.
*
If a call to PutLogEvents
returns
* "UnrecognizedClientException" the most likely cause is a non-valid Amazon Web
* Services access key ID or secret key.
See Also:
AWS
* API Reference
*/
virtual Model::PutLogEventsOutcome PutLogEvents(const Model::PutLogEventsRequest& request) const;
/**
* A Callable wrapper for PutLogEvents that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutLogEventsOutcomeCallable PutLogEventsCallable(const PutLogEventsRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::PutLogEvents, request);
}
/**
* An Async wrapper for PutLogEvents that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutLogEventsAsync(const PutLogEventsRequestT& request, const PutLogEventsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::PutLogEvents, request, handler, context);
}
/**
* Creates or updates a metric filter and associates it with the specified log
* group. With metric filters, you can configure rules to extract metric data from
* log events ingested through PutLogEvents.
* The maximum number of metric filters that can be associated with a log group
* is 100.
When you create a metric filter, you can also optionally assign a
* unit and dimensions to the metric that is created.
Metrics
* extracted from log events are charged as custom metrics. To prevent unexpected
* high charges, do not specify high-cardinality fields such as
* IPAddress
or requestID
as dimensions. Each different
* value found for a dimension is treated as a separate metric and accrues charges
* as a separate custom metric.
CloudWatch Logs disables a metric filter if
* it generates 1,000 different name/value pairs for your specified dimensions
* within a certain amount of time. This helps to prevent accidental high
* charges.
You can also set up a billing alarm to alert you if your charges
* are higher than expected. For more information, see
* Creating a Billing Alarm to Monitor Your Estimated Amazon Web Services
* Charges.
See Also:
AWS
* API Reference
*/
virtual Model::PutMetricFilterOutcome PutMetricFilter(const Model::PutMetricFilterRequest& request) const;
/**
* A Callable wrapper for PutMetricFilter that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutMetricFilterOutcomeCallable PutMetricFilterCallable(const PutMetricFilterRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::PutMetricFilter, request);
}
/**
* An Async wrapper for PutMetricFilter that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutMetricFilterAsync(const PutMetricFilterRequestT& request, const PutMetricFilterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::PutMetricFilter, request, handler, context);
}
/**
* Creates or updates a query definition for CloudWatch Logs Insights. For more
* information, see Analyzing
* Log Data with CloudWatch Logs Insights.
To update a query definition,
* specify its queryDefinitionId
in your request. The values of
* name
, queryString
, and logGroupNames
are
* changed to the values that you specify in your update operation. No current
* values are retained from the current query definition. For example, imagine
* updating a current query definition that includes log groups. If you don't
* specify the logGroupNames
parameter in your update operation, the
* query definition changes to contain no log groups.
You must have the
* logs:PutQueryDefinition
permission to be able to perform this
* operation.
See Also:
AWS
* API Reference
*/
virtual Model::PutQueryDefinitionOutcome PutQueryDefinition(const Model::PutQueryDefinitionRequest& request) const;
/**
* A Callable wrapper for PutQueryDefinition that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutQueryDefinitionOutcomeCallable PutQueryDefinitionCallable(const PutQueryDefinitionRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::PutQueryDefinition, request);
}
/**
* An Async wrapper for PutQueryDefinition that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutQueryDefinitionAsync(const PutQueryDefinitionRequestT& request, const PutQueryDefinitionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::PutQueryDefinition, request, handler, context);
}
/**
* Creates or updates a resource policy allowing other Amazon Web Services
* services to put log events to this account, such as Amazon Route 53. An account
* can have up to 10 resource policies per Amazon Web Services
* Region.
See Also:
AWS
* API Reference
*/
virtual Model::PutResourcePolicyOutcome PutResourcePolicy(const Model::PutResourcePolicyRequest& request) const;
/**
* A Callable wrapper for PutResourcePolicy that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutResourcePolicyOutcomeCallable PutResourcePolicyCallable(const PutResourcePolicyRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::PutResourcePolicy, request);
}
/**
* An Async wrapper for PutResourcePolicy that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutResourcePolicyAsync(const PutResourcePolicyRequestT& request, const PutResourcePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::PutResourcePolicy, request, handler, context);
}
/**
* Sets the retention of the specified log group. With a retention policy, you
* can configure the number of days for which to retain log events in the specified
* log group.
CloudWatch Logs doesn’t immediately delete log events
* when they reach their retention setting. It typically takes up to 72 hours after
* that before log events are deleted, but in rare situations might take
* longer.
To illustrate, imagine that you change a log group to have a
* longer retention setting when it contains log events that are past the
* expiration date, but haven’t been deleted. Those log events will take up to 72
* hours to be deleted after the new retention date is reached. To make sure that
* log data is deleted permanently, keep a log group at its lower retention setting
* until 72 hours after the previous retention period ends. Alternatively, wait to
* change the retention setting until you confirm that the earlier log events are
* deleted.
See Also:
AWS
* API Reference
*/
virtual Model::PutRetentionPolicyOutcome PutRetentionPolicy(const Model::PutRetentionPolicyRequest& request) const;
/**
* A Callable wrapper for PutRetentionPolicy that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutRetentionPolicyOutcomeCallable PutRetentionPolicyCallable(const PutRetentionPolicyRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::PutRetentionPolicy, request);
}
/**
* An Async wrapper for PutRetentionPolicy that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutRetentionPolicyAsync(const PutRetentionPolicyRequestT& request, const PutRetentionPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::PutRetentionPolicy, request, handler, context);
}
/**
* Creates or updates a subscription filter and associates it with the specified
* log group. With subscription filters, you can subscribe to a real-time stream of
* log events ingested through PutLogEvents
* and have them delivered to a specific destination. When log events are sent to
* the receiving service, they are Base64 encoded and compressed with the GZIP
* format.
The following destinations are supported for subscription
* filters:
-
An Amazon Kinesis data stream belonging to the same
* account as the subscription filter, for same-account delivery.
-
*
A logical destination created with PutDestination
* that belongs to a different account, for cross-account delivery. We currently
* support Kinesis Data Streams and Kinesis Data Firehose as logical
* destinations.
-
An Amazon Kinesis Data Firehose delivery stream
* that belongs to the same account as the subscription filter, for same-account
* delivery.
-
An Lambda function that belongs to the same account
* as the subscription filter, for same-account delivery.
Each
* log group can have up to two subscription filters associated with it. If you are
* updating an existing filter, you must specify the correct name in
* filterName
.
To perform a PutSubscriptionFilter
* operation for any destination except a Lambda function, you must also have the
* iam:PassRole
permission.
See Also:
AWS
* API Reference
*/
virtual Model::PutSubscriptionFilterOutcome PutSubscriptionFilter(const Model::PutSubscriptionFilterRequest& request) const;
/**
* A Callable wrapper for PutSubscriptionFilter that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutSubscriptionFilterOutcomeCallable PutSubscriptionFilterCallable(const PutSubscriptionFilterRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::PutSubscriptionFilter, request);
}
/**
* An Async wrapper for PutSubscriptionFilter that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutSubscriptionFilterAsync(const PutSubscriptionFilterRequestT& request, const PutSubscriptionFilterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::PutSubscriptionFilter, request, handler, context);
}
/**
* Schedules a query of a log group using CloudWatch Logs Insights. You specify
* the log group and time range to query and the query string to use.
For
* more information, see CloudWatch
* Logs Insights Query Syntax.
After you run a query using
* StartQuery
, the query results are stored by CloudWatch Logs. You
* can use GetQueryResults
* to retrieve the results of a query, using the queryId
that
* StartQuery
returns.
If you have associated a KMS key with
* the query results in this account, then StartQuery
* uses that key to encrypt the results when it stores them. If no key is
* associated with query results, the query results are encrypted with the default
* CloudWatch Logs encryption method.
Queries time out after 60 minutes of
* runtime. If your queries are timing out, reduce the time range being searched or
* partition your query into a number of queries.
If you are using
* CloudWatch cross-account observability, you can use this operation in a
* monitoring account to start a query in a linked source account. For more
* information, see CloudWatch
* cross-account observability. For a cross-account StartQuery
* operation, the query definition must be defined in the monitoring account.
* You can have up to 30 concurrent CloudWatch Logs insights queries, including
* queries that have been added to dashboards.
See Also:
AWS API
* Reference
*/
virtual Model::StartQueryOutcome StartQuery(const Model::StartQueryRequest& request) const;
/**
* A Callable wrapper for StartQuery that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::StartQueryOutcomeCallable StartQueryCallable(const StartQueryRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::StartQuery, request);
}
/**
* An Async wrapper for StartQuery that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void StartQueryAsync(const StartQueryRequestT& request, const StartQueryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::StartQuery, request, handler, context);
}
/**
* Stops a CloudWatch Logs Insights query that is in progress. If the query has
* already ended, the operation returns an error indicating that the specified
* query is not running.
See Also:
AWS API
* Reference
*/
virtual Model::StopQueryOutcome StopQuery(const Model::StopQueryRequest& request) const;
/**
* A Callable wrapper for StopQuery that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::StopQueryOutcomeCallable StopQueryCallable(const StopQueryRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::StopQuery, request);
}
/**
* An Async wrapper for StopQuery that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void StopQueryAsync(const StopQueryRequestT& request, const StopQueryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::StopQuery, request, handler, context);
}
/**
* Assigns one or more tags (key-value pairs) to the specified CloudWatch Logs
* resource. Currently, the only CloudWatch Logs resources that can be tagged are
* log groups and destinations.
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 alarm, this tag is appended to the list of tags
* associated with the alarm. If you specify a tag key that is already associated
* with the alarm, the new tag value that you specify replaces the previous value
* for that tag.
You can associate as many as 50 tags with a CloudWatch Logs
* resource.
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(&CloudWatchLogsClient::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(&CloudWatchLogsClient::TagResource, request, handler, context);
}
/**
* Tests the filter pattern of a metric filter against a sample of log event
* messages. You can use this operation to validate the correctness of a metric
* filter pattern.
See Also:
AWS
* API Reference
*/
virtual Model::TestMetricFilterOutcome TestMetricFilter(const Model::TestMetricFilterRequest& request) const;
/**
* A Callable wrapper for TestMetricFilter that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::TestMetricFilterOutcomeCallable TestMetricFilterCallable(const TestMetricFilterRequestT& request) const
{
return SubmitCallable(&CloudWatchLogsClient::TestMetricFilter, request);
}
/**
* An Async wrapper for TestMetricFilter that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void TestMetricFilterAsync(const TestMetricFilterRequestT& request, const TestMetricFilterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudWatchLogsClient::TestMetricFilter, 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(&CloudWatchLogsClient::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(&CloudWatchLogsClient::UntagResource, request, handler, context);
}
void OverrideEndpoint(const Aws::String& endpoint);
std::shared_ptr& accessEndpointProvider();
private:
friend class Aws::Client::ClientWithAsyncTemplateMethods;
void init(const CloudWatchLogsClientConfiguration& clientConfiguration);
CloudWatchLogsClientConfiguration m_clientConfiguration;
std::shared_ptr m_executor;
std::shared_ptr m_endpointProvider;
};
} // namespace CloudWatchLogs
} // namespace Aws