-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Amazon Import/Export Snowball SDK.
--   
--   The types from this library are intended to be used with
--   <a>amazonka</a>, which provides mechanisms for specifying AuthN/AuthZ
--   information, sending requests, and receiving responses.
--   
--   Lenses are used for constructing and manipulating types, due to the
--   depth of nesting of AWS types and transparency regarding
--   de/serialisation into more palatable Haskell values. The provided
--   lenses should be compatible with any of the major lens libraries such
--   as <a>lens</a> or <a>lens-family-core</a>.
--   
--   See <a>Network.AWS.Snowball</a> or <a>the AWS documentation</a> to get
--   started.
@package amazonka-snowball
@version 1.6.0


module Network.AWS.Snowball.Types

-- | API version <tt>2016-06-30</tt> of the Amazon Import/Export Snowball
--   SDK configuration.
snowball :: Service

-- | The specified resource can't be found. Check the information you
--   provided in your last request, and try again.
_InvalidResourceException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The address is either outside the serviceable area for your region, or
--   an error occurred. Check the address with your region's carrier and
--   try again. If the issue persists, contact AWS Support.
_UnsupportedAddressException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The provided AWS Key Management Service key lacks the permissions to
--   perform the specified <tt>CreateJob</tt> or <tt>UpdateJob</tt> action.
_KMSRequestFailedException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The action can't be performed because the job's current state doesn't
--   allow that action to be performed.
_InvalidJobStateException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Job or cluster creation failed. One ore more inputs were invalid.
--   Confirm that the 'CreateClusterRequest$SnowballType' value supports
--   your 'CreateJobRequest$JobType' , and try again.
_InvalidInputCombinationException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The <tt>NextToken</tt> string was altered unexpectedly, and the
--   operation has stopped. Run the operation without changing the
--   <tt>NextToken</tt> string, and try again.
_InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The address provided was invalid. Check the address with your region's
--   carrier, and try again.
_InvalidAddressException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Job creation failed. Currently, clusters support five nodes. If you
--   have less than five nodes for your cluster and you have more nodes to
--   create for this cluster, try again and create jobs until your cluster
--   has exactly five notes.
_ClusterLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
data ClusterState
AwaitingQuorum :: ClusterState
Cancelled :: ClusterState
Complete :: ClusterState
InUse :: ClusterState
Pending :: ClusterState
data JobState
JSCancelled :: JobState
JSComplete :: JobState
JSInProgress :: JobState
JSInTransitToAWS :: JobState
JSInTransitToCustomer :: JobState
JSListing :: JobState
JSNew :: JobState
JSPending :: JobState
JSPreparingAppliance :: JobState
JSPreparingShipment :: JobState
JSWithAWS :: JobState
JSWithCustomer :: JobState
data JobType
Export :: JobType
Import :: JobType
LocalUse :: JobType
data ShippingOption
SOExpress :: ShippingOption
SONextDay :: ShippingOption
SOSecondDay :: ShippingOption
SOStandard :: ShippingOption
data SnowballCapacity
NoPreference :: SnowballCapacity
T100 :: SnowballCapacity
T50 :: SnowballCapacity
T80 :: SnowballCapacity
data SnowballType
Edge :: SnowballType
Standard :: SnowballType

-- | The address that you want the Snowball or Snowballs associated with a
--   specific job to be shipped to. Addresses are validated at the time of
--   creation. The address you provide must be located within the
--   serviceable area of your region. Although no individual elements of
--   the <tt>Address</tt> are required, if the address is invalid or
--   unsupported, then an exception is thrown.
--   
--   <i>See:</i> <a>address</a> smart constructor.
data Address

-- | Creates a value of <a>Address</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aIsRestricted</a> - If the address you are creating is a
--   primary address, then set this option to true. This field is not
--   supported in most regions.</li>
--   <li><a>aStreet3</a> - The third line in a street address that a
--   Snowball is to be delivered to.</li>
--   <li><a>aLandmark</a> - This field is no longer used and the value is
--   ignored.</li>
--   <li><a>aPostalCode</a> - The postal code in an address that a Snowball
--   is to be delivered to.</li>
--   <li><a>aCountry</a> - The country in an address that a Snowball is to
--   be delivered to.</li>
--   <li><a>aStateOrProvince</a> - The state or province in an address that
--   a Snowball is to be delivered to.</li>
--   <li><a>aStreet2</a> - The second line in a street address that a
--   Snowball is to be delivered to.</li>
--   <li><a>aAddressId</a> - The unique ID for an address.</li>
--   <li><a>aCity</a> - The city in an address that a Snowball is to be
--   delivered to.</li>
--   <li><a>aPhoneNumber</a> - The phone number associated with an address
--   that a Snowball is to be delivered to.</li>
--   <li><a>aCompany</a> - The name of the company to receive a Snowball at
--   an address.</li>
--   <li><a>aName</a> - The name of a person to receive a Snowball at an
--   address.</li>
--   <li><a>aPrefectureOrDistrict</a> - This field is no longer used and
--   the value is ignored.</li>
--   <li><a>aStreet1</a> - The first line in a street address that a
--   Snowball is to be delivered to.</li>
--   </ul>
address :: Address

-- | If the address you are creating is a primary address, then set this
--   option to true. This field is not supported in most regions.
aIsRestricted :: Lens' Address (Maybe Bool)

-- | The third line in a street address that a Snowball is to be delivered
--   to.
aStreet3 :: Lens' Address (Maybe Text)

-- | This field is no longer used and the value is ignored.
aLandmark :: Lens' Address (Maybe Text)

-- | The postal code in an address that a Snowball is to be delivered to.
aPostalCode :: Lens' Address (Maybe Text)

-- | The country in an address that a Snowball is to be delivered to.
aCountry :: Lens' Address (Maybe Text)

-- | The state or province in an address that a Snowball is to be delivered
--   to.
aStateOrProvince :: Lens' Address (Maybe Text)

-- | The second line in a street address that a Snowball is to be delivered
--   to.
aStreet2 :: Lens' Address (Maybe Text)

-- | The unique ID for an address.
aAddressId :: Lens' Address (Maybe Text)

-- | The city in an address that a Snowball is to be delivered to.
aCity :: Lens' Address (Maybe Text)

-- | The phone number associated with an address that a Snowball is to be
--   delivered to.
aPhoneNumber :: Lens' Address (Maybe Text)

-- | The name of the company to receive a Snowball at an address.
aCompany :: Lens' Address (Maybe Text)

-- | The name of a person to receive a Snowball at an address.
aName :: Lens' Address (Maybe Text)

-- | This field is no longer used and the value is ignored.
aPrefectureOrDistrict :: Lens' Address (Maybe Text)

-- | The first line in a street address that a Snowball is to be delivered
--   to.
aStreet1 :: Lens' Address (Maybe Text)

-- | Contains a cluster's state, a cluster's ID, and other important
--   information.
--   
--   <i>See:</i> <a>clusterListEntry</a> smart constructor.
data ClusterListEntry

-- | Creates a value of <a>ClusterListEntry</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cleClusterState</a> - The current state of this cluster. For
--   information about the state of a specific node, see
--   'JobListEntry$JobState' .</li>
--   <li><a>cleClusterId</a> - The 39-character ID for the cluster that you
--   want to list, for example
--   <tt>CID123e4567-e89b-12d3-a456-426655440000</tt> .</li>
--   <li><a>cleCreationDate</a> - The creation date for this cluster.</li>
--   <li><a>cleDescription</a> - Defines an optional description of the
--   cluster, for example <tt>Environmental Data Cluster-01</tt> .</li>
--   </ul>
clusterListEntry :: ClusterListEntry

-- | The current state of this cluster. For information about the state of
--   a specific node, see 'JobListEntry$JobState' .
cleClusterState :: Lens' ClusterListEntry (Maybe ClusterState)

-- | The 39-character ID for the cluster that you want to list, for example
--   <tt>CID123e4567-e89b-12d3-a456-426655440000</tt> .
cleClusterId :: Lens' ClusterListEntry (Maybe Text)

-- | The creation date for this cluster.
cleCreationDate :: Lens' ClusterListEntry (Maybe UTCTime)

-- | Defines an optional description of the cluster, for example
--   <tt>Environmental Data Cluster-01</tt> .
cleDescription :: Lens' ClusterListEntry (Maybe Text)

-- | Contains metadata about a specific cluster.
--   
--   <i>See:</i> <a>clusterMetadata</a> smart constructor.
data ClusterMetadata

-- | Creates a value of <a>ClusterMetadata</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cmJobType</a> - The type of job for this cluster. Currently,
--   the only job type supported for clusters is <tt>LOCAL_USE</tt> .</li>
--   <li><a>cmKMSKeyARN</a> - The <tt>KmsKeyARN</tt> Amazon Resource Name
--   (ARN) associated with this cluster. This ARN was created using the
--   <a>CreateKey</a> API action in AWS Key Management Service (AWS
--   KMS).</li>
--   <li><a>cmClusterState</a> - The current status of the cluster.</li>
--   <li><a>cmNotification</a> - The Amazon Simple Notification Service
--   (Amazon SNS) notification settings for this cluster.</li>
--   <li><a>cmForwardingAddressId</a> - The ID of the address that you want
--   a cluster shipped to, after it will be shipped to its primary address.
--   This field is not supported in most regions.</li>
--   <li><a>cmAddressId</a> - The automatically generated ID for a specific
--   address.</li>
--   <li><a>cmSnowballType</a> - The type of AWS Snowball appliance to use
--   for this cluster. Currently, the only supported appliance type for
--   cluster jobs is <tt>EDGE</tt> .</li>
--   <li><a>cmShippingOption</a> - The shipping speed for each node in this
--   cluster. This speed doesn't dictate how soon you'll get each Snowball
--   Edge appliance, rather it represents how quickly each appliance moves
--   to its destination while in transit. Regional shipping speeds are as
--   follows: * In Australia, you have access to express shipping.
--   Typically, appliances shipped express are delivered in about a day. *
--   In the European Union (EU), you have access to express shipping.
--   Typically, Snowball Edges shipped express are delivered in about a
--   day. In addition, most countries in the EU have access to standard
--   shipping, which typically takes less than a week, one way. * In India,
--   Snowball Edges are delivered in one to seven days. * In the US, you
--   have access to one-day shipping and two-day shipping.</li>
--   <li><a>cmResources</a> - The arrays of <a>JobResource</a> objects that
--   can include updated <a>S3Resource</a> objects or <a>LambdaResource</a>
--   objects.</li>
--   <li><a>cmClusterId</a> - The automatically generated ID for a
--   cluster.</li>
--   <li><a>cmCreationDate</a> - The creation date for this cluster.</li>
--   <li><a>cmDescription</a> - The optional description of the
--   cluster.</li>
--   <li><a>cmRoleARN</a> - The role ARN associated with this cluster. This
--   ARN was created using the <a>CreateRole</a> API action in AWS Identity
--   and Access Management (IAM).</li>
--   </ul>
clusterMetadata :: ClusterMetadata

-- | The type of job for this cluster. Currently, the only job type
--   supported for clusters is <tt>LOCAL_USE</tt> .
cmJobType :: Lens' ClusterMetadata (Maybe JobType)

-- | The <tt>KmsKeyARN</tt> Amazon Resource Name (ARN) associated with this
--   cluster. This ARN was created using the <a>CreateKey</a> API action in
--   AWS Key Management Service (AWS KMS).
cmKMSKeyARN :: Lens' ClusterMetadata (Maybe Text)

-- | The current status of the cluster.
cmClusterState :: Lens' ClusterMetadata (Maybe ClusterState)

-- | The Amazon Simple Notification Service (Amazon SNS) notification
--   settings for this cluster.
cmNotification :: Lens' ClusterMetadata (Maybe Notification)

-- | The ID of the address that you want a cluster shipped to, after it
--   will be shipped to its primary address. This field is not supported in
--   most regions.
cmForwardingAddressId :: Lens' ClusterMetadata (Maybe Text)

-- | The automatically generated ID for a specific address.
cmAddressId :: Lens' ClusterMetadata (Maybe Text)

-- | The type of AWS Snowball appliance to use for this cluster. Currently,
--   the only supported appliance type for cluster jobs is <tt>EDGE</tt> .
cmSnowballType :: Lens' ClusterMetadata (Maybe SnowballType)

-- | The shipping speed for each node in this cluster. This speed doesn't
--   dictate how soon you'll get each Snowball Edge appliance, rather it
--   represents how quickly each appliance moves to its destination while
--   in transit. Regional shipping speeds are as follows: * In Australia,
--   you have access to express shipping. Typically, appliances shipped
--   express are delivered in about a day. * In the European Union (EU),
--   you have access to express shipping. Typically, Snowball Edges shipped
--   express are delivered in about a day. In addition, most countries in
--   the EU have access to standard shipping, which typically takes less
--   than a week, one way. * In India, Snowball Edges are delivered in one
--   to seven days. * In the US, you have access to one-day shipping and
--   two-day shipping.
cmShippingOption :: Lens' ClusterMetadata (Maybe ShippingOption)

-- | The arrays of <a>JobResource</a> objects that can include updated
--   <a>S3Resource</a> objects or <a>LambdaResource</a> objects.
cmResources :: Lens' ClusterMetadata (Maybe JobResource)

-- | The automatically generated ID for a cluster.
cmClusterId :: Lens' ClusterMetadata (Maybe Text)

-- | The creation date for this cluster.
cmCreationDate :: Lens' ClusterMetadata (Maybe UTCTime)

-- | The optional description of the cluster.
cmDescription :: Lens' ClusterMetadata (Maybe Text)

-- | The role ARN associated with this cluster. This ARN was created using
--   the <a>CreateRole</a> API action in AWS Identity and Access Management
--   (IAM).
cmRoleARN :: Lens' ClusterMetadata (Maybe Text)

-- | Defines the real-time status of a Snowball's data transfer while the
--   appliance is at AWS. This data is only available while a job has a
--   <tt>JobState</tt> value of <tt>InProgress</tt> , for both import and
--   export jobs.
--   
--   <i>See:</i> <a>dataTransfer</a> smart constructor.
data DataTransfer

-- | Creates a value of <a>DataTransfer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dtTotalObjects</a> - The total number of objects for a transfer
--   between a Snowball and Amazon S3. This value is set to 0 (zero) until
--   all the keys that will be transferred have been listed.</li>
--   <li><a>dtTotalBytes</a> - The total bytes of data for a transfer
--   between a Snowball and Amazon S3. This value is set to 0 (zero) until
--   all the keys that will be transferred have been listed.</li>
--   <li><a>dtObjectsTransferred</a> - The number of objects transferred
--   between a Snowball and Amazon S3.</li>
--   <li><a>dtBytesTransferred</a> - The number of bytes transferred
--   between a Snowball and Amazon S3.</li>
--   </ul>
dataTransfer :: DataTransfer

-- | The total number of objects for a transfer between a Snowball and
--   Amazon S3. This value is set to 0 (zero) until all the keys that will
--   be transferred have been listed.
dtTotalObjects :: Lens' DataTransfer (Maybe Integer)

-- | The total bytes of data for a transfer between a Snowball and Amazon
--   S3. This value is set to 0 (zero) until all the keys that will be
--   transferred have been listed.
dtTotalBytes :: Lens' DataTransfer (Maybe Integer)

-- | The number of objects transferred between a Snowball and Amazon S3.
dtObjectsTransferred :: Lens' DataTransfer (Maybe Integer)

-- | The number of bytes transferred between a Snowball and Amazon S3.
dtBytesTransferred :: Lens' DataTransfer (Maybe Integer)

-- | The container for the 'EventTriggerDefinition$EventResourceARN' .
--   
--   <i>See:</i> <a>eventTriggerDefinition</a> smart constructor.
data EventTriggerDefinition

-- | Creates a value of <a>EventTriggerDefinition</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>etdEventResourceARN</a> - The Amazon Resource Name (ARN) for
--   any local Amazon S3 resource that is an AWS Lambda function's event
--   trigger associated with this job.</li>
--   </ul>
eventTriggerDefinition :: EventTriggerDefinition

-- | The Amazon Resource Name (ARN) for any local Amazon S3 resource that
--   is an AWS Lambda function's event trigger associated with this job.
etdEventResourceARN :: Lens' EventTriggerDefinition (Maybe Text)

-- | Each <tt>JobListEntry</tt> 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 an export job.
--   
--   <i>See:</i> <a>jobListEntry</a> smart constructor.
data JobListEntry

-- | Creates a value of <a>JobListEntry</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jleJobType</a> - The type of job.</li>
--   <li><a>jleJobId</a> - The automatically generated ID for a job, for
--   example <tt>JID123e4567-e89b-12d3-a456-426655440000</tt> .</li>
--   <li><a>jleJobState</a> - The current state of this job.</li>
--   <li><a>jleSnowballType</a> - The type of appliance used with this
--   job.</li>
--   <li><a>jleCreationDate</a> - The creation date for this job.</li>
--   <li><a>jleDescription</a> - The optional description of this specific
--   job, for example <tt>Important Photos 2016-08-11</tt> .</li>
--   <li><a>jleIsMaster</a> - A value that indicates that this job is a
--   master job. A master job represents a successful request to create an
--   export job. Master jobs aren't associated with any Snowballs. Instead,
--   each master job will have at least one job part, and each job part is
--   associated with a Snowball. It might take some time before the job
--   parts associated with a particular master job are listed, because they
--   are created after the master job is created.</li>
--   </ul>
jobListEntry :: JobListEntry

-- | The type of job.
jleJobType :: Lens' JobListEntry (Maybe JobType)

-- | The automatically generated ID for a job, for example
--   <tt>JID123e4567-e89b-12d3-a456-426655440000</tt> .
jleJobId :: Lens' JobListEntry (Maybe Text)

-- | The current state of this job.
jleJobState :: Lens' JobListEntry (Maybe JobState)

-- | The type of appliance used with this job.
jleSnowballType :: Lens' JobListEntry (Maybe SnowballType)

-- | The creation date for this job.
jleCreationDate :: Lens' JobListEntry (Maybe UTCTime)

-- | The optional description of this specific job, for example
--   <tt>Important Photos 2016-08-11</tt> .
jleDescription :: Lens' JobListEntry (Maybe Text)

