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