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