Snowball
Service object for interacting with AWS Snowball service.
public struct Snowball: AWSService
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
AWSService
Initializers
init(client:region:partition:endpoint:timeout:byteBufferAllocator:options:)
Initialize the Snowball client
public init(
client: AWSClient,
region: SotoCore.Region? = nil,
partition: AWSPartition = .aws,
endpoint: String? = nil,
timeout: TimeAmount? = nil,
byteBufferAllocator: ByteBufferAllocator = ByteBufferAllocator(),
options: AWSServiceConfig.Options = []
)
Parameters
- client: AWSClient used to process requests
- region: Region of server you want to communicate with. This will override the partition parameter.
- partition: AWS partition where service resides, standard (.aws), china (.awscn), government (.awsusgov).
- endpoint: Custom endpoint URL to use instead of standard AWS servers
- timeout: Timeout value for HTTP requests
init(from:patch:)
Initializer required by AWSService.with(middlewares:timeout:byteBufferAllocator:options)
. You are not able to use this initializer directly as there are no public initializers for AWSServiceConfig.Patch
. Please use AWSService.with(middlewares:timeout:byteBufferAllocator:options)
instead.
public init(from: Snowball, patch: AWSServiceConfig.Patch)
Properties
client
Client used for communication with AWS
public let client: AWSClient
config
Service configuration
public let config: AWSServiceConfig
Methods
cancelCluster(_:logger:on:)
public func cancelCluster(_ input: CancelClusterRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<CancelClusterResult>
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.
cancelJob(_:logger:on:)
public func cancelJob(_ input: CancelJobRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<CancelJobResult>
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.
createAddress(_:logger:on:)
public func createAddress(_ input: CreateAddressRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<CreateAddressResult>
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.
createCluster(_:logger:on:)
public func createCluster(_ input: CreateClusterRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<CreateClusterResult>
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.
createJob(_:logger:on:)
public func createJob(_ input: CreateJobRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<CreateJobResult>
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.
-
Snow Family device type: SNC1_SSD
-
Capacity: T14
-
Description: Snowcone
-
-
Snow Family 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
-
-
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.
-
createLongTermPricing(_:logger:on:)
public func createLongTermPricing(_ input: CreateLongTermPricingRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<CreateLongTermPricingResult>
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.
createReturnShippingLabel(_:logger:on:)
public func createReturnShippingLabel(_ input: CreateReturnShippingLabelRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<CreateReturnShippingLabelResult>
Creates a shipping label that will be used to return the Snow device to Amazon Web Services.
describeAddress(_:logger:on:)
public func describeAddress(_ input: DescribeAddressRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<DescribeAddressResult>
Takes an AddressId
and returns specific details about that address in the
form of an Address
object.
describeAddresses(_:logger:on:)
public func describeAddresses(_ input: DescribeAddressesRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<DescribeAddressesResult>
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.
describeCluster(_:logger:on:)
public func describeCluster(_ input: DescribeClusterRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<DescribeClusterResult>
Returns information about a specific cluster including shipping information, cluster status, and other important metadata.
describeJob(_:logger:on:)
public func describeJob(_ input: DescribeJobRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<DescribeJobResult>
Returns information about a specific job including shipping information, job status, and other important metadata.
describeReturnShippingLabel(_:logger:on:)
public func describeReturnShippingLabel(_ input: DescribeReturnShippingLabelRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<DescribeReturnShippingLabelResult>
Information on the shipping label of a Snow device that is being returned to Amazon Web Services.
getJobManifest(_:logger:on:)
public func getJobManifest(_ input: GetJobManifestRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<GetJobManifestResult>
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 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.
getJobUnlockCode(_:logger:on:)
public func getJobUnlockCode(_ input: GetJobUnlockCodeRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<GetJobUnlockCodeResult>
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.
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.
getSnowballUsage(_:logger:on:)
public func getSnowballUsage(_ input: GetSnowballUsageRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<GetSnowballUsageResult>
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.
getSoftwareUpdates(_:logger:on:)
public func getSoftwareUpdates(_ input: GetSoftwareUpdatesRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<GetSoftwareUpdatesResult>
Returns an Amazon S3 presigned URL for an update file associated with a specified
JobId
.
listClusterJobs(_:logger:on:)
public func listClusterJobs(_ input: ListClusterJobsRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<ListClusterJobsResult>
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.
listClusters(_:logger:on:)
public func listClusters(_ input: ListClustersRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<ListClustersResult>
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.
listCompatibleImages(_:logger:on:)
public func listCompatibleImages(_ input: ListCompatibleImagesRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<ListCompatibleImagesResult>
This action returns a list of the different Amazon EC2 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 CentOS 7 (x86_64) - with Updates HVM, Ubuntu Server 14.04 LTS (HVM), and Ubuntu 16.04 LTS - Xenial (HVM) images, available on the Amazon Web Services Marketplace.
listJobs(_:logger:on:)
public func listJobs(_ input: ListJobsRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<ListJobsResult>
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.
listLongTermPricing(_:logger:on:)
public func listLongTermPricing(_ input: ListLongTermPricingRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<ListLongTermPricingResult>
Lists all long-term pricing types.
updateCluster(_:logger:on:)
public func updateCluster(_ input: UpdateClusterRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<UpdateClusterResult>
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.
updateJob(_:logger:on:)
public func updateJob(_ input: UpdateJobRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<UpdateJobResult>
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.
updateJobShipmentState(_:logger:on:)
public func updateJobShipmentState(_ input: UpdateJobShipmentStateRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<UpdateJobShipmentStateResult>
Updates the state when a shipment state changes to a different state.
updateLongTermPricing(_:logger:on:)
public func updateLongTermPricing(_ input: UpdateLongTermPricingRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<UpdateLongTermPricingResult>
Updates the long-term pricing type.
describeAddressesPaginator(_:logger:on:)
compiler(>=5.5.2) && canImport(_Concurrency)
public func describeAddressesPaginator( _ input: DescribeAddressesRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil ) -> AWSClient.PaginatorSequence<DescribeAddressesRequest, DescribeAddressesResult>
Returns a specified number of
Return PaginatorSequence for operation. - Parameters: - input: Input for request - logger: Logger used flot logging - eventLoop: EventLoop to run this process onADDRESS
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.
listJobsPaginator(_:logger:on:)
compiler(>=5.5.2) && canImport(_Concurrency)
public func listJobsPaginator( _ input: ListJobsRequest, logger: Logger = AWSClient.loggingDisabled, on eventLoop: EventLoop? = nil ) -> AWSClient.PaginatorSequence<ListJobsRequest, ListJobsResult>
Returns an array of
Return PaginatorSequence for operation. - Parameters: - input: Input for request - logger: Logger used flot logging - eventLoop: EventLoop to run this process onJobListEntry
objects of the specified length. EachJobListEntry
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.
describeAddressesPaginator(_:_:logger:on:onPage:)
Provide paginated results to closure onPage
for it to combine them into one result. This works in a similar manner to Array.reduce<Result>(_:_:) -> Result
.
public func describeAddressesPaginator<Result>(
_ input: DescribeAddressesRequest,
_ initialValue: Result,
logger: Logger = AWSClient.loggingDisabled,
on eventLoop: EventLoop? = nil,
onPage: @escaping (Result, DescribeAddressesResult, EventLoop) -> EventLoopFuture<(Bool, Result)>
) -> EventLoopFuture<Result>
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.
Parameters:
- input: Input for request
- initialValue: The value to use as the initial accumulating value.
initialValue
is passed toonPage
the first time it is called.
- logger: Logger used flot logging
- eventLoop: EventLoop to run this process on
- onPage: closure called with each paginated response. It combines an accumulating result with the contents of response. This combined result is then returned along with a boolean indicating if the paginate operation should continue.
describeAddressesPaginator(_:logger:on:onPage:)
Provide paginated results to closure onPage
.
public func describeAddressesPaginator(
_ input: DescribeAddressesRequest,
logger: Logger = AWSClient.loggingDisabled,
on eventLoop: EventLoop? = nil,
onPage: @escaping (DescribeAddressesResult, EventLoop) -> EventLoopFuture<Bool>
) -> EventLoopFuture<Void>
Parameters
- input: Input for request
- logger: Logger used flot logging
- eventLoop: EventLoop to run this process on
- onPage: closure called with each block of entries. Returns boolean indicating whether we should continue.
listJobsPaginator(_:_:logger:on:onPage:)
Provide paginated results to closure onPage
for it to combine them into one result. This works in a similar manner to Array.reduce<Result>(_:_:) -> Result
.
public func listJobsPaginator<Result>(
_ input: ListJobsRequest,
_ initialValue: Result,
logger: Logger = AWSClient.loggingDisabled,
on eventLoop: EventLoop? = nil,
onPage: @escaping (Result, ListJobsResult, EventLoop) -> EventLoopFuture<(Bool, Result)>
) -> EventLoopFuture<Result>
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.
Parameters:
- input: Input for request
- initialValue: The value to use as the initial accumulating value.
initialValue
is passed toonPage
the first time it is called.
- logger: Logger used flot logging
- eventLoop: EventLoop to run this process on
- onPage: closure called with each paginated response. It combines an accumulating result with the contents of response. This combined result is then returned along with a boolean indicating if the paginate operation should continue.
listJobsPaginator(_:logger:on:onPage:)
Provide paginated results to closure onPage
.
public func listJobsPaginator(
_ input: ListJobsRequest,
logger: Logger = AWSClient.loggingDisabled,
on eventLoop: EventLoop? = nil,
onPage: @escaping (ListJobsResult, EventLoop) -> EventLoopFuture<Bool>
) -> EventLoopFuture<Void>
Parameters
- input: Input for request
- logger: Logger used flot logging
- eventLoop: EventLoop to run this process on
- onPage: closure called with each block of entries. Returns boolean indicating whether we should continue.