/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Http { class HttpClient; class HttpClientFactory; } // namespace Http namespace Utils { template< typename R, typename E> class Outcome; namespace Threading { class Executor; } // namespace Threading } // namespace Utils namespace Auth { class AWSCredentials; class AWSCredentialsProvider; } // namespace Auth namespace Client { class RetryStrategy; } // namespace Client namespace Outposts { namespace Model { class CreateOutpostRequest; class DeleteOutpostRequest; class DeleteSiteRequest; class GetOutpostRequest; class GetOutpostInstanceTypesRequest; class ListOutpostsRequest; class ListSitesRequest; typedef Aws::Utils::Outcome CreateOutpostOutcome; typedef Aws::Utils::Outcome DeleteOutpostOutcome; typedef Aws::Utils::Outcome DeleteSiteOutcome; typedef Aws::Utils::Outcome GetOutpostOutcome; typedef Aws::Utils::Outcome GetOutpostInstanceTypesOutcome; typedef Aws::Utils::Outcome ListOutpostsOutcome; typedef Aws::Utils::Outcome ListSitesOutcome; typedef std::future CreateOutpostOutcomeCallable; typedef std::future DeleteOutpostOutcomeCallable; typedef std::future DeleteSiteOutcomeCallable; typedef std::future GetOutpostOutcomeCallable; typedef std::future GetOutpostInstanceTypesOutcomeCallable; typedef std::future ListOutpostsOutcomeCallable; typedef std::future ListSitesOutcomeCallable; } // namespace Model class OutpostsClient; typedef std::function&) > CreateOutpostResponseReceivedHandler; typedef std::function&) > DeleteOutpostResponseReceivedHandler; typedef std::function&) > DeleteSiteResponseReceivedHandler; typedef std::function&) > GetOutpostResponseReceivedHandler; typedef std::function&) > GetOutpostInstanceTypesResponseReceivedHandler; typedef std::function&) > ListOutpostsResponseReceivedHandler; typedef std::function&) > ListSitesResponseReceivedHandler; /** *

AWS Outposts is a fully-managed service that extends AWS infrastructure, * APIs, and tools to customer premises. By providing local access to AWS-managed * infrastructure, AWS Outposts enables customers to build and run applications on * premises using the same programming interfaces as in AWS Regions, while using * local compute and storage resources for lower latency and local data processing * needs.

*/ class AWS_OUTPOSTS_API OutpostsClient : public Aws::Client::AWSJsonClient { public: typedef Aws::Client::AWSJsonClient BASECLASS; /** * 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. */ OutpostsClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::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. */ OutpostsClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::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 */ OutpostsClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); virtual ~OutpostsClient(); /** *

Creates an Outpost.

See Also:

AWS * API Reference

*/ virtual Model::CreateOutpostOutcome CreateOutpost(const Model::CreateOutpostRequest& request) const; /** *

Creates an Outpost.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateOutpostOutcomeCallable CreateOutpostCallable(const Model::CreateOutpostRequest& request) const; /** *

Creates an Outpost.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateOutpostAsync(const Model::CreateOutpostRequest& request, const CreateOutpostResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the Outpost.

See Also:

AWS * API Reference

*/ virtual Model::DeleteOutpostOutcome DeleteOutpost(const Model::DeleteOutpostRequest& request) const; /** *

Deletes the Outpost.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteOutpostOutcomeCallable DeleteOutpostCallable(const Model::DeleteOutpostRequest& request) const; /** *

Deletes the Outpost.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteOutpostAsync(const Model::DeleteOutpostRequest& request, const DeleteOutpostResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the site.

See Also:

AWS * API Reference

*/ virtual Model::DeleteSiteOutcome DeleteSite(const Model::DeleteSiteRequest& request) const; /** *

Deletes the site.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteSiteOutcomeCallable DeleteSiteCallable(const Model::DeleteSiteRequest& request) const; /** *

Deletes the site.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteSiteAsync(const Model::DeleteSiteRequest& request, const DeleteSiteResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Gets information about the specified Outpost.

See Also:

AWS * API Reference

*/ virtual Model::GetOutpostOutcome GetOutpost(const Model::GetOutpostRequest& request) const; /** *

Gets information about the specified Outpost.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetOutpostOutcomeCallable GetOutpostCallable(const Model::GetOutpostRequest& request) const; /** *

Gets information about the specified Outpost.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetOutpostAsync(const Model::GetOutpostRequest& request, const GetOutpostResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the instance types for the specified Outpost.

See Also:

* AWS * API Reference

*/ virtual Model::GetOutpostInstanceTypesOutcome GetOutpostInstanceTypes(const Model::GetOutpostInstanceTypesRequest& request) const; /** *

Lists the instance types for the specified Outpost.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetOutpostInstanceTypesOutcomeCallable GetOutpostInstanceTypesCallable(const Model::GetOutpostInstanceTypesRequest& request) const; /** *

Lists the instance types for the specified Outpost.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetOutpostInstanceTypesAsync(const Model::GetOutpostInstanceTypesRequest& request, const GetOutpostInstanceTypesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

List the Outposts for your AWS account.

See Also:

AWS * API Reference

*/ virtual Model::ListOutpostsOutcome ListOutposts(const Model::ListOutpostsRequest& request) const; /** *

List the Outposts for your AWS account.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListOutpostsOutcomeCallable ListOutpostsCallable(const Model::ListOutpostsRequest& request) const; /** *

List the Outposts for your AWS account.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListOutpostsAsync(const Model::ListOutpostsRequest& request, const ListOutpostsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the sites for the specified AWS account.

See Also:

AWS * API Reference

*/ virtual Model::ListSitesOutcome ListSites(const Model::ListSitesRequest& request) const; /** *

Lists the sites for the specified AWS account.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListSitesOutcomeCallable ListSitesCallable(const Model::ListSitesRequest& request) const; /** *

Lists the sites for the specified AWS account.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListSitesAsync(const Model::ListSitesRequest& request, const ListSitesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void CreateOutpostAsyncHelper(const Model::CreateOutpostRequest& request, const CreateOutpostResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteOutpostAsyncHelper(const Model::DeleteOutpostRequest& request, const DeleteOutpostResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteSiteAsyncHelper(const Model::DeleteSiteRequest& request, const DeleteSiteResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetOutpostAsyncHelper(const Model::GetOutpostRequest& request, const GetOutpostResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetOutpostInstanceTypesAsyncHelper(const Model::GetOutpostInstanceTypesRequest& request, const GetOutpostInstanceTypesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListOutpostsAsyncHelper(const Model::ListOutpostsRequest& request, const ListOutpostsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListSitesAsyncHelper(const Model::ListSitesRequest& request, const ListSitesResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace Outposts } // namespace Aws