packages feed

amazonka-snowball (empty) → 1.4.4

raw patch · 47 files changed

+3870/−0 lines, 47 filesdep +amazonka-coredep +amazonka-snowballdep +amazonka-testsetup-changed

Dependencies added: amazonka-core, amazonka-snowball, amazonka-test, base, bytestring, tasty, tasty-hunit, text, time, unordered-containers

Files

+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,42 @@+# Amazon Import/Export Snowball SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`1.4.4`+++## Description++This is a test of the welcome page front matter.++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-snowball)+and the [AWS API Reference](https://aws.amazon.com/documentation/).++The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/amazonka),+which provides mechanisms for specifying AuthN/AuthZ information and sending requests.++Use of lenses is required for constructing and manipulating types.+This is due to the amount 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+[lens](http://hackage.haskell.org/package/lens) or [lens-family-core](http://hackage.haskell.org/package/lens-family-core).++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.+++## Licence++`amazonka-snowball` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).++Parts of the code are derived from AWS service descriptions, licensed under Apache 2.0.+Source files subject to this contain an additional licensing clause in their header.
+ Setup.hs view
@@ -0,0 +1,2 @@+import           Distribution.Simple+main = defaultMain
+ amazonka-snowball.cabal view
@@ -0,0 +1,92 @@+name:                  amazonka-snowball+version:               1.4.4+synopsis:              Amazon Import/Export Snowball SDK.+homepage:              https://github.com/brendanhay/amazonka+bug-reports:           https://github.com/brendanhay/amazonka/issues+license:               OtherLicense+license-file:          LICENSE+author:                Brendan Hay+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>+copyright:             Copyright (c) 2013-2016 Brendan Hay+category:              Network, AWS, Cloud, Distributed Computing+build-type:            Simple+cabal-version:         >= 1.10+extra-source-files:    README.md fixture/*.yaml fixture/*.proto src/.gitkeep+description:+    This is a test of the welcome page front matter.+    .+    The types from this library are intended to be used with+    <http://hackage.haskell.org/package/amazonka amazonka>, which provides+    mechanisms for specifying AuthN/AuthZ information and sending requests.+    .+    Use of lenses is required for constructing and manipulating types.+    This is due to the amount 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 <http://hackage.haskell.org/package/lens lens> or+    <http://hackage.haskell.org/package/lens-family-core lens-family-core>.+    .+    See "Network.AWS.Snowball" or <https://aws.amazon.com/documentation/ the AWS Documentation>+    to get started.++source-repository head+    type:     git+    location: git://github.com/brendanhay/amazonka.git++library+    default-language:  Haskell2010+    hs-source-dirs:    src gen++    ghc-options:       -Wall++    exposed-modules:+          Network.AWS.Snowball+        , Network.AWS.Snowball.CancelJob+        , Network.AWS.Snowball.CreateAddress+        , Network.AWS.Snowball.CreateJob+        , Network.AWS.Snowball.DescribeAddress+        , Network.AWS.Snowball.DescribeAddresses+        , Network.AWS.Snowball.DescribeJob+        , Network.AWS.Snowball.GetJobManifest+        , Network.AWS.Snowball.GetJobUnlockCode+        , Network.AWS.Snowball.GetSnowballUsage+        , Network.AWS.Snowball.ListJobs+        , Network.AWS.Snowball.Types+        , Network.AWS.Snowball.UpdateJob+        , Network.AWS.Snowball.Waiters++    other-modules:+          Network.AWS.Snowball.Types.Product+        , Network.AWS.Snowball.Types.Sum++    build-depends:+          amazonka-core == 1.4.4.*+        , base          >= 4.7     && < 5++test-suite amazonka-snowball-test+    type:              exitcode-stdio-1.0+    default-language:  Haskell2010+    hs-source-dirs:    test+    main-is:           Main.hs++    ghc-options:       -Wall -threaded++    -- This section is encoded by the template and any modules added by+    -- hand outside these namespaces will not correctly be added to the+    -- distribution package.+    other-modules:+          Test.AWS.Snowball+        , Test.AWS.Gen.Snowball+        , Test.AWS.Snowball.Internal++    build-depends:+          amazonka-core == 1.4.4.*+        , amazonka-test == 1.4.4.*+        , amazonka-snowball == 1.4.4.*+        , base+        , bytestring+        , tasty+        , tasty-hunit+        , text+        , time+        , unordered-containers
+ fixture/CancelJob.yaml view
+ fixture/CancelJobResponse.proto view
+ fixture/CreateAddress.yaml view
+ fixture/CreateAddressResponse.proto view
+ fixture/CreateJob.yaml view
+ fixture/CreateJobResponse.proto view
+ fixture/DescribeAddress.yaml view
+ fixture/DescribeAddressResponse.proto view
+ fixture/DescribeAddresses.yaml view
+ fixture/DescribeAddressesResponse.proto view
+ fixture/DescribeJob.yaml view
+ fixture/DescribeJobResponse.proto view
+ fixture/GetJobManifest.yaml view
+ fixture/GetJobManifestResponse.proto view
+ fixture/GetJobUnlockCode.yaml view
+ fixture/GetJobUnlockCodeResponse.proto view
+ fixture/GetSnowballUsage.yaml view
+ fixture/GetSnowballUsageResponse.proto view
+ fixture/ListJobs.yaml view
+ fixture/ListJobsResponse.proto view
+ fixture/UpdateJob.yaml view
+ fixture/UpdateJobResponse.proto view
+ gen/Network/AWS/Snowball.hs view
@@ -0,0 +1,228 @@+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Snowball+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- This is a test of the welcome page front matter.+module Network.AWS.Snowball+    (+    -- * Service Configuration+      snowball++    -- * Errors+    -- $errors++    -- ** InvalidResourceException+    , _InvalidResourceException++    -- ** UnsupportedAddressException+    , _UnsupportedAddressException++    -- ** KMSRequestFailedException+    , _KMSRequestFailedException++    -- ** InvalidJobStateException+    , _InvalidJobStateException++    -- ** InvalidAddressException+    , _InvalidAddressException++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** CreateAddress+    , module Network.AWS.Snowball.CreateAddress++    -- ** GetSnowballUsage+    , module Network.AWS.Snowball.GetSnowballUsage++    -- ** DescribeAddresses+    , module Network.AWS.Snowball.DescribeAddresses++    -- ** CreateJob+    , module Network.AWS.Snowball.CreateJob++    -- ** GetJobManifest+    , module Network.AWS.Snowball.GetJobManifest++    -- ** ListJobs+    , module Network.AWS.Snowball.ListJobs++    -- ** UpdateJob+    , module Network.AWS.Snowball.UpdateJob++    -- ** GetJobUnlockCode+    , module Network.AWS.Snowball.GetJobUnlockCode++    -- ** DescribeJob+    , module Network.AWS.Snowball.DescribeJob++    -- ** DescribeAddress+    , module Network.AWS.Snowball.DescribeAddress++    -- ** CancelJob+    , module Network.AWS.Snowball.CancelJob++    -- * Types++    -- ** JobState+    , JobState (..)++    -- ** JobType+    , JobType (..)++    -- ** ShippingOption+    , ShippingOption (..)++    -- ** SnowballCapacity+    , SnowballCapacity (..)++    -- ** Address+    , Address+    , address+    , aStreet3+    , aLandmark+    , aPostalCode+    , aCountry+    , aStateOrProvince+    , aStreet2+    , aAddressId+    , aCity+    , aPhoneNumber+    , aCompany+    , aName+    , aPrefectureOrDistrict+    , aStreet1++    -- ** DataTransfer+    , DataTransfer+    , dataTransfer+    , dtTotalObjects+    , dtTotalBytes+    , dtObjectsTransferred+    , dtBytesTransferred++    -- ** JobListEntry+    , JobListEntry+    , jobListEntry+    , jleJobId+    , jleJobState+    , jleIsMaster++    -- ** JobLogs+    , JobLogs+    , jobLogs+    , jlJobFailureLogURI+    , jlJobCompletionReportURI+    , jlJobSuccessLogURI++    -- ** JobMetadata+    , JobMetadata+    , jobMetadata+    , jmJobType+    , jmKMSKeyARN+    , jmJobId+    , jmJobLogInfo+    , jmNotification+    , jmJobState+    , jmShippingDetails+    , jmAddressId+    , jmDataTransferProgress+    , jmResources+    , jmCreationDate+    , jmDescription+    , jmRoleARN+    , jmSnowballCapacityPreference++    -- ** JobResource+    , JobResource+    , jobResource+    , jrS3Resources++    -- ** KeyRange+    , KeyRange+    , keyRange+    , krEndMarker+    , krBeginMarker++    -- ** Notification+    , Notification+    , notification+    , nNotifyAll+    , nSNSTopicARN+    , nJobStatesToNotify++    -- ** S3Resource+    , S3Resource+    , s3Resource+    , srKeyRange+    , srBucketARN++    -- ** Shipment+    , Shipment+    , shipment+    , sStatus+    , sTrackingNumber++    -- ** ShippingDetails+    , ShippingDetails+    , shippingDetails+    , sdShippingOption+    , sdOutboundShipment+    , sdInboundShipment+    ) where++import           Network.AWS.Snowball.CancelJob+import           Network.AWS.Snowball.CreateAddress+import           Network.AWS.Snowball.CreateJob+import           Network.AWS.Snowball.DescribeAddress+import           Network.AWS.Snowball.DescribeAddresses+import           Network.AWS.Snowball.DescribeJob+import           Network.AWS.Snowball.GetJobManifest+import           Network.AWS.Snowball.GetJobUnlockCode+import           Network.AWS.Snowball.GetSnowballUsage+import           Network.AWS.Snowball.ListJobs+import           Network.AWS.Snowball.Types+import           Network.AWS.Snowball.UpdateJob+import           Network.AWS.Snowball.Waiters++{- $errors+Error matchers are designed for use with the functions provided by+<http://hackage.haskell.org/package/lens/docs/Control-Exception-Lens.html Control.Exception.Lens>.+This allows catching (and rethrowing) service specific errors returned+by 'Snowball'.+-}++{- $operations+Some AWS operations return results that are incomplete and require subsequent+requests in order to obtain the entire result set. The process of sending+subsequent requests to continue where a previous request left off is called+pagination. For example, the 'ListObjects' operation of Amazon S3 returns up to+1000 objects at a time, and you must send subsequent requests with the+appropriate Marker in order to retrieve the next page of results.++Operations that have an 'AWSPager' instance can transparently perform subsequent+requests, correctly setting Markers and other request facets to iterate through+the entire result set of a truncated API operation. Operations which support+this have an additional note in the documentation.++Many operations have the ability to filter results on the server side. See the+individual operation parameters for details.+-}++{- $waiters+Waiters poll by repeatedly sending a request until some remote success condition+configured by the 'Wait' specification is fulfilled. The 'Wait' specification+determines how many attempts should be made, in addition to delay and retry strategies.+-}
+ gen/Network/AWS/Snowball/CancelJob.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Snowball.CancelJob+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Cancels the specified job. Note that you can only cancel a job before its 'JobState' value changes to 'PreparingAppliance'. Requesting the 'ListJobs' or 'DescribeJob' action will return a job\'s 'JobState' as part of the response element data returned.+module Network.AWS.Snowball.CancelJob+    (+    -- * Creating a Request+      cancelJob+    , CancelJob+    -- * Request Lenses+    , cjJobId++    -- * Destructuring the Response+    , cancelJobResponse+    , CancelJobResponse+    -- * Response Lenses+    , crsResponseStatus+    ) where++import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response+import           Network.AWS.Snowball.Types+import           Network.AWS.Snowball.Types.Product++-- | /See:/ 'cancelJob' smart constructor.+newtype CancelJob = CancelJob'+    { _cjJobId :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CancelJob' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cjJobId'+cancelJob+    :: Text -- ^ 'cjJobId'+    -> CancelJob+cancelJob pJobId_ =+    CancelJob'+    { _cjJobId = pJobId_+    }++-- | The 39 character job ID for the job that you want to cancel, for example 'JID123e4567-e89b-12d3-a456-426655440000'.+cjJobId :: Lens' CancelJob Text+cjJobId = lens _cjJobId (\ s a -> s{_cjJobId = a});++instance AWSRequest CancelJob where+        type Rs CancelJob = CancelJobResponse+        request = postJSON snowball+        response+          = receiveEmpty+              (\ s h x ->+                 CancelJobResponse' <$> (pure (fromEnum s)))++instance Hashable CancelJob++instance NFData CancelJob++instance ToHeaders CancelJob where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSIESnowballJobManagementService.CancelJob" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CancelJob where+        toJSON CancelJob'{..}+          = object (catMaybes [Just ("JobId" .= _cjJobId)])++instance ToPath CancelJob where+        toPath = const "/"++instance ToQuery CancelJob where+        toQuery = const mempty++-- | /See:/ 'cancelJobResponse' smart constructor.+newtype CancelJobResponse = CancelJobResponse'+    { _crsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CancelJobResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'crsResponseStatus'+cancelJobResponse+    :: Int -- ^ 'crsResponseStatus'+    -> CancelJobResponse+cancelJobResponse pResponseStatus_ =+    CancelJobResponse'+    { _crsResponseStatus = pResponseStatus_+    }++-- | The response status code.+crsResponseStatus :: Lens' CancelJobResponse Int+crsResponseStatus = lens _crsResponseStatus (\ s a -> s{_crsResponseStatus = a});++instance NFData CancelJobResponse
+ gen/Network/AWS/Snowball/CreateAddress.hs view
@@ -0,0 +1,132 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Snowball.CreateAddress+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an address for a Snowball 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. If the address is invalid or unsupported, then an exception is thrown.+module Network.AWS.Snowball.CreateAddress+    (+    -- * Creating a Request+      createAddress+    , CreateAddress+    -- * Request Lenses+    , caAddress++    -- * Destructuring the Response+    , createAddressResponse+    , CreateAddressResponse+    -- * Response Lenses+    , carsAddressId+    , carsResponseStatus+    ) where++import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response+import           Network.AWS.Snowball.Types+import           Network.AWS.Snowball.Types.Product++-- | /See:/ 'createAddress' smart constructor.+newtype CreateAddress = CreateAddress'+    { _caAddress :: Address+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateAddress' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'caAddress'+createAddress+    :: Address -- ^ 'caAddress'+    -> CreateAddress+createAddress pAddress_ =+    CreateAddress'+    { _caAddress = pAddress_+    }++-- | The address that you want the Snowball shipped to.+caAddress :: Lens' CreateAddress Address+caAddress = lens _caAddress (\ s a -> s{_caAddress = a});++instance AWSRequest CreateAddress where+        type Rs CreateAddress = CreateAddressResponse+        request = postJSON snowball+        response+          = receiveJSON+              (\ s h x ->+                 CreateAddressResponse' <$>+                   (x .?> "AddressId") <*> (pure (fromEnum s)))++instance Hashable CreateAddress++instance NFData CreateAddress++instance ToHeaders CreateAddress where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSIESnowballJobManagementService.CreateAddress" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateAddress where+        toJSON CreateAddress'{..}+          = object (catMaybes [Just ("Address" .= _caAddress)])++instance ToPath CreateAddress where+        toPath = const "/"++instance ToQuery CreateAddress where+        toQuery = const mempty++-- | /See:/ 'createAddressResponse' smart constructor.+data CreateAddressResponse = CreateAddressResponse'+    { _carsAddressId      :: !(Maybe Text)+    , _carsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateAddressResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'carsAddressId'+--+-- * 'carsResponseStatus'+createAddressResponse+    :: Int -- ^ 'carsResponseStatus'+    -> CreateAddressResponse+createAddressResponse pResponseStatus_ =+    CreateAddressResponse'+    { _carsAddressId = Nothing+    , _carsResponseStatus = pResponseStatus_+    }++-- | 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)+carsAddressId = lens _carsAddressId (\ s a -> s{_carsAddressId = a});++-- | The response status code.+carsResponseStatus :: Lens' CreateAddressResponse Int+carsResponseStatus = lens _carsResponseStatus (\ s a -> s{_carsResponseStatus = a});++instance NFData CreateAddressResponse
+ gen/Network/AWS/Snowball/CreateJob.hs view
@@ -0,0 +1,230 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Snowball.CreateJob+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a job to import or export data between Amazon S3 and your on-premises data center. Note that your AWS account must have the right trust policies and permissions in place to create a job for Snowball. For more information, see < api-reference-policies>.+module Network.AWS.Snowball.CreateJob+    (+    -- * Creating a Request+      createJob+    , CreateJob+    -- * Request Lenses+    , cjKMSKeyARN+    , cjNotification+    , cjDescription+    , cjSnowballCapacityPreference+    , cjJobType+    , cjResources+    , cjAddressId+    , cjRoleARN+    , cjShippingOption++    -- * Destructuring the Response+    , createJobResponse+    , CreateJobResponse+    -- * Response Lenses+    , cjrsJobId+    , cjrsResponseStatus+    ) where++import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response+import           Network.AWS.Snowball.Types+import           Network.AWS.Snowball.Types.Product++-- | /See:/ 'createJob' smart constructor.+data CreateJob = CreateJob'+    { _cjKMSKeyARN                  :: !(Maybe Text)+    , _cjNotification               :: !(Maybe Notification)+    , _cjDescription                :: !(Maybe Text)+    , _cjSnowballCapacityPreference :: !(Maybe SnowballCapacity)+    , _cjJobType                    :: !JobType+    , _cjResources                  :: !JobResource+    , _cjAddressId                  :: !Text+    , _cjRoleARN                    :: !Text+    , _cjShippingOption             :: !ShippingOption+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateJob' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cjKMSKeyARN'+--+-- * 'cjNotification'+--+-- * 'cjDescription'+--+-- * 'cjSnowballCapacityPreference'+--+-- * 'cjJobType'+--+-- * 'cjResources'+--+-- * 'cjAddressId'+--+-- * 'cjRoleARN'+--+-- * 'cjShippingOption'+createJob+    :: JobType -- ^ 'cjJobType'+    -> JobResource -- ^ 'cjResources'+    -> Text -- ^ 'cjAddressId'+    -> Text -- ^ 'cjRoleARN'+    -> ShippingOption -- ^ 'cjShippingOption'+    -> CreateJob+createJob pJobType_ pResources_ pAddressId_ pRoleARN_ pShippingOption_ =+    CreateJob'+    { _cjKMSKeyARN = Nothing+    , _cjNotification = Nothing+    , _cjDescription = Nothing+    , _cjSnowballCapacityPreference = Nothing+    , _cjJobType = pJobType_+    , _cjResources = pResources_+    , _cjAddressId = pAddressId_+    , _cjRoleARN = pRoleARN_+    , _cjShippingOption = pShippingOption_+    }++-- | The 'KmsKeyARN' that you want to associate with this job. 'KmsKeyARN's are created using the <http://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html CreateKey> AWS Key Management Service (KMS) API action.+cjKMSKeyARN :: Lens' CreateJob (Maybe Text)+cjKMSKeyARN = lens _cjKMSKeyARN (\ s a -> s{_cjKMSKeyARN = a});++-- | Defines the Amazon Simple Notification Service (Amazon SNS) notification settings for this job.+cjNotification :: Lens' CreateJob (Maybe Notification)+cjNotification = lens _cjNotification (\ s a -> s{_cjNotification = a});++-- | Defines an optional description of this specific job, for example 'Important Photos 2016-08-11'.+cjDescription :: Lens' CreateJob (Maybe Text)+cjDescription = lens _cjDescription (\ s a -> s{_cjDescription = 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.+cjSnowballCapacityPreference :: Lens' CreateJob (Maybe SnowballCapacity)+cjSnowballCapacityPreference = lens _cjSnowballCapacityPreference (\ s a -> s{_cjSnowballCapacityPreference = a});++-- | Defines the type of job that you\'re creating.+cjJobType :: Lens' CreateJob JobType+cjJobType = lens _cjJobType (\ s a -> s{_cjJobType = a});++-- | Defines the Amazon S3 buckets associated with this job.+--+-- With 'IMPORT' jobs, you specify the bucket or buckets that your transferred data will be imported into.+--+-- With 'EXPORT' jobs, you specify the bucket or buckets that your transferred data will be exported from. Optionally, you can also specify a 'KeyRange' value. If you choose to export a range, you define the length of the range by providing either an inclusive 'BeginMarker' value, an inclusive 'EndMarker' value, or both. Ranges are UTF-8 binary sorted.+cjResources :: Lens' CreateJob JobResource+cjResources = lens _cjResources (\ s a -> s{_cjResources = a});++-- | The ID for the address that you want the Snowball shipped to.+cjAddressId :: Lens' CreateJob Text+cjAddressId = lens _cjAddressId (\ s a -> s{_cjAddressId = a});++-- | The 'RoleARN' that you want to associate with this job. 'RoleArn's are created using the <http://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html CreateRole> AWS Identity and Access Management (IAM) API action.+cjRoleARN :: Lens' CreateJob Text+cjRoleARN = lens _cjRoleARN (\ s a -> s{_cjRoleARN = a});++-- | The shipping speed for this job. Note that this speed does not 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 ShippingOption+cjShippingOption = lens _cjShippingOption (\ s a -> s{_cjShippingOption = a});++instance AWSRequest CreateJob where+        type Rs CreateJob = CreateJobResponse+        request = postJSON snowball+        response+          = receiveJSON+              (\ s h x ->+                 CreateJobResponse' <$>+                   (x .?> "JobId") <*> (pure (fromEnum s)))++instance Hashable CreateJob++instance NFData CreateJob++instance ToHeaders CreateJob where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSIESnowballJobManagementService.CreateJob" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateJob where+        toJSON CreateJob'{..}+          = object+              (catMaybes+                 [("KmsKeyARN" .=) <$> _cjKMSKeyARN,+                  ("Notification" .=) <$> _cjNotification,+                  ("Description" .=) <$> _cjDescription,+                  ("SnowballCapacityPreference" .=) <$>+                    _cjSnowballCapacityPreference,+                  Just ("JobType" .= _cjJobType),+                  Just ("Resources" .= _cjResources),+                  Just ("AddressId" .= _cjAddressId),+                  Just ("RoleARN" .= _cjRoleARN),+                  Just ("ShippingOption" .= _cjShippingOption)])++instance ToPath CreateJob where+        toPath = const "/"++instance ToQuery CreateJob where+        toQuery = const mempty++-- | /See:/ 'createJobResponse' smart constructor.+data CreateJobResponse = CreateJobResponse'+    { _cjrsJobId          :: !(Maybe Text)+    , _cjrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateJobResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cjrsJobId'+--+-- * 'cjrsResponseStatus'+createJobResponse+    :: Int -- ^ 'cjrsResponseStatus'+    -> CreateJobResponse+createJobResponse pResponseStatus_ =+    CreateJobResponse'+    { _cjrsJobId = Nothing+    , _cjrsResponseStatus = pResponseStatus_+    }++-- | The automatically generated ID for a job, for example 'JID123e4567-e89b-12d3-a456-426655440000'.+cjrsJobId :: Lens' CreateJobResponse (Maybe Text)+cjrsJobId = lens _cjrsJobId (\ s a -> s{_cjrsJobId = a});++-- | The response status code.+cjrsResponseStatus :: Lens' CreateJobResponse Int+cjrsResponseStatus = lens _cjrsResponseStatus (\ s a -> s{_cjrsResponseStatus = a});++instance NFData CreateJobResponse
+ gen/Network/AWS/Snowball/DescribeAddress.hs view
@@ -0,0 +1,131 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Snowball.DescribeAddress+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Takes an 'AddressId' and returns specific details about that address in the form of an 'Address' object.+module Network.AWS.Snowball.DescribeAddress+    (+    -- * Creating a Request+      describeAddress+    , DescribeAddress+    -- * Request Lenses+    , daAddressId++    -- * Destructuring the Response+    , describeAddressResponse+    , DescribeAddressResponse+    -- * Response Lenses+    , darsAddress+    , darsResponseStatus+    ) where++import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response+import           Network.AWS.Snowball.Types+import           Network.AWS.Snowball.Types.Product++-- | /See:/ 'describeAddress' smart constructor.+newtype DescribeAddress = DescribeAddress'+    { _daAddressId :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeAddress' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'daAddressId'+describeAddress+    :: Text -- ^ 'daAddressId'+    -> DescribeAddress+describeAddress pAddressId_ =+    DescribeAddress'+    { _daAddressId = pAddressId_+    }++-- | The automatically generated ID for a specific address.+daAddressId :: Lens' DescribeAddress Text+daAddressId = lens _daAddressId (\ s a -> s{_daAddressId = a});++instance AWSRequest DescribeAddress where+        type Rs DescribeAddress = DescribeAddressResponse+        request = postJSON snowball+        response+          = receiveJSON+              (\ s h x ->+                 DescribeAddressResponse' <$>+                   (x .?> "Address") <*> (pure (fromEnum s)))++instance Hashable DescribeAddress++instance NFData DescribeAddress++instance ToHeaders DescribeAddress where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSIESnowballJobManagementService.DescribeAddress"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DescribeAddress where+        toJSON DescribeAddress'{..}+          = object+              (catMaybes [Just ("AddressId" .= _daAddressId)])++instance ToPath DescribeAddress where+        toPath = const "/"++instance ToQuery DescribeAddress where+        toQuery = const mempty++-- | /See:/ 'describeAddressResponse' smart constructor.+data DescribeAddressResponse = DescribeAddressResponse'+    { _darsAddress        :: !(Maybe Address)+    , _darsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeAddressResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'darsAddress'+--+-- * 'darsResponseStatus'+describeAddressResponse+    :: Int -- ^ 'darsResponseStatus'+    -> DescribeAddressResponse+describeAddressResponse pResponseStatus_ =+    DescribeAddressResponse'+    { _darsAddress = Nothing+    , _darsResponseStatus = pResponseStatus_+    }++-- | The address that you want the Snowball or Snowballs associated with a specific job to be shipped to.+darsAddress :: Lens' DescribeAddressResponse (Maybe Address)+darsAddress = lens _darsAddress (\ s a -> s{_darsAddress = a});++-- | The response status code.+darsResponseStatus :: Lens' DescribeAddressResponse Int+darsResponseStatus = lens _darsResponseStatus (\ s a -> s{_darsResponseStatus = a});++instance NFData DescribeAddressResponse
+ gen/Network/AWS/Snowball/DescribeAddresses.hs view
@@ -0,0 +1,152 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Snowball.DescribeAddresses+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a specified number of 'ADDRESS' objects. Calling this API in one of the US regions will return addresses from the list of all addresses associated with this account in all US regions.+module Network.AWS.Snowball.DescribeAddresses+    (+    -- * Creating a Request+      describeAddresses+    , DescribeAddresses+    -- * Request Lenses+    , daNextToken+    , daMaxResults++    -- * Destructuring the Response+    , describeAddressesResponse+    , DescribeAddressesResponse+    -- * Response Lenses+    , drsAddresses+    , drsNextToken+    , drsResponseStatus+    ) where++import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response+import           Network.AWS.Snowball.Types+import           Network.AWS.Snowball.Types.Product++-- | /See:/ 'describeAddresses' smart constructor.+data DescribeAddresses = DescribeAddresses'+    { _daNextToken  :: !(Maybe Text)+    , _daMaxResults :: !(Maybe Nat)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeAddresses' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'daNextToken'+--+-- * 'daMaxResults'+describeAddresses+    :: DescribeAddresses+describeAddresses =+    DescribeAddresses'+    { _daNextToken = Nothing+    , _daMaxResults = Nothing+    }++-- | HTTP requests are stateless. To identify what object comes \"next\" in the list of 'ADDRESS' objects, you have the option of specifying a value for 'NextToken' as the starting point for your list of returned addresses.+daNextToken :: Lens' DescribeAddresses (Maybe Text)+daNextToken = lens _daNextToken (\ s a -> s{_daNextToken = a});++-- | The number of 'ADDRESS' objects to return.+daMaxResults :: Lens' DescribeAddresses (Maybe Natural)+daMaxResults = lens _daMaxResults (\ s a -> s{_daMaxResults = a}) . mapping _Nat;++instance AWSRequest DescribeAddresses where+        type Rs DescribeAddresses = DescribeAddressesResponse+        request = postJSON snowball+        response+          = receiveJSON+              (\ s h x ->+                 DescribeAddressesResponse' <$>+                   (x .?> "Addresses" .!@ mempty) <*>+                     (x .?> "NextToken")+                     <*> (pure (fromEnum s)))++instance Hashable DescribeAddresses++instance NFData DescribeAddresses++instance ToHeaders DescribeAddresses where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSIESnowballJobManagementService.DescribeAddresses"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DescribeAddresses where+        toJSON DescribeAddresses'{..}+          = object+              (catMaybes+                 [("NextToken" .=) <$> _daNextToken,+                  ("MaxResults" .=) <$> _daMaxResults])++instance ToPath DescribeAddresses where+        toPath = const "/"++instance ToQuery DescribeAddresses where+        toQuery = const mempty++-- | /See:/ 'describeAddressesResponse' smart constructor.+data DescribeAddressesResponse = DescribeAddressesResponse'+    { _drsAddresses      :: !(Maybe [Address])+    , _drsNextToken      :: !(Maybe Text)+    , _drsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeAddressesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drsAddresses'+--+-- * 'drsNextToken'+--+-- * 'drsResponseStatus'+describeAddressesResponse+    :: Int -- ^ 'drsResponseStatus'+    -> DescribeAddressesResponse+describeAddressesResponse pResponseStatus_ =+    DescribeAddressesResponse'+    { _drsAddresses = Nothing+    , _drsNextToken = Nothing+    , _drsResponseStatus = pResponseStatus_+    }++-- | The Snowball shipping addresses that were created for this account.+drsAddresses :: Lens' DescribeAddressesResponse [Address]+drsAddresses = lens _drsAddresses (\ s a -> s{_drsAddresses = a}) . _Default . _Coerce;++-- | HTTP requests are stateless. If you use the automatically generated 'NextToken' value in your next 'DescribeAddresses' call, your list of returned addresses will start from this point in the array.+drsNextToken :: Lens' DescribeAddressesResponse (Maybe Text)+drsNextToken = lens _drsNextToken (\ s a -> s{_drsNextToken = a});++-- | The response status code.+drsResponseStatus :: Lens' DescribeAddressesResponse Int+drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a});++instance NFData DescribeAddressesResponse
+ gen/Network/AWS/Snowball/DescribeJob.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Snowball.DescribeJob+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns information about a specific job including shipping information, job status, and other important metadata.+module Network.AWS.Snowball.DescribeJob+    (+    -- * Creating a Request+      describeJob+    , DescribeJob+    -- * Request Lenses+    , djJobId++    -- * Destructuring the Response+    , describeJobResponse+    , DescribeJobResponse+    -- * Response Lenses+    , djrsJobMetadata+    , djrsSubJobMetadata+    , djrsResponseStatus+    ) where++import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response+import           Network.AWS.Snowball.Types+import           Network.AWS.Snowball.Types.Product++-- | /See:/ 'describeJob' smart constructor.+newtype DescribeJob = DescribeJob'+    { _djJobId :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeJob' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'djJobId'+describeJob+    :: Text -- ^ 'djJobId'+    -> DescribeJob+describeJob pJobId_ =+    DescribeJob'+    { _djJobId = pJobId_+    }++-- | The automatically generated ID for a job, for example 'JID123e4567-e89b-12d3-a456-426655440000'.+djJobId :: Lens' DescribeJob Text+djJobId = lens _djJobId (\ s a -> s{_djJobId = a});++instance AWSRequest DescribeJob where+        type Rs DescribeJob = DescribeJobResponse+        request = postJSON snowball+        response+          = receiveJSON+              (\ s h x ->+                 DescribeJobResponse' <$>+                   (x .?> "JobMetadata") <*>+                     (x .?> "SubJobMetadata" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance Hashable DescribeJob++instance NFData DescribeJob++instance ToHeaders DescribeJob where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSIESnowballJobManagementService.DescribeJob" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DescribeJob where+        toJSON DescribeJob'{..}+          = object (catMaybes [Just ("JobId" .= _djJobId)])++instance ToPath DescribeJob where+        toPath = const "/"++instance ToQuery DescribeJob where+        toQuery = const mempty++-- | /See:/ 'describeJobResponse' smart constructor.+data DescribeJobResponse = DescribeJobResponse'+    { _djrsJobMetadata    :: !(Maybe JobMetadata)+    , _djrsSubJobMetadata :: !(Maybe [JobMetadata])+    , _djrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeJobResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'djrsJobMetadata'+--+-- * 'djrsSubJobMetadata'+--+-- * 'djrsResponseStatus'+describeJobResponse+    :: Int -- ^ 'djrsResponseStatus'+    -> DescribeJobResponse+describeJobResponse pResponseStatus_ =+    DescribeJobResponse'+    { _djrsJobMetadata = Nothing+    , _djrsSubJobMetadata = Nothing+    , _djrsResponseStatus = pResponseStatus_+    }++-- | Information about a specific job, including shipping information, job status, and other important metadata.+djrsJobMetadata :: Lens' DescribeJobResponse (Maybe JobMetadata)+djrsJobMetadata = lens _djrsJobMetadata (\ s a -> s{_djrsJobMetadata = a});++-- | 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]+djrsSubJobMetadata = lens _djrsSubJobMetadata (\ s a -> s{_djrsSubJobMetadata = a}) . _Default . _Coerce;++-- | The response status code.+djrsResponseStatus :: Lens' DescribeJobResponse Int+djrsResponseStatus = lens _djrsResponseStatus (\ s a -> s{_djrsResponseStatus = a});++instance NFData DescribeJobResponse
+ gen/Network/AWS/Snowball/GetJobManifest.hs view
@@ -0,0 +1,136 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Snowball.GetJobManifest+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns a link to an Amazon S3 presigned URL for the manifest file associated with the specified 'JobId' value. You can access the manifest file for up to 60 minutes after this request has been made. To access the manifest file after 60 minutes have passed, you\'ll have to make another call to the 'GetJobManifest' action.+--+-- The manifest is an encrypted file that you can download after your job enters the 'WithCustomer' status. The manifest is decrypted by using the 'UnlockCode' code value, when you pass both values to the Snowball through the Snowball client when the client is started for the first time.+--+-- As a best practice, we recommend that you don\'t save a copy of an 'UnlockCode' value in the same location as the manifest file for that job. Saving these separately helps prevent unauthorized parties from gaining access to the Snowball associated with that job.+--+-- Note that 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+    (+    -- * Creating a Request+      getJobManifest+    , GetJobManifest+    -- * Request Lenses+    , gjmJobId++    -- * Destructuring the Response+    , getJobManifestResponse+    , GetJobManifestResponse+    -- * Response Lenses+    , gjmrsManifestURI+    , gjmrsResponseStatus+    ) where++import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response+import           Network.AWS.Snowball.Types+import           Network.AWS.Snowball.Types.Product++-- | /See:/ 'getJobManifest' smart constructor.+newtype GetJobManifest = GetJobManifest'+    { _gjmJobId :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetJobManifest' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gjmJobId'+getJobManifest+    :: Text -- ^ 'gjmJobId'+    -> GetJobManifest+getJobManifest pJobId_ =+    GetJobManifest'+    { _gjmJobId = pJobId_+    }++-- | The ID for a job that you want to get the manifest file for, for example 'JID123e4567-e89b-12d3-a456-426655440000'.+gjmJobId :: Lens' GetJobManifest Text+gjmJobId = lens _gjmJobId (\ s a -> s{_gjmJobId = a});++instance AWSRequest GetJobManifest where+        type Rs GetJobManifest = GetJobManifestResponse+        request = postJSON snowball+        response+          = receiveJSON+              (\ s h x ->+                 GetJobManifestResponse' <$>+                   (x .?> "ManifestURI") <*> (pure (fromEnum s)))++instance Hashable GetJobManifest++instance NFData GetJobManifest++instance ToHeaders GetJobManifest where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSIESnowballJobManagementService.GetJobManifest"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetJobManifest where+        toJSON GetJobManifest'{..}+          = object (catMaybes [Just ("JobId" .= _gjmJobId)])++instance ToPath GetJobManifest where+        toPath = const "/"++instance ToQuery GetJobManifest where+        toQuery = const mempty++-- | /See:/ 'getJobManifestResponse' smart constructor.+data GetJobManifestResponse = GetJobManifestResponse'+    { _gjmrsManifestURI    :: !(Maybe Text)+    , _gjmrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetJobManifestResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gjmrsManifestURI'+--+-- * 'gjmrsResponseStatus'+getJobManifestResponse+    :: Int -- ^ 'gjmrsResponseStatus'+    -> GetJobManifestResponse+getJobManifestResponse pResponseStatus_ =+    GetJobManifestResponse'+    { _gjmrsManifestURI = Nothing+    , _gjmrsResponseStatus = pResponseStatus_+    }++-- | The Amazon S3 presigned URL for the manifest file associated with the specified 'JobId' value.+gjmrsManifestURI :: Lens' GetJobManifestResponse (Maybe Text)+gjmrsManifestURI = lens _gjmrsManifestURI (\ s a -> s{_gjmrsManifestURI = a});++-- | The response status code.+gjmrsResponseStatus :: Lens' GetJobManifestResponse Int+gjmrsResponseStatus = lens _gjmrsResponseStatus (\ s a -> s{_gjmrsResponseStatus = a});++instance NFData GetJobManifestResponse
+ gen/Network/AWS/Snowball/GetJobUnlockCode.hs view
@@ -0,0 +1,134 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Snowball.GetJobUnlockCode+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns the 'UnlockCode' code value for the specified job. A particular 'UnlockCode' value can be accessed for up to 90 days after the associated job has been created.+--+-- The 'UnlockCode' value is a 29-character code with 25 alphanumeric characters and 4 hyphens. This code is used to decrypt the manifest file when it is passed along with the manifest to the Snowball through the Snowball client when the client is started for the first time.+--+-- As a best practice, we recommend that you don\'t save a copy of the 'UnlockCode' in the same location as the manifest file for that job. Saving these separately helps prevent unauthorized parties from gaining access to the Snowball associated with that job.+module Network.AWS.Snowball.GetJobUnlockCode+    (+    -- * Creating a Request+      getJobUnlockCode+    , GetJobUnlockCode+    -- * Request Lenses+    , gjucJobId++    -- * Destructuring the Response+    , getJobUnlockCodeResponse+    , GetJobUnlockCodeResponse+    -- * Response Lenses+    , gjucrsUnlockCode+    , gjucrsResponseStatus+    ) where++import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response+import           Network.AWS.Snowball.Types+import           Network.AWS.Snowball.Types.Product++-- | /See:/ 'getJobUnlockCode' smart constructor.+newtype GetJobUnlockCode = GetJobUnlockCode'+    { _gjucJobId :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetJobUnlockCode' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gjucJobId'+getJobUnlockCode+    :: Text -- ^ 'gjucJobId'+    -> GetJobUnlockCode+getJobUnlockCode pJobId_ =+    GetJobUnlockCode'+    { _gjucJobId = pJobId_+    }++-- | The ID for the job that you want to get the 'UnlockCode' value for, for example 'JID123e4567-e89b-12d3-a456-426655440000'.+gjucJobId :: Lens' GetJobUnlockCode Text+gjucJobId = lens _gjucJobId (\ s a -> s{_gjucJobId = a});++instance AWSRequest GetJobUnlockCode where+        type Rs GetJobUnlockCode = GetJobUnlockCodeResponse+        request = postJSON snowball+        response+          = receiveJSON+              (\ s h x ->+                 GetJobUnlockCodeResponse' <$>+                   (x .?> "UnlockCode") <*> (pure (fromEnum s)))++instance Hashable GetJobUnlockCode++instance NFData GetJobUnlockCode++instance ToHeaders GetJobUnlockCode where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSIESnowballJobManagementService.GetJobUnlockCode"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetJobUnlockCode where+        toJSON GetJobUnlockCode'{..}+          = object (catMaybes [Just ("JobId" .= _gjucJobId)])++instance ToPath GetJobUnlockCode where+        toPath = const "/"++instance ToQuery GetJobUnlockCode where+        toQuery = const mempty++-- | /See:/ 'getJobUnlockCodeResponse' smart constructor.+data GetJobUnlockCodeResponse = GetJobUnlockCodeResponse'+    { _gjucrsUnlockCode     :: !(Maybe Text)+    , _gjucrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetJobUnlockCodeResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gjucrsUnlockCode'+--+-- * 'gjucrsResponseStatus'+getJobUnlockCodeResponse+    :: Int -- ^ 'gjucrsResponseStatus'+    -> GetJobUnlockCodeResponse+getJobUnlockCodeResponse pResponseStatus_ =+    GetJobUnlockCodeResponse'+    { _gjucrsUnlockCode = Nothing+    , _gjucrsResponseStatus = pResponseStatus_+    }++-- | The 'UnlockCode' value for the specified job. The 'UnlockCode' value can be accessed for up to 90 days after the job has been created.+gjucrsUnlockCode :: Lens' GetJobUnlockCodeResponse (Maybe Text)+gjucrsUnlockCode = lens _gjucrsUnlockCode (\ s a -> s{_gjucrsUnlockCode = a});++-- | The response status code.+gjucrsResponseStatus :: Lens' GetJobUnlockCodeResponse Int+gjucrsResponseStatus = lens _gjucrsResponseStatus (\ s a -> s{_gjucrsResponseStatus = a});++instance NFData GetJobUnlockCodeResponse
+ gen/Network/AWS/Snowball/GetSnowballUsage.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Snowball.GetSnowballUsage+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns information about the Snowball service limit for your account, and also the number of Snowballs your account has in use.+--+-- Note that 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+    (+    -- * Creating a Request+      getSnowballUsage+    , GetSnowballUsage++    -- * Destructuring the Response+    , getSnowballUsageResponse+    , GetSnowballUsageResponse+    -- * Response Lenses+    , gsursSnowballsInUse+    , gsursSnowballLimit+    , gsursResponseStatus+    ) where++import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response+import           Network.AWS.Snowball.Types+import           Network.AWS.Snowball.Types.Product++-- | /See:/ 'getSnowballUsage' smart constructor.+data GetSnowballUsage =+    GetSnowballUsage'+    deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetSnowballUsage' with the minimum fields required to make a request.+--+getSnowballUsage+    :: GetSnowballUsage+getSnowballUsage = GetSnowballUsage'++instance AWSRequest GetSnowballUsage where+        type Rs GetSnowballUsage = GetSnowballUsageResponse+        request = postJSON snowball+        response+          = receiveJSON+              (\ s h x ->+                 GetSnowballUsageResponse' <$>+                   (x .?> "SnowballsInUse") <*> (x .?> "SnowballLimit")+                     <*> (pure (fromEnum s)))++instance Hashable GetSnowballUsage++instance NFData GetSnowballUsage++instance ToHeaders GetSnowballUsage where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSIESnowballJobManagementService.GetSnowballUsage"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetSnowballUsage where+        toJSON = const (Object mempty)++instance ToPath GetSnowballUsage where+        toPath = const "/"++instance ToQuery GetSnowballUsage where+        toQuery = const mempty++-- | /See:/ 'getSnowballUsageResponse' smart constructor.+data GetSnowballUsageResponse = GetSnowballUsageResponse'+    { _gsursSnowballsInUse :: !(Maybe Int)+    , _gsursSnowballLimit  :: !(Maybe Int)+    , _gsursResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetSnowballUsageResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gsursSnowballsInUse'+--+-- * 'gsursSnowballLimit'+--+-- * 'gsursResponseStatus'+getSnowballUsageResponse+    :: Int -- ^ 'gsursResponseStatus'+    -> GetSnowballUsageResponse+getSnowballUsageResponse pResponseStatus_ =+    GetSnowballUsageResponse'+    { _gsursSnowballsInUse = Nothing+    , _gsursSnowballLimit = Nothing+    , _gsursResponseStatus = pResponseStatus_+    }++-- | The number of Snowballs that this account is currently using.+gsursSnowballsInUse :: Lens' GetSnowballUsageResponse (Maybe Int)+gsursSnowballsInUse = lens _gsursSnowballsInUse (\ s a -> s{_gsursSnowballsInUse = a});++-- | 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)+gsursSnowballLimit = lens _gsursSnowballLimit (\ s a -> s{_gsursSnowballLimit = a});++-- | The response status code.+gsursResponseStatus :: Lens' GetSnowballUsageResponse Int+gsursResponseStatus = lens _gsursResponseStatus (\ s a -> s{_gsursResponseStatus = a});++instance NFData GetSnowballUsageResponse
+ gen/Network/AWS/Snowball/ListJobs.hs view
@@ -0,0 +1,152 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Snowball.ListJobs+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Returns an array of 'JobListEntry' objects of the specified length. Each 'JobListEntry' object contains a job\'s state, a job\'s ID, and a value that indicates whether the job is a job part, in the case of export jobs. Calling this API action in one of the US regions will return jobs from the list of all jobs associated with this account in all US regions.+module Network.AWS.Snowball.ListJobs+    (+    -- * Creating a Request+      listJobs+    , ListJobs+    -- * Request Lenses+    , ljNextToken+    , ljMaxResults++    -- * Destructuring the Response+    , listJobsResponse+    , ListJobsResponse+    -- * Response Lenses+    , ljrsJobListEntries+    , ljrsNextToken+    , ljrsResponseStatus+    ) where++import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response+import           Network.AWS.Snowball.Types+import           Network.AWS.Snowball.Types.Product++-- | /See:/ 'listJobs' smart constructor.+data ListJobs = ListJobs'+    { _ljNextToken  :: !(Maybe Text)+    , _ljMaxResults :: !(Maybe Nat)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListJobs' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ljNextToken'+--+-- * 'ljMaxResults'+listJobs+    :: ListJobs+listJobs =+    ListJobs'+    { _ljNextToken = Nothing+    , _ljMaxResults = Nothing+    }++-- | HTTP requests are stateless. To identify what object comes \"next\" in the list of 'JobListEntry' objects, you have the option of specifying 'NextToken' as the starting point for your returned list.+ljNextToken :: Lens' ListJobs (Maybe Text)+ljNextToken = lens _ljNextToken (\ s a -> s{_ljNextToken = a});++-- | The number of 'JobListEntry' objects to return.+ljMaxResults :: Lens' ListJobs (Maybe Natural)+ljMaxResults = lens _ljMaxResults (\ s a -> s{_ljMaxResults = a}) . mapping _Nat;++instance AWSRequest ListJobs where+        type Rs ListJobs = ListJobsResponse+        request = postJSON snowball+        response+          = receiveJSON+              (\ s h x ->+                 ListJobsResponse' <$>+                   (x .?> "JobListEntries" .!@ mempty) <*>+                     (x .?> "NextToken")+                     <*> (pure (fromEnum s)))++instance Hashable ListJobs++instance NFData ListJobs++instance ToHeaders ListJobs where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSIESnowballJobManagementService.ListJobs" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListJobs where+        toJSON ListJobs'{..}+          = object+              (catMaybes+                 [("NextToken" .=) <$> _ljNextToken,+                  ("MaxResults" .=) <$> _ljMaxResults])++instance ToPath ListJobs where+        toPath = const "/"++instance ToQuery ListJobs where+        toQuery = const mempty++-- | /See:/ 'listJobsResponse' smart constructor.+data ListJobsResponse = ListJobsResponse'+    { _ljrsJobListEntries :: !(Maybe [JobListEntry])+    , _ljrsNextToken      :: !(Maybe Text)+    , _ljrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListJobsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ljrsJobListEntries'+--+-- * 'ljrsNextToken'+--+-- * 'ljrsResponseStatus'+listJobsResponse+    :: Int -- ^ 'ljrsResponseStatus'+    -> ListJobsResponse+listJobsResponse pResponseStatus_ =+    ListJobsResponse'+    { _ljrsJobListEntries = Nothing+    , _ljrsNextToken = Nothing+    , _ljrsResponseStatus = pResponseStatus_+    }++-- | Each 'JobListEntry' object contains a job\'s state, a job\'s ID, and a value that indicates whether the job is a job part, in the case of export jobs.+ljrsJobListEntries :: Lens' ListJobsResponse [JobListEntry]+ljrsJobListEntries = lens _ljrsJobListEntries (\ s a -> s{_ljrsJobListEntries = a}) . _Default . _Coerce;++-- | HTTP requests are stateless. If you use this automatically generated 'NextToken' value in your next 'ListJobs' call, your returned 'JobListEntry' objects will start from this point in the array.+ljrsNextToken :: Lens' ListJobsResponse (Maybe Text)+ljrsNextToken = lens _ljrsNextToken (\ s a -> s{_ljrsNextToken = a});++-- | The response status code.+ljrsResponseStatus :: Lens' ListJobsResponse Int+ljrsResponseStatus = lens _ljrsResponseStatus (\ s a -> s{_ljrsResponseStatus = a});++instance NFData ListJobsResponse
+ gen/Network/AWS/Snowball/Types.hs view
@@ -0,0 +1,192 @@+{-# LANGUAGE OverloadedStrings #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Snowball.Types+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.Snowball.Types+    (+    -- * Service Configuration+      snowball++    -- * Errors+    , _InvalidResourceException+    , _UnsupportedAddressException+    , _KMSRequestFailedException+    , _InvalidJobStateException+    , _InvalidAddressException++    -- * JobState+    , JobState (..)++    -- * JobType+    , JobType (..)++    -- * ShippingOption+    , ShippingOption (..)++    -- * SnowballCapacity+    , SnowballCapacity (..)++    -- * Address+    , Address+    , address+    , aStreet3+    , aLandmark+    , aPostalCode+    , aCountry+    , aStateOrProvince+    , aStreet2+    , aAddressId+    , aCity+    , aPhoneNumber+    , aCompany+    , aName+    , aPrefectureOrDistrict+    , aStreet1++    -- * DataTransfer+    , DataTransfer+    , dataTransfer+    , dtTotalObjects+    , dtTotalBytes+    , dtObjectsTransferred+    , dtBytesTransferred++    -- * JobListEntry+    , JobListEntry+    , jobListEntry+    , jleJobId+    , jleJobState+    , jleIsMaster++    -- * JobLogs+    , JobLogs+    , jobLogs+    , jlJobFailureLogURI+    , jlJobCompletionReportURI+    , jlJobSuccessLogURI++    -- * JobMetadata+    , JobMetadata+    , jobMetadata+    , jmJobType+    , jmKMSKeyARN+    , jmJobId+    , jmJobLogInfo+    , jmNotification+    , jmJobState+    , jmShippingDetails+    , jmAddressId+    , jmDataTransferProgress+    , jmResources+    , jmCreationDate+    , jmDescription+    , jmRoleARN+    , jmSnowballCapacityPreference++    -- * JobResource+    , JobResource+    , jobResource+    , jrS3Resources++    -- * KeyRange+    , KeyRange+    , keyRange+    , krEndMarker+    , krBeginMarker++    -- * Notification+    , Notification+    , notification+    , nNotifyAll+    , nSNSTopicARN+    , nJobStatesToNotify++    -- * S3Resource+    , S3Resource+    , s3Resource+    , srKeyRange+    , srBucketARN++    -- * Shipment+    , Shipment+    , shipment+    , sStatus+    , sTrackingNumber++    -- * ShippingDetails+    , ShippingDetails+    , shippingDetails+    , sdShippingOption+    , sdOutboundShipment+    , sdInboundShipment+    ) where++import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Sign.V4+import           Network.AWS.Snowball.Types.Product+import           Network.AWS.Snowball.Types.Sum++-- | API version '2016-06-30' of the Amazon Import/Export Snowball SDK configuration.+snowball :: Service+snowball =+    Service+    { _svcAbbrev = "Snowball"+    , _svcSigner = v4+    , _svcPrefix = "snowball"+    , _svcVersion = "2016-06-30"+    , _svcEndpoint = defaultEndpoint snowball+    , _svcTimeout = Just 70+    , _svcCheck = statusSuccess+    , _svcError = parseJSONError "Snowball"+    , _svcRetry = retry+    }+  where+    retry =+        Exponential+        { _retryBase = 5.0e-2+        , _retryGrowth = 2+        , _retryAttempts = 5+        , _retryCheck = check+        }+    check e+      | has (hasStatus 429) e = Just "too_many_requests"+      | has (hasCode "ThrottlingException" . hasStatus 400) e =+          Just "throttling_exception"+      | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"+      | has (hasStatus 504) e = Just "gateway_timeout"+      | has (hasStatus 502) e = Just "bad_gateway"+      | has (hasStatus 503) e = Just "service_unavailable"+      | has (hasStatus 500) e = Just "general_server_error"+      | has (hasStatus 509) e = Just "limit_exceeded"+      | otherwise = Nothing++-- | 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+_InvalidResourceException = _ServiceError . hasCode "InvalidResourceException"++-- | 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+_UnsupportedAddressException =+    _ServiceError . hasCode "UnsupportedAddressException"++-- | The provided AWS Key Management Service key lacks the permissions to perform the specified < CreateJob> or < UpdateJob> action.+_KMSRequestFailedException :: AsError a => Getting (First ServiceError) a ServiceError+_KMSRequestFailedException =+    _ServiceError . hasCode "KMSRequestFailedException"++-- | 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+_InvalidJobStateException = _ServiceError . hasCode "InvalidJobStateException"++-- | The address provided was invalid. Check the address with your region\'s carrier, and try again.+_InvalidAddressException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidAddressException = _ServiceError . hasCode "InvalidAddressException"
+ gen/Network/AWS/Snowball/Types/Product.hs view
@@ -0,0 +1,804 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Snowball.Types.Product+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.Snowball.Types.Product where++import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Snowball.Types.Sum++-- | 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 'Address' are required, if the address is invalid or unsupported, then an exception is thrown.+--+-- /See:/ 'address' smart constructor.+data Address = Address'+    { _aStreet3              :: !(Maybe Text)+    , _aLandmark             :: !(Maybe Text)+    , _aPostalCode           :: !(Maybe Text)+    , _aCountry              :: !(Maybe Text)+    , _aStateOrProvince      :: !(Maybe Text)+    , _aStreet2              :: !(Maybe Text)+    , _aAddressId            :: !(Maybe Text)+    , _aCity                 :: !(Maybe Text)+    , _aPhoneNumber          :: !(Maybe Text)+    , _aCompany              :: !(Maybe Text)+    , _aName                 :: !(Maybe Text)+    , _aPrefectureOrDistrict :: !(Maybe Text)+    , _aStreet1              :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Address' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aStreet3'+--+-- * 'aLandmark'+--+-- * 'aPostalCode'+--+-- * 'aCountry'+--+-- * 'aStateOrProvince'+--+-- * 'aStreet2'+--+-- * 'aAddressId'+--+-- * 'aCity'+--+-- * 'aPhoneNumber'+--+-- * 'aCompany'+--+-- * 'aName'+--+-- * 'aPrefectureOrDistrict'+--+-- * 'aStreet1'+address+    :: Address+address =+    Address'+    { _aStreet3 = Nothing+    , _aLandmark = Nothing+    , _aPostalCode = Nothing+    , _aCountry = Nothing+    , _aStateOrProvince = Nothing+    , _aStreet2 = Nothing+    , _aAddressId = Nothing+    , _aCity = Nothing+    , _aPhoneNumber = Nothing+    , _aCompany = Nothing+    , _aName = Nothing+    , _aPrefectureOrDistrict = Nothing+    , _aStreet1 = Nothing+    }++-- | The third line in a street address that a Snowball is to be delivered to.+aStreet3 :: Lens' Address (Maybe Text)+aStreet3 = lens _aStreet3 (\ s a -> s{_aStreet3 = a});++-- | A landmark listed in an address that a Snowball is to be delivered to.+aLandmark :: Lens' Address (Maybe Text)+aLandmark = lens _aLandmark (\ s a -> s{_aLandmark = a});++-- | The postal code in an address that a Snowball is to be delivered to.+aPostalCode :: Lens' Address (Maybe Text)+aPostalCode = lens _aPostalCode (\ s a -> s{_aPostalCode = a});++-- | The country in an address that a Snowball is to be delivered to.+aCountry :: Lens' Address (Maybe Text)+aCountry = lens _aCountry (\ s a -> s{_aCountry = a});++-- | The state or province in an address that a Snowball is to be delivered to.+aStateOrProvince :: Lens' Address (Maybe Text)+aStateOrProvince = lens _aStateOrProvince (\ s a -> s{_aStateOrProvince = a});++-- | The second line in a street address that a Snowball is to be delivered to.+aStreet2 :: Lens' Address (Maybe Text)+aStreet2 = lens _aStreet2 (\ s a -> s{_aStreet2 = a});++-- | The unique ID for an address.+aAddressId :: Lens' Address (Maybe Text)+aAddressId = lens _aAddressId (\ s a -> s{_aAddressId = a});++-- | The city in an address that a Snowball is to be delivered to.+aCity :: Lens' Address (Maybe Text)+aCity = lens _aCity (\ s a -> s{_aCity = a});++-- | The phone number associated with an address that a Snowball is to be delivered to.+aPhoneNumber :: Lens' Address (Maybe Text)+aPhoneNumber = lens _aPhoneNumber (\ s a -> s{_aPhoneNumber = a});++-- | The name of the company to receive a Snowball at an address.+aCompany :: Lens' Address (Maybe Text)+aCompany = lens _aCompany (\ s a -> s{_aCompany = a});++-- | The name of a person to receive a Snowball at an address.+aName :: Lens' Address (Maybe Text)+aName = lens _aName (\ s a -> s{_aName = a});++-- | The prefecture or district in an address that a Snowball is to be delivered to.+aPrefectureOrDistrict :: Lens' Address (Maybe Text)+aPrefectureOrDistrict = lens _aPrefectureOrDistrict (\ s a -> s{_aPrefectureOrDistrict = a});++-- | The first line in a street address that a Snowball is to be delivered to.+aStreet1 :: Lens' Address (Maybe Text)+aStreet1 = lens _aStreet1 (\ s a -> s{_aStreet1 = a});++instance FromJSON Address where+        parseJSON+          = withObject "Address"+              (\ x ->+                 Address' <$>+                   (x .:? "Street3") <*> (x .:? "Landmark") <*>+                     (x .:? "PostalCode")+                     <*> (x .:? "Country")+                     <*> (x .:? "StateOrProvince")+                     <*> (x .:? "Street2")+                     <*> (x .:? "AddressId")+                     <*> (x .:? "City")+                     <*> (x .:? "PhoneNumber")+                     <*> (x .:? "Company")+                     <*> (x .:? "Name")+                     <*> (x .:? "PrefectureOrDistrict")+                     <*> (x .:? "Street1"))++instance Hashable Address++instance NFData Address++instance ToJSON Address where+        toJSON Address'{..}+          = object+              (catMaybes+                 [("Street3" .=) <$> _aStreet3,+                  ("Landmark" .=) <$> _aLandmark,+                  ("PostalCode" .=) <$> _aPostalCode,+                  ("Country" .=) <$> _aCountry,+                  ("StateOrProvince" .=) <$> _aStateOrProvince,+                  ("Street2" .=) <$> _aStreet2,+                  ("AddressId" .=) <$> _aAddressId,+                  ("City" .=) <$> _aCity,+                  ("PhoneNumber" .=) <$> _aPhoneNumber,+                  ("Company" .=) <$> _aCompany, ("Name" .=) <$> _aName,+                  ("PrefectureOrDistrict" .=) <$>+                    _aPrefectureOrDistrict,+                  ("Street1" .=) <$> _aStreet1])++-- | Defines the real-time status of a Snowball\'s data transfer while the appliance is at AWS. Note that this data is only available while a job has a 'JobState' value of 'InProgress', for both import and export jobs.+--+-- /See:/ 'dataTransfer' smart constructor.+data DataTransfer = DataTransfer'+    { _dtTotalObjects       :: !(Maybe Integer)+    , _dtTotalBytes         :: !(Maybe Integer)+    , _dtObjectsTransferred :: !(Maybe Integer)+    , _dtBytesTransferred   :: !(Maybe Integer)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DataTransfer' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtTotalObjects'+--+-- * 'dtTotalBytes'+--+-- * 'dtObjectsTransferred'+--+-- * 'dtBytesTransferred'+dataTransfer+    :: DataTransfer+dataTransfer =+    DataTransfer'+    { _dtTotalObjects = Nothing+    , _dtTotalBytes = Nothing+    , _dtObjectsTransferred = Nothing+    , _dtBytesTransferred = Nothing+    }++-- | 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)+dtTotalObjects = lens _dtTotalObjects (\ s a -> s{_dtTotalObjects = 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.+dtTotalBytes :: Lens' DataTransfer (Maybe Integer)+dtTotalBytes = lens _dtTotalBytes (\ s a -> s{_dtTotalBytes = a});++-- | The number of objects transferred between a Snowball and Amazon S3.+dtObjectsTransferred :: Lens' DataTransfer (Maybe Integer)+dtObjectsTransferred = lens _dtObjectsTransferred (\ s a -> s{_dtObjectsTransferred = a});++-- | The number of bytes transferred between a Snowball and Amazon S3.+dtBytesTransferred :: Lens' DataTransfer (Maybe Integer)+dtBytesTransferred = lens _dtBytesTransferred (\ s a -> s{_dtBytesTransferred = a});++instance FromJSON DataTransfer where+        parseJSON+          = withObject "DataTransfer"+              (\ x ->+                 DataTransfer' <$>+                   (x .:? "TotalObjects") <*> (x .:? "TotalBytes") <*>+                     (x .:? "ObjectsTransferred")+                     <*> (x .:? "BytesTransferred"))++instance Hashable DataTransfer++instance NFData DataTransfer++-- | Each 'JobListEntry' object contains a job\'s state, a job\'s ID, and a value that indicates whether the job is a job part, in the case of an export job.+--+-- /See:/ 'jobListEntry' smart constructor.+data JobListEntry = JobListEntry'+    { _jleJobId    :: !(Maybe Text)+    , _jleJobState :: !(Maybe JobState)+    , _jleIsMaster :: !(Maybe Bool)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'JobListEntry' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jleJobId'+--+-- * 'jleJobState'+--+-- * 'jleIsMaster'+jobListEntry+    :: JobListEntry+jobListEntry =+    JobListEntry'+    { _jleJobId = Nothing+    , _jleJobState = Nothing+    , _jleIsMaster = Nothing+    }++-- | The automatically generated ID for a job, for example 'JID123e4567-e89b-12d3-a456-426655440000'.+jleJobId :: Lens' JobListEntry (Maybe Text)+jleJobId = lens _jleJobId (\ s a -> s{_jleJobId = a});++-- | The current state of this job.+jleJobState :: Lens' JobListEntry (Maybe JobState)+jleJobState = lens _jleJobState (\ s a -> s{_jleJobState = 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.+jleIsMaster :: Lens' JobListEntry (Maybe Bool)+jleIsMaster = lens _jleIsMaster (\ s a -> s{_jleIsMaster = a});++instance FromJSON JobListEntry where+        parseJSON+          = withObject "JobListEntry"+              (\ x ->+                 JobListEntry' <$>+                   (x .:? "JobId") <*> (x .:? "JobState") <*>+                     (x .:? "IsMaster"))++instance Hashable JobListEntry++instance NFData JobListEntry++-- | 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 'DescribeJob' action in the 'JobMetadata' 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 'DescribeJob' 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.+--+-- /See:/ 'jobLogs' smart constructor.+data JobLogs = JobLogs'+    { _jlJobFailureLogURI       :: !(Maybe Text)+    , _jlJobCompletionReportURI :: !(Maybe Text)+    , _jlJobSuccessLogURI       :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'JobLogs' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jlJobFailureLogURI'+--+-- * 'jlJobCompletionReportURI'+--+-- * 'jlJobSuccessLogURI'+jobLogs+    :: JobLogs+jobLogs =+    JobLogs'+    { _jlJobFailureLogURI = Nothing+    , _jlJobCompletionReportURI = Nothing+    , _jlJobSuccessLogURI = Nothing+    }++-- | A link to an Amazon S3 presigned URL where the job failure log is located.+jlJobFailureLogURI :: Lens' JobLogs (Maybe Text)+jlJobFailureLogURI = lens _jlJobFailureLogURI (\ s a -> s{_jlJobFailureLogURI = a});++-- | A link to an Amazon S3 presigned URL where the job completion report is located.+jlJobCompletionReportURI :: Lens' JobLogs (Maybe Text)+jlJobCompletionReportURI = lens _jlJobCompletionReportURI (\ s a -> s{_jlJobCompletionReportURI = a});++-- | A link to an Amazon S3 presigned URL where the job success log is located.+jlJobSuccessLogURI :: Lens' JobLogs (Maybe Text)+jlJobSuccessLogURI = lens _jlJobSuccessLogURI (\ s a -> s{_jlJobSuccessLogURI = a});++instance FromJSON JobLogs where+        parseJSON+          = withObject "JobLogs"+              (\ x ->+                 JobLogs' <$>+                   (x .:? "JobFailureLogURI") <*>+                     (x .:? "JobCompletionReportURI")+                     <*> (x .:? "JobSuccessLogURI"))++instance Hashable JobLogs++instance NFData JobLogs++-- | 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 'DescribeJob' action.+--+-- /See:/ 'jobMetadata' smart constructor.+data JobMetadata = JobMetadata'+    { _jmJobType                    :: !(Maybe JobType)+    , _jmKMSKeyARN                  :: !(Maybe Text)+    , _jmJobId                      :: !(Maybe Text)+    , _jmJobLogInfo                 :: !(Maybe JobLogs)+    , _jmNotification               :: !(Maybe Notification)+    , _jmJobState                   :: !(Maybe JobState)+    , _jmShippingDetails            :: !(Maybe ShippingDetails)+    , _jmAddressId                  :: !(Maybe Text)+    , _jmDataTransferProgress       :: !(Maybe DataTransfer)+    , _jmResources                  :: !(Maybe JobResource)+    , _jmCreationDate               :: !(Maybe POSIX)+    , _jmDescription                :: !(Maybe Text)+    , _jmRoleARN                    :: !(Maybe Text)+    , _jmSnowballCapacityPreference :: !(Maybe SnowballCapacity)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'JobMetadata' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jmJobType'+--+-- * 'jmKMSKeyARN'+--+-- * 'jmJobId'+--+-- * 'jmJobLogInfo'+--+-- * 'jmNotification'+--+-- * 'jmJobState'+--+-- * 'jmShippingDetails'+--+-- * 'jmAddressId'+--+-- * 'jmDataTransferProgress'+--+-- * 'jmResources'+--+-- * 'jmCreationDate'+--+-- * 'jmDescription'+--+-- * 'jmRoleARN'+--+-- * 'jmSnowballCapacityPreference'+jobMetadata+    :: JobMetadata+jobMetadata =+    JobMetadata'+    { _jmJobType = Nothing+    , _jmKMSKeyARN = Nothing+    , _jmJobId = Nothing+    , _jmJobLogInfo = Nothing+    , _jmNotification = Nothing+    , _jmJobState = Nothing+    , _jmShippingDetails = Nothing+    , _jmAddressId = Nothing+    , _jmDataTransferProgress = Nothing+    , _jmResources = Nothing+    , _jmCreationDate = Nothing+    , _jmDescription = Nothing+    , _jmRoleARN = Nothing+    , _jmSnowballCapacityPreference = Nothing+    }++-- | The type of job.+jmJobType :: Lens' JobMetadata (Maybe JobType)+jmJobType = lens _jmJobType (\ s a -> s{_jmJobType = 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 'CreateKey' API action in AWS KMS.+jmKMSKeyARN :: Lens' JobMetadata (Maybe Text)+jmKMSKeyARN = lens _jmKMSKeyARN (\ s a -> s{_jmKMSKeyARN = a});++-- | The automatically generated ID for a job, for example 'JID123e4567-e89b-12d3-a456-426655440000'.+jmJobId :: Lens' JobMetadata (Maybe Text)+jmJobId = lens _jmJobId (\ s a -> s{_jmJobId = 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.+jmJobLogInfo :: Lens' JobMetadata (Maybe JobLogs)+jmJobLogInfo = lens _jmJobLogInfo (\ s a -> s{_jmJobLogInfo = a});++-- | The Amazon Simple Notification Service (Amazon SNS) notification settings associated with a specific job. The 'Notification' object is returned as a part of the response syntax of the 'DescribeJob' action in the 'JobMetadata' data type.+jmNotification :: Lens' JobMetadata (Maybe Notification)+jmNotification = lens _jmNotification (\ s a -> s{_jmNotification = a});++-- | The current state of the jobs.+jmJobState :: Lens' JobMetadata (Maybe JobState)+jmJobState = lens _jmJobState (\ s a -> s{_jmJobState = a});++-- | A job\'s shipping information, including inbound and outbound tracking numbers and shipping speed options.+jmShippingDetails :: Lens' JobMetadata (Maybe ShippingDetails)+jmShippingDetails = lens _jmShippingDetails (\ s a -> s{_jmShippingDetails = a});++-- | The ID for the address that you want the Snowball shipped to.+jmAddressId :: Lens' JobMetadata (Maybe Text)+jmAddressId = lens _jmAddressId (\ s a -> s{_jmAddressId = a});++-- | A value that defines the real-time status of a Snowball\'s data transfer while the appliance is at AWS. Note that this data is only available while a job has a 'JobState' value of 'InProgress', for both import and export jobs.+jmDataTransferProgress :: Lens' JobMetadata (Maybe DataTransfer)+jmDataTransferProgress = lens _jmDataTransferProgress (\ s a -> s{_jmDataTransferProgress = a});++-- | An array of 'S3Resource' objects. Each 'S3Resource' object represents an Amazon S3 bucket that your transferred data will be exported from or imported into.+jmResources :: Lens' JobMetadata (Maybe JobResource)+jmResources = lens _jmResources (\ s a -> s{_jmResources = a});++-- | The creation date for this job.+jmCreationDate :: Lens' JobMetadata (Maybe UTCTime)+jmCreationDate = lens _jmCreationDate (\ s a -> s{_jmCreationDate = a}) . mapping _Time;++-- | The description of the job, provided at job creation.+jmDescription :: Lens' JobMetadata (Maybe Text)+jmDescription = lens _jmDescription (\ s a -> s{_jmDescription = a});++-- | The role ARN associated with this job. This ARN was created using the 'CreateRole' API action in AWS Identity and Access Management (IAM).+jmRoleARN :: Lens' JobMetadata (Maybe Text)+jmRoleARN = lens _jmRoleARN (\ s a -> s{_jmRoleARN = 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.+jmSnowballCapacityPreference :: Lens' JobMetadata (Maybe SnowballCapacity)+jmSnowballCapacityPreference = lens _jmSnowballCapacityPreference (\ s a -> s{_jmSnowballCapacityPreference = a});++instance FromJSON JobMetadata where+        parseJSON+          = withObject "JobMetadata"+              (\ x ->+                 JobMetadata' <$>+                   (x .:? "JobType") <*> (x .:? "KmsKeyARN") <*>+                     (x .:? "JobId")+                     <*> (x .:? "JobLogInfo")+                     <*> (x .:? "Notification")+                     <*> (x .:? "JobState")+                     <*> (x .:? "ShippingDetails")+                     <*> (x .:? "AddressId")+                     <*> (x .:? "DataTransferProgress")+                     <*> (x .:? "Resources")+                     <*> (x .:? "CreationDate")+                     <*> (x .:? "Description")+                     <*> (x .:? "RoleARN")+                     <*> (x .:? "SnowballCapacityPreference"))++instance Hashable JobMetadata++instance NFData JobMetadata++-- | Contains an array of 'S3Resource' objects. Each 'S3Resource' object represents an Amazon S3 bucket that your transferred data will be exported from or imported into.+--+-- /See:/ 'jobResource' smart constructor.+newtype JobResource = JobResource'+    { _jrS3Resources :: Maybe [S3Resource]+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'JobResource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'jrS3Resources'+jobResource+    :: JobResource+jobResource =+    JobResource'+    { _jrS3Resources = Nothing+    }++-- | An array of 'S3Resource' objects.+jrS3Resources :: Lens' JobResource [S3Resource]+jrS3Resources = lens _jrS3Resources (\ s a -> s{_jrS3Resources = a}) . _Default . _Coerce;++instance FromJSON JobResource where+        parseJSON+          = withObject "JobResource"+              (\ x ->+                 JobResource' <$> (x .:? "S3Resources" .!= mempty))++instance Hashable JobResource++instance NFData JobResource++instance ToJSON JobResource where+        toJSON JobResource'{..}+          = object+              (catMaybes [("S3Resources" .=) <$> _jrS3Resources])++-- | Contains a key range. For export jobs, a 'S3Resource' object can have an optional 'KeyRange' value. The length of the range is defined at job creation, and has either an inclusive 'BeginMarker', an inclusive 'EndMarker', or both. Ranges are UTF-8 binary sorted.+--+-- /See:/ 'keyRange' smart constructor.+data KeyRange = KeyRange'+    { _krEndMarker   :: !(Maybe Text)+    , _krBeginMarker :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'KeyRange' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'krEndMarker'+--+-- * 'krBeginMarker'+keyRange+    :: KeyRange+keyRange =+    KeyRange'+    { _krEndMarker = Nothing+    , _krBeginMarker = Nothing+    }++-- | 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)+krEndMarker = lens _krEndMarker (\ s a -> s{_krEndMarker = a});++-- | 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)+krBeginMarker = lens _krBeginMarker (\ s a -> s{_krBeginMarker = a});++instance FromJSON KeyRange where+        parseJSON+          = withObject "KeyRange"+              (\ x ->+                 KeyRange' <$>+                   (x .:? "EndMarker") <*> (x .:? "BeginMarker"))++instance Hashable KeyRange++instance NFData KeyRange++instance ToJSON KeyRange where+        toJSON KeyRange'{..}+          = object+              (catMaybes+                 [("EndMarker" .=) <$> _krEndMarker,+                  ("BeginMarker" .=) <$> _krBeginMarker])++-- | The Amazon Simple Notification Service (Amazon SNS) notification settings associated with a specific job. The 'Notification' object is returned as a part of the response syntax of the 'DescribeJob' action in the 'JobMetadata' 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 'JobStatesToNotify' array of strings, or you can specify that you want to have Amazon SNS notifications sent out for all job states with 'NotifyAll' set to true.+--+-- /See:/ 'notification' smart constructor.+data Notification = Notification'+    { _nNotifyAll         :: !(Maybe Bool)+    , _nSNSTopicARN       :: !(Maybe Text)+    , _nJobStatesToNotify :: !(Maybe [JobState])+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Notification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nNotifyAll'+--+-- * 'nSNSTopicARN'+--+-- * 'nJobStatesToNotify'+notification+    :: Notification+notification =+    Notification'+    { _nNotifyAll = Nothing+    , _nSNSTopicARN = Nothing+    , _nJobStatesToNotify = Nothing+    }++-- | Any change in job state will trigger a notification for this job.+nNotifyAll :: Lens' Notification (Maybe Bool)+nNotifyAll = lens _nNotifyAll (\ s a -> s{_nNotifyAll = a});++-- | The new SNS 'TopicArn' that you want to associate with this job. You can create Amazon Resource Names (ARNs) for topics by using the <http://docs.aws.amazon.com/sns/latest/api/API_CreateTopic.html CreateTopic> Amazon SNS API action.+--+-- Note that you can subscribe email addresses to an Amazon SNS topic through the AWS Management Console, or by using the <http://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html Subscribe> AWS Simple Notification Service (SNS) API action.+nSNSTopicARN :: Lens' Notification (Maybe Text)+nSNSTopicARN = lens _nSNSTopicARN (\ s a -> s{_nSNSTopicARN = a});++-- | The list of job states that will trigger a notification for this job.+nJobStatesToNotify :: Lens' Notification [JobState]+nJobStatesToNotify = lens _nJobStatesToNotify (\ s a -> s{_nJobStatesToNotify = a}) . _Default . _Coerce;++instance FromJSON Notification where+        parseJSON+          = withObject "Notification"+              (\ x ->+                 Notification' <$>+                   (x .:? "NotifyAll") <*> (x .:? "SnsTopicARN") <*>+                     (x .:? "JobStatesToNotify" .!= mempty))++instance Hashable Notification++instance NFData Notification++instance ToJSON Notification where+        toJSON Notification'{..}+          = object+              (catMaybes+                 [("NotifyAll" .=) <$> _nNotifyAll,+                  ("SnsTopicARN" .=) <$> _nSNSTopicARN,+                  ("JobStatesToNotify" .=) <$> _nJobStatesToNotify])++-- | Each 'S3Resource' 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 'KeyRange' value. The length of the range is defined at job creation, and has either an inclusive 'BeginMarker', an inclusive 'EndMarker', or both. Ranges are UTF-8 binary sorted.+--+-- /See:/ 's3Resource' smart constructor.+data S3Resource = S3Resource'+    { _srKeyRange  :: !(Maybe KeyRange)+    , _srBucketARN :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'S3Resource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'srKeyRange'+--+-- * 'srBucketARN'+s3Resource+    :: S3Resource+s3Resource =+    S3Resource'+    { _srKeyRange = Nothing+    , _srBucketARN = Nothing+    }++-- | For export jobs, you can provide an optional 'KeyRange' within a specific Amazon S3 bucket. The length of the range is defined at job creation, and has either an inclusive 'BeginMarker', an inclusive 'EndMarker', or both. Ranges are UTF-8 binary sorted.+srKeyRange :: Lens' S3Resource (Maybe KeyRange)+srKeyRange = lens _srKeyRange (\ s a -> s{_srKeyRange = a});++-- | The Amazon Resource Name (ARN) of an Amazon S3 bucket.+srBucketARN :: Lens' S3Resource (Maybe Text)+srBucketARN = lens _srBucketARN (\ s a -> s{_srBucketARN = a});++instance FromJSON S3Resource where+        parseJSON+          = withObject "S3Resource"+              (\ x ->+                 S3Resource' <$>+                   (x .:? "KeyRange") <*> (x .:? "BucketArn"))++instance Hashable S3Resource++instance NFData S3Resource++instance ToJSON S3Resource where+        toJSON S3Resource'{..}+          = object+              (catMaybes+                 [("KeyRange" .=) <$> _srKeyRange,+                  ("BucketArn" .=) <$> _srBucketARN])++-- | The 'Status' and 'TrackingNumber' information for an inbound or outbound shipment.+--+-- /See:/ 'shipment' smart constructor.+data Shipment = Shipment'+    { _sStatus         :: !(Maybe Text)+    , _sTrackingNumber :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Shipment' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sStatus'+--+-- * 'sTrackingNumber'+shipment+    :: Shipment+shipment =+    Shipment'+    { _sStatus = Nothing+    , _sTrackingNumber = Nothing+    }++-- | Status information for a shipment. Valid statuses include 'NEW', 'IN_TRANSIT', and 'DELIVERED'.+sStatus :: Lens' Shipment (Maybe Text)+sStatus = lens _sStatus (\ s a -> s{_sStatus = 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.+sTrackingNumber :: Lens' Shipment (Maybe Text)+sTrackingNumber = lens _sTrackingNumber (\ s a -> s{_sTrackingNumber = a});++instance FromJSON Shipment where+        parseJSON+          = withObject "Shipment"+              (\ x ->+                 Shipment' <$>+                   (x .:? "Status") <*> (x .:? "TrackingNumber"))++instance Hashable Shipment++instance NFData Shipment++-- | A job\'s shipping information, including inbound and outbound tracking numbers and shipping speed options.+--+-- /See:/ 'shippingDetails' smart constructor.+data ShippingDetails = ShippingDetails'+    { _sdShippingOption   :: !(Maybe ShippingOption)+    , _sdOutboundShipment :: !(Maybe Shipment)+    , _sdInboundShipment  :: !(Maybe Shipment)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ShippingDetails' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sdShippingOption'+--+-- * 'sdOutboundShipment'+--+-- * 'sdInboundShipment'+shippingDetails+    :: ShippingDetails+shippingDetails =+    ShippingDetails'+    { _sdShippingOption = Nothing+    , _sdOutboundShipment = Nothing+    , _sdInboundShipment = Nothing+    }++-- | The shipping speed for a particular job. Note that this speed does not 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)+sdShippingOption = lens _sdShippingOption (\ s a -> s{_sdShippingOption = a});++-- | The 'Status' and 'TrackingNumber' values for a Snowball being returned to AWS for a particular job.+sdOutboundShipment :: Lens' ShippingDetails (Maybe Shipment)+sdOutboundShipment = lens _sdOutboundShipment (\ s a -> s{_sdOutboundShipment = a});++-- | The 'Status' and 'TrackingNumber' values for a Snowball being delivered to the address that you specified for a particular job.+sdInboundShipment :: Lens' ShippingDetails (Maybe Shipment)+sdInboundShipment = lens _sdInboundShipment (\ s a -> s{_sdInboundShipment = a});++instance FromJSON ShippingDetails where+        parseJSON+          = withObject "ShippingDetails"+              (\ x ->+                 ShippingDetails' <$>+                   (x .:? "ShippingOption") <*>+                     (x .:? "OutboundShipment")+                     <*> (x .:? "InboundShipment"))++instance Hashable ShippingDetails++instance NFData ShippingDetails
+ gen/Network/AWS/Snowball/Types/Sum.hs view
@@ -0,0 +1,175 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Snowball.Types.Sum+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.Snowball.Types.Sum where++import           Network.AWS.Prelude++data JobState+    = Cancelled+    | Complete+    | InProgress+    | InTransitToAWS+    | InTransitToCustomer+    | Listing+    | New+    | Pending+    | PreparingAppliance+    | PreparingShipment+    | WithAWS+    | WithCustomer+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)++instance FromText JobState where+    parser = takeLowerText >>= \case+        "cancelled" -> pure Cancelled+        "complete" -> pure Complete+        "inprogress" -> pure InProgress+        "intransittoaws" -> pure InTransitToAWS+        "intransittocustomer" -> pure InTransitToCustomer+        "listing" -> pure Listing+        "new" -> pure New+        "pending" -> pure Pending+        "preparingappliance" -> pure PreparingAppliance+        "preparingshipment" -> pure PreparingShipment+        "withaws" -> pure WithAWS+        "withcustomer" -> pure WithCustomer+        e -> fromTextError $ "Failure parsing JobState from value: '" <> e+           <> "'. Accepted values: cancelled, complete, inprogress, intransittoaws, intransittocustomer, listing, new, pending, preparingappliance, preparingshipment, withaws, withcustomer"++instance ToText JobState where+    toText = \case+        Cancelled -> "Cancelled"+        Complete -> "Complete"+        InProgress -> "InProgress"+        InTransitToAWS -> "InTransitToAWS"+        InTransitToCustomer -> "InTransitToCustomer"+        Listing -> "Listing"+        New -> "New"+        Pending -> "Pending"+        PreparingAppliance -> "PreparingAppliance"+        PreparingShipment -> "PreparingShipment"+        WithAWS -> "WithAWS"+        WithCustomer -> "WithCustomer"++instance Hashable     JobState+instance NFData       JobState+instance ToByteString JobState+instance ToQuery      JobState+instance ToHeader     JobState++instance ToJSON JobState where+    toJSON = toJSONText++instance FromJSON JobState where+    parseJSON = parseJSONText "JobState"++data JobType+    = Export+    | Import+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)++instance FromText JobType where+    parser = takeLowerText >>= \case+        "export" -> pure Export+        "import" -> pure Import+        e -> fromTextError $ "Failure parsing JobType from value: '" <> e+           <> "'. Accepted values: export, import"++instance ToText JobType where+    toText = \case+        Export -> "EXPORT"+        Import -> "IMPORT"++instance Hashable     JobType+instance NFData       JobType+instance ToByteString JobType+instance ToQuery      JobType+instance ToHeader     JobType++instance ToJSON JobType where+    toJSON = toJSONText++instance FromJSON JobType where+    parseJSON = parseJSONText "JobType"++data ShippingOption+    = Express+    | NextDay+    | SecondDay+    | Standard+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)++instance FromText ShippingOption where+    parser = takeLowerText >>= \case+        "express" -> pure Express+        "next_day" -> pure NextDay+        "second_day" -> pure SecondDay+        "standard" -> pure Standard+        e -> fromTextError $ "Failure parsing ShippingOption from value: '" <> e+           <> "'. Accepted values: express, next_day, second_day, standard"++instance ToText ShippingOption where+    toText = \case+        Express -> "EXPRESS"+        NextDay -> "NEXT_DAY"+        SecondDay -> "SECOND_DAY"+        Standard -> "STANDARD"++instance Hashable     ShippingOption+instance NFData       ShippingOption+instance ToByteString ShippingOption+instance ToQuery      ShippingOption+instance ToHeader     ShippingOption++instance ToJSON ShippingOption where+    toJSON = toJSONText++instance FromJSON ShippingOption where+    parseJSON = parseJSONText "ShippingOption"++data SnowballCapacity+    = NoPreference+    | T50+    | T80+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)++instance FromText SnowballCapacity where+    parser = takeLowerText >>= \case+        "nopreference" -> pure NoPreference+        "t50" -> pure T50+        "t80" -> pure T80+        e -> fromTextError $ "Failure parsing SnowballCapacity from value: '" <> e+           <> "'. Accepted values: nopreference, t50, t80"++instance ToText SnowballCapacity where+    toText = \case+        NoPreference -> "NoPreference"+        T50 -> "T50"+        T80 -> "T80"++instance Hashable     SnowballCapacity+instance NFData       SnowballCapacity+instance ToByteString SnowballCapacity+instance ToQuery      SnowballCapacity+instance ToHeader     SnowballCapacity++instance ToJSON SnowballCapacity where+    toJSON = toJSONText++instance FromJSON SnowballCapacity where+    parseJSON = parseJSONText "SnowballCapacity"
+ gen/Network/AWS/Snowball/UpdateJob.hs view
@@ -0,0 +1,193 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Snowball.UpdateJob+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- While a job\'s 'JobState' value is 'New', you can update some of the information associated with a job. Once the job changes to a different job state, usually within 60 minutes of the job being created, this action is no longer available.+module Network.AWS.Snowball.UpdateJob+    (+    -- * Creating a Request+      updateJob+    , UpdateJob+    -- * Request Lenses+    , ujNotification+    , ujAddressId+    , ujShippingOption+    , ujResources+    , ujDescription+    , ujRoleARN+    , ujSnowballCapacityPreference+    , ujJobId++    -- * Destructuring the Response+    , updateJobResponse+    , UpdateJobResponse+    -- * Response Lenses+    , ujrsResponseStatus+    ) where++import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response+import           Network.AWS.Snowball.Types+import           Network.AWS.Snowball.Types.Product++-- | /See:/ 'updateJob' smart constructor.+data UpdateJob = UpdateJob'+    { _ujNotification               :: !(Maybe Notification)+    , _ujAddressId                  :: !(Maybe Text)+    , _ujShippingOption             :: !(Maybe ShippingOption)+    , _ujResources                  :: !(Maybe JobResource)+    , _ujDescription                :: !(Maybe Text)+    , _ujRoleARN                    :: !(Maybe Text)+    , _ujSnowballCapacityPreference :: !(Maybe SnowballCapacity)+    , _ujJobId                      :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateJob' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ujNotification'+--+-- * 'ujAddressId'+--+-- * 'ujShippingOption'+--+-- * 'ujResources'+--+-- * 'ujDescription'+--+-- * 'ujRoleARN'+--+-- * 'ujSnowballCapacityPreference'+--+-- * 'ujJobId'+updateJob+    :: Text -- ^ 'ujJobId'+    -> UpdateJob+updateJob pJobId_ =+    UpdateJob'+    { _ujNotification = Nothing+    , _ujAddressId = Nothing+    , _ujShippingOption = Nothing+    , _ujResources = Nothing+    , _ujDescription = Nothing+    , _ujRoleARN = Nothing+    , _ujSnowballCapacityPreference = Nothing+    , _ujJobId = pJobId_+    }++-- | The new or updated < Notification> object.+ujNotification :: Lens' UpdateJob (Maybe Notification)+ujNotification = lens _ujNotification (\ s a -> s{_ujNotification = a});++-- | The ID of the updated < Address> object.+ujAddressId :: Lens' UpdateJob (Maybe Text)+ujAddressId = lens _ujAddressId (\ s a -> s{_ujAddressId = a});++-- | The updated shipping option value of this job\'s < ShippingDetails> object.+ujShippingOption :: Lens' UpdateJob (Maybe ShippingOption)+ujShippingOption = lens _ujShippingOption (\ s a -> s{_ujShippingOption = a});++-- | The updated < S3Resource> object (for a single Amazon S3 bucket or key range), or the updated < JobResource> object (for multiple buckets or key ranges).+ujResources :: Lens' UpdateJob (Maybe JobResource)+ujResources = lens _ujResources (\ s a -> s{_ujResources = a});++-- | The updated description of this job\'s < JobMetadata> object.+ujDescription :: Lens' UpdateJob (Maybe Text)+ujDescription = lens _ujDescription (\ s a -> s{_ujDescription = a});++-- | The new role Amazon Resource Name (ARN) that you want to associate with this job. To create a role ARN, use the <http://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html CreateRole> AWS Identity and Access Management (IAM) API action.+ujRoleARN :: Lens' UpdateJob (Maybe Text)+ujRoleARN = lens _ujRoleARN (\ s a -> s{_ujRoleARN = a});++-- | The updated 'SnowballCapacityPreference' of this job\'s < JobMetadata> object. Note that the 50 TB Snowballs are only available in the US regions.+ujSnowballCapacityPreference :: Lens' UpdateJob (Maybe SnowballCapacity)+ujSnowballCapacityPreference = lens _ujSnowballCapacityPreference (\ s a -> s{_ujSnowballCapacityPreference = a});++-- | The job ID of the job that you want to update, for example 'JID123e4567-e89b-12d3-a456-426655440000'.+ujJobId :: Lens' UpdateJob Text+ujJobId = lens _ujJobId (\ s a -> s{_ujJobId = a});++instance AWSRequest UpdateJob where+        type Rs UpdateJob = UpdateJobResponse+        request = postJSON snowball+        response+          = receiveEmpty+              (\ s h x ->+                 UpdateJobResponse' <$> (pure (fromEnum s)))++instance Hashable UpdateJob++instance NFData UpdateJob++instance ToHeaders UpdateJob where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSIESnowballJobManagementService.UpdateJob" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdateJob where+        toJSON UpdateJob'{..}+          = object+              (catMaybes+                 [("Notification" .=) <$> _ujNotification,+                  ("AddressId" .=) <$> _ujAddressId,+                  ("ShippingOption" .=) <$> _ujShippingOption,+                  ("Resources" .=) <$> _ujResources,+                  ("Description" .=) <$> _ujDescription,+                  ("RoleARN" .=) <$> _ujRoleARN,+                  ("SnowballCapacityPreference" .=) <$>+                    _ujSnowballCapacityPreference,+                  Just ("JobId" .= _ujJobId)])++instance ToPath UpdateJob where+        toPath = const "/"++instance ToQuery UpdateJob where+        toQuery = const mempty++-- | /See:/ 'updateJobResponse' smart constructor.+newtype UpdateJobResponse = UpdateJobResponse'+    { _ujrsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateJobResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ujrsResponseStatus'+updateJobResponse+    :: Int -- ^ 'ujrsResponseStatus'+    -> UpdateJobResponse+updateJobResponse pResponseStatus_ =+    UpdateJobResponse'+    { _ujrsResponseStatus = pResponseStatus_+    }++-- | The response status code.+ujrsResponseStatus :: Lens' UpdateJobResponse Int+ujrsResponseStatus = lens _ujrsResponseStatus (\ s a -> s{_ujrsResponseStatus = a});++instance NFData UpdateJobResponse
+ gen/Network/AWS/Snowball/Waiters.hs view
@@ -0,0 +1,21 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TypeFamilies      #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Snowball.Waiters+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.Snowball.Waiters where++import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Snowball.Types+import           Network.AWS.Waiter
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,21 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Main+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Main (main) where++import Test.Tasty+import Test.AWS.Snowball+import Test.AWS.Snowball.Internal++main :: IO ()+main = defaultMain $ testGroup "Snowball"+    [ testGroup "tests"    tests+    , testGroup "fixtures" fixtures+    ]
+ test/Test/AWS/Gen/Snowball.hs view
@@ -0,0 +1,237 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-orphans        #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Test.AWS.Gen.Snowball+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Test.AWS.Gen.Snowball where++import Data.Proxy+import Test.AWS.Fixture+import Test.AWS.Prelude+import Test.Tasty+import Network.AWS.Snowball+import Test.AWS.Snowball.Internal++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+--     [ testGroup "request"+--         [ requestCreateAddress $+--             createAddress+--+--         , requestGetSnowballUsage $+--             getSnowballUsage+--+--         , requestDescribeAddresses $+--             describeAddresses+--+--         , requestCreateJob $+--             createJob+--+--         , requestGetJobManifest $+--             getJobManifest+--+--         , requestListJobs $+--             listJobs+--+--         , requestUpdateJob $+--             updateJob+--+--         , requestGetJobUnlockCode $+--             getJobUnlockCode+--+--         , requestDescribeJob $+--             describeJob+--+--         , requestDescribeAddress $+--             describeAddress+--+--         , requestCancelJob $+--             cancelJob+--+--           ]++--     , testGroup "response"+--         [ responseCreateAddress $+--             createAddressResponse+--+--         , responseGetSnowballUsage $+--             getSnowballUsageResponse+--+--         , responseDescribeAddresses $+--             describeAddressesResponse+--+--         , responseCreateJob $+--             createJobResponse+--+--         , responseGetJobManifest $+--             getJobManifestResponse+--+--         , responseListJobs $+--             listJobsResponse+--+--         , responseUpdateJob $+--             updateJobResponse+--+--         , responseGetJobUnlockCode $+--             getJobUnlockCodeResponse+--+--         , responseDescribeJob $+--             describeJobResponse+--+--         , responseDescribeAddress $+--             describeAddressResponse+--+--         , responseCancelJob $+--             cancelJobResponse+--+--           ]+--     ]++-- Requests++requestCreateAddress :: CreateAddress -> TestTree+requestCreateAddress = req+    "CreateAddress"+    "fixture/CreateAddress.yaml"++requestGetSnowballUsage :: GetSnowballUsage -> TestTree+requestGetSnowballUsage = req+    "GetSnowballUsage"+    "fixture/GetSnowballUsage.yaml"++requestDescribeAddresses :: DescribeAddresses -> TestTree+requestDescribeAddresses = req+    "DescribeAddresses"+    "fixture/DescribeAddresses.yaml"++requestCreateJob :: CreateJob -> TestTree+requestCreateJob = req+    "CreateJob"+    "fixture/CreateJob.yaml"++requestGetJobManifest :: GetJobManifest -> TestTree+requestGetJobManifest = req+    "GetJobManifest"+    "fixture/GetJobManifest.yaml"++requestListJobs :: ListJobs -> TestTree+requestListJobs = req+    "ListJobs"+    "fixture/ListJobs.yaml"++requestUpdateJob :: UpdateJob -> TestTree+requestUpdateJob = req+    "UpdateJob"+    "fixture/UpdateJob.yaml"++requestGetJobUnlockCode :: GetJobUnlockCode -> TestTree+requestGetJobUnlockCode = req+    "GetJobUnlockCode"+    "fixture/GetJobUnlockCode.yaml"++requestDescribeJob :: DescribeJob -> TestTree+requestDescribeJob = req+    "DescribeJob"+    "fixture/DescribeJob.yaml"++requestDescribeAddress :: DescribeAddress -> TestTree+requestDescribeAddress = req+    "DescribeAddress"+    "fixture/DescribeAddress.yaml"++requestCancelJob :: CancelJob -> TestTree+requestCancelJob = req+    "CancelJob"+    "fixture/CancelJob.yaml"++-- Responses++responseCreateAddress :: CreateAddressResponse -> TestTree+responseCreateAddress = res+    "CreateAddressResponse"+    "fixture/CreateAddressResponse.proto"+    snowball+    (Proxy :: Proxy CreateAddress)++responseGetSnowballUsage :: GetSnowballUsageResponse -> TestTree+responseGetSnowballUsage = res+    "GetSnowballUsageResponse"+    "fixture/GetSnowballUsageResponse.proto"+    snowball+    (Proxy :: Proxy GetSnowballUsage)++responseDescribeAddresses :: DescribeAddressesResponse -> TestTree+responseDescribeAddresses = res+    "DescribeAddressesResponse"+    "fixture/DescribeAddressesResponse.proto"+    snowball+    (Proxy :: Proxy DescribeAddresses)++responseCreateJob :: CreateJobResponse -> TestTree+responseCreateJob = res+    "CreateJobResponse"+    "fixture/CreateJobResponse.proto"+    snowball+    (Proxy :: Proxy CreateJob)++responseGetJobManifest :: GetJobManifestResponse -> TestTree+responseGetJobManifest = res+    "GetJobManifestResponse"+    "fixture/GetJobManifestResponse.proto"+    snowball+    (Proxy :: Proxy GetJobManifest)++responseListJobs :: ListJobsResponse -> TestTree+responseListJobs = res+    "ListJobsResponse"+    "fixture/ListJobsResponse.proto"+    snowball+    (Proxy :: Proxy ListJobs)++responseUpdateJob :: UpdateJobResponse -> TestTree+responseUpdateJob = res+    "UpdateJobResponse"+    "fixture/UpdateJobResponse.proto"+    snowball+    (Proxy :: Proxy UpdateJob)++responseGetJobUnlockCode :: GetJobUnlockCodeResponse -> TestTree+responseGetJobUnlockCode = res+    "GetJobUnlockCodeResponse"+    "fixture/GetJobUnlockCodeResponse.proto"+    snowball+    (Proxy :: Proxy GetJobUnlockCode)++responseDescribeJob :: DescribeJobResponse -> TestTree+responseDescribeJob = res+    "DescribeJobResponse"+    "fixture/DescribeJobResponse.proto"+    snowball+    (Proxy :: Proxy DescribeJob)++responseDescribeAddress :: DescribeAddressResponse -> TestTree+responseDescribeAddress = res+    "DescribeAddressResponse"+    "fixture/DescribeAddressResponse.proto"+    snowball+    (Proxy :: Proxy DescribeAddress)++responseCancelJob :: CancelJobResponse -> TestTree+responseCancelJob = res+    "CancelJobResponse"+    "fixture/CancelJobResponse.proto"+    snowball+    (Proxy :: Proxy CancelJob)
+ test/Test/AWS/Snowball.hs view
@@ -0,0 +1,23 @@+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Test.AWS.Snowball+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++module Test.AWS.Snowball where++import Test.AWS.Prelude++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/AWS/Snowball/Internal.hs view
@@ -0,0 +1,17 @@+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Test.AWS.Snowball.Internal+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++module Test.AWS.Snowball.Internal where++import Test.AWS.Prelude