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

Amazon S3 on Outposts provides access to S3 on Outposts operations.

*/ class AWS_S3OUTPOSTS_API S3OutpostsClient : 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 S3OutpostsClientConfiguration ClientConfigurationType; typedef S3OutpostsEndpointProvider 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. */ S3OutpostsClient(const Aws::S3Outposts::S3OutpostsClientConfiguration& clientConfiguration = Aws::S3Outposts::S3OutpostsClientConfiguration(), 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. */ S3OutpostsClient(const Aws::Auth::AWSCredentials& credentials, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::S3Outposts::S3OutpostsClientConfiguration& clientConfiguration = Aws::S3Outposts::S3OutpostsClientConfiguration()); /** * 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 */ S3OutpostsClient(const std::shared_ptr& credentialsProvider, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::S3Outposts::S3OutpostsClientConfiguration& clientConfiguration = Aws::S3Outposts::S3OutpostsClientConfiguration()); /* 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. */ S3OutpostsClient(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. */ S3OutpostsClient(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 */ S3OutpostsClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration); /* End of legacy constructors due deprecation */ virtual ~S3OutpostsClient(); /** *

Creates an endpoint and associates it with the specified Outpost.

*

It can take up to 5 minutes for this action to finish.

*

Related actions include:

See Also:

AWS * API Reference

*/ virtual Model::CreateEndpointOutcome CreateEndpoint(const Model::CreateEndpointRequest& request) const; /** * A Callable wrapper for CreateEndpoint that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateEndpointOutcomeCallable CreateEndpointCallable(const CreateEndpointRequestT& request) const { return SubmitCallable(&S3OutpostsClient::CreateEndpoint, request); } /** * An Async wrapper for CreateEndpoint that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateEndpointAsync(const CreateEndpointRequestT& request, const CreateEndpointResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&S3OutpostsClient::CreateEndpoint, request, handler, context); } /** *

Deletes an endpoint.

It can take up to 5 minutes for this * action to finish.

Related actions include:

See Also:

AWS * API Reference

*/ virtual Model::DeleteEndpointOutcome DeleteEndpoint(const Model::DeleteEndpointRequest& request) const; /** * A Callable wrapper for DeleteEndpoint that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteEndpointOutcomeCallable DeleteEndpointCallable(const DeleteEndpointRequestT& request) const { return SubmitCallable(&S3OutpostsClient::DeleteEndpoint, request); } /** * An Async wrapper for DeleteEndpoint that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteEndpointAsync(const DeleteEndpointRequestT& request, const DeleteEndpointResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&S3OutpostsClient::DeleteEndpoint, request, handler, context); } /** *

Lists endpoints associated with the specified Outpost.

Related * actions include:

See Also:

AWS * API Reference

*/ virtual Model::ListEndpointsOutcome ListEndpoints(const Model::ListEndpointsRequest& request) const; /** * A Callable wrapper for ListEndpoints that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListEndpointsOutcomeCallable ListEndpointsCallable(const ListEndpointsRequestT& request) const { return SubmitCallable(&S3OutpostsClient::ListEndpoints, request); } /** * An Async wrapper for ListEndpoints that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListEndpointsAsync(const ListEndpointsRequestT& request, const ListEndpointsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&S3OutpostsClient::ListEndpoints, request, handler, context); } /** *

Lists the Outposts with S3 on Outposts capacity for your Amazon Web Services * account. Includes S3 on Outposts that you have access to as the Outposts owner, * or as a shared user from Resource Access Manager (RAM).

See * Also:

AWS * API Reference

*/ virtual Model::ListOutpostsWithS3Outcome ListOutpostsWithS3(const Model::ListOutpostsWithS3Request& request) const; /** * A Callable wrapper for ListOutpostsWithS3 that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListOutpostsWithS3OutcomeCallable ListOutpostsWithS3Callable(const ListOutpostsWithS3RequestT& request) const { return SubmitCallable(&S3OutpostsClient::ListOutpostsWithS3, request); } /** * An Async wrapper for ListOutpostsWithS3 that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListOutpostsWithS3Async(const ListOutpostsWithS3RequestT& request, const ListOutpostsWithS3ResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&S3OutpostsClient::ListOutpostsWithS3, request, handler, context); } /** *

Lists all endpoints associated with an Outpost that has been shared by Amazon * Web Services Resource Access Manager (RAM).

Related actions include:

*

See Also:

AWS * API Reference

*/ virtual Model::ListSharedEndpointsOutcome ListSharedEndpoints(const Model::ListSharedEndpointsRequest& request) const; /** * A Callable wrapper for ListSharedEndpoints that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListSharedEndpointsOutcomeCallable ListSharedEndpointsCallable(const ListSharedEndpointsRequestT& request) const { return SubmitCallable(&S3OutpostsClient::ListSharedEndpoints, request); } /** * An Async wrapper for ListSharedEndpoints that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListSharedEndpointsAsync(const ListSharedEndpointsRequestT& request, const ListSharedEndpointsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&S3OutpostsClient::ListSharedEndpoints, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const S3OutpostsClientConfiguration& clientConfiguration); S3OutpostsClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace S3Outposts } // namespace Aws