/** * 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 #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 CloudHSMV2 { namespace Model { class CopyBackupToRegionRequest; class CreateClusterRequest; class CreateHsmRequest; class DeleteBackupRequest; class DeleteClusterRequest; class DeleteHsmRequest; class DescribeBackupsRequest; class DescribeClustersRequest; class InitializeClusterRequest; class ListTagsRequest; class RestoreBackupRequest; class TagResourceRequest; class UntagResourceRequest; typedef Aws::Utils::Outcome CopyBackupToRegionOutcome; typedef Aws::Utils::Outcome CreateClusterOutcome; typedef Aws::Utils::Outcome CreateHsmOutcome; typedef Aws::Utils::Outcome DeleteBackupOutcome; typedef Aws::Utils::Outcome DeleteClusterOutcome; typedef Aws::Utils::Outcome DeleteHsmOutcome; typedef Aws::Utils::Outcome DescribeBackupsOutcome; typedef Aws::Utils::Outcome DescribeClustersOutcome; typedef Aws::Utils::Outcome InitializeClusterOutcome; typedef Aws::Utils::Outcome ListTagsOutcome; typedef Aws::Utils::Outcome RestoreBackupOutcome; typedef Aws::Utils::Outcome TagResourceOutcome; typedef Aws::Utils::Outcome UntagResourceOutcome; typedef std::future CopyBackupToRegionOutcomeCallable; typedef std::future CreateClusterOutcomeCallable; typedef std::future CreateHsmOutcomeCallable; typedef std::future DeleteBackupOutcomeCallable; typedef std::future DeleteClusterOutcomeCallable; typedef std::future DeleteHsmOutcomeCallable; typedef std::future DescribeBackupsOutcomeCallable; typedef std::future DescribeClustersOutcomeCallable; typedef std::future InitializeClusterOutcomeCallable; typedef std::future ListTagsOutcomeCallable; typedef std::future RestoreBackupOutcomeCallable; typedef std::future TagResourceOutcomeCallable; typedef std::future UntagResourceOutcomeCallable; } // namespace Model class CloudHSMV2Client; typedef std::function&) > CopyBackupToRegionResponseReceivedHandler; typedef std::function&) > CreateClusterResponseReceivedHandler; typedef std::function&) > CreateHsmResponseReceivedHandler; typedef std::function&) > DeleteBackupResponseReceivedHandler; typedef std::function&) > DeleteClusterResponseReceivedHandler; typedef std::function&) > DeleteHsmResponseReceivedHandler; typedef std::function&) > DescribeBackupsResponseReceivedHandler; typedef std::function&) > DescribeClustersResponseReceivedHandler; typedef std::function&) > InitializeClusterResponseReceivedHandler; typedef std::function&) > ListTagsResponseReceivedHandler; typedef std::function&) > RestoreBackupResponseReceivedHandler; typedef std::function&) > TagResourceResponseReceivedHandler; typedef std::function&) > UntagResourceResponseReceivedHandler; /** *

For more information about AWS CloudHSM, see AWS CloudHSM and the AWS CloudHSM User * Guide.

*/ class AWS_CLOUDHSMV2_API CloudHSMV2Client : 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. */ CloudHSMV2Client(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. */ CloudHSMV2Client(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 */ CloudHSMV2Client(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); virtual ~CloudHSMV2Client(); /** *

Copy an AWS CloudHSM cluster backup to a different region.

See * Also:

AWS * API Reference

*/ virtual Model::CopyBackupToRegionOutcome CopyBackupToRegion(const Model::CopyBackupToRegionRequest& request) const; /** *

Copy an AWS CloudHSM cluster backup to a different region.

See * Also:

AWS * API Reference

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

Copy an AWS CloudHSM cluster backup to a different region.

See * Also:

AWS * API Reference

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

Creates a new AWS CloudHSM cluster.

See Also:

AWS * API Reference

*/ virtual Model::CreateClusterOutcome CreateCluster(const Model::CreateClusterRequest& request) const; /** *

Creates a new AWS CloudHSM cluster.

See Also:

AWS * API Reference

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

Creates a new AWS CloudHSM cluster.

See Also:

AWS * API Reference

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

Creates a new hardware security module (HSM) in the specified AWS CloudHSM * cluster.

See Also:

AWS * API Reference

*/ virtual Model::CreateHsmOutcome CreateHsm(const Model::CreateHsmRequest& request) const; /** *

Creates a new hardware security module (HSM) in the specified AWS CloudHSM * cluster.

See Also:

AWS * API Reference

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

Creates a new hardware security module (HSM) in the specified AWS CloudHSM * cluster.

See Also:

AWS * API Reference

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

Deletes a specified AWS CloudHSM backup. A backup can be restored up to 7 * days after the DeleteBackup request is made. For more information on restoring a * backup, see RestoreBackup.

See Also:

AWS * API Reference

*/ virtual Model::DeleteBackupOutcome DeleteBackup(const Model::DeleteBackupRequest& request) const; /** *

Deletes a specified AWS CloudHSM backup. A backup can be restored up to 7 * days after the DeleteBackup request is made. For more information on restoring a * backup, see RestoreBackup.

See Also:

AWS * API Reference

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

Deletes a specified AWS CloudHSM backup. A backup can be restored up to 7 * days after the DeleteBackup request is made. For more information on restoring a * backup, see RestoreBackup.

See Also:

AWS * API Reference

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

Deletes the specified AWS CloudHSM cluster. Before you can delete a cluster, * you must delete all HSMs in the cluster. To see if the cluster contains any * HSMs, use DescribeClusters. To delete an HSM, use * DeleteHsm.

See Also:

AWS * API Reference

*/ virtual Model::DeleteClusterOutcome DeleteCluster(const Model::DeleteClusterRequest& request) const; /** *

Deletes the specified AWS CloudHSM cluster. Before you can delete a cluster, * you must delete all HSMs in the cluster. To see if the cluster contains any * HSMs, use DescribeClusters. To delete an HSM, use * DeleteHsm.

See Also:

AWS * API Reference

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

Deletes the specified AWS CloudHSM cluster. Before you can delete a cluster, * you must delete all HSMs in the cluster. To see if the cluster contains any * HSMs, use DescribeClusters. To delete an HSM, use * DeleteHsm.

See Also:

AWS * API Reference

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

Deletes the specified HSM. To specify an HSM, you can use its identifier * (ID), the IP address of the HSM's elastic network interface (ENI), or the ID of * the HSM's ENI. You need to specify only one of these values. To find these * values, use DescribeClusters.

See Also:

AWS * API Reference

*/ virtual Model::DeleteHsmOutcome DeleteHsm(const Model::DeleteHsmRequest& request) const; /** *

Deletes the specified HSM. To specify an HSM, you can use its identifier * (ID), the IP address of the HSM's elastic network interface (ENI), or the ID of * the HSM's ENI. You need to specify only one of these values. To find these * values, use DescribeClusters.

See Also:

AWS * API Reference

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

Deletes the specified HSM. To specify an HSM, you can use its identifier * (ID), the IP address of the HSM's elastic network interface (ENI), or the ID of * the HSM's ENI. You need to specify only one of these values. To find these * values, use DescribeClusters.

See Also:

AWS * API Reference

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

Gets information about backups of AWS CloudHSM clusters.

This is a * paginated operation, which means that each response might contain only a subset * of all the backups. When the response contains only a subset of backups, it * includes a NextToken value. Use this value in a subsequent * DescribeBackups request to get more backups. When you receive a * response with no NextToken (or an empty or null value), that means * there are no more backups to get.

See Also:

AWS * API Reference

*/ virtual Model::DescribeBackupsOutcome DescribeBackups(const Model::DescribeBackupsRequest& request) const; /** *

Gets information about backups of AWS CloudHSM clusters.

This is a * paginated operation, which means that each response might contain only a subset * of all the backups. When the response contains only a subset of backups, it * includes a NextToken value. Use this value in a subsequent * DescribeBackups request to get more backups. When you receive a * response with no NextToken (or an empty or null value), that means * there are no more backups to get.

See Also:

AWS * API Reference

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

Gets information about backups of AWS CloudHSM clusters.

This is a * paginated operation, which means that each response might contain only a subset * of all the backups. When the response contains only a subset of backups, it * includes a NextToken value. Use this value in a subsequent * DescribeBackups request to get more backups. When you receive a * response with no NextToken (or an empty or null value), that means * there are no more backups to get.

See Also:

AWS * API Reference

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

Gets information about AWS CloudHSM clusters.

This is a paginated * operation, which means that each response might contain only a subset of all the * clusters. When the response contains only a subset of clusters, it includes a * NextToken value. Use this value in a subsequent * DescribeClusters request to get more clusters. When you receive a * response with no NextToken (or an empty or null value), that means * there are no more clusters to get.

See Also:

AWS * API Reference

*/ virtual Model::DescribeClustersOutcome DescribeClusters(const Model::DescribeClustersRequest& request) const; /** *

Gets information about AWS CloudHSM clusters.

This is a paginated * operation, which means that each response might contain only a subset of all the * clusters. When the response contains only a subset of clusters, it includes a * NextToken value. Use this value in a subsequent * DescribeClusters request to get more clusters. When you receive a * response with no NextToken (or an empty or null value), that means * there are no more clusters to get.

See Also:

AWS * API Reference

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

Gets information about AWS CloudHSM clusters.

This is a paginated * operation, which means that each response might contain only a subset of all the * clusters. When the response contains only a subset of clusters, it includes a * NextToken value. Use this value in a subsequent * DescribeClusters request to get more clusters. When you receive a * response with no NextToken (or an empty or null value), that means * there are no more clusters to get.

See Also:

AWS * API Reference

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

Claims an AWS CloudHSM cluster by submitting the cluster certificate issued * by your issuing certificate authority (CA) and the CA's root certificate. Before * you can claim a cluster, you must sign the cluster's certificate signing request * (CSR) with your issuing CA. To get the cluster's CSR, use * DescribeClusters.

See Also:

AWS * API Reference

*/ virtual Model::InitializeClusterOutcome InitializeCluster(const Model::InitializeClusterRequest& request) const; /** *

Claims an AWS CloudHSM cluster by submitting the cluster certificate issued * by your issuing certificate authority (CA) and the CA's root certificate. Before * you can claim a cluster, you must sign the cluster's certificate signing request * (CSR) with your issuing CA. To get the cluster's CSR, use * DescribeClusters.

See Also:

AWS * API Reference

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

Claims an AWS CloudHSM cluster by submitting the cluster certificate issued * by your issuing certificate authority (CA) and the CA's root certificate. Before * you can claim a cluster, you must sign the cluster's certificate signing request * (CSR) with your issuing CA. To get the cluster's CSR, use * DescribeClusters.

See Also:

AWS * API Reference

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

Gets a list of tags for the specified AWS CloudHSM cluster.

This is a * paginated operation, which means that each response might contain only a subset * of all the tags. When the response contains only a subset of tags, it includes a * NextToken value. Use this value in a subsequent * ListTags request to get more tags. When you receive a response with * no NextToken (or an empty or null value), that means there are no * more tags to get.

See Also:

AWS * API Reference

*/ virtual Model::ListTagsOutcome ListTags(const Model::ListTagsRequest& request) const; /** *

Gets a list of tags for the specified AWS CloudHSM cluster.

This is a * paginated operation, which means that each response might contain only a subset * of all the tags. When the response contains only a subset of tags, it includes a * NextToken value. Use this value in a subsequent * ListTags request to get more tags. When you receive a response with * no NextToken (or an empty or null value), that means there are no * more tags to get.

See Also:

AWS * API Reference

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

Gets a list of tags for the specified AWS CloudHSM cluster.

This is a * paginated operation, which means that each response might contain only a subset * of all the tags. When the response contains only a subset of tags, it includes a * NextToken value. Use this value in a subsequent * ListTags request to get more tags. When you receive a response with * no NextToken (or an empty or null value), that means there are no * more tags to get.

See Also:

AWS * API Reference

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

Restores a specified AWS CloudHSM backup that is in the * PENDING_DELETION state. For mor information on deleting a backup, * see DeleteBackup.

See Also:

AWS * API Reference

*/ virtual Model::RestoreBackupOutcome RestoreBackup(const Model::RestoreBackupRequest& request) const; /** *

Restores a specified AWS CloudHSM backup that is in the * PENDING_DELETION state. For mor information on deleting a backup, * see DeleteBackup.

See Also:

AWS * API Reference

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

Restores a specified AWS CloudHSM backup that is in the * PENDING_DELETION state. For mor information on deleting a backup, * see DeleteBackup.

See Also:

AWS * API Reference

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

Adds or overwrites one or more tags for the specified AWS CloudHSM * cluster.

See Also:

AWS * API Reference

*/ virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; /** *

Adds or overwrites one or more tags for the specified AWS CloudHSM * cluster.

See Also:

AWS * API Reference

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

Adds or overwrites one or more tags for the specified AWS CloudHSM * cluster.

See Also:

AWS * API Reference

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

Removes the specified tag or tags from the specified AWS CloudHSM * cluster.

See Also:

AWS * API Reference

*/ virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; /** *

Removes the specified tag or tags from the specified AWS CloudHSM * cluster.

See Also:

AWS * API Reference

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

Removes the specified tag or tags from the specified AWS CloudHSM * cluster.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void CopyBackupToRegionAsyncHelper(const Model::CopyBackupToRegionRequest& request, const CopyBackupToRegionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateClusterAsyncHelper(const Model::CreateClusterRequest& request, const CreateClusterResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateHsmAsyncHelper(const Model::CreateHsmRequest& request, const CreateHsmResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteBackupAsyncHelper(const Model::DeleteBackupRequest& request, const DeleteBackupResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteClusterAsyncHelper(const Model::DeleteClusterRequest& request, const DeleteClusterResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteHsmAsyncHelper(const Model::DeleteHsmRequest& request, const DeleteHsmResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeBackupsAsyncHelper(const Model::DescribeBackupsRequest& request, const DescribeBackupsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeClustersAsyncHelper(const Model::DescribeClustersRequest& request, const DescribeClustersResponseReceivedHandler& handler, const std::shared_ptr& context) const; void InitializeClusterAsyncHelper(const Model::InitializeClusterRequest& request, const InitializeClusterResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListTagsAsyncHelper(const Model::ListTagsRequest& request, const ListTagsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void RestoreBackupAsyncHelper(const Model::RestoreBackupRequest& request, const RestoreBackupResponseReceivedHandler& handler, const std::shared_ptr& context) const; void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace CloudHSMV2 } // namespace Aws