-- | A value that indicates that this job is a master job. A master job
--   represents a successful request to create an export job. Master jobs
--   aren't associated with any Snowballs. Instead, each master job will
--   have at least one job part, and each job part is associated with a
--   Snowball. It might take some time before the job parts associated with
--   a particular master job are listed, because they are created after the
--   master job is created.
jleIsMaster :: Lens' JobListEntry (Maybe Bool)

-- | Contains job logs. Whenever Snowball is used to import data into or
--   export data out of Amazon S3, you'll have the option of downloading a
--   PDF job report. Job logs are returned as a part of the response syntax
--   of the <tt>DescribeJob</tt> action in the <tt>JobMetadata</tt> data
--   type. The job logs can be accessed for up to 60 minutes after this
--   request has been made. To access any of the job logs after 60 minutes
--   have passed, you'll have to make another call to the
--   <tt>DescribeJob</tt> action.
--   
--   For import jobs, the PDF job report becomes available at the end of
--   the import process. For export jobs, your job report typically becomes
--   available while the Snowball for your job part is being delivered to
--   you.
--   
--   The job report provides you insight into the state of your Amazon S3
--   data transfer. The report includes details about your job or job part
--   for your records.
--   
--   For deeper visibility into the status of your transferred objects, you
--   can look at the two associated logs: a success log and a failure log.
--   The logs are saved in comma-separated value (CSV) format, and the name
--   of each log includes the ID of the job or job part that the log
--   describes.
--   
--   <i>See:</i> <a>jobLogs</a> smart constructor.
data JobLogs

-- | Creates a value of <a>JobLogs</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jlJobFailureLogURI</a> - A link to an Amazon S3 presigned URL
--   where the job failure log is located.</li>
--   <li><a>jlJobCompletionReportURI</a> - A link to an Amazon S3 presigned
--   URL where the job completion report is located.</li>
--   <li><a>jlJobSuccessLogURI</a> - A link to an Amazon S3 presigned URL
--   where the job success log is located.</li>
--   </ul>
jobLogs :: JobLogs

-- | A link to an Amazon S3 presigned URL where the job failure log is
--   located.
jlJobFailureLogURI :: Lens' JobLogs (Maybe Text)

-- | A link to an Amazon S3 presigned URL where the job completion report
--   is located.
jlJobCompletionReportURI :: Lens' JobLogs (Maybe Text)

-- | A link to an Amazon S3 presigned URL where the job success log is
--   located.
jlJobSuccessLogURI :: Lens' JobLogs (Maybe Text)

-- | Contains information about a specific job including shipping
--   information, job status, and other important metadata. This
--   information is returned as a part of the response syntax of the
--   <tt>DescribeJob</tt> action.
--   
--   <i>See:</i> <a>jobMetadata</a> smart constructor.
data JobMetadata

-- | Creates a value of <a>JobMetadata</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jmJobType</a> - The type of job.</li>
--   <li><a>jmKMSKeyARN</a> - The Amazon Resource Name (ARN) for the AWS
--   Key Management Service (AWS KMS) key associated with this job. This
--   ARN was created using the <a>CreateKey</a> API action in AWS KMS.</li>
--   <li><a>jmJobId</a> - The automatically generated ID for a job, for
--   example <tt>JID123e4567-e89b-12d3-a456-426655440000</tt> .</li>
--   <li><a>jmJobLogInfo</a> - Links to Amazon S3 presigned URLs for the
--   job report and logs. For import jobs, the PDF job report becomes
--   available at the end of the import process. For export jobs, your job
--   report typically becomes available while the Snowball for your job
--   part is being delivered to you.</li>
--   <li><a>jmNotification</a> - The Amazon Simple Notification Service
--   (Amazon SNS) notification settings associated with a specific job. The
--   <tt>Notification</tt> object is returned as a part of the response
--   syntax of the <tt>DescribeJob</tt> action in the <tt>JobMetadata</tt>
--   data type.</li>
--   <li><a>jmJobState</a> - The current status of the jobs.</li>
--   <li><a>jmForwardingAddressId</a> - The ID of the address that you want
--   a job shipped to, after it will be shipped to its primary address.
--   This field is not supported in most regions.</li>
--   <li><a>jmShippingDetails</a> - A job's shipping information, including
--   inbound and outbound tracking numbers and shipping speed options.</li>
--   <li><a>jmAddressId</a> - The ID for the address that you want the
--   Snowball shipped to.</li>
--   <li><a>jmSnowballType</a> - The type of appliance used with this
--   job.</li>
--   <li><a>jmDataTransferProgress</a> - A value that defines the real-time
--   status of a Snowball's data transfer while the appliance is at AWS.
--   This data is only available while a job has a <tt>JobState</tt> value
--   of <tt>InProgress</tt> , for both import and export jobs.</li>
--   <li><a>jmResources</a> - An array of <tt>S3Resource</tt> objects. Each
--   <tt>S3Resource</tt> object represents an Amazon S3 bucket that your
--   transferred data will be exported from or imported into.</li>
--   <li><a>jmClusterId</a> - The 39-character ID for the cluster, for
--   example <tt>CID123e4567-e89b-12d3-a456-426655440000</tt> .</li>
--   <li><a>jmCreationDate</a> - The creation date for this job.</li>
--   <li><a>jmDescription</a> - The description of the job, provided at job
--   creation.</li>
--   <li><a>jmRoleARN</a> - The role ARN associated with this job. This ARN
--   was created using the <a>CreateRole</a> API action in AWS Identity and
--   Access Management (IAM).</li>
--   <li><a>jmSnowballCapacityPreference</a> - The Snowball capacity
--   preference for this job, specified at job creation. In US regions, you
--   can choose between 50 TB and 80 TB Snowballs. All other regions use 80
--   TB capacity Snowballs.</li>
--   </ul>
jobMetadata :: JobMetadata

-- | The type of job.
jmJobType :: Lens' JobMetadata (Maybe JobType)

-- | The Amazon Resource Name (ARN) for the AWS Key Management Service (AWS
--   KMS) key associated with this job. This ARN was created using the
--   <a>CreateKey</a> API action in AWS KMS.
jmKMSKeyARN :: Lens' JobMetadata (Maybe Text)

-- | The automatically generated ID for a job, for example
--   <tt>JID123e4567-e89b-12d3-a456-426655440000</tt> .
jmJobId :: Lens' JobMetadata (Maybe Text)

-- | Links to Amazon S3 presigned URLs for the job report and logs. For
--   import jobs, the PDF job report becomes available at the end of the
--   import process. For export jobs, your job report typically becomes
--   available while the Snowball for your job part is being delivered to
--   you.
jmJobLogInfo :: Lens' JobMetadata (Maybe JobLogs)

-- | The Amazon Simple Notification Service (Amazon SNS) notification
--   settings associated with a specific job. The <tt>Notification</tt>
--   object is returned as a part of the response syntax of the
--   <tt>DescribeJob</tt> action in the <tt>JobMetadata</tt> data type.
jmNotification :: Lens' JobMetadata (Maybe Notification)

-- | The current status of the jobs.
jmJobState :: Lens' JobMetadata (Maybe JobState)

-- | The ID of the address that you want a job shipped to, after it will be
--   shipped to its primary address. This field is not supported in most
--   regions.
jmForwardingAddressId :: Lens' JobMetadata (Maybe Text)

-- | A job's shipping information, including inbound and outbound tracking
--   numbers and shipping speed options.
jmShippingDetails :: Lens' JobMetadata (Maybe ShippingDetails)

-- | The ID for the address that you want the Snowball shipped to.
jmAddressId :: Lens' JobMetadata (Maybe Text)

-- | The type of appliance used with this job.
jmSnowballType :: Lens' JobMetadata (Maybe SnowballType)

-- | A value that defines the real-time status of a Snowball's data
--   transfer while the appliance is at AWS. This data is only available
--   while a job has a <tt>JobState</tt> value of <tt>InProgress</tt> , for
--   both import and export jobs.
jmDataTransferProgress :: Lens' JobMetadata (Maybe DataTransfer)

-- | An array of <tt>S3Resource</tt> objects. Each <tt>S3Resource</tt>
--   object represents an Amazon S3 bucket that your transferred data will
--   be exported from or imported into.
jmResources :: Lens' JobMetadata (Maybe JobResource)

-- | The 39-character ID for the cluster, for example
--   <tt>CID123e4567-e89b-12d3-a456-426655440000</tt> .
jmClusterId :: Lens' JobMetadata (Maybe Text)

-- | The creation date for this job.
jmCreationDate :: Lens' JobMetadata (Maybe UTCTime)

-- | The description of the job, provided at job creation.
jmDescription :: Lens' JobMetadata (Maybe Text)

-- | The role ARN associated with this job. This ARN was created using the
--   <a>CreateRole</a> API action in AWS Identity and Access Management
--   (IAM).
jmRoleARN :: Lens' JobMetadata (Maybe Text)

-- | The Snowball capacity preference for this job, specified at job
--   creation. In US regions, you can choose between 50 TB and 80 TB
--   Snowballs. All other regions use 80 TB capacity Snowballs.
jmSnowballCapacityPreference :: Lens' JobMetadata (Maybe SnowballCapacity)

-- | Contains an array of <tt>S3Resource</tt> objects. Each
--   <tt>S3Resource</tt> object represents an Amazon S3 bucket that your
--   transferred data will be exported from or imported into.
--   
--   <i>See:</i> <a>jobResource</a> smart constructor.
data JobResource

-- | Creates a value of <a>JobResource</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jrLambdaResources</a> - The Python-language Lambda functions
--   for this job.</li>
--   <li><a>jrS3Resources</a> - An array of <tt>S3Resource</tt>
--   objects.</li>
--   </ul>
jobResource :: JobResource

-- | The Python-language Lambda functions for this job.
jrLambdaResources :: Lens' JobResource [LambdaResource]

-- | An array of <tt>S3Resource</tt> objects.
jrS3Resources :: Lens' JobResource [S3Resource]

-- | Contains a key range. For export jobs, a <tt>S3Resource</tt> object
--   can have an optional <tt>KeyRange</tt> value. The length of the range
--   is defined at job creation, and has either an inclusive
--   <tt>BeginMarker</tt> , an inclusive <tt>EndMarker</tt> , or both.
--   Ranges are UTF-8 binary sorted.
--   
--   <i>See:</i> <a>keyRange</a> smart constructor.
data KeyRange

-- | Creates a value of <a>KeyRange</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>krEndMarker</a> - The key that ends an optional key range for
--   an export job. Ranges are inclusive and UTF-8 binary sorted.</li>
--   <li><a>krBeginMarker</a> - The key that starts an optional key range
--   for an export job. Ranges are inclusive and UTF-8 binary sorted.</li>
--   </ul>
keyRange :: KeyRange

-- | The key that ends an optional key range for an export job. Ranges are
--   inclusive and UTF-8 binary sorted.
krEndMarker :: Lens' KeyRange (Maybe Text)

-- | The key that starts an optional key range for an export job. Ranges
--   are inclusive and UTF-8 binary sorted.
krBeginMarker :: Lens' KeyRange (Maybe Text)

-- | Identifies
--   
--   <i>See:</i> <a>lambdaResource</a> smart constructor.
data LambdaResource

-- | Creates a value of <a>LambdaResource</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lrEventTriggers</a> - The array of ARNs for <a>S3Resource</a>
--   objects to trigger the <a>LambdaResource</a> objects associated with
--   this job.</li>
--   <li><a>lrLambdaARN</a> - An Amazon Resource Name (ARN) that represents
--   an AWS Lambda function to be triggered by PUT object actions on the
--   associated local Amazon S3 resource.</li>
--   </ul>
lambdaResource :: LambdaResource

-- | The array of ARNs for <a>S3Resource</a> objects to trigger the
--   <a>LambdaResource</a> objects associated with this job.
lrEventTriggers :: Lens' LambdaResource [EventTriggerDefinition]

-- | An Amazon Resource Name (ARN) that represents an AWS Lambda function
--   to be triggered by PUT object actions on the associated local Amazon
--   S3 resource.
lrLambdaARN :: Lens' LambdaResource (Maybe Text)

-- | The Amazon Simple Notification Service (Amazon SNS) notification
--   settings associated with a specific job. The <tt>Notification</tt>
--   object is returned as a part of the response syntax of the
--   <tt>DescribeJob</tt> action in the <tt>JobMetadata</tt> data type.
--   
--   When the notification settings are defined during job creation, you
--   can choose to notify based on a specific set of job states using the
--   <tt>JobStatesToNotify</tt> array of strings, or you can specify that
--   you want to have Amazon SNS notifications sent out for all job states
--   with <tt>NotifyAll</tt> set to true.
--   
--   <i>See:</i> <a>notification</a> smart constructor.
data Notification

-- | Creates a value of <a>Notification</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nNotifyAll</a> - Any change in job state will trigger a
--   notification for this job.</li>
--   <li><a>nSNSTopicARN</a> - The new SNS <tt>TopicArn</tt> that you want
--   to associate with this job. You can create Amazon Resource Names
--   (ARNs) for topics by using the <a>CreateTopic</a> Amazon SNS API
--   action. You can subscribe email addresses to an Amazon SNS topic
--   through the AWS Management Console, or by using the <a>Subscribe</a>
--   AWS Simple Notification Service (SNS) API action.</li>
--   <li><a>nJobStatesToNotify</a> - The list of job states that will
--   trigger a notification for this job.</li>
--   </ul>
notification :: Notification

-- | Any change in job state will trigger a notification for this job.
nNotifyAll :: Lens' Notification (Maybe Bool)

-- | The new SNS <tt>TopicArn</tt> that you want to associate with this
--   job. You can create Amazon Resource Names (ARNs) for topics by using
--   the <a>CreateTopic</a> Amazon SNS API action. You can subscribe email
--   addresses to an Amazon SNS topic through the AWS Management Console,
--   or by using the <a>Subscribe</a> AWS Simple Notification Service (SNS)
--   API action.
nSNSTopicARN :: Lens' Notification (Maybe Text)

-- | The list of job states that will trigger a notification for this job.
nJobStatesToNotify :: Lens' Notification [JobState]

-- | Each <tt>S3Resource</tt> object represents an Amazon S3 bucket that
--   your transferred data will be exported from or imported into. For
--   export jobs, this object can have an optional <tt>KeyRange</tt> value.
--   The length of the range is defined at job creation, and has either an
--   inclusive <tt>BeginMarker</tt> , an inclusive <tt>EndMarker</tt> , or
--   both. Ranges are UTF-8 binary sorted.
--   
--   <i>See:</i> <a>s3Resource</a> smart constructor.
data S3Resource

-- | Creates a value of <a>S3Resource</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>srKeyRange</a> - For export jobs, you can provide an optional
--   <tt>KeyRange</tt> within a specific Amazon S3 bucket. The length of
--   the range is defined at job creation, and has either an inclusive
--   <tt>BeginMarker</tt> , an inclusive <tt>EndMarker</tt> , or both.
--   Ranges are UTF-8 binary sorted.</li>
--   <li><a>srBucketARN</a> - The Amazon Resource Name (ARN) of an Amazon
--   S3 bucket.</li>
--   </ul>
s3Resource :: S3Resource

-- | For export jobs, you can provide an optional <tt>KeyRange</tt> within
--   a specific Amazon S3 bucket. The length of the range is defined at job
--   creation, and has either an inclusive <tt>BeginMarker</tt> , an
--   inclusive <tt>EndMarker</tt> , or both. Ranges are UTF-8 binary
--   sorted.
srKeyRange :: Lens' S3Resource (Maybe KeyRange)

-- | The Amazon Resource Name (ARN) of an Amazon S3 bucket.
srBucketARN :: Lens' S3Resource (Maybe Text)

-- | The <tt>Status</tt> and <tt>TrackingNumber</tt> information for an
--   inbound or outbound shipment.
--   
--   <i>See:</i> <a>shipment</a> smart constructor.
data Shipment

-- | Creates a value of <a>Shipment</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sStatus</a> - Status information for a shipment.</li>
--   <li><a>sTrackingNumber</a> - The tracking number for this job. Using
--   this tracking number with your region's carrier's website, you can
--   track a Snowball as the carrier transports it. For India, the carrier
--   is Amazon Logistics. For all other regions, UPS is the carrier.</li>
--   </ul>
shipment :: Shipment

-- | Status information for a shipment.
sStatus :: Lens' Shipment (Maybe Text)

-- | The tracking number for this job. Using this tracking number with your
--   region's carrier's website, you can track a Snowball as the carrier
--   transports it. For India, the carrier is Amazon Logistics. For all
--   other regions, UPS is the carrier.
sTrackingNumber :: Lens' Shipment (Maybe Text)

-- | A job's shipping information, including inbound and outbound tracking
--   numbers and shipping speed options.
--   
--   <i>See:</i> <a>shippingDetails</a> smart constructor.
data ShippingDetails

-- | Creates a value of <a>ShippingDetails</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdShippingOption</a> - The shipping speed for a particular job.
--   This speed doesn't dictate how soon you'll get the Snowball from the
--   job's creation date. This speed represents how quickly it moves to its
--   destination while in transit. Regional shipping speeds are as follows:
--   * In Australia, you have access to express shipping. Typically,
--   Snowballs shipped express are delivered in about a day. * In the
--   European Union (EU), you have access to express shipping. Typically,
--   Snowballs shipped express are delivered in about a day. In addition,
--   most countries in the EU have access to standard shipping, which
--   typically takes less than a week, one way. * In India, Snowballs are
--   delivered in one to seven days. * In the United States of America
--   (US), you have access to one-day shipping and two-day shipping.</li>
--   <li><a>sdOutboundShipment</a> - The <tt>Status</tt> and
--   <tt>TrackingNumber</tt> values for a Snowball being delivered to the
--   address that you specified for a particular job.</li>
--   <li><a>sdInboundShipment</a> - The <tt>Status</tt> and
--   <tt>TrackingNumber</tt> values for a Snowball being returned to AWS
--   for a particular job.</li>
--   </ul>
shippingDetails :: ShippingDetails

