/**
* 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 Snowball
{
/**
* The Amazon Web Services Snow Family provides a petabyte-scale data transport
* solution that uses secure devices to transfer large amounts of data between your
* on-premises data centers and Amazon Simple Storage Service (Amazon S3). The Snow
* Family commands described here provide access to the same functionality that is
* available in the Amazon Web Services Snow Family Management Console, which
* enables you to create and manage jobs for a Snow Family device. To transfer data
* locally with a Snow Family device, you'll need to use the Snowball Edge client
* or the Amazon S3 API Interface for Snowball or OpsHub for Snow Family. For more
* information, see the User
* Guide.
*/
class AWS_SNOWBALL_API SnowballClient : 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 SnowballClientConfiguration ClientConfigurationType;
typedef SnowballEndpointProvider 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.
*/
SnowballClient(const Aws::Snowball::SnowballClientConfiguration& clientConfiguration = Aws::Snowball::SnowballClientConfiguration(),
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.
*/
SnowballClient(const Aws::Auth::AWSCredentials& credentials,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::Snowball::SnowballClientConfiguration& clientConfiguration = Aws::Snowball::SnowballClientConfiguration());
/**
* 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
*/
SnowballClient(const std::shared_ptr& credentialsProvider,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::Snowball::SnowballClientConfiguration& clientConfiguration = Aws::Snowball::SnowballClientConfiguration());
/* 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.
*/
SnowballClient(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.
*/
SnowballClient(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
*/
SnowballClient(const std::shared_ptr& credentialsProvider,
const Aws::Client::ClientConfiguration& clientConfiguration);
/* End of legacy constructors due deprecation */
virtual ~SnowballClient();
/**
* Cancels a cluster job. You can only cancel a cluster job while it's in the
* AwaitingQuorum
status. You'll have at least an hour after creating
* a cluster job to cancel it.
See Also:
AWS
* API Reference
*/
virtual Model::CancelClusterOutcome CancelCluster(const Model::CancelClusterRequest& request) const;
/**
* A Callable wrapper for CancelCluster that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CancelClusterOutcomeCallable CancelClusterCallable(const CancelClusterRequestT& request) const
{
return SubmitCallable(&SnowballClient::CancelCluster, request);
}
/**
* An Async wrapper for CancelCluster that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CancelClusterAsync(const CancelClusterRequestT& request, const CancelClusterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::CancelCluster, request, handler, context);
}
/**
* Cancels the specified job. You can only cancel a job before its
* JobState
value changes to PreparingAppliance
.
* Requesting the ListJobs
or DescribeJob
action returns
* a job's JobState
as part of the response element data
* returned.
See Also:
AWS
* API Reference
*/
virtual Model::CancelJobOutcome CancelJob(const Model::CancelJobRequest& request) const;
/**
* A Callable wrapper for CancelJob that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CancelJobOutcomeCallable CancelJobCallable(const CancelJobRequestT& request) const
{
return SubmitCallable(&SnowballClient::CancelJob, request);
}
/**
* An Async wrapper for CancelJob that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CancelJobAsync(const CancelJobRequestT& request, const CancelJobResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::CancelJob, request, handler, context);
}
/**
* Creates an address for a Snow device to be shipped to. In most regions,
* addresses are validated at the time of creation. The address you provide must be
* located within the serviceable area of your region. If the address is invalid or
* unsupported, then an exception is thrown.
See Also:
AWS
* API Reference
*/
virtual Model::CreateAddressOutcome CreateAddress(const Model::CreateAddressRequest& request) const;
/**
* A Callable wrapper for CreateAddress that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateAddressOutcomeCallable CreateAddressCallable(const CreateAddressRequestT& request) const
{
return SubmitCallable(&SnowballClient::CreateAddress, request);
}
/**
* An Async wrapper for CreateAddress that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateAddressAsync(const CreateAddressRequestT& request, const CreateAddressResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::CreateAddress, request, handler, context);
}
/**
* Creates an empty cluster. Each cluster supports five nodes. You use the
* CreateJob action separately to create the jobs for each of these nodes.
* The cluster does not ship until these five node jobs have been
* created.
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(&SnowballClient::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(&SnowballClient::CreateCluster, request, handler, context);
}
/**
* Creates a job to import or export data between Amazon S3 and your on-premises
* data center. Your Amazon Web Services account must have the right trust policies
* and permissions in place to create a job for a Snow device. If you're creating a
* job for a node in a cluster, you only need to provide the clusterId
* value; the other job attributes are inherited from the cluster.
* Only the Snowball; Edge device type is supported when ordering clustered
* jobs.
The device capacity is optional.
Availability of device
* types differ by Amazon Web Services Region. For more information about Region
* availability, see Amazon
* Web Services Regional Services.
Snow
* Family devices and their capacities.
See Also:
AWS
* API Reference
*/
virtual Model::CreateJobOutcome CreateJob(const Model::CreateJobRequest& request) const;
/**
* A Callable wrapper for CreateJob that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateJobOutcomeCallable CreateJobCallable(const CreateJobRequestT& request) const
{
return SubmitCallable(&SnowballClient::CreateJob, request);
}
/**
* An Async wrapper for CreateJob that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateJobAsync(const CreateJobRequestT& request, const CreateJobResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::CreateJob, request, handler, context);
}
/**
* Creates a job with the long-term usage option for a device. The long-term
* usage is a 1-year or 3-year long-term pricing type for the device. You are
* billed upfront, and Amazon Web Services provides discounts for long-term
* pricing.
See Also:
AWS
* API Reference
*/
virtual Model::CreateLongTermPricingOutcome CreateLongTermPricing(const Model::CreateLongTermPricingRequest& request) const;
/**
* A Callable wrapper for CreateLongTermPricing that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateLongTermPricingOutcomeCallable CreateLongTermPricingCallable(const CreateLongTermPricingRequestT& request) const
{
return SubmitCallable(&SnowballClient::CreateLongTermPricing, request);
}
/**
* An Async wrapper for CreateLongTermPricing that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateLongTermPricingAsync(const CreateLongTermPricingRequestT& request, const CreateLongTermPricingResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::CreateLongTermPricing, request, handler, context);
}
/**
* Creates a shipping label that will be used to return the Snow device to
* Amazon Web Services.
See Also:
AWS
* API Reference
*/
virtual Model::CreateReturnShippingLabelOutcome CreateReturnShippingLabel(const Model::CreateReturnShippingLabelRequest& request) const;
/**
* A Callable wrapper for CreateReturnShippingLabel that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateReturnShippingLabelOutcomeCallable CreateReturnShippingLabelCallable(const CreateReturnShippingLabelRequestT& request) const
{
return SubmitCallable(&SnowballClient::CreateReturnShippingLabel, request);
}
/**
* An Async wrapper for CreateReturnShippingLabel that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateReturnShippingLabelAsync(const CreateReturnShippingLabelRequestT& request, const CreateReturnShippingLabelResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::CreateReturnShippingLabel, request, handler, context);
}
/**
* Takes an AddressId
and returns specific details about that
* address in the form of an Address
object.
See Also:
* AWS
* API Reference
*/
virtual Model::DescribeAddressOutcome DescribeAddress(const Model::DescribeAddressRequest& request) const;
/**
* A Callable wrapper for DescribeAddress that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeAddressOutcomeCallable DescribeAddressCallable(const DescribeAddressRequestT& request) const
{
return SubmitCallable(&SnowballClient::DescribeAddress, request);
}
/**
* An Async wrapper for DescribeAddress that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeAddressAsync(const DescribeAddressRequestT& request, const DescribeAddressResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::DescribeAddress, request, handler, context);
}
/**
* Returns a specified number of ADDRESS
objects. Calling this API
* in one of the US regions will return addresses from the list of all addresses
* associated with this account in all US regions.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeAddressesOutcome DescribeAddresses(const Model::DescribeAddressesRequest& request) const;
/**
* A Callable wrapper for DescribeAddresses that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeAddressesOutcomeCallable DescribeAddressesCallable(const DescribeAddressesRequestT& request) const
{
return SubmitCallable(&SnowballClient::DescribeAddresses, request);
}
/**
* An Async wrapper for DescribeAddresses that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeAddressesAsync(const DescribeAddressesRequestT& request, const DescribeAddressesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::DescribeAddresses, request, handler, context);
}
/**
* Returns information about a specific cluster including shipping information,
* cluster status, and other important metadata.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeClusterOutcome DescribeCluster(const Model::DescribeClusterRequest& request) const;
/**
* A Callable wrapper for DescribeCluster that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeClusterOutcomeCallable DescribeClusterCallable(const DescribeClusterRequestT& request) const
{
return SubmitCallable(&SnowballClient::DescribeCluster, request);
}
/**
* An Async wrapper for DescribeCluster that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeClusterAsync(const DescribeClusterRequestT& request, const DescribeClusterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::DescribeCluster, request, handler, context);
}
/**
* Returns information about a specific job including shipping information, job
* status, and other important metadata.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeJobOutcome DescribeJob(const Model::DescribeJobRequest& request) const;
/**
* A Callable wrapper for DescribeJob that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeJobOutcomeCallable DescribeJobCallable(const DescribeJobRequestT& request) const
{
return SubmitCallable(&SnowballClient::DescribeJob, request);
}
/**
* An Async wrapper for DescribeJob that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeJobAsync(const DescribeJobRequestT& request, const DescribeJobResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::DescribeJob, request, handler, context);
}
/**
* Information on the shipping label of a Snow device that is being returned to
* Amazon Web Services.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeReturnShippingLabelOutcome DescribeReturnShippingLabel(const Model::DescribeReturnShippingLabelRequest& request) const;
/**
* A Callable wrapper for DescribeReturnShippingLabel that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeReturnShippingLabelOutcomeCallable DescribeReturnShippingLabelCallable(const DescribeReturnShippingLabelRequestT& request) const
{
return SubmitCallable(&SnowballClient::DescribeReturnShippingLabel, request);
}
/**
* An Async wrapper for DescribeReturnShippingLabel that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeReturnShippingLabelAsync(const DescribeReturnShippingLabelRequestT& request, const DescribeReturnShippingLabelResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::DescribeReturnShippingLabel, request, handler, context);
}
/**
* Returns a link to an Amazon S3 presigned URL for the manifest file associated
* with the specified JobId
value. You can access the manifest file
* for up to 60 minutes after this request has been made. To access the manifest
* file after 60 minutes have passed, you'll have to make another call to the
* GetJobManifest
action.
The manifest is an encrypted file
* that you can download after your job enters the WithCustomer
* status. This is the only valid status for calling this API as the manifest and
* UnlockCode
code value are used for securing your device and should
* only be used when you have the device. The manifest is decrypted by using the
* UnlockCode
code value, when you pass both values to the Snow device
* through the Snowball client when the client is started for the first time.
* As a best practice, we recommend that you don't save a copy of an
* UnlockCode
value in the same location as the manifest file for that
* job. Saving these separately helps prevent unauthorized parties from gaining
* access to the Snow device associated with that job.
The credentials of a
* given job, including its manifest file and unlock code, expire 360 days after
* the job is created.
See Also:
AWS
* API Reference
*/
virtual Model::GetJobManifestOutcome GetJobManifest(const Model::GetJobManifestRequest& request) const;
/**
* A Callable wrapper for GetJobManifest that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetJobManifestOutcomeCallable GetJobManifestCallable(const GetJobManifestRequestT& request) const
{
return SubmitCallable(&SnowballClient::GetJobManifest, request);
}
/**
* An Async wrapper for GetJobManifest that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetJobManifestAsync(const GetJobManifestRequestT& request, const GetJobManifestResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::GetJobManifest, request, handler, context);
}
/**
* Returns the UnlockCode
code value for the specified job. A
* particular UnlockCode
value can be accessed for up to 360 days
* after the associated job has been created.
The UnlockCode
* value is a 29-character code with 25 alphanumeric characters and 4 hyphens. This
* code is used to decrypt the manifest file when it is passed along with the
* manifest to the Snow device through the Snowball client when the client is
* started for the first time. The only valid status for calling this API is
* WithCustomer
as the manifest and Unlock
code values
* are used for securing your device and should only be used when you have the
* device.
As a best practice, we recommend that you don't save a copy of
* the UnlockCode
in the same location as the manifest file for that
* job. Saving these separately helps prevent unauthorized parties from gaining
* access to the Snow device associated with that job.
See Also:
* AWS
* API Reference
*/
virtual Model::GetJobUnlockCodeOutcome GetJobUnlockCode(const Model::GetJobUnlockCodeRequest& request) const;
/**
* A Callable wrapper for GetJobUnlockCode that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetJobUnlockCodeOutcomeCallable GetJobUnlockCodeCallable(const GetJobUnlockCodeRequestT& request) const
{
return SubmitCallable(&SnowballClient::GetJobUnlockCode, request);
}
/**
* An Async wrapper for GetJobUnlockCode that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetJobUnlockCodeAsync(const GetJobUnlockCodeRequestT& request, const GetJobUnlockCodeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::GetJobUnlockCode, request, handler, context);
}
/**
* Returns information about the Snow Family service limit for your account, and
* also the number of Snow devices your account has in use.
The default
* service limit for the number of Snow devices that you can have at one time is 1.
* If you want to increase your service limit, contact Amazon Web Services
* Support.
See Also:
AWS
* API Reference
*/
virtual Model::GetSnowballUsageOutcome GetSnowballUsage(const Model::GetSnowballUsageRequest& request) const;
/**
* A Callable wrapper for GetSnowballUsage that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetSnowballUsageOutcomeCallable GetSnowballUsageCallable(const GetSnowballUsageRequestT& request) const
{
return SubmitCallable(&SnowballClient::GetSnowballUsage, request);
}
/**
* An Async wrapper for GetSnowballUsage that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetSnowballUsageAsync(const GetSnowballUsageRequestT& request, const GetSnowballUsageResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::GetSnowballUsage, request, handler, context);
}
/**
* Returns an Amazon S3 presigned URL for an update file associated with a
* specified JobId
.
See Also:
AWS
* API Reference
*/
virtual Model::GetSoftwareUpdatesOutcome GetSoftwareUpdates(const Model::GetSoftwareUpdatesRequest& request) const;
/**
* A Callable wrapper for GetSoftwareUpdates that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetSoftwareUpdatesOutcomeCallable GetSoftwareUpdatesCallable(const GetSoftwareUpdatesRequestT& request) const
{
return SubmitCallable(&SnowballClient::GetSoftwareUpdates, request);
}
/**
* An Async wrapper for GetSoftwareUpdates that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetSoftwareUpdatesAsync(const GetSoftwareUpdatesRequestT& request, const GetSoftwareUpdatesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::GetSoftwareUpdates, request, handler, context);
}
/**
* Returns an array of JobListEntry
objects of the specified
* length. Each JobListEntry
object is for a job in the specified
* cluster and contains a job's state, a job's ID, and other
* information.
See Also:
AWS
* API Reference
*/
virtual Model::ListClusterJobsOutcome ListClusterJobs(const Model::ListClusterJobsRequest& request) const;
/**
* A Callable wrapper for ListClusterJobs that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListClusterJobsOutcomeCallable ListClusterJobsCallable(const ListClusterJobsRequestT& request) const
{
return SubmitCallable(&SnowballClient::ListClusterJobs, request);
}
/**
* An Async wrapper for ListClusterJobs that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListClusterJobsAsync(const ListClusterJobsRequestT& request, const ListClusterJobsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::ListClusterJobs, request, handler, context);
}
/**
* Returns an array of ClusterListEntry
objects of the specified
* length. Each ClusterListEntry
object contains a cluster's state, a
* cluster's ID, and other important status information.
See Also:
* AWS
* API Reference
*/
virtual Model::ListClustersOutcome ListClusters(const Model::ListClustersRequest& request) const;
/**
* A Callable wrapper for ListClusters that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListClustersOutcomeCallable ListClustersCallable(const ListClustersRequestT& request) const
{
return SubmitCallable(&SnowballClient::ListClusters, request);
}
/**
* An Async wrapper for ListClusters that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListClustersAsync(const ListClustersRequestT& request, const ListClustersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::ListClusters, request, handler, context);
}
/**
* This action returns a list of the different Amazon EC2-compatible Amazon
* Machine Images (AMIs) that are owned by your Amazon Web Services accountthat
* would be supported for use on a Snow device. Currently, supported AMIs are based
* on the Amazon Linux-2, Ubuntu 20.04 LTS - Focal, or Ubuntu 22.04 LTS - Jammy
* images, available on the Amazon Web Services Marketplace. Ubuntu 16.04 LTS -
* Xenial (HVM) images are no longer supported in the Market, but still supported
* for use on devices through Amazon EC2 VM Import/Export and running locally in
* AMIs.
See Also:
AWS
* API Reference
*/
virtual Model::ListCompatibleImagesOutcome ListCompatibleImages(const Model::ListCompatibleImagesRequest& request) const;
/**
* A Callable wrapper for ListCompatibleImages that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListCompatibleImagesOutcomeCallable ListCompatibleImagesCallable(const ListCompatibleImagesRequestT& request) const
{
return SubmitCallable(&SnowballClient::ListCompatibleImages, request);
}
/**
* An Async wrapper for ListCompatibleImages that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListCompatibleImagesAsync(const ListCompatibleImagesRequestT& request, const ListCompatibleImagesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::ListCompatibleImages, request, handler, context);
}
/**
* Returns an array of JobListEntry
objects of the specified
* length. Each JobListEntry
object contains a job's state, a job's
* ID, and a value that indicates whether the job is a job part, in the case of
* export jobs. Calling this API action in one of the US regions will return jobs
* from the list of all jobs associated with this account in all US
* regions.
See Also:
AWS
* API Reference
*/
virtual Model::ListJobsOutcome ListJobs(const Model::ListJobsRequest& request) const;
/**
* A Callable wrapper for ListJobs that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListJobsOutcomeCallable ListJobsCallable(const ListJobsRequestT& request) const
{
return SubmitCallable(&SnowballClient::ListJobs, request);
}
/**
* An Async wrapper for ListJobs that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListJobsAsync(const ListJobsRequestT& request, const ListJobsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::ListJobs, request, handler, context);
}
/**
* Lists all long-term pricing types.
See Also:
AWS
* API Reference
*/
virtual Model::ListLongTermPricingOutcome ListLongTermPricing(const Model::ListLongTermPricingRequest& request) const;
/**
* A Callable wrapper for ListLongTermPricing that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListLongTermPricingOutcomeCallable ListLongTermPricingCallable(const ListLongTermPricingRequestT& request) const
{
return SubmitCallable(&SnowballClient::ListLongTermPricing, request);
}
/**
* An Async wrapper for ListLongTermPricing that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListLongTermPricingAsync(const ListLongTermPricingRequestT& request, const ListLongTermPricingResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::ListLongTermPricing, request, handler, context);
}
/**
* A list of locations from which the customer can choose to pickup a
* device.
See Also:
AWS
* API Reference
*/
virtual Model::ListPickupLocationsOutcome ListPickupLocations(const Model::ListPickupLocationsRequest& request) const;
/**
* A Callable wrapper for ListPickupLocations that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListPickupLocationsOutcomeCallable ListPickupLocationsCallable(const ListPickupLocationsRequestT& request) const
{
return SubmitCallable(&SnowballClient::ListPickupLocations, request);
}
/**
* An Async wrapper for ListPickupLocations that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListPickupLocationsAsync(const ListPickupLocationsRequestT& request, const ListPickupLocationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::ListPickupLocations, request, handler, context);
}
/**
* Lists all supported versions for Snow on-device services. Returns an array of
* ServiceVersion
object containing the supported versions for a
* particular service.
See Also:
AWS
* API Reference
*/
virtual Model::ListServiceVersionsOutcome ListServiceVersions(const Model::ListServiceVersionsRequest& request) const;
/**
* A Callable wrapper for ListServiceVersions that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListServiceVersionsOutcomeCallable ListServiceVersionsCallable(const ListServiceVersionsRequestT& request) const
{
return SubmitCallable(&SnowballClient::ListServiceVersions, request);
}
/**
* An Async wrapper for ListServiceVersions that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListServiceVersionsAsync(const ListServiceVersionsRequestT& request, const ListServiceVersionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::ListServiceVersions, request, handler, context);
}
/**
* While a cluster's ClusterState
value is in the
* AwaitingQuorum
state, you can update some of the information
* associated with a cluster. Once the cluster changes to a different job state,
* usually 60 minutes after the cluster being created, this action is no longer
* available.
See Also:
AWS
* API Reference
*/
virtual Model::UpdateClusterOutcome UpdateCluster(const Model::UpdateClusterRequest& request) const;
/**
* A Callable wrapper for UpdateCluster that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateClusterOutcomeCallable UpdateClusterCallable(const UpdateClusterRequestT& request) const
{
return SubmitCallable(&SnowballClient::UpdateCluster, request);
}
/**
* An Async wrapper for UpdateCluster that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateClusterAsync(const UpdateClusterRequestT& request, const UpdateClusterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::UpdateCluster, request, handler, context);
}
/**
* While a job's JobState
value is New
, you can update
* some of the information associated with a job. Once the job changes to a
* different job state, usually within 60 minutes of the job being created, this
* action is no longer available.
See Also:
AWS
* API Reference
*/
virtual Model::UpdateJobOutcome UpdateJob(const Model::UpdateJobRequest& request) const;
/**
* A Callable wrapper for UpdateJob that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateJobOutcomeCallable UpdateJobCallable(const UpdateJobRequestT& request) const
{
return SubmitCallable(&SnowballClient::UpdateJob, request);
}
/**
* An Async wrapper for UpdateJob that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateJobAsync(const UpdateJobRequestT& request, const UpdateJobResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::UpdateJob, request, handler, context);
}
/**
* Updates the state when a shipment state changes to a different
* state.
See Also:
AWS
* API Reference
*/
virtual Model::UpdateJobShipmentStateOutcome UpdateJobShipmentState(const Model::UpdateJobShipmentStateRequest& request) const;
/**
* A Callable wrapper for UpdateJobShipmentState that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateJobShipmentStateOutcomeCallable UpdateJobShipmentStateCallable(const UpdateJobShipmentStateRequestT& request) const
{
return SubmitCallable(&SnowballClient::UpdateJobShipmentState, request);
}
/**
* An Async wrapper for UpdateJobShipmentState that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateJobShipmentStateAsync(const UpdateJobShipmentStateRequestT& request, const UpdateJobShipmentStateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::UpdateJobShipmentState, request, handler, context);
}
/**
* Updates the long-term pricing type.
See Also:
AWS
* API Reference
*/
virtual Model::UpdateLongTermPricingOutcome UpdateLongTermPricing(const Model::UpdateLongTermPricingRequest& request) const;
/**
* A Callable wrapper for UpdateLongTermPricing that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateLongTermPricingOutcomeCallable UpdateLongTermPricingCallable(const UpdateLongTermPricingRequestT& request) const
{
return SubmitCallable(&SnowballClient::UpdateLongTermPricing, request);
}
/**
* An Async wrapper for UpdateLongTermPricing that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateLongTermPricingAsync(const UpdateLongTermPricingRequestT& request, const UpdateLongTermPricingResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&SnowballClient::UpdateLongTermPricing, request, handler, context);
}
void OverrideEndpoint(const Aws::String& endpoint);
std::shared_ptr& accessEndpointProvider();
private:
friend class Aws::Client::ClientWithAsyncTemplateMethods;
void init(const SnowballClientConfiguration& clientConfiguration);
SnowballClientConfiguration m_clientConfiguration;
std::shared_ptr m_executor;
std::shared_ptr m_endpointProvider;
};
} // namespace Snowball
} // namespace Aws