AWS SDK Version 3 for .NET
API Reference

AWS services or capabilities described in AWS Documentation may vary by region/location. Click Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

Implementation for accessing 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.

Inheritance Hierarchy

System.Object
  Amazon.Runtime.AmazonServiceClient
    Amazon.Snowball.AmazonSnowballClient

Namespace: Amazon.Snowball
Assembly: AWSSDK.Snowball.dll
Version: 3.x.y.z

Syntax

C#
public class AmazonSnowballClient : AmazonServiceClient
         IAmazonService, IAmazonSnowball, IDisposable

The AmazonSnowballClient type exposes the following members

Constructors

NameDescription
Public Method AmazonSnowballClient()

Constructs AmazonSnowballClient with the credentials loaded from the application's default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance. Example App.config with credentials set.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <add key="AWSProfileName" value="AWS Default"/>
    </appSettings>
</configuration>
             

Public Method AmazonSnowballClient(RegionEndpoint)

Constructs AmazonSnowballClient with the credentials loaded from the application's default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance. Example App.config with credentials set.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <add key="AWSProfileName" value="AWS Default"/>
    </appSettings>
</configuration>
             

Public Method AmazonSnowballClient(AmazonSnowballConfig)

Constructs AmazonSnowballClient with the credentials loaded from the application's default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance. Example App.config with credentials set.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <appSettings>
        <add key="AWSProfileName" value="AWS Default"/>
    </appSettings>
</configuration>
             

Public Method AmazonSnowballClient(AWSCredentials)

Constructs AmazonSnowballClient with AWS Credentials

Public Method AmazonSnowballClient(AWSCredentials, RegionEndpoint)

Constructs AmazonSnowballClient with AWS Credentials

Public Method AmazonSnowballClient(AWSCredentials, AmazonSnowballConfig)

Constructs AmazonSnowballClient with AWS Credentials and an AmazonSnowballClient Configuration object.

Public Method AmazonSnowballClient(string, string)

Constructs AmazonSnowballClient with AWS Access Key ID and AWS Secret Key

Public Method AmazonSnowballClient(string, string, RegionEndpoint)

Constructs AmazonSnowballClient with AWS Access Key ID and AWS Secret Key

Public Method AmazonSnowballClient(string, string, AmazonSnowballConfig)

Constructs AmazonSnowballClient with AWS Access Key ID, AWS Secret Key and an AmazonSnowballClient Configuration object.

Public Method AmazonSnowballClient(string, string, string)

Constructs AmazonSnowballClient with AWS Access Key ID and AWS Secret Key

Public Method AmazonSnowballClient(string, string, string, RegionEndpoint)

Constructs AmazonSnowballClient with AWS Access Key ID and AWS Secret Key

Public Method AmazonSnowballClient(string, string, string, AmazonSnowballConfig)

Constructs AmazonSnowballClient with AWS Access Key ID, AWS Secret Key and an AmazonSnowballClient Configuration object.

Properties

NameTypeDescription
Public Property Config Amazon.Runtime.IClientConfig Inherited from Amazon.Runtime.AmazonServiceClient.
Public Property Paginators Amazon.Snowball.Model.ISnowballPaginatorFactory

Paginators for the service

Methods

Note:

Asynchronous operations (methods ending with Async) in the table below are for .NET 4.5 or higher. For .NET 3.5 the SDK follows the standard naming convention of BeginMethodName and EndMethodName to indicate asynchronous operations - these method pairs are not shown in the table below.

NameDescription
Public Method CancelCluster(CancelClusterRequest)

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.

Public Method CancelClusterAsync(CancelClusterRequest, CancellationToken)

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.

Public Method CancelJob(CancelJobRequest)

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.

Public Method CancelJobAsync(CancelJobRequest, CancellationToken)

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.

Public Method CreateAddress(CreateAddressRequest)

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. If providing an address as a JSON file through the cli-input-json option, include the full file path. For example, --cli-input-json file://create-address.json.

Public Method CreateAddressAsync(CreateAddressRequest, CancellationToken)

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. If providing an address as a JSON file through the cli-input-json option, include the full file path. For example, --cli-input-json file://create-address.json.

Public Method CreateCluster(CreateClusterRequest)

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.

Public Method CreateClusterAsync(CreateClusterRequest, CancellationToken)

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.

Public Method CreateJob(CreateJobRequest)

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

Public Method CreateJobAsync(CreateJobRequest, CancellationToken)

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

Public Method CreateLongTermPricing(CreateLongTermPricingRequest)

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.

Public Method CreateLongTermPricingAsync(CreateLongTermPricingRequest, CancellationToken)

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.

Public Method CreateReturnShippingLabel(CreateReturnShippingLabelRequest)

Creates a shipping label that will be used to return the Snow device to Amazon Web Services.

Public Method CreateReturnShippingLabelAsync(CreateReturnShippingLabelRequest, CancellationToken)