-- | The shipping speed for a particular job. This speed doesn't dictate
--   how soon you'll get the Snowball from the job's creation date. This
--   speed represents how quickly it moves to its destination while in
--   transit. Regional shipping speeds are as follows: * In Australia, you
--   have access to express shipping. Typically, Snowballs shipped express
--   are delivered in about a day. * In the European Union (EU), you have
--   access to express shipping. Typically, Snowballs shipped express are
--   delivered in about a day. In addition, most countries in the EU have
--   access to standard shipping, which typically takes less than a week,
--   one way. * In India, Snowballs are delivered in one to seven days. *
--   In the United States of America (US), you have access to one-day
--   shipping and two-day shipping.
sdShippingOption :: Lens' ShippingDetails (Maybe ShippingOption)

-- | The <tt>Status</tt> and <tt>TrackingNumber</tt> values for a Snowball
--   being delivered to the address that you specified for a particular
--   job.
sdOutboundShipment :: Lens' ShippingDetails (Maybe Shipment)

-- | The <tt>Status</tt> and <tt>TrackingNumber</tt> values for a Snowball
--   being returned to AWS for a particular job.
sdInboundShipment :: Lens' ShippingDetails (Maybe Shipment)


-- | Returns an array of <tt>JobListEntry</tt> objects of the specified
--   length. Each <tt>JobListEntry</tt> 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.
--   
--   This operation returns paginated results.
module Network.AWS.Snowball.ListJobs

-- | Creates a value of <a>ListJobs</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ljNextToken</a> - HTTP requests are stateless. To identify what
--   object comes "next" in the list of <tt>JobListEntry</tt> objects, you
--   have the option of specifying <tt>NextToken</tt> as the starting point
--   for your returned list.</li>
--   <li><a>ljMaxResults</a> - The number of <tt>JobListEntry</tt> objects
--   to return.</li>
--   </ul>
listJobs :: ListJobs

-- | <i>See:</i> <a>listJobs</a> smart constructor.
data ListJobs

-- | HTTP requests are stateless. To identify what object comes "next" in
--   the list of <tt>JobListEntry</tt> objects, you have the option of
--   specifying <tt>NextToken</tt> as the starting point for your returned
--   list.
ljNextToken :: Lens' ListJobs (Maybe Text)

-- | The number of <tt>JobListEntry</tt> objects to return.
ljMaxResults :: Lens' ListJobs (Maybe Natural)

-- | Creates a value of <a>ListJobsResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ljrsJobListEntries</a> - Each <tt>JobListEntry</tt> 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.</li>
--   <li><a>ljrsNextToken</a> - HTTP requests are stateless. If you use
--   this automatically generated <tt>NextToken</tt> value in your next
--   <tt>ListJobs</tt> call, your returned <tt>JobListEntry</tt> objects
--   will start from this point in the array.</li>
--   <li><a>ljrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listJobsResponse :: Int -> ListJobsResponse

-- | <i>See:</i> <a>listJobsResponse</a> smart constructor.
data ListJobsResponse

-- | Each <tt>JobListEntry</tt> 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.
ljrsJobListEntries :: Lens' ListJobsResponse [JobListEntry]

-- | HTTP requests are stateless. If you use this automatically generated
--   <tt>NextToken</tt> value in your next <tt>ListJobs</tt> call, your
--   returned <tt>JobListEntry</tt> objects will start from this point in
--   the array.
ljrsNextToken :: Lens' ListJobsResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ljrsResponseStatus :: Lens' ListJobsResponse Int
instance GHC.Generics.Generic Network.AWS.Snowball.ListJobs.ListJobsResponse
instance Data.Data.Data Network.AWS.Snowball.ListJobs.ListJobsResponse
instance GHC.Show.Show Network.AWS.Snowball.ListJobs.ListJobsResponse
instance GHC.Read.Read Network.AWS.Snowball.ListJobs.ListJobsResponse
instance GHC.Classes.Eq Network.AWS.Snowball.ListJobs.ListJobsResponse
instance GHC.Generics.Generic Network.AWS.Snowball.ListJobs.ListJobs
instance Data.Data.Data Network.AWS.Snowball.ListJobs.ListJobs
instance GHC.Show.Show Network.AWS.Snowball.ListJobs.ListJobs
instance GHC.Read.Read Network.AWS.Snowball.ListJobs.ListJobs
instance GHC.Classes.Eq Network.AWS.Snowball.ListJobs.ListJobs
instance Network.AWS.Types.AWSRequest Network.AWS.Snowball.ListJobs.ListJobs
instance Control.DeepSeq.NFData Network.AWS.Snowball.ListJobs.ListJobsResponse
instance Network.AWS.Pager.AWSPager Network.AWS.Snowball.ListJobs.ListJobs
instance Data.Hashable.Class.Hashable Network.AWS.Snowball.ListJobs.ListJobs
instance Control.DeepSeq.NFData Network.AWS.Snowball.ListJobs.ListJobs
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Snowball.ListJobs.ListJobs
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Snowball.ListJobs.ListJobs
instance Network.AWS.Data.Path.ToPath Network.AWS.Snowball.ListJobs.ListJobs
instance Network.AWS.Data.Query.ToQuery Network.AWS.Snowball.ListJobs.ListJobs


-- | Returns an array of <tt>ClusterListEntry</tt> objects of the specified
--   length. Each <tt>ClusterListEntry</tt> object contains a cluster's
--   state, a cluster's ID, and other important status information.
module Network.AWS.Snowball.ListClusters

-- | Creates a value of <a>ListClusters</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lcNextToken</a> - HTTP requests are stateless. To identify what
--   object comes "next" in the list of <tt>ClusterListEntry</tt> objects,
--   you have the option of specifying <tt>NextToken</tt> as the starting
--   point for your returned list.</li>
--   <li><a>lcMaxResults</a> - The number of <tt>ClusterListEntry</tt>
--   objects to return.</li>
--   </ul>
listClusters :: ListClusters

-- | <i>See:</i> <a>listClusters</a> smart constructor.
data ListClusters

-- | HTTP requests are stateless. To identify what object comes "next" in
--   the list of <tt>ClusterListEntry</tt> objects, you have the option of
--   specifying <tt>NextToken</tt> as the starting point for your returned
--   list.
lcNextToken :: Lens' ListClusters (Maybe Text)

-- | The number of <tt>ClusterListEntry</tt> objects to return.
lcMaxResults :: Lens' ListClusters (Maybe Natural)

-- | Creates a value of <a>ListClustersResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lcrsClusterListEntries</a> - Each <tt>ClusterListEntry</tt>
--   object contains a cluster's state, a cluster's ID, and other important
--   status information.</li>
--   <li><a>lcrsNextToken</a> - HTTP requests are stateless. If you use the
--   automatically generated <tt>NextToken</tt> value in your next
--   <tt>ClusterListEntry</tt> call, your list of returned clusters will
--   start from this point in the array.</li>
--   <li><a>lcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listClustersResponse :: Int -> ListClustersResponse

-- | <i>See:</i> <a>listClustersResponse</a> smart constructor.
data ListClustersResponse

-- | Each <tt>ClusterListEntry</tt> object contains a cluster's state, a
--   cluster's ID, and other important status information.
lcrsClusterListEntries :: Lens' ListClustersResponse [ClusterListEntry]

-- | HTTP requests are stateless. If you use the automatically generated
--   <tt>NextToken</tt> value in your next <tt>ClusterListEntry</tt> call,
--   your list of returned clusters will start from this point in the
--   array.
lcrsNextToken :: Lens' ListClustersResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
lcrsResponseStatus :: Lens' ListClustersResponse Int
instance GHC.Generics.Generic Network.AWS.Snowball.ListClusters.ListClustersResponse
instance Data.Data.Data Network.AWS.Snowball.ListClusters.ListClustersResponse
instance GHC.Show.Show Network.AWS.Snowball.ListClusters.ListClustersResponse
instance GHC.Read.Read Network.AWS.Snowball.ListClusters.ListClustersResponse
instance GHC.Classes.Eq Network.AWS.Snowball.ListClusters.ListClustersResponse
instance GHC.Generics.Generic Network.AWS.Snowball.ListClusters.ListClusters
instance Data.Data.Data Network.AWS.Snowball.ListClusters.ListClusters
instance GHC.Show.Show Network.AWS.Snowball.ListClusters.ListClusters
instance GHC.Read.Read Network.AWS.Snowball.ListClusters.ListClusters
instance GHC.Classes.Eq Network.AWS.Snowball.ListClusters.ListClusters
instance Network.AWS.Types.AWSRequest Network.AWS.Snowball.ListClusters.ListClusters
instance Control.DeepSeq.NFData Network.AWS.Snowball.ListClusters.ListClustersResponse
instance Data.Hashable.Class.Hashable Network.AWS.Snowball.ListClusters.ListClusters
instance Control.DeepSeq.NFData Network.AWS.Snowball.ListClusters.ListClusters
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Snowball.ListClusters.ListClusters
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Snowball.ListClusters.ListClusters
instance Network.AWS.Data.Path.ToPath Network.AWS.Snowball.ListClusters.ListClusters
instance Network.AWS.Data.Query.ToQuery Network.AWS.Snowball.ListClusters.ListClusters


-- | Returns an array of <tt>JobListEntry</tt> objects of the specified
--   length. Each <tt>JobListEntry</tt> object is for a job in the
--   specified cluster and contains a job's state, a job's ID, and other
--   information.
module Network.AWS.Snowball.ListClusterJobs

-- | Creates a value of <a>ListClusterJobs</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lcjNextToken</a> - HTTP requests are stateless. To identify
--   what object comes "next" in the list of <tt>JobListEntry</tt> objects,
--   you have the option of specifying <tt>NextToken</tt> as the starting
--   point for your returned list.</li>
--   <li><a>lcjMaxResults</a> - The number of <tt>JobListEntry</tt> objects
--   to return.</li>
--   <li><a>lcjClusterId</a> - The 39-character ID for the cluster that you
--   want to list, for example
--   <tt>CID123e4567-e89b-12d3-a456-426655440000</tt> .</li>
--   </ul>
listClusterJobs :: Text -> ListClusterJobs

-- | <i>See:</i> <a>listClusterJobs</a> smart constructor.
data ListClusterJobs

-- | HTTP requests are stateless. To identify what object comes "next" in
--   the list of <tt>JobListEntry</tt> objects, you have the option of
--   specifying <tt>NextToken</tt> as the starting point for your returned
--   list.
lcjNextToken :: Lens' ListClusterJobs (Maybe Text)

-- | The number of <tt>JobListEntry</tt> objects to return.
lcjMaxResults :: Lens' ListClusterJobs (Maybe Natural)

-- | The 39-character ID for the cluster that you want to list, for example
--   <tt>CID123e4567-e89b-12d3-a456-426655440000</tt> .
lcjClusterId :: Lens' ListClusterJobs Text

-- | Creates a value of <a>ListClusterJobsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lcjrsJobListEntries</a> - Each <tt>JobListEntry</tt> 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.</li>
--   <li><a>lcjrsNextToken</a> - HTTP requests are stateless. If you use
--   the automatically generated <tt>NextToken</tt> value in your next
--   <tt>ListClusterJobsResult</tt> call, your list of returned jobs will
--   start from this point in the array.</li>
--   <li><a>lcjrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listClusterJobsResponse :: Int -> ListClusterJobsResponse

-- | <i>See:</i> <a>listClusterJobsResponse</a> smart constructor.
data ListClusterJobsResponse

-- | Each <tt>JobListEntry</tt> 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.
lcjrsJobListEntries :: Lens' ListClusterJobsResponse [JobListEntry]

-- | HTTP requests are stateless. If you use the automatically generated
--   <tt>NextToken</tt> value in your next <tt>ListClusterJobsResult</tt>
--   call, your list of returned jobs will start from this point in the
--   array.
lcjrsNextToken :: Lens' ListClusterJobsResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
lcjrsResponseStatus :: Lens' ListClusterJobsResponse Int
instance GHC.Generics.Generic Network.AWS.Snowball.ListClusterJobs.ListClusterJobsResponse
instance Data.Data.Data Network.AWS.Snowball.ListClusterJobs.ListClusterJobsResponse
instance GHC.Show.Show Network.AWS.Snowball.ListClusterJobs.ListClusterJobsResponse
instance GHC.Read.Read Network.AWS.Snowball.ListClusterJobs.ListClusterJobsResponse
instance GHC.Classes.Eq Network.AWS.Snowball.ListClusterJobs.ListClusterJobsResponse
instance GHC.Generics.Generic Network.AWS.Snowball.ListClusterJobs.ListClusterJobs
instance Data.Data.Data Network.AWS.Snowball.ListClusterJobs.ListClusterJobs
instance GHC.Show.Show Network.AWS.Snowball.ListClusterJobs.ListClusterJobs
instance GHC.Read.Read Network.AWS.Snowball.ListClusterJobs.ListClusterJobs
instance GHC.Classes.Eq Network.AWS.Snowball.ListClusterJobs.ListClusterJobs
instance Network.AWS.Types.AWSRequest Network.AWS.Snowball.ListClusterJobs.ListClusterJobs
instance Control.DeepSeq.NFData Network.AWS.Snowball.ListClusterJobs.ListClusterJobsResponse
instance Data.Hashable.Class.Hashable Network.AWS.Snowball.ListClusterJobs.ListClusterJobs
instance Control.DeepSeq.NFData Network.AWS.Snowball.ListClusterJobs.ListClusterJobs
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Snowball.ListClusterJobs.ListClusterJobs
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Snowball.ListClusterJobs.ListClusterJobs
instance Network.AWS.Data.Path.ToPath Network.AWS.Snowball.ListClusterJobs.ListClusterJobs
instance Network.AWS.Data.Query.ToQuery Network.AWS.Snowball.ListClusterJobs.ListClusterJobs


-- | 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.
module Network.AWS.Snowball.GetSnowballUsage

-- | Creates a value of <a>GetSnowballUsage</a> with the minimum fields
--   required to make a request.
getSnowballUsage :: GetSnowballUsage

-- | <i>See:</i> <a>getSnowballUsage</a> smart constructor.
data GetSnowballUsage

-- | Creates a value of <a>GetSnowballUsageResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gsursSnowballsInUse</a> - The number of Snowballs that this
--   account is currently using.</li>
--   <li><a>gsursSnowballLimit</a> - The service limit for number of
--   Snowballs this account can have at once. The default service limit is
--   1 (one).</li>
--   <li><a>gsursResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getSnowballUsageResponse :: Int -> GetSnowballUsageResponse

-- | <i>See:</i> <a>getSnowballUsageResponse</a> smart constructor.
data GetSnowballUsageResponse

-- | The number of Snowballs that this account is currently using.
gsursSnowballsInUse :: Lens' GetSnowballUsageResponse (Maybe Int)

-- | The service limit for number of Snowballs this account can have at
--   once. The default service limit is 1 (one).
gsursSnowballLimit :: Lens' GetSnowballUsageResponse (Maybe Int)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gsursResponseStatus :: Lens' GetSnowballUsageResponse Int
instance GHC.Generics.Generic Network.AWS.Snowball.GetSnowballUsage.GetSnowballUsageResponse
instance Data.Data.Data Network.AWS.Snowball.GetSnowballUsage.GetSnowballUsageResponse
instance GHC.Show.Show Network.AWS.Snowball.GetSnowballUsage.GetSnowballUsageResponse
instance GHC.Read.Read Network.AWS.Snowball.GetSnowballUsage.GetSnowballUsageResponse
instance GHC.Classes.Eq Network.AWS.Snowball.GetSnowballUsage.GetSnowballUsageResponse
instance GHC.Generics.Generic Network.AWS.Snowball.GetSnowballUsage.GetSnowballUsage
instance Data.Data.Data Network.AWS.Snowball.GetSnowballUsage.GetSnowballUsage
instance GHC.Show.Show Network.AWS.Snowball.GetSnowballUsage.GetSnowballUsage
instance GHC.Read.Read Network.AWS.Snowball.GetSnowballUsage.GetSnowballUsage
instance GHC.Classes.Eq Network.AWS.Snowball.GetSnowballUsage.GetSnowballUsage
instance Network.AWS.Types.AWSRequest Network.AWS.Snowball.GetSnowballUsage.GetSnowballUsage
instance Control.DeepSeq.NFData Network.AWS.Snowball.GetSnowballUsage.GetSnowballUsageResponse
instance Data.Hashable.Class.Hashable Network.AWS.Snowball.GetSnowballUsage.GetSnowballUsage
instance Control.DeepSeq.NFData Network.AWS.Snowball.GetSnowballUsage.GetSnowballUsage
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Snowball.GetSnowballUsage.GetSnowballUsage
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Snowball.GetSnowballUsage.GetSnowballUsage
instance Network.AWS.Data.Path.ToPath Network.AWS.Snowball.GetSnowballUsage.GetSnowballUsage
instance Network.AWS.Data.Query.ToQuery Network.AWS.Snowball.GetSnowballUsage.GetSnowballUsage


-- | Returns the <tt>UnlockCode</tt> code value for the specified job. A
--   particular <tt>UnlockCode</tt> value can be accessed for up to 90 days
--   after the associated job has been created.
--   
--   The <tt>UnlockCode</tt> 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
--   <tt>UnlockCode</tt> 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.
module Network.AWS.Snowball.GetJobUnlockCode

-- | Creates a value of <a>GetJobUnlockCode</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gjucJobId</a> - The ID for the job that you want to get the
--   <tt>UnlockCode</tt> value for, for example
--   <tt>JID123e4567-e89b-12d3-a456-426655440000</tt> .</li>
--   </ul>
getJobUnlockCode :: Text -> GetJobUnlockCode

-- | <i>See:</i> <a>getJobUnlockCode</a> smart constructor.
data GetJobUnlockCode

-- | The ID for the job that you want to get the <tt>UnlockCode</tt> value
--   for, for example <tt>JID123e4567-e89b-12d3-a456-426655440000</tt> .
gjucJobId :: Lens' GetJobUnlockCode Text

-- | Creates a value of <a>GetJobUnlockCodeResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gjucrsUnlockCode</a> - The <tt>UnlockCode</tt> value for the
--   specified job. The <tt>UnlockCode</tt> value can be accessed for up to
--   90 days after the job has been created.</li>
--   <li><a>gjucrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getJobUnlockCodeResponse :: Int -> GetJobUnlockCodeResponse

-- | <i>See:</i> <a>getJobUnlockCodeResponse</a> smart constructor.
data GetJobUnlockCodeResponse

