/**
* 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 Account
{
/**
* Operations for Amazon Web Services Account Management
*/
class AWS_ACCOUNT_API AccountClient : 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 AccountClientConfiguration ClientConfigurationType;
typedef AccountEndpointProvider 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.
*/
AccountClient(const Aws::Account::AccountClientConfiguration& clientConfiguration = Aws::Account::AccountClientConfiguration(),
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.
*/
AccountClient(const Aws::Auth::AWSCredentials& credentials,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::Account::AccountClientConfiguration& clientConfiguration = Aws::Account::AccountClientConfiguration());
/**
* 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
*/
AccountClient(const std::shared_ptr& credentialsProvider,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::Account::AccountClientConfiguration& clientConfiguration = Aws::Account::AccountClientConfiguration());
/* 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.
*/
AccountClient(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.
*/
AccountClient(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
*/
AccountClient(const std::shared_ptr& credentialsProvider,
const Aws::Client::ClientConfiguration& clientConfiguration);
/* End of legacy constructors due deprecation */
virtual ~AccountClient();
/**
* Deletes the specified alternate contact from an Amazon Web Services
* account.
For complete details about how to use the alternate contact
* operations, see Access
* or updating the alternate contacts.
Before you can update the
* alternate contact information for an Amazon Web Services account that is managed
* by Organizations, you must first enable integration between Amazon Web Services
* Account Management and Organizations. For more information, see Enabling
* trusted access for Amazon Web Services Account Management.
* See Also:
AWS
* API Reference
*/
virtual Model::DeleteAlternateContactOutcome DeleteAlternateContact(const Model::DeleteAlternateContactRequest& request) const;
/**
* A Callable wrapper for DeleteAlternateContact that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteAlternateContactOutcomeCallable DeleteAlternateContactCallable(const DeleteAlternateContactRequestT& request) const
{
return SubmitCallable(&AccountClient::DeleteAlternateContact, request);
}
/**
* An Async wrapper for DeleteAlternateContact that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteAlternateContactAsync(const DeleteAlternateContactRequestT& request, const DeleteAlternateContactResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&AccountClient::DeleteAlternateContact, request, handler, context);
}
/**
* Disables (opts-out) a particular Region for an account.
See
* Also:
AWS
* API Reference
*/
virtual Model::DisableRegionOutcome DisableRegion(const Model::DisableRegionRequest& request) const;
/**
* A Callable wrapper for DisableRegion that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DisableRegionOutcomeCallable DisableRegionCallable(const DisableRegionRequestT& request) const
{
return SubmitCallable(&AccountClient::DisableRegion, request);
}
/**
* An Async wrapper for DisableRegion that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DisableRegionAsync(const DisableRegionRequestT& request, const DisableRegionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&AccountClient::DisableRegion, request, handler, context);
}
/**
* Enables (opts-in) a particular Region for an account.
See
* Also:
AWS
* API Reference
*/
virtual Model::EnableRegionOutcome EnableRegion(const Model::EnableRegionRequest& request) const;
/**
* A Callable wrapper for EnableRegion that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::EnableRegionOutcomeCallable EnableRegionCallable(const EnableRegionRequestT& request) const
{
return SubmitCallable(&AccountClient::EnableRegion, request);
}
/**
* An Async wrapper for EnableRegion that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void EnableRegionAsync(const EnableRegionRequestT& request, const EnableRegionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&AccountClient::EnableRegion, request, handler, context);
}
/**
* Retrieves the specified alternate contact attached to an Amazon Web Services
* account.
For complete details about how to use the alternate contact
* operations, see Access
* or updating the alternate contacts.
Before you can update the
* alternate contact information for an Amazon Web Services account that is managed
* by Organizations, you must first enable integration between Amazon Web Services
* Account Management and Organizations. For more information, see Enabling
* trusted access for Amazon Web Services Account Management.
* See Also:
AWS
* API Reference
*/
virtual Model::GetAlternateContactOutcome GetAlternateContact(const Model::GetAlternateContactRequest& request) const;
/**
* A Callable wrapper for GetAlternateContact that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetAlternateContactOutcomeCallable GetAlternateContactCallable(const GetAlternateContactRequestT& request) const
{
return SubmitCallable(&AccountClient::GetAlternateContact, request);
}
/**
* An Async wrapper for GetAlternateContact that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetAlternateContactAsync(const GetAlternateContactRequestT& request, const GetAlternateContactResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&AccountClient::GetAlternateContact, request, handler, context);
}
/**
* Retrieves the primary contact information of an Amazon Web Services
* account.
For complete details about how to use the primary contact
* operations, see Update
* the primary and alternate contact information.
See Also:
AWS
* API Reference
*/
virtual Model::GetContactInformationOutcome GetContactInformation(const Model::GetContactInformationRequest& request) const;
/**
* A Callable wrapper for GetContactInformation that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetContactInformationOutcomeCallable GetContactInformationCallable(const GetContactInformationRequestT& request) const
{
return SubmitCallable(&AccountClient::GetContactInformation, request);
}
/**
* An Async wrapper for GetContactInformation that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetContactInformationAsync(const GetContactInformationRequestT& request, const GetContactInformationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&AccountClient::GetContactInformation, request, handler, context);
}
/**
* Retrieves the opt-in status of a particular Region.
See Also:
* AWS
* API Reference
*/
virtual Model::GetRegionOptStatusOutcome GetRegionOptStatus(const Model::GetRegionOptStatusRequest& request) const;
/**
* A Callable wrapper for GetRegionOptStatus that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetRegionOptStatusOutcomeCallable GetRegionOptStatusCallable(const GetRegionOptStatusRequestT& request) const
{
return SubmitCallable(&AccountClient::GetRegionOptStatus, request);
}
/**
* An Async wrapper for GetRegionOptStatus that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetRegionOptStatusAsync(const GetRegionOptStatusRequestT& request, const GetRegionOptStatusResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&AccountClient::GetRegionOptStatus, request, handler, context);
}
/**
* Lists all the Regions for a given account and their respective opt-in
* statuses. Optionally, this list can be filtered by the
* region-opt-status-contains
parameter.
See Also:
* AWS
* API Reference
*/
virtual Model::ListRegionsOutcome ListRegions(const Model::ListRegionsRequest& request) const;
/**
* A Callable wrapper for ListRegions that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListRegionsOutcomeCallable ListRegionsCallable(const ListRegionsRequestT& request) const
{
return SubmitCallable(&AccountClient::ListRegions, request);
}
/**
* An Async wrapper for ListRegions that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListRegionsAsync(const ListRegionsRequestT& request, const ListRegionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&AccountClient::ListRegions, request, handler, context);
}
/**
* Modifies the specified alternate contact attached to an Amazon Web Services
* account.
For complete details about how to use the alternate contact
* operations, see Access
* or updating the alternate contacts.
Before you can update the
* alternate contact information for an Amazon Web Services account that is managed
* by Organizations, you must first enable integration between Amazon Web Services
* Account Management and Organizations. For more information, see Enabling
* trusted access for Amazon Web Services Account Management.
* See Also:
AWS
* API Reference
*/
virtual Model::PutAlternateContactOutcome PutAlternateContact(const Model::PutAlternateContactRequest& request) const;
/**
* A Callable wrapper for PutAlternateContact that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutAlternateContactOutcomeCallable PutAlternateContactCallable(const PutAlternateContactRequestT& request) const
{
return SubmitCallable(&AccountClient::PutAlternateContact, request);
}
/**
* An Async wrapper for PutAlternateContact that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutAlternateContactAsync(const PutAlternateContactRequestT& request, const PutAlternateContactResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&AccountClient::PutAlternateContact, request, handler, context);
}
/**
* Updates the primary contact information of an Amazon Web Services
* account.
For complete details about how to use the primary contact
* operations, see Update
* the primary and alternate contact information.
See Also:
AWS
* API Reference
*/
virtual Model::PutContactInformationOutcome PutContactInformation(const Model::PutContactInformationRequest& request) const;
/**
* A Callable wrapper for PutContactInformation that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutContactInformationOutcomeCallable PutContactInformationCallable(const PutContactInformationRequestT& request) const
{
return SubmitCallable(&AccountClient::PutContactInformation, request);
}
/**
* An Async wrapper for PutContactInformation that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutContactInformationAsync(const PutContactInformationRequestT& request, const PutContactInformationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&AccountClient::PutContactInformation, request, handler, context);
}
void OverrideEndpoint(const Aws::String& endpoint);
std::shared_ptr& accessEndpointProvider();
private:
friend class Aws::Client::ClientWithAsyncTemplateMethods;
void init(const AccountClientConfiguration& clientConfiguration);
AccountClientConfiguration m_clientConfiguration;
std::shared_ptr m_executor;
std::shared_ptr m_endpointProvider;
};
} // namespace Account
} // namespace Aws