Creates a shipping label that will be used to return the Snow device to Amazon Web Services.

Public Method DescribeAddress(DescribeAddressRequest)

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

Public Method DescribeAddressAsync(DescribeAddressRequest, CancellationToken)

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

Public Method DescribeAddresses(DescribeAddressesRequest)

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.

Public Method DescribeAddressesAsync(DescribeAddressesRequest, CancellationToken)

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.

Public Method DescribeCluster(DescribeClusterRequest)

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

Public Method DescribeClusterAsync(DescribeClusterRequest, CancellationToken)

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

Public Method DescribeJob(DescribeJobRequest)

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

Public Method DescribeJobAsync(DescribeJobRequest, CancellationToken)

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

Public Method DescribeReturnShippingLabel(DescribeReturnShippingLabelRequest)

Information on the shipping label of a Snow device that is being returned to Amazon Web Services.

Public Method DescribeReturnShippingLabelAsync(DescribeReturnShippingLabelRequest, CancellationToken)

Information on the shipping label of a Snow device that is being returned to Amazon Web Services.

Public Method DetermineServiceOperationEndpoint(AmazonWebServiceRequest)

Returns the endpoint that will be used for a particular request.

Public Method Dispose() Inherited from Amazon.Runtime.AmazonServiceClient.
Public Method GetJobManifest(GetJobManifestRequest)

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.

Public Method GetJobManifestAsync(GetJobManifestRequest, CancellationToken)

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.

Public Method GetJobUnlockCode(GetJobUnlockCodeRequest)

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.

Public Method GetJobUnlockCodeAsync(GetJobUnlockCodeRequest, CancellationToken)

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.

Public Method GetSnowballUsage(GetSnowballUsageRequest)

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.

Public Method GetSnowballUsageAsync(GetSnowballUsageRequest, CancellationToken)

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.

Public Method GetSoftwareUpdates(GetSoftwareUpdatesRequest)

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

Public Method GetSoftwareUpdatesAsync(GetSoftwareUpdatesRequest, CancellationToken)

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

Public Method ListClusterJobs(ListClusterJobsRequest)

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.

Public Method ListClusterJobsAsync(ListClusterJobsRequest, CancellationToken)

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.

Public Method ListClusters(ListClustersRequest)

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.

Public Method ListClustersAsync(ListClustersRequest, CancellationToken)

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.

Public Method ListCompatibleImages(ListCompatibleImagesRequest)

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.

Public Method ListCompatibleImagesAsync(ListCompatibleImagesRequest, CancellationToken)

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.

Public Method ListJobs(ListJobsRequest)

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.

Public Method ListJobsAsync(ListJobsRequest, CancellationToken)

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.

Public Method ListLongTermPricing(ListLongTermPricingRequest)

Lists all long-term pricing types.

Public Method ListLongTermPricingAsync(ListLongTermPricingRequest, CancellationToken)

Lists all long-term pricing types.

Public Method ListPickupLocations(ListPickupLocationsRequest)

A list of locations from which the customer can choose to pickup a device.

Public Method ListPickupLocationsAsync(ListPickupLocationsRequest, CancellationToken)

A list of locations from which the customer can choose to pickup a device.

Public Method ListServiceVersions(ListServiceVersionsRequest)

Lists all supported versions for Snow on-device services. Returns an array of ServiceVersion object containing the supported versions for a particular service.

Public Method ListServiceVersionsAsync(ListServiceVersionsRequest, CancellationToken)

Lists all supported versions for Snow on-device services. Returns an array of ServiceVersion object containing the supported versions for a particular service.

Public Method UpdateCluster(UpdateClusterRequest)

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.

Public Method UpdateClusterAsync(UpdateClusterRequest, CancellationToken)

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.

Public Method UpdateJob(UpdateJobRequest)

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.

Public Method UpdateJobAsync(UpdateJobRequest, CancellationToken)

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.

Public Method UpdateJobShipmentState(UpdateJobShipmentStateRequest)

Updates the state when a shipment state changes to a different state.

Public Method UpdateJobShipmentStateAsync(UpdateJobShipmentStateRequest, CancellationToken)

Updates the state when a shipment state changes to a different state.

Public Method UpdateLongTermPricing(UpdateLongTermPricingRequest)

Updates the long-term pricing type.

Public Method UpdateLongTermPricingAsync(UpdateLongTermPricingRequest, CancellationToken)

Updates the long-term pricing type.

Events

NameDescription
Event AfterResponseEvent Inherited from Amazon.Runtime.AmazonServiceClient.
Event BeforeRequestEvent Inherited from Amazon.Runtime.AmazonServiceClient.
Event ExceptionEvent Inherited from Amazon.Runtime.AmazonServiceClient.

Version Information

.NET Core App:
Supported in: 3.1

.NET Standard:
Supported in: 2.0

.NET Framework:
Supported in: 4.5, 4.0, 3.5