-- | The <tt>UnlockCode</tt> value for the specified job. The
--   <tt>UnlockCode</tt> value can be accessed for up to 90 days after the
--   job has been created.
gjucrsUnlockCode :: Lens' GetJobUnlockCodeResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gjucrsResponseStatus :: Lens' GetJobUnlockCodeResponse Int
instance GHC.Generics.Generic Network.AWS.Snowball.GetJobUnlockCode.GetJobUnlockCodeResponse
instance Data.Data.Data Network.AWS.Snowball.GetJobUnlockCode.GetJobUnlockCodeResponse
instance GHC.Show.Show Network.AWS.Snowball.GetJobUnlockCode.GetJobUnlockCodeResponse
instance GHC.Read.Read Network.AWS.Snowball.GetJobUnlockCode.GetJobUnlockCodeResponse
instance GHC.Classes.Eq Network.AWS.Snowball.GetJobUnlockCode.GetJobUnlockCodeResponse
instance GHC.Generics.Generic Network.AWS.Snowball.GetJobUnlockCode.GetJobUnlockCode
instance Data.Data.Data Network.AWS.Snowball.GetJobUnlockCode.GetJobUnlockCode
instance GHC.Show.Show Network.AWS.Snowball.GetJobUnlockCode.GetJobUnlockCode
instance GHC.Read.Read Network.AWS.Snowball.GetJobUnlockCode.GetJobUnlockCode
instance GHC.Classes.Eq Network.AWS.Snowball.GetJobUnlockCode.GetJobUnlockCode
instance Network.AWS.Types.AWSRequest Network.AWS.Snowball.GetJobUnlockCode.GetJobUnlockCode
instance Control.DeepSeq.NFData Network.AWS.Snowball.GetJobUnlockCode.GetJobUnlockCodeResponse
instance Data.Hashable.Class.Hashable Network.AWS.Snowball.GetJobUnlockCode.GetJobUnlockCode
instance Control.DeepSeq.NFData Network.AWS.Snowball.GetJobUnlockCode.GetJobUnlockCode
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Snowball.GetJobUnlockCode.GetJobUnlockCode
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Snowball.GetJobUnlockCode.GetJobUnlockCode
instance Network.AWS.Data.Path.ToPath Network.AWS.Snowball.GetJobUnlockCode.GetJobUnlockCode
instance Network.AWS.Data.Query.ToQuery Network.AWS.Snowball.GetJobUnlockCode.GetJobUnlockCode


-- | Returns a link to an Amazon S3 presigned URL for the manifest file
--   associated with the specified <tt>JobId</tt> 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 <tt>GetJobManifest</tt> action.
--   
--   The manifest is an encrypted file that you can download after your job
--   enters the <tt>WithCustomer</tt> status. The manifest is decrypted by
--   using the <tt>UnlockCode</tt> 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
--   <tt>UnlockCode</tt> 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.
module Network.AWS.Snowball.GetJobManifest

-- | Creates a value of <a>GetJobManifest</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gjmJobId</a> - The ID for a job that you want to get the
--   manifest file for, for example
--   <tt>JID123e4567-e89b-12d3-a456-426655440000</tt> .</li>
--   </ul>
getJobManifest :: Text -> GetJobManifest

-- | <i>See:</i> <a>getJobManifest</a> smart constructor.
data GetJobManifest

-- | The ID for a job that you want to get the manifest file for, for
--   example <tt>JID123e4567-e89b-12d3-a456-426655440000</tt> .
gjmJobId :: Lens' GetJobManifest Text

-- | Creates a value of <a>GetJobManifestResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gjmrsManifestURI</a> - The Amazon S3 presigned URL for the
--   manifest file associated with the specified <tt>JobId</tt> value.</li>
--   <li><a>gjmrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getJobManifestResponse :: Int -> GetJobManifestResponse

-- | <i>See:</i> <a>getJobManifestResponse</a> smart constructor.
data GetJobManifestResponse

-- | The Amazon S3 presigned URL for the manifest file associated with the
--   specified <tt>JobId</tt> value.
gjmrsManifestURI :: Lens' GetJobManifestResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gjmrsResponseStatus :: Lens' GetJobManifestResponse Int
instance GHC.Generics.Generic Network.AWS.Snowball.GetJobManifest.GetJobManifestResponse
instance Data.Data.Data Network.AWS.Snowball.GetJobManifest.GetJobManifestResponse
instance GHC.Show.Show Network.AWS.Snowball.GetJobManifest.GetJobManifestResponse
instance GHC.Read.Read Network.AWS.Snowball.GetJobManifest.GetJobManifestResponse
instance GHC.Classes.Eq Network.AWS.Snowball.GetJobManifest.GetJobManifestResponse
instance GHC.Generics.Generic Network.AWS.Snowball.GetJobManifest.GetJobManifest
instance Data.Data.Data Network.AWS.Snowball.GetJobManifest.GetJobManifest
instance GHC.Show.Show Network.AWS.Snowball.GetJobManifest.GetJobManifest
instance GHC.Read.Read Network.AWS.Snowball.GetJobManifest.GetJobManifest
instance GHC.Classes.Eq Network.AWS.Snowball.GetJobManifest.GetJobManifest
instance Network.AWS.Types.AWSRequest Network.AWS.Snowball.GetJobManifest.GetJobManifest
instance Control.DeepSeq.NFData Network.AWS.Snowball.GetJobManifest.GetJobManifestResponse
instance Data.Hashable.Class.Hashable Network.AWS.Snowball.GetJobManifest.GetJobManifest
instance Control.DeepSeq.NFData Network.AWS.Snowball.GetJobManifest.GetJobManifest
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Snowball.GetJobManifest.GetJobManifest
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Snowball.GetJobManifest.GetJobManifest
instance Network.AWS.Data.Path.ToPath Network.AWS.Snowball.GetJobManifest.GetJobManifest
instance Network.AWS.Data.Query.ToQuery Network.AWS.Snowball.GetJobManifest.GetJobManifest


-- | Returns information about a specific job including shipping
--   information, job status, and other important metadata.
module Network.AWS.Snowball.DescribeJob

-- | Creates a value of <a>DescribeJob</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>djJobId</a> - The automatically generated ID for a job, for
--   example <tt>JID123e4567-e89b-12d3-a456-426655440000</tt> .</li>
--   </ul>
describeJob :: Text -> DescribeJob

-- | <i>See:</i> <a>describeJob</a> smart constructor.
data DescribeJob

-- | The automatically generated ID for a job, for example
--   <tt>JID123e4567-e89b-12d3-a456-426655440000</tt> .
djJobId :: Lens' DescribeJob Text

-- | Creates a value of <a>DescribeJobResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>djrsJobMetadata</a> - Information about a specific job,
--   including shipping information, job status, and other important
--   metadata.</li>
--   <li><a>djrsSubJobMetadata</a> - Information about a specific job part
--   (in the case of an export job), including shipping information, job
--   status, and other important metadata.</li>
--   <li><a>djrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeJobResponse :: Int -> DescribeJobResponse

-- | <i>See:</i> <a>describeJobResponse</a> smart constructor.
data DescribeJobResponse

-- | Information about a specific job, including shipping information, job
--   status, and other important metadata.
djrsJobMetadata :: Lens' DescribeJobResponse (Maybe JobMetadata)

-- | Information about a specific job part (in the case of an export job),
--   including shipping information, job status, and other important
--   metadata.
djrsSubJobMetadata :: Lens' DescribeJobResponse [JobMetadata]

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
djrsResponseStatus :: Lens' DescribeJobResponse Int
instance GHC.Generics.Generic Network.AWS.Snowball.DescribeJob.DescribeJobResponse
instance Data.Data.Data Network.AWS.Snowball.DescribeJob.DescribeJobResponse
instance GHC.Show.Show Network.AWS.Snowball.DescribeJob.DescribeJobResponse
instance GHC.Read.Read Network.AWS.Snowball.DescribeJob.DescribeJobResponse
instance GHC.Classes.Eq Network.AWS.Snowball.DescribeJob.DescribeJobResponse
instance GHC.Generics.Generic Network.AWS.Snowball.DescribeJob.DescribeJob
instance Data.Data.Data Network.AWS.Snowball.DescribeJob.DescribeJob
instance GHC.Show.Show Network.AWS.Snowball.DescribeJob.DescribeJob
instance GHC.Read.Read Network.AWS.Snowball.DescribeJob.DescribeJob
instance GHC.Classes.Eq Network.AWS.Snowball.DescribeJob.DescribeJob
instance Network.AWS.Types.AWSRequest Network.AWS.Snowball.DescribeJob.DescribeJob
instance Control.DeepSeq.NFData Network.AWS.Snowball.DescribeJob.DescribeJobResponse
instance Data.Hashable.Class.Hashable Network.AWS.Snowball.DescribeJob.DescribeJob
instance Control.DeepSeq.NFData Network.AWS.Snowball.DescribeJob.DescribeJob
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Snowball.DescribeJob.DescribeJob
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Snowball.DescribeJob.DescribeJob
instance Network.AWS.Data.Path.ToPath Network.AWS.Snowball.DescribeJob.DescribeJob
instance Network.AWS.Data.Query.ToQuery Network.AWS.Snowball.DescribeJob.DescribeJob


-- | Returns information about a specific cluster including shipping
--   information, cluster status, and other important metadata.
module Network.AWS.Snowball.DescribeCluster

-- | Creates a value of <a>DescribeCluster</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcClusterId</a> - The automatically generated ID for a
--   cluster.</li>
--   </ul>
describeCluster :: Text -> DescribeCluster

-- | <i>See:</i> <a>describeCluster</a> smart constructor.
data DescribeCluster

-- | The automatically generated ID for a cluster.
dcClusterId :: Lens' DescribeCluster Text

-- | Creates a value of <a>DescribeClusterResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dcrsClusterMetadata</a> - Information about a specific cluster,
--   including shipping information, cluster status, and other important
--   metadata.</li>
--   <li><a>dcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeClusterResponse :: Int -> DescribeClusterResponse

-- | <i>See:</i> <a>describeClusterResponse</a> smart constructor.
data DescribeClusterResponse

-- | Information about a specific cluster, including shipping information,
--   cluster status, and other important metadata.
dcrsClusterMetadata :: Lens' DescribeClusterResponse (Maybe ClusterMetadata)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dcrsResponseStatus :: Lens' DescribeClusterResponse Int
instance GHC.Generics.Generic Network.AWS.Snowball.DescribeCluster.DescribeClusterResponse
instance Data.Data.Data Network.AWS.Snowball.DescribeCluster.DescribeClusterResponse
instance GHC.Show.Show Network.AWS.Snowball.DescribeCluster.DescribeClusterResponse
instance GHC.Read.Read Network.AWS.Snowball.DescribeCluster.DescribeClusterResponse
instance GHC.Classes.Eq Network.AWS.Snowball.DescribeCluster.DescribeClusterResponse
instance GHC.Generics.Generic Network.AWS.Snowball.DescribeCluster.DescribeCluster
instance Data.Data.Data Network.AWS.Snowball.DescribeCluster.DescribeCluster
instance GHC.Show.Show Network.AWS.Snowball.DescribeCluster.DescribeCluster
instance GHC.Read.Read Network.AWS.Snowball.DescribeCluster.DescribeCluster
instance GHC.Classes.Eq Network.AWS.Snowball.DescribeCluster.DescribeCluster
instance Network.AWS.Types.AWSRequest Network.AWS.Snowball.DescribeCluster.DescribeCluster
instance Control.DeepSeq.NFData Network.AWS.Snowball.DescribeCluster.DescribeClusterResponse
instance Data.Hashable.Class.Hashable Network.AWS.Snowball.DescribeCluster.DescribeCluster
instance Control.DeepSeq.NFData Network.AWS.Snowball.DescribeCluster.DescribeCluster
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Snowball.DescribeCluster.DescribeCluster
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Snowball.DescribeCluster.DescribeCluster
instance Network.AWS.Data.Path.ToPath Network.AWS.Snowball.DescribeCluster.DescribeCluster
instance Network.AWS.Data.Query.ToQuery Network.AWS.Snowball.DescribeCluster.DescribeCluster


-- | Returns a specified number of <tt>ADDRESS</tt> 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.
--   
--   This operation returns paginated results.
module Network.AWS.Snowball.DescribeAddresses

-- | Creates a value of <a>DescribeAddresses</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>daNextToken</a> - HTTP requests are stateless. To identify what
--   object comes "next" in the list of <tt>ADDRESS</tt> objects, you have
--   the option of specifying a value for <tt>NextToken</tt> as the
--   starting point for your list of returned addresses.</li>
--   <li><a>daMaxResults</a> - The number of <tt>ADDRESS</tt> objects to
--   return.</li>
--   </ul>
describeAddresses :: DescribeAddresses

-- | <i>See:</i> <a>describeAddresses</a> smart constructor.
data DescribeAddresses

-- | HTTP requests are stateless. To identify what object comes "next" in
--   the list of <tt>ADDRESS</tt> objects, you have the option of
--   specifying a value for <tt>NextToken</tt> as the starting point for
--   your list of returned addresses.
daNextToken :: Lens' DescribeAddresses (Maybe Text)

-- | The number of <tt>ADDRESS</tt> objects to return.
daMaxResults :: Lens' DescribeAddresses (Maybe Natural)

-- | Creates a value of <a>DescribeAddressesResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drsAddresses</a> - The Snowball shipping addresses that were
--   created for this account.</li>
--   <li><a>drsNextToken</a> - HTTP requests are stateless. If you use the
--   automatically generated <tt>NextToken</tt> value in your next
--   <tt>DescribeAddresses</tt> call, your list of returned addresses will
--   start from this point in the array.</li>
--   <li><a>drsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeAddressesResponse :: Int -> DescribeAddressesResponse

-- | <i>See:</i> <a>describeAddressesResponse</a> smart constructor.
data DescribeAddressesResponse

-- | The Snowball shipping addresses that were created for this account.
drsAddresses :: Lens' DescribeAddressesResponse [Address]

-- | HTTP requests are stateless. If you use the automatically generated
--   <tt>NextToken</tt> value in your next <tt>DescribeAddresses</tt> call,
--   your list of returned addresses will start from this point in the
--   array.
drsNextToken :: Lens' DescribeAddressesResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
drsResponseStatus :: Lens' DescribeAddressesResponse Int
instance GHC.Generics.Generic Network.AWS.Snowball.DescribeAddresses.DescribeAddressesResponse
instance Data.Data.Data Network.AWS.Snowball.DescribeAddresses.DescribeAddressesResponse
instance GHC.Show.Show Network.AWS.Snowball.DescribeAddresses.DescribeAddressesResponse
instance GHC.Read.Read Network.AWS.Snowball.DescribeAddresses.DescribeAddressesResponse
instance GHC.Classes.Eq Network.AWS.Snowball.DescribeAddresses.DescribeAddressesResponse
instance GHC.Generics.Generic Network.AWS.Snowball.DescribeAddresses.DescribeAddresses
instance Data.Data.Data Network.AWS.Snowball.DescribeAddresses.DescribeAddresses
instance GHC.Show.Show Network.AWS.Snowball.DescribeAddresses.DescribeAddresses
instance GHC.Read.Read Network.AWS.Snowball.DescribeAddresses.DescribeAddresses
instance GHC.Classes.Eq Network.AWS.Snowball.DescribeAddresses.DescribeAddresses
instance Network.AWS.Types.AWSRequest Network.AWS.Snowball.DescribeAddresses.DescribeAddresses
instance Control.DeepSeq.NFData Network.AWS.Snowball.DescribeAddresses.DescribeAddressesResponse
instance Network.AWS.Pager.AWSPager Network.AWS.Snowball.DescribeAddresses.DescribeAddresses
instance Data.Hashable.Class.Hashable Network.AWS.Snowball.DescribeAddresses.DescribeAddresses
instance Control.DeepSeq.NFData Network.AWS.Snowball.DescribeAddresses.DescribeAddresses
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Snowball.DescribeAddresses.DescribeAddresses
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Snowball.DescribeAddresses.DescribeAddresses
instance Network.AWS.Data.Path.ToPath Network.AWS.Snowball.DescribeAddresses.DescribeAddresses
instance Network.AWS.Data.Query.ToQuery Network.AWS.Snowball.DescribeAddresses.DescribeAddresses


-- | Takes an <tt>AddressId</tt> and returns specific details about that
--   address in the form of an <tt>Address</tt> object.
module Network.AWS.Snowball.DescribeAddress

-- | Creates a value of <a>DescribeAddress</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>daAddressId</a> - The automatically generated ID for a specific
--   address.</li>
--   </ul>
describeAddress :: Text -> DescribeAddress

-- | <i>See:</i> <a>describeAddress</a> smart constructor.
data DescribeAddress

-- | The automatically generated ID for a specific address.
daAddressId :: Lens' DescribeAddress Text

-- | Creates a value of <a>DescribeAddressResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>darsAddress</a> - The address that you want the Snowball or
--   Snowballs associated with a specific job to be shipped to.</li>
--   <li><a>darsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeAddressResponse :: Int -> DescribeAddressResponse

-- | <i>See:</i> <a>describeAddressResponse</a> smart constructor.
data DescribeAddressResponse

-- | The address that you want the Snowball or Snowballs associated with a
--   specific job to be shipped to.
darsAddress :: Lens' DescribeAddressResponse (Maybe Address)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
darsResponseStatus :: Lens' DescribeAddressResponse Int
instance GHC.Generics.Generic Network.AWS.Snowball.DescribeAddress.DescribeAddressResponse
instance Data.Data.Data Network.AWS.Snowball.DescribeAddress.DescribeAddressResponse
instance GHC.Show.Show Network.AWS.Snowball.DescribeAddress.DescribeAddressResponse
instance GHC.Read.Read Network.AWS.Snowball.DescribeAddress.DescribeAddressResponse
instance GHC.Classes.Eq Network.AWS.Snowball.DescribeAddress.DescribeAddressResponse
instance GHC.Generics.Generic Network.AWS.Snowball.DescribeAddress.DescribeAddress
instance Data.Data.Data Network.AWS.Snowball.DescribeAddress.DescribeAddress
instance GHC.Show.Show Network.AWS.Snowball.DescribeAddress.DescribeAddress
instance GHC.Read.Read Network.AWS.Snowball.DescribeAddress.DescribeAddress
instance GHC.Classes.Eq Network.AWS.Snowball.DescribeAddress.DescribeAddress
instance Network.AWS.Types.AWSRequest Network.AWS.Snowball.DescribeAddress.DescribeAddress
instance Control.DeepSeq.NFData Network.AWS.Snowball.DescribeAddress.DescribeAddressResponse
instance Data.Hashable.Class.Hashable Network.AWS.Snowball.DescribeAddress.DescribeAddress
instance Control.DeepSeq.NFData Network.AWS.Snowball.DescribeAddress.DescribeAddress
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Snowball.DescribeAddress.DescribeAddress
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Snowball.DescribeAddress.DescribeAddress
instance Network.AWS.Data.Path.ToPath Network.AWS.Snowball.DescribeAddress.DescribeAddress
instance Network.AWS.Data.Query.ToQuery Network.AWS.Snowball.DescribeAddress.DescribeAddress


