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

The resource management API for Amazon QLDB

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

Ends a given Amazon QLDB journal stream. Before a stream can be canceled, its * current status must be ACTIVE.

You can't restart a stream * after you cancel it. Canceled QLDB stream resources are subject to a 7-day * retention period, so they are automatically deleted after this limit * expires.

See Also:

AWS * API Reference

*/ virtual Model::CancelJournalKinesisStreamOutcome CancelJournalKinesisStream(const Model::CancelJournalKinesisStreamRequest& request) const; /** * A Callable wrapper for CancelJournalKinesisStream that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CancelJournalKinesisStreamOutcomeCallable CancelJournalKinesisStreamCallable(const CancelJournalKinesisStreamRequestT& request) const { return SubmitCallable(&QLDBClient::CancelJournalKinesisStream, request); } /** * An Async wrapper for CancelJournalKinesisStream that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CancelJournalKinesisStreamAsync(const CancelJournalKinesisStreamRequestT& request, const CancelJournalKinesisStreamResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&QLDBClient::CancelJournalKinesisStream, request, handler, context); } /** *

Creates a new ledger in your Amazon Web Services account in the current * Region.

See Also:

AWS * API Reference

*/ virtual Model::CreateLedgerOutcome CreateLedger(const Model::CreateLedgerRequest& request) const; /** * A Callable wrapper for CreateLedger that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateLedgerOutcomeCallable CreateLedgerCallable(const CreateLedgerRequestT& request) const { return SubmitCallable(&QLDBClient::CreateLedger, request); } /** * An Async wrapper for CreateLedger that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateLedgerAsync(const CreateLedgerRequestT& request, const CreateLedgerResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&QLDBClient::CreateLedger, request, handler, context); } /** *

Deletes a ledger and all of its contents. This action is irreversible.

*

If deletion protection is enabled, you must first disable it before you can * delete the ledger. You can disable it by calling the UpdateLedger * operation to set this parameter to false.

See Also:

* AWS * API Reference

*/ virtual Model::DeleteLedgerOutcome DeleteLedger(const Model::DeleteLedgerRequest& request) const; /** * A Callable wrapper for DeleteLedger that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteLedgerOutcomeCallable DeleteLedgerCallable(const DeleteLedgerRequestT& request) const { return SubmitCallable(&QLDBClient::DeleteLedger, request); } /** * An Async wrapper for DeleteLedger that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteLedgerAsync(const DeleteLedgerRequestT& request, const DeleteLedgerResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&QLDBClient::DeleteLedger, request, handler, context); } /** *

Returns detailed information about a given Amazon QLDB journal stream. The * output includes the Amazon Resource Name (ARN), stream name, current status, * creation time, and the parameters of the original stream creation request.

*

This action does not return any expired journal streams. For more * information, see Expiration * for terminal streams in the Amazon QLDB Developer * Guide.

See Also:

AWS * API Reference

*/ virtual Model::DescribeJournalKinesisStreamOutcome DescribeJournalKinesisStream(const Model::DescribeJournalKinesisStreamRequest& request) const; /** * A Callable wrapper for DescribeJournalKinesisStream that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeJournalKinesisStreamOutcomeCallable DescribeJournalKinesisStreamCallable(const DescribeJournalKinesisStreamRequestT& request) const { return SubmitCallable(&QLDBClient::DescribeJournalKinesisStream, request); } /** * An Async wrapper for DescribeJournalKinesisStream that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeJournalKinesisStreamAsync(const DescribeJournalKinesisStreamRequestT& request, const DescribeJournalKinesisStreamResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&QLDBClient::DescribeJournalKinesisStream, request, handler, context); } /** *

Returns information about a journal export job, including the ledger name, * export ID, creation time, current status, and the parameters of the original * export creation request.

This action does not return any expired export * jobs. For more information, see Export * job expiration in the Amazon QLDB Developer Guide.

If the * export job with the given ExportId doesn't exist, then throws * ResourceNotFoundException.

If the ledger with the given * Name doesn't exist, then throws * ResourceNotFoundException.

See Also:

AWS * API Reference

*/ virtual Model::DescribeJournalS3ExportOutcome DescribeJournalS3Export(const Model::DescribeJournalS3ExportRequest& request) const; /** * A Callable wrapper for DescribeJournalS3Export that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeJournalS3ExportOutcomeCallable DescribeJournalS3ExportCallable(const DescribeJournalS3ExportRequestT& request) const { return SubmitCallable(&QLDBClient::DescribeJournalS3Export, request); } /** * An Async wrapper for DescribeJournalS3Export that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeJournalS3ExportAsync(const DescribeJournalS3ExportRequestT& request, const DescribeJournalS3ExportResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&QLDBClient::DescribeJournalS3Export, request, handler, context); } /** *

Returns information about a ledger, including its state, permissions mode, * encryption at rest settings, and when it was created.

See Also:

* AWS * API Reference

*/ virtual Model::DescribeLedgerOutcome DescribeLedger(const Model::DescribeLedgerRequest& request) const; /** * A Callable wrapper for DescribeLedger that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeLedgerOutcomeCallable DescribeLedgerCallable(const DescribeLedgerRequestT& request) const { return SubmitCallable(&QLDBClient::DescribeLedger, request); } /** * An Async wrapper for DescribeLedger that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeLedgerAsync(const DescribeLedgerRequestT& request, const DescribeLedgerResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&QLDBClient::DescribeLedger, request, handler, context); } /** *

Exports journal contents within a date and time range from a ledger into a * specified Amazon Simple Storage Service (Amazon S3) bucket. A journal export job * can write the data objects in either the text or binary representation of Amazon * Ion format, or in JSON Lines text format.

If the ledger with the * given Name doesn't exist, then throws * ResourceNotFoundException.

If the ledger with the given * Name is in CREATING status, then throws * ResourcePreconditionNotMetException.

You can initiate up to * two concurrent journal export requests for each ledger. Beyond this limit, * journal export requests throw LimitExceededException.

See * Also:

AWS * API Reference

*/ virtual Model::ExportJournalToS3Outcome ExportJournalToS3(const Model::ExportJournalToS3Request& request) const; /** * A Callable wrapper for ExportJournalToS3 that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ExportJournalToS3OutcomeCallable ExportJournalToS3Callable(const ExportJournalToS3RequestT& request) const { return SubmitCallable(&QLDBClient::ExportJournalToS3, request); } /** * An Async wrapper for ExportJournalToS3 that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ExportJournalToS3Async(const ExportJournalToS3RequestT& request, const ExportJournalToS3ResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&QLDBClient::ExportJournalToS3, request, handler, context); } /** *

Returns a block object at a specified address in a journal. Also returns a * proof of the specified block for verification if DigestTipAddress * is provided.

For information about the data contents in a block, see Journal * contents in the Amazon QLDB Developer Guide.

If the specified * ledger doesn't exist or is in DELETING status, then throws * ResourceNotFoundException.

If the specified ledger is in * CREATING status, then throws * ResourcePreconditionNotMetException.

If no block exists with * the specified address, then throws * InvalidParameterException.

See Also:

AWS API * Reference

*/ virtual Model::GetBlockOutcome GetBlock(const Model::GetBlockRequest& request) const; /** * A Callable wrapper for GetBlock that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetBlockOutcomeCallable GetBlockCallable(const GetBlockRequestT& request) const { return SubmitCallable(&QLDBClient::GetBlock, request); } /** * An Async wrapper for GetBlock that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetBlockAsync(const GetBlockRequestT& request, const GetBlockResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&QLDBClient::GetBlock, request, handler, context); } /** *

Returns the digest of a ledger at the latest committed block in the journal. * The response includes a 256-bit hash value and a block address.

See * Also:

AWS API * Reference

*/ virtual Model::GetDigestOutcome GetDigest(const Model::GetDigestRequest& request) const; /** * A Callable wrapper for GetDigest that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetDigestOutcomeCallable GetDigestCallable(const GetDigestRequestT& request) const { return SubmitCallable(&QLDBClient::GetDigest, request); } /** * An Async wrapper for GetDigest that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetDigestAsync(const GetDigestRequestT& request, const GetDigestResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&QLDBClient::GetDigest, request, handler, context); } /** *

Returns a revision data object for a specified document ID and block address. * Also returns a proof of the specified revision for verification if * DigestTipAddress is provided.

See Also:

AWS * API Reference

*/ virtual Model::GetRevisionOutcome GetRevision(const Model::GetRevisionRequest& request) const; /** * A Callable wrapper for GetRevision that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetRevisionOutcomeCallable GetRevisionCallable(const GetRevisionRequestT& request) const { return SubmitCallable(&QLDBClient::GetRevision, request); } /** * An Async wrapper for GetRevision that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetRevisionAsync(const GetRevisionRequestT& request, const GetRevisionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&QLDBClient::GetRevision, request, handler, context); } /** *

Returns all Amazon QLDB journal streams for a given ledger.

This * action does not return any expired journal streams. For more information, see Expiration * for terminal streams in the Amazon QLDB Developer Guide.

This * action returns a maximum of MaxResults items. It is paginated so * that you can retrieve all the items by calling * ListJournalKinesisStreamsForLedger multiple times.

See * Also:

AWS * API Reference

*/ virtual Model::ListJournalKinesisStreamsForLedgerOutcome ListJournalKinesisStreamsForLedger(const Model::ListJournalKinesisStreamsForLedgerRequest& request) const; /** * A Callable wrapper for ListJournalKinesisStreamsForLedger that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListJournalKinesisStreamsForLedgerOutcomeCallable ListJournalKinesisStreamsForLedgerCallable(const ListJournalKinesisStreamsForLedgerRequestT& request) const { return SubmitCallable(&QLDBClient::ListJournalKinesisStreamsForLedger, request); } /** * An Async wrapper for ListJournalKinesisStreamsForLedger that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListJournalKinesisStreamsForLedgerAsync(const ListJournalKinesisStreamsForLedgerRequestT& request, const ListJournalKinesisStreamsForLedgerResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&QLDBClient::ListJournalKinesisStreamsForLedger, request, handler, context); } /** *

Returns all journal export jobs for all ledgers that are associated with the * current Amazon Web Services account and Region.

This action returns a * maximum of MaxResults items, and is paginated so that you can * retrieve all the items by calling ListJournalS3Exports multiple * times.

This action does not return any expired export jobs. For more * information, see Export * job expiration in the Amazon QLDB Developer Guide.

See * Also:

AWS * API Reference

*/ virtual Model::ListJournalS3ExportsOutcome ListJournalS3Exports(const Model::ListJournalS3ExportsRequest& request) const; /** * A Callable wrapper for ListJournalS3Exports that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListJournalS3ExportsOutcomeCallable ListJournalS3ExportsCallable(const ListJournalS3ExportsRequestT& request) const { return SubmitCallable(&QLDBClient::ListJournalS3Exports, request); } /** * An Async wrapper for ListJournalS3Exports that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListJournalS3ExportsAsync(const ListJournalS3ExportsRequestT& request, const ListJournalS3ExportsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&QLDBClient::ListJournalS3Exports, request, handler, context); } /** *

Returns all journal export jobs for a specified ledger.

This action * returns a maximum of MaxResults items, and is paginated so that you * can retrieve all the items by calling ListJournalS3ExportsForLedger * multiple times.

This action does not return any expired export jobs. For * more information, see Export * job expiration in the Amazon QLDB Developer Guide.

See * Also:

AWS * API Reference

*/ virtual Model::ListJournalS3ExportsForLedgerOutcome ListJournalS3ExportsForLedger(const Model::ListJournalS3ExportsForLedgerRequest& request) const; /** * A Callable wrapper for ListJournalS3ExportsForLedger that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListJournalS3ExportsForLedgerOutcomeCallable ListJournalS3ExportsForLedgerCallable(const ListJournalS3ExportsForLedgerRequestT& request) const { return SubmitCallable(&QLDBClient::ListJournalS3ExportsForLedger, request); } /** * An Async wrapper for ListJournalS3ExportsForLedger that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListJournalS3ExportsForLedgerAsync(const ListJournalS3ExportsForLedgerRequestT& request, const ListJournalS3ExportsForLedgerResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&QLDBClient::ListJournalS3ExportsForLedger, request, handler, context); } /** *

Returns all ledgers that are associated with the current Amazon Web Services * account and Region.

This action returns a maximum of * MaxResults items and is paginated so that you can retrieve all the * items by calling ListLedgers multiple times.

See * Also:

AWS * API Reference

*/ virtual Model::ListLedgersOutcome ListLedgers(const Model::ListLedgersRequest& request) const; /** * A Callable wrapper for ListLedgers that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListLedgersOutcomeCallable ListLedgersCallable(const ListLedgersRequestT& request) const { return SubmitCallable(&QLDBClient::ListLedgers, request); } /** * An Async wrapper for ListLedgers that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListLedgersAsync(const ListLedgersRequestT& request, const ListLedgersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&QLDBClient::ListLedgers, request, handler, context); } /** *

Returns all tags for a specified Amazon QLDB resource.

See * Also:

AWS * API Reference

*/ virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; /** * A Callable wrapper for ListTagsForResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const ListTagsForResourceRequestT& request) const { return SubmitCallable(&QLDBClient::ListTagsForResource, request); } /** * An Async wrapper for ListTagsForResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListTagsForResourceAsync(const ListTagsForResourceRequestT& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&QLDBClient::ListTagsForResource, request, handler, context); } /** *

Creates a journal stream for a given Amazon QLDB ledger. The stream captures * every document revision that is committed to the ledger's journal and delivers * the data to a specified Amazon Kinesis Data Streams resource.

See * Also:

AWS * API Reference

*/ virtual Model::StreamJournalToKinesisOutcome StreamJournalToKinesis(const Model::StreamJournalToKinesisRequest& request) const; /** * A Callable wrapper for StreamJournalToKinesis that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StreamJournalToKinesisOutcomeCallable StreamJournalToKinesisCallable(const StreamJournalToKinesisRequestT& request) const { return SubmitCallable(&QLDBClient::StreamJournalToKinesis, request); } /** * An Async wrapper for StreamJournalToKinesis that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StreamJournalToKinesisAsync(const StreamJournalToKinesisRequestT& request, const StreamJournalToKinesisResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&QLDBClient::StreamJournalToKinesis, request, handler, context); } /** *

Adds one or more tags to a specified Amazon QLDB resource.

A resource * can have up to 50 tags. If you try to create more than 50 tags for a resource, * your request fails and returns an error.

See Also:

AWS * API Reference

*/ virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; /** * A Callable wrapper for TagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::TagResourceOutcomeCallable TagResourceCallable(const TagResourceRequestT& request) const { return SubmitCallable(&QLDBClient::TagResource, request); } /** * An Async wrapper for TagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void TagResourceAsync(const TagResourceRequestT& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&QLDBClient::TagResource, request, handler, context); } /** *

Removes one or more tags from a specified Amazon QLDB resource. You can * specify up to 50 tag keys to remove.

See Also:

AWS * API Reference

*/ virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; /** * A Callable wrapper for UntagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UntagResourceOutcomeCallable UntagResourceCallable(const UntagResourceRequestT& request) const { return SubmitCallable(&QLDBClient::UntagResource, request); } /** * An Async wrapper for UntagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UntagResourceAsync(const UntagResourceRequestT& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&QLDBClient::UntagResource, request, handler, context); } /** *

Updates properties on a ledger.

See Also:

AWS * API Reference

*/ virtual Model::UpdateLedgerOutcome UpdateLedger(const Model::UpdateLedgerRequest& request) const; /** * A Callable wrapper for UpdateLedger that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateLedgerOutcomeCallable UpdateLedgerCallable(const UpdateLedgerRequestT& request) const { return SubmitCallable(&QLDBClient::UpdateLedger, request); } /** * An Async wrapper for UpdateLedger that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateLedgerAsync(const UpdateLedgerRequestT& request, const UpdateLedgerResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&QLDBClient::UpdateLedger, request, handler, context); } /** *

Updates the permissions mode of a ledger.

Before you * switch to the STANDARD permissions mode, you must first create all * required IAM policies and table tags to avoid disruption to your users. To learn * more, see Migrating * to the standard permissions mode in the Amazon QLDB Developer * Guide.

See Also:

AWS * API Reference

*/ virtual Model::UpdateLedgerPermissionsModeOutcome UpdateLedgerPermissionsMode(const Model::UpdateLedgerPermissionsModeRequest& request) const; /** * A Callable wrapper for UpdateLedgerPermissionsMode that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateLedgerPermissionsModeOutcomeCallable UpdateLedgerPermissionsModeCallable(const UpdateLedgerPermissionsModeRequestT& request) const { return SubmitCallable(&QLDBClient::UpdateLedgerPermissionsMode, request); } /** * An Async wrapper for UpdateLedgerPermissionsMode that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateLedgerPermissionsModeAsync(const UpdateLedgerPermissionsModeRequestT& request, const UpdateLedgerPermissionsModeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&QLDBClient::UpdateLedgerPermissionsMode, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const QLDBClientConfiguration& clientConfiguration); QLDBClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace QLDB } // namespace Aws