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

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 Aws::Client::ClientWithAsyncTemplateMethods { public: typedef Aws::Client::AWSJsonClient BASECLASS; static const char* SERVICE_NAME; static const char* ALLOCATION_TAG; typedef CloudHSMV2ClientConfiguration ClientConfigurationType; typedef CloudHSMV2EndpointProvider 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. */ CloudHSMV2Client(const Aws::CloudHSMV2::CloudHSMV2ClientConfiguration& clientConfiguration = Aws::CloudHSMV2::CloudHSMV2ClientConfiguration(), 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. */ CloudHSMV2Client(const Aws::Auth::AWSCredentials& credentials, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::CloudHSMV2::CloudHSMV2ClientConfiguration& clientConfiguration = Aws::CloudHSMV2::CloudHSMV2ClientConfiguration()); /** * 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, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::CloudHSMV2::CloudHSMV2ClientConfiguration& clientConfiguration = Aws::CloudHSMV2::CloudHSMV2ClientConfiguration()); /* 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. */ CloudHSMV2Client(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. */ CloudHSMV2Client(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 */ CloudHSMV2Client(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration); /* End of legacy constructors due deprecation */ 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; /** * A Callable wrapper for CopyBackupToRegion that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CopyBackupToRegionOutcomeCallable CopyBackupToRegionCallable(const CopyBackupToRegionRequestT& request) const { return SubmitCallable(&CloudHSMV2Client::CopyBackupToRegion, request); } /** * An Async wrapper for CopyBackupToRegion that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CopyBackupToRegionAsync(const CopyBackupToRegionRequestT& request, const CopyBackupToRegionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudHSMV2Client::CopyBackupToRegion, request, handler, context); } /** *

Creates a new AWS CloudHSM cluster.

See Also:

AWS * API Reference

*/ virtual Model::CreateClusterOutcome CreateCluster(const Model::CreateClusterRequest& request) const; /** * A Callable wrapper for CreateCluster that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateClusterOutcomeCallable CreateClusterCallable(const CreateClusterRequestT& request) const { return SubmitCallable(&CloudHSMV2Client::CreateCluster, request); } /** * An Async wrapper for CreateCluster that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateClusterAsync(const CreateClusterRequestT& request, const CreateClusterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudHSMV2Client::CreateCluster, request, handler, context); } /** *

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; /** * A Callable wrapper for CreateHsm that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateHsmOutcomeCallable CreateHsmCallable(const CreateHsmRequestT& request) const { return SubmitCallable(&CloudHSMV2Client::CreateHsm, request); } /** * An Async wrapper for CreateHsm that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateHsmAsync(const CreateHsmRequestT& request, const CreateHsmResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudHSMV2Client::CreateHsm, request, handler, context); } /** *

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; /** * A Callable wrapper for DeleteBackup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteBackupOutcomeCallable DeleteBackupCallable(const DeleteBackupRequestT& request) const { return SubmitCallable(&CloudHSMV2Client::DeleteBackup, request); } /** * An Async wrapper for DeleteBackup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteBackupAsync(const DeleteBackupRequestT& request, const DeleteBackupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudHSMV2Client::DeleteBackup, request, handler, context); } /** *

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; /** * A Callable wrapper for DeleteCluster that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteClusterOutcomeCallable DeleteClusterCallable(const DeleteClusterRequestT& request) const { return SubmitCallable(&CloudHSMV2Client::DeleteCluster, request); } /** * An Async wrapper for DeleteCluster that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteClusterAsync(const DeleteClusterRequestT& request, const DeleteClusterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudHSMV2Client::DeleteCluster, request, handler, context); } /** *

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; /** * A Callable wrapper for DeleteHsm that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteHsmOutcomeCallable DeleteHsmCallable(const DeleteHsmRequestT& request) const { return SubmitCallable(&CloudHSMV2Client::DeleteHsm, request); } /** * An Async wrapper for DeleteHsm that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteHsmAsync(const DeleteHsmRequestT& request, const DeleteHsmResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudHSMV2Client::DeleteHsm, request, handler, context); } /** *

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; /** * A Callable wrapper for DescribeBackups that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeBackupsOutcomeCallable DescribeBackupsCallable(const DescribeBackupsRequestT& request) const { return SubmitCallable(&CloudHSMV2Client::DescribeBackups, request); } /** * An Async wrapper for DescribeBackups that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeBackupsAsync(const DescribeBackupsRequestT& request, const DescribeBackupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudHSMV2Client::DescribeBackups, request, handler, context); } /** *

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; /** * A Callable wrapper for DescribeClusters that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeClustersOutcomeCallable DescribeClustersCallable(const DescribeClustersRequestT& request) const { return SubmitCallable(&CloudHSMV2Client::DescribeClusters, request); } /** * An Async wrapper for DescribeClusters that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeClustersAsync(const DescribeClustersRequestT& request, const DescribeClustersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudHSMV2Client::DescribeClusters, request, handler, context); } /** *

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; /** * A Callable wrapper for InitializeCluster that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::InitializeClusterOutcomeCallable InitializeClusterCallable(const InitializeClusterRequestT& request) const { return SubmitCallable(&CloudHSMV2Client::InitializeCluster, request); } /** * An Async wrapper for InitializeCluster that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void InitializeClusterAsync(const InitializeClusterRequestT& request, const InitializeClusterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudHSMV2Client::InitializeCluster, request, handler, context); } /** *

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; /** * A Callable wrapper for ListTags that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListTagsOutcomeCallable ListTagsCallable(const ListTagsRequestT& request) const { return SubmitCallable(&CloudHSMV2Client::ListTags, request); } /** * An Async wrapper for ListTags that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListTagsAsync(const ListTagsRequestT& request, const ListTagsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudHSMV2Client::ListTags, request, handler, context); } /** *

Modifies attributes for AWS CloudHSM backup.

See Also:

AWS * API Reference

*/ virtual Model::ModifyBackupAttributesOutcome ModifyBackupAttributes(const Model::ModifyBackupAttributesRequest& request) const; /** * A Callable wrapper for ModifyBackupAttributes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ModifyBackupAttributesOutcomeCallable ModifyBackupAttributesCallable(const ModifyBackupAttributesRequestT& request) const { return SubmitCallable(&CloudHSMV2Client::ModifyBackupAttributes, request); } /** * An Async wrapper for ModifyBackupAttributes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ModifyBackupAttributesAsync(const ModifyBackupAttributesRequestT& request, const ModifyBackupAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudHSMV2Client::ModifyBackupAttributes, request, handler, context); } /** *

Modifies AWS CloudHSM cluster.

See Also:

AWS * API Reference

*/ virtual Model::ModifyClusterOutcome ModifyCluster(const Model::ModifyClusterRequest& request) const; /** * A Callable wrapper for ModifyCluster that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ModifyClusterOutcomeCallable ModifyClusterCallable(const ModifyClusterRequestT& request) const { return SubmitCallable(&CloudHSMV2Client::ModifyCluster, request); } /** * An Async wrapper for ModifyCluster that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ModifyClusterAsync(const ModifyClusterRequestT& request, const ModifyClusterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudHSMV2Client::ModifyCluster, request, handler, context); } /** *

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; /** * A Callable wrapper for RestoreBackup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::RestoreBackupOutcomeCallable RestoreBackupCallable(const RestoreBackupRequestT& request) const { return SubmitCallable(&CloudHSMV2Client::RestoreBackup, request); } /** * An Async wrapper for RestoreBackup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void RestoreBackupAsync(const RestoreBackupRequestT& request, const RestoreBackupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudHSMV2Client::RestoreBackup, request, handler, context); } /** *

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; /** * 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(&CloudHSMV2Client::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(&CloudHSMV2Client::TagResource, request, handler, context); } /** *

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; /** * 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(&CloudHSMV2Client::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(&CloudHSMV2Client::UntagResource, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const CloudHSMV2ClientConfiguration& clientConfiguration); CloudHSMV2ClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace CloudHSMV2 } // namespace Aws