-- | 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 <tt>clusterId</tt> value; the other job attributes are
--   inherited from the cluster.
module Network.AWS.Snowball.CreateJob

-- | Creates a value of <a>CreateJob</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cjJobType</a> - Defines the type of job that you're
--   creating.</li>
--   <li><a>cjKMSKeyARN</a> - The <tt>KmsKeyARN</tt> that you want to
--   associate with this job. <tt>KmsKeyARN</tt> s are created using the
--   <a>CreateKey</a> AWS Key Management Service (KMS) API action.</li>
--   <li><a>cjNotification</a> - Defines the Amazon Simple Notification
--   Service (Amazon SNS) notification settings for this job.</li>
--   <li><a>cjForwardingAddressId</a> - The forwarding address ID for a
--   job. This field is not supported in most regions.</li>
--   <li><a>cjAddressId</a> - The ID for the address that you want the
--   Snowball shipped to.</li>
--   <li><a>cjSnowballType</a> - The type of AWS Snowball appliance to use
--   for this job. Currently, the only supported appliance type for cluster
--   jobs is <tt>EDGE</tt> .</li>
--   <li><a>cjShippingOption</a> - The shipping speed for this job. This
--   speed doesn't dictate how soon you'll get the Snowball, rather it
--   represents how quickly the Snowball moves to its destination while in
--   transit. Regional shipping speeds are as follows: * In Australia, you
--   have access to express shipping. Typically, Snowballs shipped express
--   are delivered in about a day. * In the European Union (EU), you have
--   access to express shipping. Typically, Snowballs shipped express are
--   delivered in about a day. In addition, most countries in the EU have
--   access to standard shipping, which typically takes less than a week,
--   one way. * In India, Snowballs are delivered in one to seven days. *
--   In the US, you have access to one-day shipping and two-day
--   shipping.</li>
--   <li><a>cjResources</a> - Defines the Amazon S3 buckets associated with
--   this job. With <tt>IMPORT</tt> jobs, you specify the bucket or buckets
--   that your transferred data will be imported into. With <tt>EXPORT</tt>
--   jobs, you specify the bucket or buckets that your transferred data
--   will be exported from. Optionally, you can also specify a
--   <tt>KeyRange</tt> value. If you choose to export a range, you define
--   the length of the range by providing either an inclusive
--   <tt>BeginMarker</tt> value, an inclusive <tt>EndMarker</tt> value, or
--   both. Ranges are UTF-8 binary sorted.</li>
--   <li><a>cjClusterId</a> - The ID of a cluster. If you're creating a job
--   for a node in a cluster, you need to provide only this
--   <tt>clusterId</tt> value. The other job attributes are inherited from
--   the cluster.</li>
--   <li><a>cjDescription</a> - Defines an optional description of this
--   specific job, for example <tt>Important Photos 2016-08-11</tt> .</li>
--   <li><a>cjRoleARN</a> - The <tt>RoleARN</tt> that you want to associate
--   with this job. <tt>RoleArn</tt> s are created using the
--   <a>CreateRole</a> AWS Identity and Access Management (IAM) API
--   action.</li>
--   <li><a>cjSnowballCapacityPreference</a> - If your job is being created
--   in one of the US regions, you have the option of specifying what size
--   Snowball you'd like for this job. In all other regions, Snowballs come
--   with 80 TB in storage capacity.</li>
--   </ul>
createJob :: CreateJob

-- | <i>See:</i> <a>createJob</a> smart constructor.
data CreateJob

-- | Defines the type of job that you're creating.
cjJobType :: Lens' CreateJob (Maybe JobType)

-- | The <tt>KmsKeyARN</tt> that you want to associate with this job.
--   <tt>KmsKeyARN</tt> s are created using the <a>CreateKey</a> AWS Key
--   Management Service (KMS) API action.
cjKMSKeyARN :: Lens' CreateJob (Maybe Text)

-- | Defines the Amazon Simple Notification Service (Amazon SNS)
--   notification settings for this job.
cjNotification :: Lens' CreateJob (Maybe Notification)

-- | The forwarding address ID for a job. This field is not supported in
--   most regions.
cjForwardingAddressId :: Lens' CreateJob (Maybe Text)

-- | The ID for the address that you want the Snowball shipped to.
cjAddressId :: Lens' CreateJob (Maybe Text)

-- | The type of AWS Snowball appliance to use for this job. Currently, the
--   only supported appliance type for cluster jobs is <tt>EDGE</tt> .
cjSnowballType :: Lens' CreateJob (Maybe SnowballType)

-- | The shipping speed for this job. This speed doesn't dictate how soon
--   you'll get the Snowball, rather it represents how quickly the Snowball
--   moves to its destination while in transit. Regional shipping speeds
--   are as follows: * In Australia, you have access to express shipping.
--   Typically, Snowballs shipped express are delivered in about a day. *
--   In the European Union (EU), you have access to express shipping.
--   Typically, Snowballs shipped express are delivered in about a day. In
--   addition, most countries in the EU have access to standard shipping,
--   which typically takes less than a week, one way. * In India, Snowballs
--   are delivered in one to seven days. * In the US, you have access to
--   one-day shipping and two-day shipping.
cjShippingOption :: Lens' CreateJob (Maybe ShippingOption)

-- | Defines the Amazon S3 buckets associated with this job. With
--   <tt>IMPORT</tt> jobs, you specify the bucket or buckets that your
--   transferred data will be imported into. With <tt>EXPORT</tt> jobs, you
--   specify the bucket or buckets that your transferred data will be
--   exported from. Optionally, you can also specify a <tt>KeyRange</tt>
--   value. If you choose to export a range, you define the length of the
--   range by providing either an inclusive <tt>BeginMarker</tt> value, an
--   inclusive <tt>EndMarker</tt> value, or both. Ranges are UTF-8 binary
--   sorted.
cjResources :: Lens' CreateJob (Maybe JobResource)

-- | The ID of a cluster. If you're creating a job for a node in a cluster,
--   you need to provide only this <tt>clusterId</tt> value. The other job
--   attributes are inherited from the cluster.
cjClusterId :: Lens' CreateJob (Maybe Text)

-- | Defines an optional description of this specific job, for example
--   <tt>Important Photos 2016-08-11</tt> .
cjDescription :: Lens' CreateJob (Maybe Text)

-- | The <tt>RoleARN</tt> that you want to associate with this job.
--   <tt>RoleArn</tt> s are created using the <a>CreateRole</a> AWS
--   Identity and Access Management (IAM) API action.
cjRoleARN :: Lens' CreateJob (Maybe Text)

-- | If your job is being created in one of the US regions, you have the
--   option of specifying what size Snowball you'd like for this job. In
--   all other regions, Snowballs come with 80 TB in storage capacity.
cjSnowballCapacityPreference :: Lens' CreateJob (Maybe SnowballCapacity)

-- | Creates a value of <a>CreateJobResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cjrsJobId</a> - The automatically generated ID for a job, for
--   example <tt>JID123e4567-e89b-12d3-a456-426655440000</tt> .</li>
--   <li><a>cjrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createJobResponse :: Int -> CreateJobResponse

-- | <i>See:</i> <a>createJobResponse</a> smart constructor.
data CreateJobResponse

-- | The automatically generated ID for a job, for example
--   <tt>JID123e4567-e89b-12d3-a456-426655440000</tt> .
cjrsJobId :: Lens' CreateJobResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cjrsResponseStatus :: Lens' CreateJobResponse Int
instance GHC.Generics.Generic Network.AWS.Snowball.CreateJob.CreateJobResponse
instance Data.Data.Data Network.AWS.Snowball.CreateJob.CreateJobResponse
instance GHC.Show.Show Network.AWS.Snowball.CreateJob.CreateJobResponse
instance GHC.Read.Read Network.AWS.Snowball.CreateJob.CreateJobResponse
instance GHC.Classes.Eq Network.AWS.Snowball.CreateJob.CreateJobResponse
instance GHC.Generics.Generic Network.AWS.Snowball.CreateJob.CreateJob
instance Data.Data.Data Network.AWS.Snowball.CreateJob.CreateJob
instance GHC.Show.Show Network.AWS.Snowball.CreateJob.CreateJob
instance GHC.Read.Read Network.AWS.Snowball.CreateJob.CreateJob
instance GHC.Classes.Eq Network.AWS.Snowball.CreateJob.CreateJob
instance Network.AWS.Types.AWSRequest Network.AWS.Snowball.CreateJob.CreateJob
instance Control.DeepSeq.NFData Network.AWS.Snowball.CreateJob.CreateJobResponse
instance Data.Hashable.Class.Hashable Network.AWS.Snowball.CreateJob.CreateJob
instance Control.DeepSeq.NFData Network.AWS.Snowball.CreateJob.CreateJob
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Snowball.CreateJob.CreateJob
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Snowball.CreateJob.CreateJob
instance Network.AWS.Data.Path.ToPath Network.AWS.Snowball.CreateJob.CreateJob
instance Network.AWS.Data.Query.ToQuery Network.AWS.Snowball.CreateJob.CreateJob


-- | Creates an empty cluster. Each cluster supports five nodes. You use
--   the <tt>CreateJob</tt> action separately to create the jobs for each
--   of these nodes. The cluster does not ship until these five node jobs
--   have been created.
module Network.AWS.Snowball.CreateCluster

-- | Creates a value of <a>CreateCluster</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccKMSKeyARN</a> - The <tt>KmsKeyARN</tt> value that you want to
--   associate with this cluster. <tt>KmsKeyARN</tt> values are created by
--   using the <a>CreateKey</a> API action in AWS Key Management Service
--   (AWS KMS).</li>
--   <li><a>ccNotification</a> - The Amazon Simple Notification Service
--   (Amazon SNS) notification settings for this cluster.</li>
--   <li><a>ccForwardingAddressId</a> - The forwarding address ID for a
--   cluster. This field is not supported in most regions.</li>
--   <li><a>ccSnowballType</a> - The type of AWS Snowball appliance to use
--   for this cluster. Currently, the only supported appliance type for
--   cluster jobs is <tt>EDGE</tt> .</li>
--   <li><a>ccDescription</a> - An optional description of this specific
--   cluster, for example <tt>Environmental Data Cluster-01</tt> .</li>
--   <li><a>ccJobType</a> - The type of job for this cluster. Currently,
--   the only job type supported for clusters is <tt>LOCAL_USE</tt> .</li>
--   <li><a>ccResources</a> - The resources associated with the cluster
--   job. These resources include Amazon S3 buckets and optional AWS Lambda
--   functions written in the Python language.</li>
--   <li><a>ccAddressId</a> - The ID for the address that you want the
--   cluster shipped to.</li>
--   <li><a>ccRoleARN</a> - The <tt>RoleARN</tt> that you want to associate
--   with this cluster. <tt>RoleArn</tt> values are created by using the
--   <a>CreateRole</a> API action in AWS Identity and Access Management
--   (IAM).</li>
--   <li><a>ccShippingOption</a> - The shipping speed for each node in this
--   cluster. This speed doesn't dictate how soon you'll get each Snowball
--   Edge appliance, rather it represents how quickly each appliance moves
--   to its destination while in transit. Regional shipping speeds are as
--   follows: * In Australia, you have access to express shipping.
--   Typically, appliances shipped express are delivered in about a day. *
--   In the European Union (EU), you have access to express shipping.
--   Typically, Snowball Edges shipped express are delivered in about a
--   day. In addition, most countries in the EU have access to standard
--   shipping, which typically takes less than a week, one way. * In India,
--   Snowball Edges are delivered in one to seven days. * In the US, you
--   have access to one-day shipping and two-day shipping.</li>
--   </ul>
createCluster :: JobType -> JobResource -> Text -> Text -> ShippingOption -> CreateCluster

-- | <i>See:</i> <a>createCluster</a> smart constructor.
data CreateCluster

-- | The <tt>KmsKeyARN</tt> value that you want to associate with this
--   cluster. <tt>KmsKeyARN</tt> values are created by using the
--   <a>CreateKey</a> API action in AWS Key Management Service (AWS KMS).
ccKMSKeyARN :: Lens' CreateCluster (Maybe Text)

-- | The Amazon Simple Notification Service (Amazon SNS) notification
--   settings for this cluster.
ccNotification :: Lens' CreateCluster (Maybe Notification)

-- | The forwarding address ID for a cluster. This field is not supported
--   in most regions.
ccForwardingAddressId :: Lens' CreateCluster (Maybe Text)

-- | The type of AWS Snowball appliance to use for this cluster. Currently,
--   the only supported appliance type for cluster jobs is <tt>EDGE</tt> .
ccSnowballType :: Lens' CreateCluster (Maybe SnowballType)

-- | An optional description of this specific cluster, for example
--   <tt>Environmental Data Cluster-01</tt> .
ccDescription :: Lens' CreateCluster (Maybe Text)

-- | The type of job for this cluster. Currently, the only job type
--   supported for clusters is <tt>LOCAL_USE</tt> .
ccJobType :: Lens' CreateCluster JobType

-- | The resources associated with the cluster job. These resources include
--   Amazon S3 buckets and optional AWS Lambda functions written in the
--   Python language.
ccResources :: Lens' CreateCluster JobResource

-- | The ID for the address that you want the cluster shipped to.
ccAddressId :: Lens' CreateCluster Text

-- | The <tt>RoleARN</tt> that you want to associate with this cluster.
--   <tt>RoleArn</tt> values are created by using the <a>CreateRole</a> API
--   action in AWS Identity and Access Management (IAM).
ccRoleARN :: Lens' CreateCluster Text

-- | The shipping speed for each node in this cluster. This speed doesn't
--   dictate how soon you'll get each Snowball Edge appliance, rather it
--   represents how quickly each appliance moves to its destination while
--   in transit. Regional shipping speeds are as follows: * In Australia,
--   you have access to express shipping. Typically, appliances shipped
--   express are delivered in about a day. * In the European Union (EU),
--   you have access to express shipping. Typically, Snowball Edges shipped
--   express are delivered in about a day. In addition, most countries in
--   the EU have access to standard shipping, which typically takes less
--   than a week, one way. * In India, Snowball Edges are delivered in one
--   to seven days. * In the US, you have access to one-day shipping and
--   two-day shipping.
ccShippingOption :: Lens' CreateCluster ShippingOption

-- | Creates a value of <a>CreateClusterResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>crersClusterId</a> - The automatically generated ID for a
--   cluster.</li>
--   <li><a>crersResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createClusterResponse :: Int -> CreateClusterResponse

-- | <i>See:</i> <a>createClusterResponse</a> smart constructor.
data CreateClusterResponse

-- | The automatically generated ID for a cluster.
crersClusterId :: Lens' CreateClusterResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
crersResponseStatus :: Lens' CreateClusterResponse Int
instance GHC.Generics.Generic Network.AWS.Snowball.CreateCluster.CreateClusterResponse
instance Data.Data.Data Network.AWS.Snowball.CreateCluster.CreateClusterResponse
instance GHC.Show.Show Network.AWS.Snowball.CreateCluster.CreateClusterResponse
instance GHC.Read.Read Network.AWS.Snowball.CreateCluster.CreateClusterResponse
instance GHC.Classes.Eq Network.AWS.Snowball.CreateCluster.CreateClusterResponse
instance GHC.Generics.Generic Network.AWS.Snowball.CreateCluster.CreateCluster
instance Data.Data.Data Network.AWS.Snowball.CreateCluster.CreateCluster
instance GHC.Show.Show Network.AWS.Snowball.CreateCluster.CreateCluster
instance GHC.Read.Read Network.AWS.Snowball.CreateCluster.CreateCluster
instance GHC.Classes.Eq Network.AWS.Snowball.CreateCluster.CreateCluster
instance Network.AWS.Types.AWSRequest Network.AWS.Snowball.CreateCluster.CreateCluster
instance Control.DeepSeq.NFData Network.AWS.Snowball.CreateCluster.CreateClusterResponse
instance Data.Hashable.Class.Hashable Network.AWS.Snowball.CreateCluster.CreateCluster
instance Control.DeepSeq.NFData Network.AWS.Snowball.CreateCluster.CreateCluster
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Snowball.CreateCluster.CreateCluster
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Snowball.CreateCluster.CreateCluster
instance Network.AWS.Data.Path.ToPath Network.AWS.Snowball.CreateCluster.CreateCluster
instance Network.AWS.Data.Query.ToQuery Network.AWS.Snowball.CreateCluster.CreateCluster


-- | 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.
module Network.AWS.Snowball.CreateAddress

-- | Creates a value of <a>CreateAddress</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>caAddress</a> - The address that you want the Snowball shipped
--   to.</li>
--   </ul>
createAddress :: Address -> CreateAddress

-- | <i>See:</i> <a>createAddress</a> smart constructor.
data CreateAddress

-- | The address that you want the Snowball shipped to.
caAddress :: Lens' CreateAddress Address

-- | Creates a value of <a>CreateAddressResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>carsAddressId</a> - The automatically generated ID for a
--   specific address. You'll use this ID when you create a job to specify
--   which address you want the Snowball for that job shipped to.</li>
--   <li><a>carsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createAddressResponse :: Int -> CreateAddressResponse

-- | <i>See:</i> <a>createAddressResponse</a> smart constructor.
data CreateAddressResponse

