/** * 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 #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 Snowball { namespace Model { class CancelClusterRequest; class CancelJobRequest; class CreateAddressRequest; class CreateClusterRequest; class CreateJobRequest; class DescribeAddressRequest; class DescribeAddressesRequest; class DescribeClusterRequest; class DescribeJobRequest; class GetJobManifestRequest; class GetJobUnlockCodeRequest; class GetSnowballUsageRequest; class GetSoftwareUpdatesRequest; class ListClusterJobsRequest; class ListClustersRequest; class ListCompatibleImagesRequest; class ListJobsRequest; class UpdateClusterRequest; class UpdateJobRequest; typedef Aws::Utils::Outcome CancelClusterOutcome; typedef Aws::Utils::Outcome CancelJobOutcome; typedef Aws::Utils::Outcome CreateAddressOutcome; typedef Aws::Utils::Outcome CreateClusterOutcome; typedef Aws::Utils::Outcome CreateJobOutcome; typedef Aws::Utils::Outcome DescribeAddressOutcome; typedef Aws::Utils::Outcome DescribeAddressesOutcome; typedef Aws::Utils::Outcome DescribeClusterOutcome; typedef Aws::Utils::Outcome DescribeJobOutcome; typedef Aws::Utils::Outcome GetJobManifestOutcome; typedef Aws::Utils::Outcome GetJobUnlockCodeOutcome; typedef Aws::Utils::Outcome GetSnowballUsageOutcome; typedef Aws::Utils::Outcome GetSoftwareUpdatesOutcome; typedef Aws::Utils::Outcome ListClusterJobsOutcome; typedef Aws::Utils::Outcome ListClustersOutcome; typedef Aws::Utils::Outcome ListCompatibleImagesOutcome; typedef Aws::Utils::Outcome ListJobsOutcome; typedef Aws::Utils::Outcome UpdateClusterOutcome; typedef Aws::Utils::Outcome UpdateJobOutcome; typedef std::future CancelClusterOutcomeCallable; typedef std::future CancelJobOutcomeCallable; typedef std::future CreateAddressOutcomeCallable; typedef std::future CreateClusterOutcomeCallable; typedef std::future CreateJobOutcomeCallable; typedef std::future DescribeAddressOutcomeCallable; typedef std::future DescribeAddressesOutcomeCallable; typedef std::future DescribeClusterOutcomeCallable; typedef std::future DescribeJobOutcomeCallable; typedef std::future GetJobManifestOutcomeCallable; typedef std::future GetJobUnlockCodeOutcomeCallable; typedef std::future GetSnowballUsageOutcomeCallable; typedef std::future GetSoftwareUpdatesOutcomeCallable; typedef std::future ListClusterJobsOutcomeCallable; typedef std::future ListClustersOutcomeCallable; typedef std::future ListCompatibleImagesOutcomeCallable; typedef std::future ListJobsOutcomeCallable; typedef std::future UpdateClusterOutcomeCallable; typedef std::future UpdateJobOutcomeCallable; } // namespace Model class SnowballClient; typedef std::function&) > CancelClusterResponseReceivedHandler; typedef std::function&) > CancelJobResponseReceivedHandler; typedef std::function&) > CreateAddressResponseReceivedHandler; typedef std::function&) > CreateClusterResponseReceivedHandler; typedef std::function&) > CreateJobResponseReceivedHandler; typedef std::function&) > DescribeAddressResponseReceivedHandler; typedef std::function&) > DescribeAddressesResponseReceivedHandler; typedef std::function&) > DescribeClusterResponseReceivedHandler; typedef std::function&) > DescribeJobResponseReceivedHandler; typedef std::function&) > GetJobManifestResponseReceivedHandler; typedef std::function&) > GetJobUnlockCodeResponseReceivedHandler; typedef std::function&) > GetSnowballUsageResponseReceivedHandler; typedef std::function&) > GetSoftwareUpdatesResponseReceivedHandler; typedef std::function&) > ListClusterJobsResponseReceivedHandler; typedef std::function&) > ListClustersResponseReceivedHandler; typedef std::function&) > ListCompatibleImagesResponseReceivedHandler; typedef std::function&) > ListJobsResponseReceivedHandler; typedef std::function&) > UpdateClusterResponseReceivedHandler; typedef std::function&) > UpdateJobResponseReceivedHandler; /** *

AWS Snowball is 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 Snowball commands described * here provide access to the same functionality that is available in the AWS * Snowball Management Console, which enables you to create and manage jobs for * Snowball. To transfer data locally with a Snowball device, you'll need to use * the Snowball client or the Amazon S3 API adapter for Snowball. For more * information, see the User * Guide.

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

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

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

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

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

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

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

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

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

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

Creates an address for a Snowball 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; /** *

Creates an address for a Snowball 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

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

Creates an address for a Snowball 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

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

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

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

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

* * 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 job to import or export data between Amazon S3 and your on-premises * data center. Your AWS account must have the right trust policies and permissions * in place to create a job for Snowball. 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.

See Also:

AWS * API Reference

*/ virtual Model::CreateJobOutcome CreateJob(const Model::CreateJobRequest& request) const; /** *

Creates a job to import or export data between Amazon S3 and your on-premises * data center. Your AWS account must have the right trust policies and permissions * in place to create a job for Snowball. 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.

See Also:

AWS * API Reference

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

Creates a job to import or export data between Amazon S3 and your on-premises * data center. Your AWS account must have the right trust policies and permissions * in place to create a job for Snowball. 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.

See Also:

AWS * API Reference

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

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

Takes an AddressId and returns specific details about that * address in the form of an Address object.

See Also:

* AWS * API Reference

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

Takes an AddressId and returns specific details about that * address in the form of an Address object.

See Also:

* AWS * API Reference

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

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

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

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

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

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

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

Returns information about a specific cluster including shipping information, * cluster status, and other important metadata.

See Also:

AWS * API Reference

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

Returns information about a specific cluster including shipping information, * cluster status, and other important metadata.

See Also:

AWS * API Reference

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

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

Returns information about a specific job including shipping information, job * status, and other important metadata.

See Also:

AWS * API Reference

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

Returns information about a specific job including shipping information, job * status, and other important metadata.

See Also:

AWS * API Reference

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

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. The manifest is decrypted by using the UnlockCode code * value, when you pass both values to the Snowball 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 Snowball associated with * that job.

The credentials of a given job, including its manifest file and * unlock code, expire 90 days after the job is created.

See Also:

* AWS * API Reference

*/ virtual Model::GetJobManifestOutcome GetJobManifest(const Model::GetJobManifestRequest& request) const; /** *

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. The manifest is decrypted by using the UnlockCode code * value, when you pass both values to the Snowball 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 Snowball associated with * that job.

The credentials of a given job, including its manifest file and * unlock code, expire 90 days after the job is created.

See Also:

* AWS * API Reference

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

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. The manifest is decrypted by using the UnlockCode code * value, when you pass both values to the Snowball 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 Snowball associated with * that job.

The credentials of a given job, including its manifest file and * unlock code, expire 90 days after the job is created.

See Also:

* AWS * API Reference

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

Returns the UnlockCode code value for the specified job. A * particular UnlockCode value can be accessed for up to 90 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 Snowball 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 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 Snowball associated with that job.

See * Also:

AWS * API Reference

*/ virtual Model::GetJobUnlockCodeOutcome GetJobUnlockCode(const Model::GetJobUnlockCodeRequest& request) const; /** *

Returns the UnlockCode code value for the specified job. A * particular UnlockCode value can be accessed for up to 90 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 Snowball 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 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 Snowball associated with that job.

See * Also:

AWS * API Reference

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

Returns the UnlockCode code value for the specified job. A * particular UnlockCode value can be accessed for up to 90 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 Snowball 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 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 Snowball associated with that job.

See * Also:

AWS * API Reference

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

Returns information about the Snowball service limit for your account, and * also the number of Snowballs your account has in use.

The default service * limit for the number of Snowballs that you can have at one time is 1. If you * want to increase your service limit, contact AWS Support.

See * Also:

AWS * API Reference

*/ virtual Model::GetSnowballUsageOutcome GetSnowballUsage(const Model::GetSnowballUsageRequest& request) const; /** *

Returns information about the Snowball service limit for your account, and * also the number of Snowballs your account has in use.

The default service * limit for the number of Snowballs that you can have at one time is 1. If you * want to increase your service limit, contact AWS Support.

See * Also:

AWS * API Reference

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

Returns information about the Snowball service limit for your account, and * also the number of Snowballs your account has in use.

The default service * limit for the number of Snowballs that you can have at one time is 1. If you * want to increase your service limit, contact AWS Support.

See * Also:

AWS * API Reference

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

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

Returns an Amazon S3 presigned URL for an update file associated with a * specified JobId.

See Also:

AWS * API Reference

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

Returns an Amazon S3 presigned URL for an update file associated with a * specified JobId.

See Also:

AWS * API Reference

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

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

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

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

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

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

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

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

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

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

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

This action returns a list of the different Amazon EC2 Amazon Machine Images * (AMIs) that are owned by your AWS account that would be supported for use on a * Snowball Edge device. Currently, supported AMIs are based on the CentOS 7 * (x86_64) - with Updates HVM, Ubuntu Server 14.04 LTS (HVM), and Ubuntu 16.04 LTS * - Xenial (HVM) images, available on the AWS Marketplace.

See * Also:

AWS * API Reference

*/ virtual Model::ListCompatibleImagesOutcome ListCompatibleImages(const Model::ListCompatibleImagesRequest& request) const; /** *

This action returns a list of the different Amazon EC2 Amazon Machine Images * (AMIs) that are owned by your AWS account that would be supported for use on a * Snowball Edge device. Currently, supported AMIs are based on the CentOS 7 * (x86_64) - with Updates HVM, Ubuntu Server 14.04 LTS (HVM), and Ubuntu 16.04 LTS * - Xenial (HVM) images, available on the AWS Marketplace.

See * Also:

AWS * API Reference

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

This action returns a list of the different Amazon EC2 Amazon Machine Images * (AMIs) that are owned by your AWS account that would be supported for use on a * Snowball Edge device. Currently, supported AMIs are based on the CentOS 7 * (x86_64) - with Updates HVM, Ubuntu Server 14.04 LTS (HVM), and Ubuntu 16.04 LTS * - Xenial (HVM) images, available on the AWS Marketplace.

See * Also:

AWS * API Reference

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateJobAsync(const Model::UpdateJobRequest& request, const UpdateJobResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void CancelClusterAsyncHelper(const Model::CancelClusterRequest& request, const CancelClusterResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CancelJobAsyncHelper(const Model::CancelJobRequest& request, const CancelJobResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateAddressAsyncHelper(const Model::CreateAddressRequest& request, const CreateAddressResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateClusterAsyncHelper(const Model::CreateClusterRequest& request, const CreateClusterResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateJobAsyncHelper(const Model::CreateJobRequest& request, const CreateJobResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeAddressAsyncHelper(const Model::DescribeAddressRequest& request, const DescribeAddressResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeAddressesAsyncHelper(const Model::DescribeAddressesRequest& request, const DescribeAddressesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeClusterAsyncHelper(const Model::DescribeClusterRequest& request, const DescribeClusterResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeJobAsyncHelper(const Model::DescribeJobRequest& request, const DescribeJobResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetJobManifestAsyncHelper(const Model::GetJobManifestRequest& request, const GetJobManifestResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetJobUnlockCodeAsyncHelper(const Model::GetJobUnlockCodeRequest& request, const GetJobUnlockCodeResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetSnowballUsageAsyncHelper(const Model::GetSnowballUsageRequest& request, const GetSnowballUsageResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetSoftwareUpdatesAsyncHelper(const Model::GetSoftwareUpdatesRequest& request, const GetSoftwareUpdatesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListClusterJobsAsyncHelper(const Model::ListClusterJobsRequest& request, const ListClusterJobsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListClustersAsyncHelper(const Model::ListClustersRequest& request, const ListClustersResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListCompatibleImagesAsyncHelper(const Model::ListCompatibleImagesRequest& request, const ListCompatibleImagesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListJobsAsyncHelper(const Model::ListJobsRequest& request, const ListJobsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateClusterAsyncHelper(const Model::UpdateClusterRequest& request, const UpdateClusterResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateJobAsyncHelper(const Model::UpdateJobRequest& request, const UpdateJobResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace Snowball } // namespace Aws