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

  • Device type: * SNC1_SSD

    • Capacity: T14

    • Description: * Snowcone

  • Device type: SNC1_HDD

    *
    • Capacity: T8

    • Description: Snowcone

    • *

  • Device type: EDGE_S

    • Capacity: * T98

    • Description: Snowball Edge Storage Optimized for data * transfer only

  • Device type: EDGE_CG *

    • Capacity: T42

    • Description: Snowball Edge * Compute Optimized with GPU

  • Device type: * EDGE_C

    • Capacity: T42

    • Description: * Snowball Edge Compute Optimized without GPU

  • *

    Device type: EDGE

    • Capacity: T100

    • *

      Description: Snowball Edge Storage Optimized with EC2 Compute

    *

    This device is replaced with T98.

  • *

    Device type: STANDARD

    • Capacity: T50

    • *

      Description: Original Snowball device

      This device is only * available in the Ningxia, Beijing, and Singapore Amazon Web Services Region

      *

  • Device type: STANDARD

      *
    • Capacity: T80

    • Description: Original Snowball * device

      This device is only available in the Ningxia, Beijing, and * Singapore Amazon Web Services Region.

  • *

    Snow Family device type: RACK_5U_C

    • Capacity: T13 *

    • Description: Snowblade.

  • Device * type: V3_5S

    • Capacity: T240

    • *

      Description: Snowball Edge Storage Optimized 210TB

  • *

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