-- | The automatically generated ID for a specific address. You'll use this
--   ID when you create a job to specify which address you want the
--   Snowball for that job shipped to.
carsAddressId :: Lens' CreateAddressResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
carsResponseStatus :: Lens' CreateAddressResponse Int
instance GHC.Generics.Generic Network.AWS.Snowball.CreateAddress.CreateAddressResponse
instance Data.Data.Data Network.AWS.Snowball.CreateAddress.CreateAddressResponse
instance GHC.Show.Show Network.AWS.Snowball.CreateAddress.CreateAddressResponse
instance GHC.Read.Read Network.AWS.Snowball.CreateAddress.CreateAddressResponse
instance GHC.Classes.Eq Network.AWS.Snowball.CreateAddress.CreateAddressResponse
instance GHC.Generics.Generic Network.AWS.Snowball.CreateAddress.CreateAddress
instance Data.Data.Data Network.AWS.Snowball.CreateAddress.CreateAddress
instance GHC.Show.Show Network.AWS.Snowball.CreateAddress.CreateAddress
instance GHC.Read.Read Network.AWS.Snowball.CreateAddress.CreateAddress
instance GHC.Classes.Eq Network.AWS.Snowball.CreateAddress.CreateAddress
instance Network.AWS.Types.AWSRequest Network.AWS.Snowball.CreateAddress.CreateAddress
instance Control.DeepSeq.NFData Network.AWS.Snowball.CreateAddress.CreateAddressResponse
instance Data.Hashable.Class.Hashable Network.AWS.Snowball.CreateAddress.CreateAddress
instance Control.DeepSeq.NFData Network.AWS.Snowball.CreateAddress.CreateAddress
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Snowball.CreateAddress.CreateAddress
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Snowball.CreateAddress.CreateAddress
instance Network.AWS.Data.Path.ToPath Network.AWS.Snowball.CreateAddress.CreateAddress
instance Network.AWS.Data.Query.ToQuery Network.AWS.Snowball.CreateAddress.CreateAddress


-- | Cancels the specified job. You can only cancel a job before its
--   <tt>JobState</tt> value changes to <tt>PreparingAppliance</tt> .
--   Requesting the <tt>ListJobs</tt> or <tt>DescribeJob</tt> action will
--   return a job's <tt>JobState</tt> as part of the response element data
--   returned.
module Network.AWS.Snowball.CancelJob

-- | Creates a value of <a>CancelJob</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cjJobId</a> - The 39-character job ID for the job that you want
--   to cancel, for example
--   <tt>JID123e4567-e89b-12d3-a456-426655440000</tt> .</li>
--   </ul>
cancelJob :: Text -> CancelJob

-- | <i>See:</i> <a>cancelJob</a> smart constructor.
data CancelJob

-- | The 39-character job ID for the job that you want to cancel, for
--   example <tt>JID123e4567-e89b-12d3-a456-426655440000</tt> .
cjJobId :: Lens' CancelJob Text

-- | Creates a value of <a>CancelJobResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>crsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
cancelJobResponse :: Int -> CancelJobResponse

-- | <i>See:</i> <a>cancelJobResponse</a> smart constructor.
data CancelJobResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
crsResponseStatus :: Lens' CancelJobResponse Int
instance GHC.Generics.Generic Network.AWS.Snowball.CancelJob.CancelJobResponse
instance Data.Data.Data Network.AWS.Snowball.CancelJob.CancelJobResponse
instance GHC.Show.Show Network.AWS.Snowball.CancelJob.CancelJobResponse
instance GHC.Read.Read Network.AWS.Snowball.CancelJob.CancelJobResponse
instance GHC.Classes.Eq Network.AWS.Snowball.CancelJob.CancelJobResponse
instance GHC.Generics.Generic Network.AWS.Snowball.CancelJob.CancelJob
instance Data.Data.Data Network.AWS.Snowball.CancelJob.CancelJob
instance GHC.Show.Show Network.AWS.Snowball.CancelJob.CancelJob
instance GHC.Read.Read Network.AWS.Snowball.CancelJob.CancelJob
instance GHC.Classes.Eq Network.AWS.Snowball.CancelJob.CancelJob
instance Network.AWS.Types.AWSRequest Network.AWS.Snowball.CancelJob.CancelJob
instance Control.DeepSeq.NFData Network.AWS.Snowball.CancelJob.CancelJobResponse
instance Data.Hashable.Class.Hashable Network.AWS.Snowball.CancelJob.CancelJob
instance Control.DeepSeq.NFData Network.AWS.Snowball.CancelJob.CancelJob
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Snowball.CancelJob.CancelJob
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Snowball.CancelJob.CancelJob
instance Network.AWS.Data.Path.ToPath Network.AWS.Snowball.CancelJob.CancelJob
instance Network.AWS.Data.Query.ToQuery Network.AWS.Snowball.CancelJob.CancelJob


-- | Cancels a cluster job. You can only cancel a cluster job while it's in
--   the <tt>AwaitingQuorum</tt> status. You'll have at least an hour after
--   creating a cluster job to cancel it.
module Network.AWS.Snowball.CancelCluster

-- | Creates a value of <a>CancelCluster</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccClusterId</a> - The 39-character ID for the cluster that you
--   want to cancel, for example
--   <tt>CID123e4567-e89b-12d3-a456-426655440000</tt> .</li>
--   </ul>
cancelCluster :: Text -> CancelCluster

-- | <i>See:</i> <a>cancelCluster</a> smart constructor.
data CancelCluster

-- | The 39-character ID for the cluster that you want to cancel, for
--   example <tt>CID123e4567-e89b-12d3-a456-426655440000</tt> .
ccClusterId :: Lens' CancelCluster Text

-- | Creates a value of <a>CancelClusterResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
cancelClusterResponse :: Int -> CancelClusterResponse

-- | <i>See:</i> <a>cancelClusterResponse</a> smart constructor.
data CancelClusterResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ccrsResponseStatus :: Lens' CancelClusterResponse Int
instance GHC.Generics.Generic Network.AWS.Snowball.CancelCluster.CancelClusterResponse
instance Data.Data.Data Network.AWS.Snowball.CancelCluster.CancelClusterResponse
instance GHC.Show.Show Network.AWS.Snowball.CancelCluster.CancelClusterResponse
instance GHC.Read.Read Network.AWS.Snowball.CancelCluster.CancelClusterResponse
instance GHC.Classes.Eq Network.AWS.Snowball.CancelCluster.CancelClusterResponse
instance GHC.Generics.Generic Network.AWS.Snowball.CancelCluster.CancelCluster
instance Data.Data.Data Network.AWS.Snowball.CancelCluster.CancelCluster
instance GHC.Show.Show Network.AWS.Snowball.CancelCluster.CancelCluster
instance GHC.Read.Read Network.AWS.Snowball.CancelCluster.CancelCluster
instance GHC.Classes.Eq Network.AWS.Snowball.CancelCluster.CancelCluster
instance Network.AWS.Types.AWSRequest Network.AWS.Snowball.CancelCluster.CancelCluster
instance Control.DeepSeq.NFData Network.AWS.Snowball.CancelCluster.CancelClusterResponse
instance Data.Hashable.Class.Hashable Network.AWS.Snowball.CancelCluster.CancelCluster
instance Control.DeepSeq.NFData Network.AWS.Snowball.CancelCluster.CancelCluster
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Snowball.CancelCluster.CancelCluster
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Snowball.CancelCluster.CancelCluster
instance Network.AWS.Data.Path.ToPath Network.AWS.Snowball.CancelCluster.CancelCluster
instance Network.AWS.Data.Query.ToQuery Network.AWS.Snowball.CancelCluster.CancelCluster


-- | While a cluster's <tt>ClusterState</tt> value is in the
--   <tt>AwaitingQuorum</tt> 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.
module Network.AWS.Snowball.UpdateCluster

-- | Creates a value of <a>UpdateCluster</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ucNotification</a> - The new or updated <a>Notification</a>
--   object.</li>
--   <li><a>ucForwardingAddressId</a> - The updated ID for the forwarding
--   address for a cluster. This field is not supported in most
--   regions.</li>
--   <li><a>ucAddressId</a> - The ID of the updated <a>Address</a>
--   object.</li>
--   <li><a>ucShippingOption</a> - The updated shipping option value of
--   this cluster's <a>ShippingDetails</a> object.</li>
--   <li><a>ucResources</a> - The updated arrays of <a>JobResource</a>
--   objects that can include updated <a>S3Resource</a> objects or
--   <a>LambdaResource</a> objects.</li>
--   <li><a>ucDescription</a> - The updated description of this
--   cluster.</li>
--   <li><a>ucRoleARN</a> - The new role Amazon Resource Name (ARN) that
--   you want to associate with this cluster. To create a role ARN, use the
--   <a>CreateRole</a> API action in AWS Identity and Access Management
--   (IAM).</li>
--   <li><a>ucClusterId</a> - The cluster ID of the cluster that you want
--   to update, for example
--   <tt>CID123e4567-e89b-12d3-a456-426655440000</tt> .</li>
--   </ul>
updateCluster :: Text -> UpdateCluster

-- | <i>See:</i> <a>updateCluster</a> smart constructor.
data UpdateCluster

-- | The new or updated <a>Notification</a> object.
ucNotification :: Lens' UpdateCluster (Maybe Notification)

-- | The updated ID for the forwarding address for a cluster. This field is
--   not supported in most regions.
ucForwardingAddressId :: Lens' UpdateCluster (Maybe Text)

-- | The ID of the updated <a>Address</a> object.
ucAddressId :: Lens' UpdateCluster (Maybe Text)

-- | The updated shipping option value of this cluster's
--   <a>ShippingDetails</a> object.
ucShippingOption :: Lens' UpdateCluster (Maybe ShippingOption)

-- | The updated arrays of <a>JobResource</a> objects that can include
--   updated <a>S3Resource</a> objects or <a>LambdaResource</a> objects.
ucResources :: Lens' UpdateCluster (Maybe JobResource)

-- | The updated description of this cluster.
ucDescription :: Lens' UpdateCluster (Maybe Text)

-- | The new role Amazon Resource Name (ARN) that you want to associate
--   with this cluster. To create a role ARN, use the <a>CreateRole</a> API
--   action in AWS Identity and Access Management (IAM).
ucRoleARN :: Lens' UpdateCluster (Maybe Text)

-- | The cluster ID of the cluster that you want to update, for example
--   <tt>CID123e4567-e89b-12d3-a456-426655440000</tt> .
ucClusterId :: Lens' UpdateCluster Text

-- | Creates a value of <a>UpdateClusterResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ucrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateClusterResponse :: Int -> UpdateClusterResponse

-- | <i>See:</i> <a>updateClusterResponse</a> smart constructor.
data UpdateClusterResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ucrsResponseStatus :: Lens' UpdateClusterResponse Int
instance GHC.Generics.Generic Network.AWS.Snowball.UpdateCluster.UpdateClusterResponse
instance Data.Data.Data Network.AWS.Snowball.UpdateCluster.UpdateClusterResponse
instance GHC.Show.Show Network.AWS.Snowball.UpdateCluster.UpdateClusterResponse
instance GHC.Read.Read Network.AWS.Snowball.UpdateCluster.UpdateClusterResponse
instance GHC.Classes.Eq Network.AWS.Snowball.UpdateCluster.UpdateClusterResponse
instance GHC.Generics.Generic Network.AWS.Snowball.UpdateCluster.UpdateCluster
instance Data.Data.Data Network.AWS.Snowball.UpdateCluster.UpdateCluster
instance GHC.Show.Show Network.AWS.Snowball.UpdateCluster.UpdateCluster
instance GHC.Read.Read Network.AWS.Snowball.UpdateCluster.UpdateCluster
instance GHC.Classes.Eq Network.AWS.Snowball.UpdateCluster.UpdateCluster
instance Network.AWS.Types.AWSRequest Network.AWS.Snowball.UpdateCluster.UpdateCluster
instance Control.DeepSeq.NFData Network.AWS.Snowball.UpdateCluster.UpdateClusterResponse
instance Data.Hashable.Class.Hashable Network.AWS.Snowball.UpdateCluster.UpdateCluster
instance Control.DeepSeq.NFData Network.AWS.Snowball.UpdateCluster.UpdateCluster
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Snowball.UpdateCluster.UpdateCluster
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Snowball.UpdateCluster.UpdateCluster
instance Network.AWS.Data.Path.ToPath Network.AWS.Snowball.UpdateCluster.UpdateCluster
instance Network.AWS.Data.Query.ToQuery Network.AWS.Snowball.UpdateCluster.UpdateCluster


-- | While a job's <tt>JobState</tt> value is <tt>New</tt> , 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.
module Network.AWS.Snowball.UpdateJob

-- | Creates a value of <a>UpdateJob</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ujNotification</a> - The new or updated <a>Notification</a>
--   object.</li>
--   <li><a>ujForwardingAddressId</a> - The updated ID for the forwarding
--   address for a job. This field is not supported in most regions.</li>
--   <li><a>ujAddressId</a> - The ID of the updated <a>Address</a>
--   object.</li>
--   <li><a>ujShippingOption</a> - The updated shipping option value of
--   this job's <a>ShippingDetails</a> object.</li>
--   <li><a>ujResources</a> - The updated <a>S3Resource</a> object (for a
--   single Amazon S3 bucket or key range), or the updated
--   <a>JobResource</a> object (for multiple buckets or key ranges).</li>
--   <li><a>ujDescription</a> - The updated description of this job's
--   <a>JobMetadata</a> object.</li>
--   <li><a>ujRoleARN</a> - The new role Amazon Resource Name (ARN) that
--   you want to associate with this job. To create a role ARN, use the
--   <a>CreateRole</a> AWS Identity and Access Management (IAM) API
--   action.</li>
--   <li><a>ujSnowballCapacityPreference</a> - The updated
--   <tt>SnowballCapacityPreference</tt> of this job's <a>JobMetadata</a>
--   object. The 50 TB Snowballs are only available in the US regions.</li>
--   <li><a>ujJobId</a> - The job ID of the job that you want to update,
--   for example <tt>JID123e4567-e89b-12d3-a456-426655440000</tt> .</li>
--   </ul>
updateJob :: Text -> UpdateJob

-- | <i>See:</i> <a>updateJob</a> smart constructor.
data UpdateJob

-- | The new or updated <a>Notification</a> object.
ujNotification :: Lens' UpdateJob (Maybe Notification)

-- | The updated ID for the forwarding address for a job. This field is not
--   supported in most regions.
ujForwardingAddressId :: Lens' UpdateJob (Maybe Text)

-- | The ID of the updated <a>Address</a> object.
ujAddressId :: Lens' UpdateJob (Maybe Text)

-- | The updated shipping option value of this job's <a>ShippingDetails</a>
--   object.
ujShippingOption :: Lens' UpdateJob (Maybe ShippingOption)

-- | The updated <a>S3Resource</a> object (for a single Amazon S3 bucket or
--   key range), or the updated <a>JobResource</a> object (for multiple
--   buckets or key ranges).
ujResources :: Lens' UpdateJob (Maybe JobResource)

-- | The updated description of this job's <a>JobMetadata</a> object.
ujDescription :: Lens' UpdateJob (Maybe Text)

-- | The new role Amazon Resource Name (ARN) that you want to associate
--   with this job. To create a role ARN, use the <a>CreateRole</a> AWS
--   Identity and Access Management (IAM) API action.
ujRoleARN :: Lens' UpdateJob (Maybe Text)

-- | The updated <tt>SnowballCapacityPreference</tt> of this job's
--   <a>JobMetadata</a> object. The 50 TB Snowballs are only available in
--   the US regions.
ujSnowballCapacityPreference :: Lens' UpdateJob (Maybe SnowballCapacity)

-- | The job ID of the job that you want to update, for example
--   <tt>JID123e4567-e89b-12d3-a456-426655440000</tt> .
ujJobId :: Lens' UpdateJob Text

-- | Creates a value of <a>UpdateJobResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ujrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateJobResponse :: Int -> UpdateJobResponse

-- | <i>See:</i> <a>updateJobResponse</a> smart constructor.
data UpdateJobResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ujrsResponseStatus :: Lens' UpdateJobResponse Int
instance GHC.Generics.Generic Network.AWS.Snowball.UpdateJob.UpdateJobResponse
instance Data.Data.Data Network.AWS.Snowball.UpdateJob.UpdateJobResponse
instance GHC.Show.Show Network.AWS.Snowball.UpdateJob.UpdateJobResponse
instance GHC.Read.Read Network.AWS.Snowball.UpdateJob.UpdateJobResponse
instance GHC.Classes.Eq Network.AWS.Snowball.UpdateJob.UpdateJobResponse
instance GHC.Generics.Generic Network.AWS.Snowball.UpdateJob.UpdateJob
instance Data.Data.Data Network.AWS.Snowball.UpdateJob.UpdateJob
instance GHC.Show.Show Network.AWS.Snowball.UpdateJob.UpdateJob
instance GHC.Read.Read Network.AWS.Snowball.UpdateJob.UpdateJob
instance GHC.Classes.Eq Network.AWS.Snowball.UpdateJob.UpdateJob
instance Network.AWS.Types.AWSRequest Network.AWS.Snowball.UpdateJob.UpdateJob
instance Control.DeepSeq.NFData Network.AWS.Snowball.UpdateJob.UpdateJobResponse
instance Data.Hashable.Class.Hashable Network.AWS.Snowball.UpdateJob.UpdateJob
instance Control.DeepSeq.NFData Network.AWS.Snowball.UpdateJob.UpdateJob
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Snowball.UpdateJob.UpdateJob
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Snowball.UpdateJob.UpdateJob
instance Network.AWS.Data.Path.ToPath Network.AWS.Snowball.UpdateJob.UpdateJob
instance Network.AWS.Data.Query.ToQuery Network.AWS.Snowball.UpdateJob.UpdateJob


module Network.AWS.Snowball.Waiters


-- | AWS Snowball is a petabyte-scale data transport solution that uses
--   secure appliances 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 appliance, you'll need to use
--   the Snowball client or the Amazon S3 API adapter for Snowball. For
--   more information, see the <a>User Guide</a> .
module Network.AWS.Snowball

-- | API version <tt>2016-06-30</tt> of the Amazon Import/Export Snowball
--   SDK configuration.
snowball :: Service

