/**
* 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 CloudTrailData
{
/**
* The CloudTrail Data Service lets you ingest events into CloudTrail from any
* source in your hybrid environments, such as in-house or SaaS applications hosted
* on-premises or in the cloud, virtual machines, or containers. You can store,
* access, analyze, troubleshoot and take action on this data without maintaining
* multiple log aggregators and reporting tools. After you run
* PutAuditEvents
to ingest your application activity into CloudTrail,
* you can use CloudTrail Lake to search, query, and analyze the data that is
* logged from your applications.
*/
class AWS_CLOUDTRAILDATA_API CloudTrailDataClient : 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 CloudTrailDataClientConfiguration ClientConfigurationType;
typedef CloudTrailDataEndpointProvider 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.
*/
CloudTrailDataClient(const Aws::CloudTrailData::CloudTrailDataClientConfiguration& clientConfiguration = Aws::CloudTrailData::CloudTrailDataClientConfiguration(),
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.
*/
CloudTrailDataClient(const Aws::Auth::AWSCredentials& credentials,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::CloudTrailData::CloudTrailDataClientConfiguration& clientConfiguration = Aws::CloudTrailData::CloudTrailDataClientConfiguration());
/**
* 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
*/
CloudTrailDataClient(const std::shared_ptr& credentialsProvider,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::CloudTrailData::CloudTrailDataClientConfiguration& clientConfiguration = Aws::CloudTrailData::CloudTrailDataClientConfiguration());
/* 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.
*/
CloudTrailDataClient(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.
*/
CloudTrailDataClient(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
*/
CloudTrailDataClient(const std::shared_ptr& credentialsProvider,
const Aws::Client::ClientConfiguration& clientConfiguration);
/* End of legacy constructors due deprecation */
virtual ~CloudTrailDataClient();
/**
* Ingests your application events into CloudTrail Lake. A required parameter,
* auditEvents
, accepts the JSON records (also called payload)
* of events that you want CloudTrail to ingest. You can add up to 100 of these
* events (or up to 1 MB) per PutAuditEvents
request.
See
* Also:
AWS
* API Reference
*/
virtual Model::PutAuditEventsOutcome PutAuditEvents(const Model::PutAuditEventsRequest& request) const;
/**
* A Callable wrapper for PutAuditEvents that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutAuditEventsOutcomeCallable PutAuditEventsCallable(const PutAuditEventsRequestT& request) const
{
return SubmitCallable(&CloudTrailDataClient::PutAuditEvents, request);
}
/**
* An Async wrapper for PutAuditEvents that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutAuditEventsAsync(const PutAuditEventsRequestT& request, const PutAuditEventsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&CloudTrailDataClient::PutAuditEvents, request, handler, context);
}
void OverrideEndpoint(const Aws::String& endpoint);
std::shared_ptr& accessEndpointProvider();
private:
friend class Aws::Client::ClientWithAsyncTemplateMethods;
void init(const CloudTrailDataClientConfiguration& clientConfiguration);
CloudTrailDataClientConfiguration m_clientConfiguration;
std::shared_ptr m_executor;
std::shared_ptr m_endpointProvider;
};
} // namespace CloudTrailData
} // namespace Aws