/**
* 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 Macie
{
/**
* Amazon Macie Classic Amazon Macie Classic has been
* discontinued and is no longer available.
A new Amazon Macie is now
* available with significant design improvements and additional features, at a
* lower price and in most Amazon Web Services Regions. We encourage you to take
* advantage of the new and improved features, and benefit from the reduced cost.
* To learn about features and pricing for the new Macie, see Amazon Macie. To learn how to use the
* new Macie, see the Amazon
* Macie User Guide.
*/
class AWS_MACIE_API MacieClient : 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 MacieClientConfiguration ClientConfigurationType;
typedef MacieEndpointProvider 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.
*/
MacieClient(const Aws::Macie::MacieClientConfiguration& clientConfiguration = Aws::Macie::MacieClientConfiguration(),
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.
*/
MacieClient(const Aws::Auth::AWSCredentials& credentials,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::Macie::MacieClientConfiguration& clientConfiguration = Aws::Macie::MacieClientConfiguration());
/**
* 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
*/
MacieClient(const std::shared_ptr& credentialsProvider,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::Macie::MacieClientConfiguration& clientConfiguration = Aws::Macie::MacieClientConfiguration());
/* 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.
*/
MacieClient(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.
*/
MacieClient(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
*/
MacieClient(const std::shared_ptr& credentialsProvider,
const Aws::Client::ClientConfiguration& clientConfiguration);
/* End of legacy constructors due deprecation */
virtual ~MacieClient();
/**
* (Discontinued) Associates a specified Amazon Web Services account with Amazon
* Macie Classic as a member account.
See Also:
AWS
* API Reference
*/
virtual Model::AssociateMemberAccountOutcome AssociateMemberAccount(const Model::AssociateMemberAccountRequest& request) const;
/**
* A Callable wrapper for AssociateMemberAccount that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateMemberAccountOutcomeCallable AssociateMemberAccountCallable(const AssociateMemberAccountRequestT& request) const
{
return SubmitCallable(&MacieClient::AssociateMemberAccount, request);
}
/**
* An Async wrapper for AssociateMemberAccount that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateMemberAccountAsync(const AssociateMemberAccountRequestT& request, const AssociateMemberAccountResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&MacieClient::AssociateMemberAccount, request, handler, context);
}
/**
* (Discontinued) Associates specified S3 resources with Amazon Macie Classic
* for monitoring and data classification. If memberAccountId
isn't
* specified, the action associates specified S3 resources with Macie Classic for
* the current Macie Classic administrator account. If memberAccountId
* is specified, the action associates specified S3 resources with Macie Classic
* for the specified member account.
See Also:
AWS
* API Reference
*/
virtual Model::AssociateS3ResourcesOutcome AssociateS3Resources(const Model::AssociateS3ResourcesRequest& request) const;
/**
* A Callable wrapper for AssociateS3Resources that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateS3ResourcesOutcomeCallable AssociateS3ResourcesCallable(const AssociateS3ResourcesRequestT& request) const
{
return SubmitCallable(&MacieClient::AssociateS3Resources, request);
}
/**
* An Async wrapper for AssociateS3Resources that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateS3ResourcesAsync(const AssociateS3ResourcesRequestT& request, const AssociateS3ResourcesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&MacieClient::AssociateS3Resources, request, handler, context);
}
/**
* (Discontinued) Removes the specified member account from Amazon Macie
* Classic.
See Also:
AWS
* API Reference
*/
virtual Model::DisassociateMemberAccountOutcome DisassociateMemberAccount(const Model::DisassociateMemberAccountRequest& request) const;
/**
* A Callable wrapper for DisassociateMemberAccount that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DisassociateMemberAccountOutcomeCallable DisassociateMemberAccountCallable(const DisassociateMemberAccountRequestT& request) const
{
return SubmitCallable(&MacieClient::DisassociateMemberAccount, request);
}
/**
* An Async wrapper for DisassociateMemberAccount that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DisassociateMemberAccountAsync(const DisassociateMemberAccountRequestT& request, const DisassociateMemberAccountResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&MacieClient::DisassociateMemberAccount, request, handler, context);
}
/**
* (Discontinued) Removes specified S3 resources from being monitored by Amazon
* Macie Classic. If memberAccountId
isn't specified, the action
* removes specified S3 resources from Macie Classic for the current Macie Classic
* administrator account. If memberAccountId
is specified, the action
* removes specified S3 resources from Macie Classic for the specified member
* account.
See Also:
AWS
* API Reference
*/
virtual Model::DisassociateS3ResourcesOutcome DisassociateS3Resources(const Model::DisassociateS3ResourcesRequest& request) const;
/**
* A Callable wrapper for DisassociateS3Resources that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DisassociateS3ResourcesOutcomeCallable DisassociateS3ResourcesCallable(const DisassociateS3ResourcesRequestT& request) const
{
return SubmitCallable(&MacieClient::DisassociateS3Resources, request);
}
/**
* An Async wrapper for DisassociateS3Resources that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DisassociateS3ResourcesAsync(const DisassociateS3ResourcesRequestT& request, const DisassociateS3ResourcesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&MacieClient::DisassociateS3Resources, request, handler, context);
}
/**
* (Discontinued) Lists all Amazon Macie Classic member accounts for the current
* Macie Classic administrator account.
See Also:
AWS
* API Reference
*/
virtual Model::ListMemberAccountsOutcome ListMemberAccounts(const Model::ListMemberAccountsRequest& request) const;
/**
* A Callable wrapper for ListMemberAccounts that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListMemberAccountsOutcomeCallable ListMemberAccountsCallable(const ListMemberAccountsRequestT& request) const
{
return SubmitCallable(&MacieClient::ListMemberAccounts, request);
}
/**
* An Async wrapper for ListMemberAccounts that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListMemberAccountsAsync(const ListMemberAccountsRequestT& request, const ListMemberAccountsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&MacieClient::ListMemberAccounts, request, handler, context);
}
/**
* (Discontinued) Lists all the S3 resources associated with Amazon Macie
* Classic. If memberAccountId
isn't specified, the action lists the
* S3 resources associated with Macie Classic for the current Macie Classic
* administrator account. If memberAccountId
is specified, the action
* lists the S3 resources associated with Macie Classic for the specified member
* account.
See Also:
AWS
* API Reference
*/
virtual Model::ListS3ResourcesOutcome ListS3Resources(const Model::ListS3ResourcesRequest& request) const;
/**
* A Callable wrapper for ListS3Resources that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListS3ResourcesOutcomeCallable ListS3ResourcesCallable(const ListS3ResourcesRequestT& request) const
{
return SubmitCallable(&MacieClient::ListS3Resources, request);
}
/**
* An Async wrapper for ListS3Resources that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListS3ResourcesAsync(const ListS3ResourcesRequestT& request, const ListS3ResourcesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&MacieClient::ListS3Resources, request, handler, context);
}
/**
* (Discontinued) Updates the classification types for the specified S3
* resources. If memberAccountId
isn't specified, the action updates
* the classification types of the S3 resources associated with Amazon Macie
* Classic for the current Macie Classic administrator account. If
* memberAccountId
is specified, the action updates the classification
* types of the S3 resources associated with Macie Classic for the specified member
* account.
See Also:
AWS
* API Reference
*/
virtual Model::UpdateS3ResourcesOutcome UpdateS3Resources(const Model::UpdateS3ResourcesRequest& request) const;
/**
* A Callable wrapper for UpdateS3Resources that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateS3ResourcesOutcomeCallable UpdateS3ResourcesCallable(const UpdateS3ResourcesRequestT& request) const
{
return SubmitCallable(&MacieClient::UpdateS3Resources, request);
}
/**
* An Async wrapper for UpdateS3Resources that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateS3ResourcesAsync(const UpdateS3ResourcesRequestT& request, const UpdateS3ResourcesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&MacieClient::UpdateS3Resources, request, handler, context);
}
void OverrideEndpoint(const Aws::String& endpoint);
std::shared_ptr& accessEndpointProvider();
private:
friend class Aws::Client::ClientWithAsyncTemplateMethods;
void init(const MacieClientConfiguration& clientConfiguration);
MacieClientConfiguration m_clientConfiguration;
std::shared_ptr m_executor;
std::shared_ptr m_endpointProvider;
};
} // namespace Macie
} // namespace Aws