-- | The specified resource can't be found. Check the information you
--   provided in your last request, and try again.
_InvalidResourceException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The address is either outside the serviceable area for your region, or
--   an error occurred. Check the address with your region's carrier and
--   try again. If the issue persists, contact AWS Support.
_UnsupportedAddressException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The provided AWS Key Management Service key lacks the permissions to
--   perform the specified <tt>CreateJob</tt> or <tt>UpdateJob</tt> action.
_KMSRequestFailedException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The action can't be performed because the job's current state doesn't
--   allow that action to be performed.
_InvalidJobStateException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Job or cluster creation failed. One ore more inputs were invalid.
--   Confirm that the 'CreateClusterRequest$SnowballType' value supports
--   your 'CreateJobRequest$JobType' , and try again.
_InvalidInputCombinationException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The <tt>NextToken</tt> string was altered unexpectedly, and the
--   operation has stopped. Run the operation without changing the
--   <tt>NextToken</tt> string, and try again.
_InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The address provided was invalid. Check the address with your region's
--   carrier, and try again.
_InvalidAddressException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Job creation failed. Currently, clusters support five nodes. If you
--   have less than five nodes for your cluster and you have more nodes to
--   create for this cluster, try again and create jobs until your cluster
--   has exactly five notes.
_ClusterLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
data ClusterState
AwaitingQuorum :: ClusterState
Cancelled :: ClusterState
Complete :: ClusterState
InUse :: ClusterState
Pending :: ClusterState
data JobState
JSCancelled :: JobState
JSComplete :: JobState
JSInProgress :: JobState
JSInTransitToAWS :: JobState
JSInTransitToCustomer :: JobState
JSListing :: JobState
JSNew :: JobState
JSPending :: JobState
JSPreparingAppliance :: JobState
JSPreparingShipment :: JobState
JSWithAWS :: JobState
JSWithCustomer :: JobState
data JobType
Export :: JobType
Import :: JobType
LocalUse :: JobType
data ShippingOption
SOExpress :: ShippingOption
SONextDay :: ShippingOption
SOSecondDay :: ShippingOption
SOStandard :: ShippingOption
data SnowballCapacity
NoPreference :: SnowballCapacity
T100 :: SnowballCapacity
T50 :: SnowballCapacity
T80 :: SnowballCapacity
data SnowballType
Edge :: SnowballType
Standard :: SnowballType

-- | The address that you want the Snowball or Snowballs associated with a
--   specific job to be shipped to. Addresses are validated at the time of
--   creation. The address you provide must be located within the
--   serviceable area of your region. Although no individual elements of
--   the <tt>Address</tt> are required, if the address is invalid or
--   unsupported, then an exception is thrown.
--   
--   <i>See:</i> <a>address</a> smart constructor.
data Address

-- | Creates a value of <a>Address</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>aIsRestricted</a> - If the address you are creating is a
--   primary address, then set this option to true. This field is not
--   supported in most regions.</li>
--   <li><a>aStreet3</a> - The third line in a street address that a
--   Snowball is to be delivered to.</li>
--   <li><a>aLandmark</a> - This field is no longer used and the value is
--   ignored.</li>
--   <li><a>aPostalCode</a> - The postal code in an address that a Snowball
--   is to be delivered to.</li>
--   <li><a>aCountry</a> - The country in an address that a Snowball is to
--   be delivered to.</li>
--   <li><a>aStateOrProvince</a> - The state or province in an address that
--   a Snowball is to be delivered to.</li>
--   <li><a>aStreet2</a> - The second line in a street address that a
--   Snowball is to be delivered to.</li>
--   <li><a>aAddressId</a> - The unique ID for an address.</li>
--   <li><a>aCity</a> - The city in an address that a Snowball is to be
--   delivered to.</li>
--   <li><a>aPhoneNumber</a> - The phone number associated with an address
--   that a Snowball is to be delivered to.</li>
--   <li><a>aCompany</a> - The name of the company to receive a Snowball at
--   an address.</li>
--   <li><a>aName</a> - The name of a person to receive a Snowball at an
--   address.</li>
--   <li><a>aPrefectureOrDistrict</a> - This field is no longer used and
--   the value is ignored.</li>
--   <li><a>aStreet1</a> - The first line in a street address that a
--   Snowball is to be delivered to.</li>
--   </ul>
address :: Address

-- | If the address you are creating is a primary address, then set this
--   option to true. This field is not supported in most regions.
aIsRestricted :: Lens' Address (Maybe Bool)

-- | The third line in a street address that a Snowball is to be delivered
--   to.
aStreet3 :: Lens' Address (Maybe Text)

-- | This field is no longer used and the value is ignored.
aLandmark :: Lens' Address (Maybe Text)

-- | The postal code in an address that a Snowball is to be delivered to.
aPostalCode :: Lens' Address (Maybe Text)

-- | The country in an address that a Snowball is to be delivered to.
aCountry :: Lens' Address (Maybe Text)

-- | The state or province in an address that a Snowball is to be delivered
--   to.
aStateOrProvince :: Lens' Address (Maybe Text)

-- | The second line in a street address that a Snowball is to be delivered
--   to.
aStreet2 :: Lens' Address (Maybe Text)

-- | The unique ID for an address.
aAddressId :: Lens' Address (Maybe Text)

-- | The city in an address that a Snowball is to be delivered to.
aCity :: Lens' Address (Maybe Text)

-- | The phone number associated with an address that a Snowball is to be
--   delivered to.
aPhoneNumber :: Lens' Address (Maybe Text)

-- | The name of the company to receive a Snowball at an address.
aCompany :: Lens' Address (Maybe Text)

-- | The name of a person to receive a Snowball at an address.
aName :: Lens' Address (Maybe Text)

-- | This field is no longer used and the value is ignored.
aPrefectureOrDistrict :: Lens' Address (Maybe Text)

-- | The first line in a street address that a Snowball is to be delivered
--   to.
aStreet1 :: Lens' Address (Maybe Text)

-- | Contains a cluster's state, a cluster's ID, and other important
--   information.
--   
--   <i>See:</i> <a>clusterListEntry</a> smart constructor.
data ClusterListEntry

-- | Creates a value of <a>ClusterListEntry</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cleClusterState</a> - The current state of this cluster. For
--   information about the state of a specific node, see
--   'JobListEntry$JobState' .</li>
--   <li><a>cleClusterId</a> - The 39-character ID for the cluster that you
--   want to list, for example
--   <tt>CID123e4567-e89b-12d3-a456-426655440000</tt> .</li>
--   <li><a>cleCreationDate</a> - The creation date for this cluster.</li>
--   <li><a>cleDescription</a> - Defines an optional description of the
--   cluster, for example <tt>Environmental Data Cluster-01</tt> .</li>
--   </ul>
clusterListEntry :: ClusterListEntry

-- | The current state of this cluster. For information about the state of
--   a specific node, see 'JobListEntry$JobState' .
cleClusterState :: Lens' ClusterListEntry (Maybe ClusterState)

-- | The 39-character ID for the cluster that you want to list, for example
--   <tt>CID123e4567-e89b-12d3-a456-426655440000</tt> .
cleClusterId :: Lens' ClusterListEntry (Maybe Text)

-- | The creation date for this cluster.
cleCreationDate :: Lens' ClusterListEntry (Maybe UTCTime)

-- | Defines an optional description of the cluster, for example
--   <tt>Environmental Data Cluster-01</tt> .
cleDescription :: Lens' ClusterListEntry (Maybe Text)

-- | Contains metadata about a specific cluster.
--   
--   <i>See:</i> <a>clusterMetadata</a> smart constructor.
data ClusterMetadata

-- | Creates a value of <a>ClusterMetadata</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cmJobType</a> - The type of job for this cluster. Currently,
--   the only job type supported for clusters is <tt>LOCAL_USE</tt> .</li>
--   <li><a>cmKMSKeyARN</a> - The <tt>KmsKeyARN</tt> Amazon Resource Name
--   (ARN) associated with this cluster. This ARN was created using the
--   <a>CreateKey</a> API action in AWS Key Management Service (AWS
--   KMS).</li>
--   <li><a>cmClusterState</a> - The current status of the cluster.</li>
--   <li><a>cmNotification</a> - The Amazon Simple Notification Service
--   (Amazon SNS) notification settings for this cluster.</li>
--   <li><a>cmForwardingAddressId</a> - The ID of the address that you want
--   a cluster shipped to, after it will be shipped to its primary address.
--   This field is not supported in most regions.</li>
--   <li><a>cmAddressId</a> - The automatically generated ID for a specific
--   address.</li>
--   <li><a>cmSnowballType</a> - The type of AWS Snowball appliance to use
--   for this cluster. Currently, the only supported appliance type for
--   cluster jobs is <tt>EDGE</tt> .</li>
--   <li><a>cmShippingOption</a> - The shipping speed for each node in this
--   cluster. This speed doesn't dictate how soon you'll get each Snowball
--   Edge appliance, rather it represents how quickly each appliance moves
--   to its destination while in transit. Regional shipping speeds are as
--   follows: * In Australia, you have access to express shipping.
--   Typically, appliances shipped express are delivered in about a day. *
--   In the European Union (EU), you have access to express shipping.
--   Typically, Snowball Edges shipped express are delivered in about a
--   day. In addition, most countries in the EU have access to standard
--   shipping, which typically takes less than a week, one way. * In India,
--   Snowball Edges are delivered in one to seven days. * In the US, you
--   have access to one-day shipping and two-day shipping.</li>
--   <li><a>cmResources</a> - The arrays of <a>JobResource</a> objects that
--   can include updated <a>S3Resource</a> objects or <a>LambdaResource</a>
--   objects.</li>
--   <li><a>cmClusterId</a> - The automatically generated ID for a
--   cluster.</li>
--   <li><a>cmCreationDate</a> - The creation date for this cluster.</li>
--   <li><a>cmDescription</a> - The optional description of the
--   cluster.</li>
--   <li><a>cmRoleARN</a> - The role ARN associated with this cluster. This
--   ARN was created using the <a>CreateRole</a> API action in AWS Identity
--   and Access Management (IAM).</li>
--   </ul>
clusterMetadata :: ClusterMetadata

-- | The type of job for this cluster. Currently, the only job type
--   supported for clusters is <tt>LOCAL_USE</tt> .
cmJobType :: Lens' ClusterMetadata (Maybe JobType)

-- | The <tt>KmsKeyARN</tt> Amazon Resource Name (ARN) associated with this
--   cluster. This ARN was created using the <a>CreateKey</a> API action in
--   AWS Key Management Service (AWS KMS).
cmKMSKeyARN :: Lens' ClusterMetadata (Maybe Text)

-- | The current status of the cluster.
cmClusterState :: Lens' ClusterMetadata (Maybe ClusterState)

-- | The Amazon Simple Notification Service (Amazon SNS) notification
--   settings for this cluster.
cmNotification :: Lens' ClusterMetadata (Maybe Notification)

-- | The ID of the address that you want a cluster shipped to, after it
--   will be shipped to its primary address. This field is not supported in
--   most regions.
cmForwardingAddressId :: Lens' ClusterMetadata (Maybe Text)

-- | The automatically generated ID for a specific address.
cmAddressId :: Lens' ClusterMetadata (Maybe Text)

-- | The type of AWS Snowball appliance to use for this cluster. Currently,
--   the only supported appliance type for cluster jobs is <tt>EDGE</tt> .
cmSnowballType :: Lens' ClusterMetadata (Maybe SnowballType)

-- | The shipping speed for each node in this cluster. This speed doesn't
--   dictate how soon you'll get each Snowball Edge appliance, rather it
--   represents how quickly each appliance moves to its destination while
--   in transit. Regional shipping speeds are as follows: * In Australia,
--   you have access to express shipping. Typically, appliances shipped
--   express are delivered in about a day. * In the European Union (EU),
--   you have access to express shipping. Typically, Snowball Edges shipped
--   express are delivered in about a day. In addition, most countries in
--   the EU have access to standard shipping, which typically takes less
--   than a week, one way. * In India, Snowball Edges are delivered in one
--   to seven days. * In the US, you have access to one-day shipping and
--   two-day shipping.
cmShippingOption :: Lens' ClusterMetadata (Maybe ShippingOption)

-- | The arrays of <a>JobResource</a> objects that can include updated
--   <a>S3Resource</a> objects or <a>LambdaResource</a> objects.
cmResources :: Lens' ClusterMetadata (Maybe JobResource)

-- | The automatically generated ID for a cluster.
cmClusterId :: Lens' ClusterMetadata (Maybe Text)

-- | The creation date for this cluster.
cmCreationDate :: Lens' ClusterMetadata (Maybe UTCTime)

-- | The optional description of the cluster.
cmDescription :: Lens' ClusterMetadata (Maybe Text)

-- | The role ARN associated with this cluster. This ARN was created using
--   the <a>CreateRole</a> API action in AWS Identity and Access Management
--   (IAM).
cmRoleARN :: Lens' ClusterMetadata (Maybe Text)

-- | Defines the real-time status of a Snowball's data transfer while the
--   appliance is at AWS. This data is only available while a job has a
--   <tt>JobState</tt> value of <tt>InProgress</tt> , for both import and
--   export jobs.
--   
--   <i>See:</i> <a>dataTransfer</a> smart constructor.
data DataTransfer

-- | Creates a value of <a>DataTransfer</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dtTotalObjects</a> - The total number of objects for a transfer
--   between a Snowball and Amazon S3. This value is set to 0 (zero) until
--   all the keys that will be transferred have been listed.</li>
--   <li><a>dtTotalBytes</a> - The total bytes of data for a transfer
--   between a Snowball and Amazon S3. This value is set to 0 (zero) until
--   all the keys that will be transferred have been listed.</li>
--   <li><a>dtObjectsTransferred</a> - The number of objects transferred
--   between a Snowball and Amazon S3.</li>
--   <li><a>dtBytesTransferred</a> - The number of bytes transferred
--   between a Snowball and Amazon S3.</li>
--   </ul>
dataTransfer :: DataTransfer

-- | The total number of objects for a transfer between a Snowball and
--   Amazon S3. This value is set to 0 (zero) until all the keys that will
--   be transferred have been listed.
dtTotalObjects :: Lens' DataTransfer (Maybe Integer)

-- | The total bytes of data for a transfer between a Snowball and Amazon
--   S3. This value is set to 0 (zero) until all the keys that will be
--   transferred have been listed.
dtTotalBytes :: Lens' DataTransfer (Maybe Integer)

-- | The number of objects transferred between a Snowball and Amazon S3.
dtObjectsTransferred :: Lens' DataTransfer (Maybe Integer)

-- | The number of bytes transferred between a Snowball and Amazon S3.
dtBytesTransferred :: Lens' DataTransfer (Maybe Integer)

-- | The container for the 'EventTriggerDefinition$EventResourceARN' .
--   
--   <i>See:</i> <a>eventTriggerDefinition</a> smart constructor.
data EventTriggerDefinition

-- | Creates a value of <a>EventTriggerDefinition</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>etdEventResourceARN</a> - The Amazon Resource Name (ARN) for
--   any local Amazon S3 resource that is an AWS Lambda function's event
--   trigger associated with this job.</li>
--   </ul>
eventTriggerDefinition :: EventTriggerDefinition

-- | The Amazon Resource Name (ARN) for any local Amazon S3 resource that
--   is an AWS Lambda function's event trigger associated with this job.
etdEventResourceARN :: Lens' EventTriggerDefinition (Maybe Text)

-- | Each <tt>JobListEntry</tt> 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 an export job.
--   
--   <i>See:</i> <a>jobListEntry</a> smart constructor.
data JobListEntry

-- | Creates a value of <a>JobListEntry</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jleJobType</a> - The type of job.</li>
--   <li><a>jleJobId</a> - The automatically generated ID for a job, for
--   example <tt>JID123e4567-e89b-12d3-a456-426655440000</tt> .</li>
--   <li><a>jleJobState</a> - The current state of this job.</li>
--   <li><a>jleSnowballType</a> - The type of appliance used with this
--   job.</li>
--   <li><a>jleCreationDate</a> - The creation date for this job.</li>
--   <li><a>jleDescription</a> - The optional description of this specific
--   job, for example <tt>Important Photos 2016-08-11</tt> .</li>
--   <li><a>jleIsMaster</a> - A value that indicates that this job is a
--   master job. A master job represents a successful request to create an
--   export job. Master jobs aren't associated with any Snowballs. Instead,
--   each master job will have at least one job part, and each job part is
--   associated with a Snowball. It might take some time before the job
--   parts associated with a particular master job are listed, because they
--   are created after the master job is created.</li>
--   </ul>
jobListEntry :: JobListEntry

-- | The type of job.
jleJobType :: Lens' JobListEntry (Maybe JobType)

-- | The automatically generated ID for a job, for example
--   <tt>JID123e4567-e89b-12d3-a456-426655440000</tt> .
jleJobId :: Lens' JobListEntry (Maybe Text)

-- | The current state of this job.
jleJobState :: Lens' JobListEntry (Maybe JobState)

-- | The type of appliance used with this job.
jleSnowballType :: Lens' JobListEntry (Maybe SnowballType)

-- | The creation date for this job.
jleCreationDate :: Lens' JobListEntry (Maybe UTCTime)

-- | The optional description of this specific job, for example
--   <tt>Important Photos 2016-08-11</tt> .
jleDescription :: Lens' JobListEntry (Maybe Text)

-- | A value that indicates that this job is a master job. A master job
--   represents a successful request to create an export job. Master jobs
--   aren't associated with any Snowballs. Instead, each master job will
--   have at least one job part, and each job part is associated with a
--   Snowball. It might take some time before the job parts associated with
--   a particular master job are listed, because they are created after the
--   master job is created.
jleIsMaster :: Lens' JobListEntry (Maybe Bool)

-- | Contains job logs. Whenever Snowball is used to import data into or
--   export data out of Amazon S3, you'll have the option of downloading a
--   PDF job report. Job logs are returned as a part of the response syntax
--   of the <tt>DescribeJob</tt> action in the <tt>JobMetadata</tt> data
--   type. The job logs can be accessed for up to 60 minutes after this
--   request has been made. To access any of the job logs after 60 minutes
--   have passed, you'll have to make another call to the
--   <tt>DescribeJob</tt> action.
--   
--   For import jobs, the PDF job report becomes available at the end of
--   the import process. For export jobs, your job report typically becomes
--   available while the Snowball for your job part is being delivered to
--   you.
--   
--   The job report provides you insight into the state of your Amazon S3
--   data transfer. The report includes details about your job or job part
--   for your records.
--   
--   For deeper visibility into the status of your transferred objects, you
--   can look at the two associated logs: a success log and a failure log.
--   The logs are saved in comma-separated value (CSV) format, and the name
--   of each log includes the ID of the job or job part that the log
--   describes.
--   
--   <i>See:</i> <a>jobLogs</a> smart constructor.
data JobLogs

-- | Creates a value of <a>JobLogs</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jlJobFailureLogURI</a> - A link to an Amazon S3 presigned URL
--   where the job failure log is located.</li>
--   <li><a>jlJobCompletionReportURI</a> - A link to an Amazon S3 presigned
--   URL where the job completion report is located.</li>
--   <li><a>jlJobSuccessLogURI</a> - A link to an Amazon S3 presigned URL
--   where the job success log is located.</li>
--   </ul>
jobLogs :: JobLogs

-- | A link to an Amazon S3 presigned URL where the job failure log is
--   located.
jlJobFailureLogURI :: Lens' JobLogs (Maybe Text)

-- | A link to an Amazon S3 presigned URL where the job completion report
--   is located.
jlJobCompletionReportURI :: Lens' JobLogs (Maybe Text)

-- | A link to an Amazon S3 presigned URL where the job success log is
--   located.
jlJobSuccessLogURI :: Lens' JobLogs (Maybe Text)

-- | Contains information about a specific job including shipping
--   information, job status, and other important metadata. This
--   information is returned as a part of the response syntax of the
--   <tt>DescribeJob</tt> action.
--   
--   <i>See:</i> <a>jobMetadata</a> smart constructor.
data JobMetadata

-- | Creates a value of <a>JobMetadata</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jmJobType</a> - The type of job.</li>
--   <li><a>jmKMSKeyARN</a> - The Amazon Resource Name (ARN) for the AWS
--   Key Management Service (AWS KMS) key associated with this job. This
--   ARN was created using the <a>CreateKey</a> API action in AWS KMS.</li>
--   <li><a>jmJobId</a> - The automatically generated ID for a job, for
--   example <tt>JID123e4567-e89b-12d3-a456-426655440000</tt> .</li>
--   <li><a>jmJobLogInfo</a> - Links to Amazon S3 presigned URLs for the
--   job report and logs. For import jobs, the PDF job report becomes
--   available at the end of the import process. For export jobs, your job
--   report typically becomes available while the Snowball for your job
--   part is being delivered to you.</li>
--   <li><a>jmNotification</a> - The Amazon Simple Notification Service
--   (Amazon SNS) notification settings associated with a specific job. The
--   <tt>Notification</tt> object is returned as a part of the response
--   syntax of the <tt>DescribeJob</tt> action in the <tt>JobMetadata</tt>
--   data type.</li>
--   <li><a>jmJobState</a> - The current status of the jobs.</li>
--   <li><a>jmForwardingAddressId</a> - The ID of the address that you want
--   a job shipped to, after it will be shipped to its primary address.
--   This field is not supported in most regions.</li>
--   <li><a>jmShippingDetails</a> - A job's shipping information, including
--   inbound and outbound tracking numbers and shipping speed options.</li>
--   <li><a>jmAddressId</a> - The ID for the address that you want the
--   Snowball shipped to.</li>
--   <li><a>jmSnowballType</a> - The type of appliance used with this
--   job.</li>
--   <li><a>jmDataTransferProgress</a> - A value that defines the real-time
--   status of a Snowball's data transfer while the appliance is at AWS.
--   This data is only available while a job has a <tt>JobState</tt> value
--   of <tt>InProgress</tt> , for both import and export jobs.</li>
--   <li><a>jmResources</a> - An array of <tt>S3Resource</tt> objects. Each
--   <tt>S3Resource</tt> object represents an Amazon S3 bucket that your
--   transferred data will be exported from or imported into.</li>
--   <li><a>jmClusterId</a> - The 39-character ID for the cluster, for
--   example <tt>CID123e4567-e89b-12d3-a456-426655440000</tt> .</li>
--   <li><a>jmCreationDate</a> - The creation date for this job.</li>
--   <li><a>jmDescription</a> - The description of the job, provided at job
--   creation.</li>
--   <li><a>jmRoleARN</a> - The role ARN associated with this job. This ARN
--   was created using the <a>CreateRole</a> API action in AWS Identity and
--   Access Management (IAM).</li>
--   <li><a>jmSnowballCapacityPreference</a> - The Snowball capacity
--   preference for this job, specified at job creation. In US regions, you
--   can choose between 50 TB and 80 TB Snowballs. All other regions use 80
--   TB capacity Snowballs.</li>
--   </ul>
jobMetadata :: JobMetadata

-- | The type of job.
jmJobType :: Lens' JobMetadata (Maybe JobType)

-- | The Amazon Resource Name (ARN) for the AWS Key Management Service (AWS
--   KMS) key associated with this job. This ARN was created using the
--   <a>CreateKey</a> API action in AWS KMS.
jmKMSKeyARN :: Lens' JobMetadata (Maybe Text)

-- | The automatically generated ID for a job, for example
--   <tt>JID123e4567-e89b-12d3-a456-426655440000</tt> .
jmJobId :: Lens' JobMetadata (Maybe Text)

-- | Links to Amazon S3 presigned URLs for the job report and logs. For
--   import jobs, the PDF job report becomes available at the end of the
--   import process. For export jobs, your job report typically becomes
--   available while the Snowball for your job part is being delivered to
--   you.
jmJobLogInfo :: Lens' JobMetadata (Maybe JobLogs)

-- | The Amazon Simple Notification Service (Amazon SNS) notification
--   settings associated with a specific job. The <tt>Notification</tt>
--   object is returned as a part of the response syntax of the
--   <tt>DescribeJob</tt> action in the <tt>JobMetadata</tt> data type.
jmNotification :: Lens' JobMetadata (Maybe Notification)

-- | The current status of the jobs.
jmJobState :: Lens' JobMetadata (Maybe JobState)

-- | The ID of the address that you want a job shipped to, after it will be
--   shipped to its primary address. This field is not supported in most
--   regions.
jmForwardingAddressId :: Lens' JobMetadata (Maybe Text)

-- | A job's shipping information, including inbound and outbound tracking
--   numbers and shipping speed options.
jmShippingDetails :: Lens' JobMetadata (Maybe ShippingDetails)

-- | The ID for the address that you want the Snowball shipped to.
jmAddressId :: Lens' JobMetadata (Maybe Text)

-- | The type of appliance used with this job.
jmSnowballType :: Lens' JobMetadata (Maybe SnowballType)

-- | A value that defines the real-time status of a Snowball's data
--   transfer while the appliance is at AWS. This data is only available
--   while a job has a <tt>JobState</tt> value of <tt>InProgress</tt> , for
--   both import and export jobs.
jmDataTransferProgress :: Lens' JobMetadata (Maybe DataTransfer)

-- | An array of <tt>S3Resource</tt> objects. Each <tt>S3Resource</tt>
--   object represents an Amazon S3 bucket that your transferred data will
--   be exported from or imported into.
jmResources :: Lens' JobMetadata (Maybe JobResource)

-- | The 39-character ID for the cluster, for example
--   <tt>CID123e4567-e89b-12d3-a456-426655440000</tt> .
jmClusterId :: Lens' JobMetadata (Maybe Text)

-- | The creation date for this job.
jmCreationDate :: Lens' JobMetadata (Maybe UTCTime)

-- | The description of the job, provided at job creation.
jmDescription :: Lens' JobMetadata (Maybe Text)

-- | The role ARN associated with this job. This ARN was created using the
--   <a>CreateRole</a> API action in AWS Identity and Access Management
--   (IAM).
jmRoleARN :: Lens' JobMetadata (Maybe Text)

-- | The Snowball capacity preference for this job, specified at job
--   creation. In US regions, you can choose between 50 TB and 80 TB
--   Snowballs. All other regions use 80 TB capacity Snowballs.
jmSnowballCapacityPreference :: Lens' JobMetadata (Maybe SnowballCapacity)

-- | Contains an array of <tt>S3Resource</tt> objects. Each
--   <tt>S3Resource</tt> object represents an Amazon S3 bucket that your
--   transferred data will be exported from or imported into.
--   
--   <i>See:</i> <a>jobResource</a> smart constructor.
data JobResource

-- | Creates a value of <a>JobResource</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>jrLambdaResources</a> - The Python-language Lambda functions
--   for this job.</li>
--   <li><a>jrS3Resources</a> - An array of <tt>S3Resource</tt>
--   objects.</li>
--   </ul>
jobResource :: JobResource

-- | The Python-language Lambda functions for this job.
jrLambdaResources :: Lens' JobResource [LambdaResource]

-- | An array of <tt>S3Resource</tt> objects.
jrS3Resources :: Lens' JobResource [S3Resource]

-- | Contains a key range. For export jobs, a <tt>S3Resource</tt> object
--   can have an optional <tt>KeyRange</tt> value. The length of the range
--   is defined at job creation, and has either an inclusive
--   <tt>BeginMarker</tt> , an inclusive <tt>EndMarker</tt> , or both.
--   Ranges are UTF-8 binary sorted.
--   
--   <i>See:</i> <a>keyRange</a> smart constructor.
data KeyRange

-- | Creates a value of <a>KeyRange</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>krEndMarker</a> - The key that ends an optional key range for
--   an export job. Ranges are inclusive and UTF-8 binary sorted.</li>
--   <li><a>krBeginMarker</a> - The key that starts an optional key range
--   for an export job. Ranges are inclusive and UTF-8 binary sorted.</li>
--   </ul>
keyRange :: KeyRange

-- | The key that ends an optional key range for an export job. Ranges are
--   inclusive and UTF-8 binary sorted.
krEndMarker :: Lens' KeyRange (Maybe Text)

-- | The key that starts an optional key range for an export job. Ranges
--   are inclusive and UTF-8 binary sorted.
krBeginMarker :: Lens' KeyRange (Maybe Text)

-- | Identifies
--   
--   <i>See:</i> <a>lambdaResource</a> smart constructor.
data LambdaResource

-- | Creates a value of <a>LambdaResource</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>lrEventTriggers</a> - The array of ARNs for <a>S3Resource</a>
--   objects to trigger the <a>LambdaResource</a> objects associated with
--   this job.</li>
--   <li><a>lrLambdaARN</a> - An Amazon Resource Name (ARN) that represents
--   an AWS Lambda function to be triggered by PUT object actions on the
--   associated local Amazon S3 resource.</li>
--   </ul>
lambdaResource :: LambdaResource

-- | The array of ARNs for <a>S3Resource</a> objects to trigger the
--   <a>LambdaResource</a> objects associated with this job.
lrEventTriggers :: Lens' LambdaResource [EventTriggerDefinition]

-- | An Amazon Resource Name (ARN) that represents an AWS Lambda function
--   to be triggered by PUT object actions on the associated local Amazon
--   S3 resource.
lrLambdaARN :: Lens' LambdaResource (Maybe Text)

-- | The Amazon Simple Notification Service (Amazon SNS) notification
--   settings associated with a specific job. The <tt>Notification</tt>
--   object is returned as a part of the response syntax of the
--   <tt>DescribeJob</tt> action in the <tt>JobMetadata</tt> data type.
--   
--   When the notification settings are defined during job creation, you
--   can choose to notify based on a specific set of job states using the
--   <tt>JobStatesToNotify</tt> array of strings, or you can specify that
--   you want to have Amazon SNS notifications sent out for all job states
--   with <tt>NotifyAll</tt> set to true.
--   
--   <i>See:</i> <a>notification</a> smart constructor.
data Notification

-- | Creates a value of <a>Notification</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>nNotifyAll</a> - Any change in job state will trigger a
--   notification for this job.</li>
--   <li><a>nSNSTopicARN</a> - The new SNS <tt>TopicArn</tt> that you want
--   to associate with this job. You can create Amazon Resource Names
--   (ARNs) for topics by using the <a>CreateTopic</a> Amazon SNS API
--   action. You can subscribe email addresses to an Amazon SNS topic
--   through the AWS Management Console, or by using the <a>Subscribe</a>
--   AWS Simple Notification Service (SNS) API action.</li>
--   <li><a>nJobStatesToNotify</a> - The list of job states that will
--   trigger a notification for this job.</li>
--   </ul>
notification :: Notification

-- | Any change in job state will trigger a notification for this job.
nNotifyAll :: Lens' Notification (Maybe Bool)

-- | The new SNS <tt>TopicArn</tt> that you want to associate with this
--   job. You can create Amazon Resource Names (ARNs) for topics by using
--   the <a>CreateTopic</a> Amazon SNS API action. You can subscribe email
--   addresses to an Amazon SNS topic through the AWS Management Console,
--   or by using the <a>Subscribe</a> AWS Simple Notification Service (SNS)
--   API action.
nSNSTopicARN :: Lens' Notification (Maybe Text)

-- | The list of job states that will trigger a notification for this job.
nJobStatesToNotify :: Lens' Notification [JobState]

-- | Each <tt>S3Resource</tt> object represents an Amazon S3 bucket that
--   your transferred data will be exported from or imported into. For
--   export jobs, this object can have an optional <tt>KeyRange</tt> value.
--   The length of the range is defined at job creation, and has either an
--   inclusive <tt>BeginMarker</tt> , an inclusive <tt>EndMarker</tt> , or
--   both. Ranges are UTF-8 binary sorted.
--   
--   <i>See:</i> <a>s3Resource</a> smart constructor.
data S3Resource

-- | Creates a value of <a>S3Resource</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>srKeyRange</a> - For export jobs, you can provide an optional
--   <tt>KeyRange</tt> within a specific Amazon S3 bucket. The length of
--   the range is defined at job creation, and has either an inclusive
--   <tt>BeginMarker</tt> , an inclusive <tt>EndMarker</tt> , or both.
--   Ranges are UTF-8 binary sorted.</li>
--   <li><a>srBucketARN</a> - The Amazon Resource Name (ARN) of an Amazon
--   S3 bucket.</li>
--   </ul>
s3Resource :: S3Resource

-- | For export jobs, you can provide an optional <tt>KeyRange</tt> within
--   a specific Amazon S3 bucket. The length of the range is defined at job
--   creation, and has either an inclusive <tt>BeginMarker</tt> , an
--   inclusive <tt>EndMarker</tt> , or both. Ranges are UTF-8 binary
--   sorted.
srKeyRange :: Lens' S3Resource (Maybe KeyRange)

-- | The Amazon Resource Name (ARN) of an Amazon S3 bucket.
srBucketARN :: Lens' S3Resource (Maybe Text)

-- | The <tt>Status</tt> and <tt>TrackingNumber</tt> information for an
--   inbound or outbound shipment.
--   
--   <i>See:</i> <a>shipment</a> smart constructor.
data Shipment

-- | Creates a value of <a>Shipment</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sStatus</a> - Status information for a shipment.</li>
--   <li><a>sTrackingNumber</a> - The tracking number for this job. Using
--   this tracking number with your region's carrier's website, you can
--   track a Snowball as the carrier transports it. For India, the carrier
--   is Amazon Logistics. For all other regions, UPS is the carrier.</li>
--   </ul>
shipment :: Shipment

-- | Status information for a shipment.
sStatus :: Lens' Shipment (Maybe Text)

-- | The tracking number for this job. Using this tracking number with your
--   region's carrier's website, you can track a Snowball as the carrier
--   transports it. For India, the carrier is Amazon Logistics. For all
--   other regions, UPS is the carrier.
sTrackingNumber :: Lens' Shipment (Maybe Text)

-- | A job's shipping information, including inbound and outbound tracking
--   numbers and shipping speed options.
--   
--   <i>See:</i> <a>shippingDetails</a> smart constructor.
data ShippingDetails

-- | Creates a value of <a>ShippingDetails</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdShippingOption</a> - The shipping speed for a particular job.
--   This speed doesn't dictate how soon you'll get the Snowball from the
--   job's creation date. This speed represents how quickly it moves to its
--   destination while in transit. Regional shipping speeds are as follows:
--   * In Australia, you have access to express shipping. Typically,
--   Snowballs shipped express are delivered in about a day. * In the
--   European Union (EU), you have access to express shipping. Typically,
--   Snowballs shipped express are delivered in about a day. In addition,
--   most countries in the EU have access to standard shipping, which
--   typically takes less than a week, one way. * In India, Snowballs are
--   delivered in one to seven days. * In the United States of America
--   (US), you have access to one-day shipping and two-day shipping.</li>
--   <li><a>sdOutboundShipment</a> - The <tt>Status</tt> and
--   <tt>TrackingNumber</tt> values for a Snowball being delivered to the
--   address that you specified for a particular job.</li>
--   <li><a>sdInboundShipment</a> - The <tt>Status</tt> and
--   <tt>TrackingNumber</tt> values for a Snowball being returned to AWS
--   for a particular job.</li>
--   </ul>
shippingDetails :: ShippingDetails

-- | The shipping speed for a particular job. This speed doesn't dictate
--   how soon you'll get the Snowball from the job's creation date. This
--   speed represents how quickly it moves to its destination while in
--   transit. Regional shipping speeds are as follows: * In Australia, you
--   have access to express shipping. Typically, Snowballs shipped express
--   are delivered in about a day. * In the European Union (EU), you have
--   access to express shipping. Typically, Snowballs shipped express are
--   delivered in about a day. In addition, most countries in the EU have
--   access to standard shipping, which typically takes less than a week,
--   one way. * In India, Snowballs are delivered in one to seven days. *
--   In the United States of America (US), you have access to one-day
--   shipping and two-day shipping.
sdShippingOption :: Lens' ShippingDetails (Maybe ShippingOption)

-- | The <tt>Status</tt> and <tt>TrackingNumber</tt> values for a Snowball
--   being delivered to the address that you specified for a particular
--   job.
sdOutboundShipment :: Lens' ShippingDetails (Maybe Shipment)

-- | The <tt>Status</tt> and <tt>TrackingNumber</tt> values for a Snowball
--   being returned to AWS for a particular job.
sdInboundShipment :: Lens' ShippingDetails (Maybe Shipment)
