packages feed

amazonka-storagegateway (empty) → 0.0.0

raw patch · 53 files changed

+8653/−0 lines, 53 filesdep +amazonka-coredep +basesetup-changed

Dependencies added: amazonka-core, base

Files

+ LICENSE view
@@ -0,0 +1,373 @@+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.++Exhibit B - "Incompatible With Secondary Licenses" Notice+---------------------------------------------------------++  This Source Code Form is "Incompatible With Secondary Licenses", as+  defined by the Mozilla Public License, v. 2.0.
+ README.md view
@@ -0,0 +1,26 @@+# Amazon Storage Gateway SDK++> _Warning:_ This is an experimental preview release which is still under heavy development and not intended for public consumption, _caveat emptor_!++* [description](#description)+* [Contribute](#contribute)+* [Licence](#licence)++## Description++AWS Storage Gateway is a service that connects an on-premises software appliance with cloud-based storage to provide seamless and secure integration between your on-premises IT environment and AWS's storage infrastructure.++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-storagegateway)+and [AWS API Reference](http://docs.aws.amazon.com/storagegateway/latest/APIReference/Welcome.html).+++## 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-storagegateway` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ amazonka-storagegateway.cabal view
@@ -0,0 +1,91 @@+name:                  amazonka-storagegateway+version:               0.0.0+synopsis:              Amazon Storage Gateway SDK.+homepage:              https://github.com/brendanhay/amazonka+license:               OtherLicense+license-file:          LICENSE+author:                Brendan Hay+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>+copyright:             Copyright (c) 2013-2014 Brendan Hay+category:              Network, AWS, Cloud+build-type:            Simple+extra-source-files:    README.md+cabal-version:         >= 1.10++description:+    AWS Storage Gateway is a service that connects an on-premises software+    appliance with cloud-based storage to provide seamless and secure+    integration between your on-premises IT environment and AWS's storage+    infrastructure.+    .+    /See:/ <http://docs.aws.amazon.com/storagegateway/latest/APIReference/Welcome.html AWS API Reference>+    .+    /Warning:/ This is an experimental preview release which is still under+    heavy development and not intended for public consumption, caveat emptor!++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.StorageGateway+        , Network.AWS.StorageGateway.ActivateGateway+        , Network.AWS.StorageGateway.AddCache+        , Network.AWS.StorageGateway.AddUploadBuffer+        , Network.AWS.StorageGateway.AddWorkingStorage+        , Network.AWS.StorageGateway.CancelArchival+        , Network.AWS.StorageGateway.CancelRetrieval+        , Network.AWS.StorageGateway.CreateCachediSCSIVolume+        , Network.AWS.StorageGateway.CreateSnapshot+        , Network.AWS.StorageGateway.CreateSnapshotFromVolumeRecoveryPoint+        , Network.AWS.StorageGateway.CreateStorediSCSIVolume+        , Network.AWS.StorageGateway.CreateTapes+        , Network.AWS.StorageGateway.DeleteBandwidthRateLimit+        , Network.AWS.StorageGateway.DeleteChapCredentials+        , Network.AWS.StorageGateway.DeleteGateway+        , Network.AWS.StorageGateway.DeleteSnapshotSchedule+        , Network.AWS.StorageGateway.DeleteTape+        , Network.AWS.StorageGateway.DeleteTapeArchive+        , Network.AWS.StorageGateway.DeleteVolume+        , Network.AWS.StorageGateway.DescribeBandwidthRateLimit+        , Network.AWS.StorageGateway.DescribeCache+        , Network.AWS.StorageGateway.DescribeCachediSCSIVolumes+        , Network.AWS.StorageGateway.DescribeChapCredentials+        , Network.AWS.StorageGateway.DescribeGatewayInformation+        , Network.AWS.StorageGateway.DescribeMaintenanceStartTime+        , Network.AWS.StorageGateway.DescribeSnapshotSchedule+        , Network.AWS.StorageGateway.DescribeStorediSCSIVolumes+        , Network.AWS.StorageGateway.DescribeTapeArchives+        , Network.AWS.StorageGateway.DescribeTapeRecoveryPoints+        , Network.AWS.StorageGateway.DescribeTapes+        , Network.AWS.StorageGateway.DescribeUploadBuffer+        , Network.AWS.StorageGateway.DescribeVTLDevices+        , Network.AWS.StorageGateway.DescribeWorkingStorage+        , Network.AWS.StorageGateway.DisableGateway+        , Network.AWS.StorageGateway.ListGateways+        , Network.AWS.StorageGateway.ListLocalDisks+        , Network.AWS.StorageGateway.ListVolumeRecoveryPoints+        , Network.AWS.StorageGateway.ListVolumes+        , Network.AWS.StorageGateway.RetrieveTapeArchive+        , Network.AWS.StorageGateway.RetrieveTapeRecoveryPoint+        , Network.AWS.StorageGateway.ShutdownGateway+        , Network.AWS.StorageGateway.StartGateway+        , Network.AWS.StorageGateway.Types+        , Network.AWS.StorageGateway.UpdateBandwidthRateLimit+        , Network.AWS.StorageGateway.UpdateChapCredentials+        , Network.AWS.StorageGateway.UpdateGatewayInformation+        , Network.AWS.StorageGateway.UpdateGatewaySoftwareNow+        , Network.AWS.StorageGateway.UpdateMaintenanceStartTime+        , Network.AWS.StorageGateway.UpdateSnapshotSchedule++    other-modules:++    build-depends:+          amazonka-core+        , base          >= 4.7 && < 5
+ gen/Network/AWS/StorageGateway.hs view
@@ -0,0 +1,113 @@+-- Module      : Network.AWS.StorageGateway+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | AWS Storage Gateway is a service that connects an on-premises software+-- appliance with cloud-based storage to provide seamless and secure+-- integration between your on-premises IT environment and AWS's storage+-- infrastructure.+module Network.AWS.StorageGateway+    ( module Network.AWS.StorageGateway.ActivateGateway+    , module Network.AWS.StorageGateway.AddCache+    , module Network.AWS.StorageGateway.AddUploadBuffer+    , module Network.AWS.StorageGateway.AddWorkingStorage+    , module Network.AWS.StorageGateway.CancelArchival+    , module Network.AWS.StorageGateway.CancelRetrieval+    , module Network.AWS.StorageGateway.CreateCachediSCSIVolume+    , module Network.AWS.StorageGateway.CreateSnapshot+    , module Network.AWS.StorageGateway.CreateSnapshotFromVolumeRecoveryPoint+    , module Network.AWS.StorageGateway.CreateStorediSCSIVolume+    , module Network.AWS.StorageGateway.CreateTapes+    , module Network.AWS.StorageGateway.DeleteBandwidthRateLimit+    , module Network.AWS.StorageGateway.DeleteChapCredentials+    , module Network.AWS.StorageGateway.DeleteGateway+    , module Network.AWS.StorageGateway.DeleteSnapshotSchedule+    , module Network.AWS.StorageGateway.DeleteTape+    , module Network.AWS.StorageGateway.DeleteTapeArchive+    , module Network.AWS.StorageGateway.DeleteVolume+    , module Network.AWS.StorageGateway.DescribeBandwidthRateLimit+    , module Network.AWS.StorageGateway.DescribeCache+    , module Network.AWS.StorageGateway.DescribeCachediSCSIVolumes+    , module Network.AWS.StorageGateway.DescribeChapCredentials+    , module Network.AWS.StorageGateway.DescribeGatewayInformation+    , module Network.AWS.StorageGateway.DescribeMaintenanceStartTime+    , module Network.AWS.StorageGateway.DescribeSnapshotSchedule+    , module Network.AWS.StorageGateway.DescribeStorediSCSIVolumes+    , module Network.AWS.StorageGateway.DescribeTapeArchives+    , module Network.AWS.StorageGateway.DescribeTapeRecoveryPoints+    , module Network.AWS.StorageGateway.DescribeTapes+    , module Network.AWS.StorageGateway.DescribeUploadBuffer+    , module Network.AWS.StorageGateway.DescribeVTLDevices+    , module Network.AWS.StorageGateway.DescribeWorkingStorage+    , module Network.AWS.StorageGateway.DisableGateway+    , module Network.AWS.StorageGateway.ListGateways+    , module Network.AWS.StorageGateway.ListLocalDisks+    , module Network.AWS.StorageGateway.ListVolumeRecoveryPoints+    , module Network.AWS.StorageGateway.ListVolumes+    , module Network.AWS.StorageGateway.RetrieveTapeArchive+    , module Network.AWS.StorageGateway.RetrieveTapeRecoveryPoint+    , module Network.AWS.StorageGateway.ShutdownGateway+    , module Network.AWS.StorageGateway.StartGateway+    , module Network.AWS.StorageGateway.Types+    , module Network.AWS.StorageGateway.UpdateBandwidthRateLimit+    , module Network.AWS.StorageGateway.UpdateChapCredentials+    , module Network.AWS.StorageGateway.UpdateGatewayInformation+    , module Network.AWS.StorageGateway.UpdateGatewaySoftwareNow+    , module Network.AWS.StorageGateway.UpdateMaintenanceStartTime+    , module Network.AWS.StorageGateway.UpdateSnapshotSchedule+    ) where++import Network.AWS.StorageGateway.ActivateGateway+import Network.AWS.StorageGateway.AddCache+import Network.AWS.StorageGateway.AddUploadBuffer+import Network.AWS.StorageGateway.AddWorkingStorage+import Network.AWS.StorageGateway.CancelArchival+import Network.AWS.StorageGateway.CancelRetrieval+import Network.AWS.StorageGateway.CreateCachediSCSIVolume+import Network.AWS.StorageGateway.CreateSnapshot+import Network.AWS.StorageGateway.CreateSnapshotFromVolumeRecoveryPoint+import Network.AWS.StorageGateway.CreateStorediSCSIVolume+import Network.AWS.StorageGateway.CreateTapes+import Network.AWS.StorageGateway.DeleteBandwidthRateLimit+import Network.AWS.StorageGateway.DeleteChapCredentials+import Network.AWS.StorageGateway.DeleteGateway+import Network.AWS.StorageGateway.DeleteSnapshotSchedule+import Network.AWS.StorageGateway.DeleteTape+import Network.AWS.StorageGateway.DeleteTapeArchive+import Network.AWS.StorageGateway.DeleteVolume+import Network.AWS.StorageGateway.DescribeBandwidthRateLimit+import Network.AWS.StorageGateway.DescribeCache+import Network.AWS.StorageGateway.DescribeCachediSCSIVolumes+import Network.AWS.StorageGateway.DescribeChapCredentials+import Network.AWS.StorageGateway.DescribeGatewayInformation+import Network.AWS.StorageGateway.DescribeMaintenanceStartTime+import Network.AWS.StorageGateway.DescribeSnapshotSchedule+import Network.AWS.StorageGateway.DescribeStorediSCSIVolumes+import Network.AWS.StorageGateway.DescribeTapeArchives+import Network.AWS.StorageGateway.DescribeTapeRecoveryPoints+import Network.AWS.StorageGateway.DescribeTapes+import Network.AWS.StorageGateway.DescribeUploadBuffer+import Network.AWS.StorageGateway.DescribeVTLDevices+import Network.AWS.StorageGateway.DescribeWorkingStorage+import Network.AWS.StorageGateway.DisableGateway+import Network.AWS.StorageGateway.ListGateways+import Network.AWS.StorageGateway.ListLocalDisks+import Network.AWS.StorageGateway.ListVolumeRecoveryPoints+import Network.AWS.StorageGateway.ListVolumes+import Network.AWS.StorageGateway.RetrieveTapeArchive+import Network.AWS.StorageGateway.RetrieveTapeRecoveryPoint+import Network.AWS.StorageGateway.ShutdownGateway+import Network.AWS.StorageGateway.StartGateway+import Network.AWS.StorageGateway.Types+import Network.AWS.StorageGateway.UpdateBandwidthRateLimit+import Network.AWS.StorageGateway.UpdateChapCredentials+import Network.AWS.StorageGateway.UpdateGatewayInformation+import Network.AWS.StorageGateway.UpdateGatewaySoftwareNow+import Network.AWS.StorageGateway.UpdateMaintenanceStartTime+import Network.AWS.StorageGateway.UpdateSnapshotSchedule
+ gen/Network/AWS/StorageGateway/ActivateGateway.hs view
@@ -0,0 +1,197 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.ActivateGateway+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation activates the gateway you previously deployed on your host.+-- For more information, see Activate the AWS Storage Gateway. In the+-- activation process, you specify information such as the region you want to+-- use for storing snapshots, the time zone for scheduled snapshots the+-- gateway snapshot schedule window, an activation key, and a name for your+-- gateway. The activation process also associates your gateway with your+-- account; for more information, see UpdateGatewayInformation.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_ActivateGateway.html>+module Network.AWS.StorageGateway.ActivateGateway+    (+    -- * Request+      ActivateGateway+    -- ** Request constructor+    , activateGateway+    -- ** Request lenses+    , agActivationKey+    , agGatewayName+    , agGatewayRegion+    , agGatewayTimezone+    , agGatewayType+    , agMediumChangerType+    , agTapeDriveType++    -- * Response+    , ActivateGatewayResponse+    -- ** Response constructor+    , activateGatewayResponse+    -- ** Response lenses+    , agrGatewayARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data ActivateGateway = ActivateGateway+    { _agActivationKey     :: Text+    , _agGatewayName       :: Text+    , _agGatewayRegion     :: Text+    , _agGatewayTimezone   :: Text+    , _agGatewayType       :: Maybe Text+    , _agMediumChangerType :: Maybe Text+    , _agTapeDriveType     :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'ActivateGateway' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'agActivationKey' @::@ 'Text'+--+-- * 'agGatewayName' @::@ 'Text'+--+-- * 'agGatewayRegion' @::@ 'Text'+--+-- * 'agGatewayTimezone' @::@ 'Text'+--+-- * 'agGatewayType' @::@ 'Maybe' 'Text'+--+-- * 'agMediumChangerType' @::@ 'Maybe' 'Text'+--+-- * 'agTapeDriveType' @::@ 'Maybe' 'Text'+--+activateGateway :: Text -- ^ 'agActivationKey'+                -> Text -- ^ 'agGatewayName'+                -> Text -- ^ 'agGatewayTimezone'+                -> Text -- ^ 'agGatewayRegion'+                -> ActivateGateway+activateGateway p1 p2 p3 p4 = ActivateGateway+    { _agActivationKey     = p1+    , _agGatewayName       = p2+    , _agGatewayTimezone   = p3+    , _agGatewayRegion     = p4+    , _agGatewayType       = Nothing+    , _agTapeDriveType     = Nothing+    , _agMediumChangerType = Nothing+    }++-- | Your gateway activation key. You can obtain the activation key by sending+-- an HTTP GET request with redirects enabled to the gateway IP address+-- (port 80). The redirect URL returned in the response provides you the+-- activation key for your gateway in the query string parameter+-- activationKey. It may also include other activation-related parameters,+-- however, these are merely defaults -- the arguments you pass to the+-- ActivateGateway API call determine the actual configuration of your+-- gateway.+agActivationKey :: Lens' ActivateGateway Text+agActivationKey = lens _agActivationKey (\s a -> s { _agActivationKey = a })++agGatewayName :: Lens' ActivateGateway Text+agGatewayName = lens _agGatewayName (\s a -> s { _agGatewayName = a })++-- | One of the values that indicates the region where you want to store the+-- snapshot backups. The gateway region specified must be the same region as+-- the region in your Host header in the request. For more information about+-- available regions and endpoints for AWS Storage Gateway, see Regions and+-- Endpoints in the Amazon Web Services Glossary. Valid Values: "us-east-1",+-- "us-west-1", "us-west-2", "eu-west-1", "eu-central-1", "ap-northeast-1",+-- "ap-southeast-1", "ap-southeast-2", "sa-east-1".+agGatewayRegion :: Lens' ActivateGateway Text+agGatewayRegion = lens _agGatewayRegion (\s a -> s { _agGatewayRegion = a })++-- | One of the values that indicates the time zone you want to set for the+-- gateway. The time zone is used, for example, for scheduling snapshots and+-- your gateway's maintenance schedule.+agGatewayTimezone :: Lens' ActivateGateway Text+agGatewayTimezone =+    lens _agGatewayTimezone (\s a -> s { _agGatewayTimezone = a })++-- | One of the values that defines the type of gateway to activate. The type+-- specified is critical to all later functions of the gateway and cannot be+-- changed after activation. The default value is STORED.+agGatewayType :: Lens' ActivateGateway (Maybe Text)+agGatewayType = lens _agGatewayType (\s a -> s { _agGatewayType = a })++-- | The value that indicates the type of medium changer to use for+-- gateway-VTL. This field is optional. Valid Values: "STK-L700".+agMediumChangerType :: Lens' ActivateGateway (Maybe Text)+agMediumChangerType =+    lens _agMediumChangerType (\s a -> s { _agMediumChangerType = a })++-- | The value that indicates the type of tape drive to use for gateway-VTL.+-- This field is optional. Valid Values: "IBM-ULT3580-TD5".+agTapeDriveType :: Lens' ActivateGateway (Maybe Text)+agTapeDriveType = lens _agTapeDriveType (\s a -> s { _agTapeDriveType = a })++newtype ActivateGatewayResponse = ActivateGatewayResponse+    { _agrGatewayARN :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'ActivateGatewayResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'agrGatewayARN' @::@ 'Maybe' 'Text'+--+activateGatewayResponse :: ActivateGatewayResponse+activateGatewayResponse = ActivateGatewayResponse+    { _agrGatewayARN = Nothing+    }++agrGatewayARN :: Lens' ActivateGatewayResponse (Maybe Text)+agrGatewayARN = lens _agrGatewayARN (\s a -> s { _agrGatewayARN = a })++instance ToPath ActivateGateway where+    toPath = const "/"++instance ToQuery ActivateGateway where+    toQuery = const mempty++instance ToHeaders ActivateGateway++instance ToJSON ActivateGateway where+    toJSON ActivateGateway{..} = object+        [ "ActivationKey"     .= _agActivationKey+        , "GatewayName"       .= _agGatewayName+        , "GatewayTimezone"   .= _agGatewayTimezone+        , "GatewayRegion"     .= _agGatewayRegion+        , "GatewayType"       .= _agGatewayType+        , "TapeDriveType"     .= _agTapeDriveType+        , "MediumChangerType" .= _agMediumChangerType+        ]++instance AWSRequest ActivateGateway where+    type Sv ActivateGateway = StorageGateway+    type Rs ActivateGateway = ActivateGatewayResponse++    request  = post "ActivateGateway"+    response = jsonResponse++instance FromJSON ActivateGatewayResponse where+    parseJSON = withObject "ActivateGatewayResponse" $ \o -> ActivateGatewayResponse+        <$> o .:? "GatewayARN"
+ gen/Network/AWS/StorageGateway/AddCache.hs view
@@ -0,0 +1,121 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.AddCache+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation configures one or more gateway local disks as cache for a+-- cached-volume gateway. This operation is supported only for the+-- gateway-cached volume architecture (see Storage Gateway Concepts). In the+-- request, you specify the gateway Amazon Resource Name (ARN) to which you+-- want to add cache, and one or more disk IDs that you want to configure as+-- cache.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_AddCache.html>+module Network.AWS.StorageGateway.AddCache+    (+    -- * Request+      AddCache+    -- ** Request constructor+    , addCache+    -- ** Request lenses+    , acDiskIds+    , acGatewayARN++    -- * Response+    , AddCacheResponse+    -- ** Response constructor+    , addCacheResponse+    -- ** Response lenses+    , acrGatewayARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data AddCache = AddCache+    { _acDiskIds    :: List "DiskIds" Text+    , _acGatewayARN :: Text+    } deriving (Eq, Ord, Show)++-- | 'AddCache' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'acDiskIds' @::@ ['Text']+--+-- * 'acGatewayARN' @::@ 'Text'+--+addCache :: Text -- ^ 'acGatewayARN'+         -> AddCache+addCache p1 = AddCache+    { _acGatewayARN = p1+    , _acDiskIds    = mempty+    }++acDiskIds :: Lens' AddCache [Text]+acDiskIds = lens _acDiskIds (\s a -> s { _acDiskIds = a }) . _List++acGatewayARN :: Lens' AddCache Text+acGatewayARN = lens _acGatewayARN (\s a -> s { _acGatewayARN = a })++newtype AddCacheResponse = AddCacheResponse+    { _acrGatewayARN :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'AddCacheResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'acrGatewayARN' @::@ 'Maybe' 'Text'+--+addCacheResponse :: AddCacheResponse+addCacheResponse = AddCacheResponse+    { _acrGatewayARN = Nothing+    }++acrGatewayARN :: Lens' AddCacheResponse (Maybe Text)+acrGatewayARN = lens _acrGatewayARN (\s a -> s { _acrGatewayARN = a })++instance ToPath AddCache where+    toPath = const "/"++instance ToQuery AddCache where+    toQuery = const mempty++instance ToHeaders AddCache++instance ToJSON AddCache where+    toJSON AddCache{..} = object+        [ "GatewayARN" .= _acGatewayARN+        , "DiskIds"    .= _acDiskIds+        ]++instance AWSRequest AddCache where+    type Sv AddCache = StorageGateway+    type Rs AddCache = AddCacheResponse++    request  = post "AddCache"+    response = jsonResponse++instance FromJSON AddCacheResponse where+    parseJSON = withObject "AddCacheResponse" $ \o -> AddCacheResponse+        <$> o .:? "GatewayARN"
+ gen/Network/AWS/StorageGateway/AddUploadBuffer.hs view
@@ -0,0 +1,121 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.AddUploadBuffer+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation configures one or more gateway local disks as upload buffer+-- for a specified gateway. This operation is supported for both the+-- gateway-stored and gateway-cached volume architectures. In the request, you+-- specify the gateway Amazon Resource Name (ARN) to which you want to add+-- upload buffer, and one or more disk IDs that you want to configure as+-- upload buffer.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_AddUploadBuffer.html>+module Network.AWS.StorageGateway.AddUploadBuffer+    (+    -- * Request+      AddUploadBuffer+    -- ** Request constructor+    , addUploadBuffer+    -- ** Request lenses+    , aubDiskIds+    , aubGatewayARN++    -- * Response+    , AddUploadBufferResponse+    -- ** Response constructor+    , addUploadBufferResponse+    -- ** Response lenses+    , aubrGatewayARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data AddUploadBuffer = AddUploadBuffer+    { _aubDiskIds    :: List "DiskIds" Text+    , _aubGatewayARN :: Text+    } deriving (Eq, Ord, Show)++-- | 'AddUploadBuffer' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'aubDiskIds' @::@ ['Text']+--+-- * 'aubGatewayARN' @::@ 'Text'+--+addUploadBuffer :: Text -- ^ 'aubGatewayARN'+                -> AddUploadBuffer+addUploadBuffer p1 = AddUploadBuffer+    { _aubGatewayARN = p1+    , _aubDiskIds    = mempty+    }++aubDiskIds :: Lens' AddUploadBuffer [Text]+aubDiskIds = lens _aubDiskIds (\s a -> s { _aubDiskIds = a }) . _List++aubGatewayARN :: Lens' AddUploadBuffer Text+aubGatewayARN = lens _aubGatewayARN (\s a -> s { _aubGatewayARN = a })++newtype AddUploadBufferResponse = AddUploadBufferResponse+    { _aubrGatewayARN :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'AddUploadBufferResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'aubrGatewayARN' @::@ 'Maybe' 'Text'+--+addUploadBufferResponse :: AddUploadBufferResponse+addUploadBufferResponse = AddUploadBufferResponse+    { _aubrGatewayARN = Nothing+    }++aubrGatewayARN :: Lens' AddUploadBufferResponse (Maybe Text)+aubrGatewayARN = lens _aubrGatewayARN (\s a -> s { _aubrGatewayARN = a })++instance ToPath AddUploadBuffer where+    toPath = const "/"++instance ToQuery AddUploadBuffer where+    toQuery = const mempty++instance ToHeaders AddUploadBuffer++instance ToJSON AddUploadBuffer where+    toJSON AddUploadBuffer{..} = object+        [ "GatewayARN" .= _aubGatewayARN+        , "DiskIds"    .= _aubDiskIds+        ]++instance AWSRequest AddUploadBuffer where+    type Sv AddUploadBuffer = StorageGateway+    type Rs AddUploadBuffer = AddUploadBufferResponse++    request  = post "AddUploadBuffer"+    response = jsonResponse++instance FromJSON AddUploadBufferResponse where+    parseJSON = withObject "AddUploadBufferResponse" $ \o -> AddUploadBufferResponse+        <$> o .:? "GatewayARN"
+ gen/Network/AWS/StorageGateway/AddWorkingStorage.hs view
@@ -0,0 +1,125 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.AddWorkingStorage+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation configures one or more gateway local disks as working+-- storage for a gateway. This operation is supported only for the+-- gateway-stored volume architecture. This operation is deprecated method in+-- cached-volumes API version (20120630). Use AddUploadBuffer instead. In the+-- request, you specify the gateway Amazon Resource Name (ARN) to which you+-- want to add working storage, and one or more disk IDs that you want to+-- configure as working storage.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_AddWorkingStorage.html>+module Network.AWS.StorageGateway.AddWorkingStorage+    (+    -- * Request+      AddWorkingStorage+    -- ** Request constructor+    , addWorkingStorage+    -- ** Request lenses+    , awsDiskIds+    , awsGatewayARN++    -- * Response+    , AddWorkingStorageResponse+    -- ** Response constructor+    , addWorkingStorageResponse+    -- ** Response lenses+    , awsrGatewayARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data AddWorkingStorage = AddWorkingStorage+    { _awsDiskIds    :: List "DiskIds" Text+    , _awsGatewayARN :: Text+    } deriving (Eq, Ord, Show)++-- | 'AddWorkingStorage' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'awsDiskIds' @::@ ['Text']+--+-- * 'awsGatewayARN' @::@ 'Text'+--+addWorkingStorage :: Text -- ^ 'awsGatewayARN'+                  -> AddWorkingStorage+addWorkingStorage p1 = AddWorkingStorage+    { _awsGatewayARN = p1+    , _awsDiskIds    = mempty+    }++-- | An array of strings that identify disks that are to be configured as+-- working storage. Each string have a minimum length of 1 and maximum+-- length of 300. You can get the disk IDs from the ListLocalDisks API.+awsDiskIds :: Lens' AddWorkingStorage [Text]+awsDiskIds = lens _awsDiskIds (\s a -> s { _awsDiskIds = a }) . _List++awsGatewayARN :: Lens' AddWorkingStorage Text+awsGatewayARN = lens _awsGatewayARN (\s a -> s { _awsGatewayARN = a })++newtype AddWorkingStorageResponse = AddWorkingStorageResponse+    { _awsrGatewayARN :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'AddWorkingStorageResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'awsrGatewayARN' @::@ 'Maybe' 'Text'+--+addWorkingStorageResponse :: AddWorkingStorageResponse+addWorkingStorageResponse = AddWorkingStorageResponse+    { _awsrGatewayARN = Nothing+    }++awsrGatewayARN :: Lens' AddWorkingStorageResponse (Maybe Text)+awsrGatewayARN = lens _awsrGatewayARN (\s a -> s { _awsrGatewayARN = a })++instance ToPath AddWorkingStorage where+    toPath = const "/"++instance ToQuery AddWorkingStorage where+    toQuery = const mempty++instance ToHeaders AddWorkingStorage++instance ToJSON AddWorkingStorage where+    toJSON AddWorkingStorage{..} = object+        [ "GatewayARN" .= _awsGatewayARN+        , "DiskIds"    .= _awsDiskIds+        ]++instance AWSRequest AddWorkingStorage where+    type Sv AddWorkingStorage = StorageGateway+    type Rs AddWorkingStorage = AddWorkingStorageResponse++    request  = post "AddWorkingStorage"+    response = jsonResponse++instance FromJSON AddWorkingStorageResponse where+    parseJSON = withObject "AddWorkingStorageResponse" $ \o -> AddWorkingStorageResponse+        <$> o .:? "GatewayARN"
+ gen/Network/AWS/StorageGateway/CancelArchival.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.CancelArchival+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | Cancels archiving of a virtual tape to the virtual tape shelf (VTS) after+-- the archiving process is initiated.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CancelArchival.html>+module Network.AWS.StorageGateway.CancelArchival+    (+    -- * Request+      CancelArchival+    -- ** Request constructor+    , cancelArchival+    -- ** Request lenses+    , caGatewayARN+    , caTapeARN++    -- * Response+    , CancelArchivalResponse+    -- ** Response constructor+    , cancelArchivalResponse+    -- ** Response lenses+    , carTapeARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data CancelArchival = CancelArchival+    { _caGatewayARN :: Text+    , _caTapeARN    :: Text+    } deriving (Eq, Ord, Show)++-- | 'CancelArchival' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'caGatewayARN' @::@ 'Text'+--+-- * 'caTapeARN' @::@ 'Text'+--+cancelArchival :: Text -- ^ 'caGatewayARN'+               -> Text -- ^ 'caTapeARN'+               -> CancelArchival+cancelArchival p1 p2 = CancelArchival+    { _caGatewayARN = p1+    , _caTapeARN    = p2+    }++caGatewayARN :: Lens' CancelArchival Text+caGatewayARN = lens _caGatewayARN (\s a -> s { _caGatewayARN = a })++-- | The Amazon Resource Name (ARN) of the virtual tape you want to cancel+-- archiving for.+caTapeARN :: Lens' CancelArchival Text+caTapeARN = lens _caTapeARN (\s a -> s { _caTapeARN = a })++newtype CancelArchivalResponse = CancelArchivalResponse+    { _carTapeARN :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'CancelArchivalResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'carTapeARN' @::@ 'Maybe' 'Text'+--+cancelArchivalResponse :: CancelArchivalResponse+cancelArchivalResponse = CancelArchivalResponse+    { _carTapeARN = Nothing+    }++-- | The Amazon Resource Name (ARN) of the virtual tape for which archiving+-- was canceled.+carTapeARN :: Lens' CancelArchivalResponse (Maybe Text)+carTapeARN = lens _carTapeARN (\s a -> s { _carTapeARN = a })++instance ToPath CancelArchival where+    toPath = const "/"++instance ToQuery CancelArchival where+    toQuery = const mempty++instance ToHeaders CancelArchival++instance ToJSON CancelArchival where+    toJSON CancelArchival{..} = object+        [ "GatewayARN" .= _caGatewayARN+        , "TapeARN"    .= _caTapeARN+        ]++instance AWSRequest CancelArchival where+    type Sv CancelArchival = StorageGateway+    type Rs CancelArchival = CancelArchivalResponse++    request  = post "CancelArchival"+    response = jsonResponse++instance FromJSON CancelArchivalResponse where+    parseJSON = withObject "CancelArchivalResponse" $ \o -> CancelArchivalResponse+        <$> o .:? "TapeARN"
+ gen/Network/AWS/StorageGateway/CancelRetrieval.hs view
@@ -0,0 +1,123 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.CancelRetrieval+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | Cancels retrieval of a virtual tape from the virtual tape shelf (VTS) to a+-- gateway after the retrieval process is initiated. The virtual tape is+-- returned to the VTS.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CancelRetrieval.html>+module Network.AWS.StorageGateway.CancelRetrieval+    (+    -- * Request+      CancelRetrieval+    -- ** Request constructor+    , cancelRetrieval+    -- ** Request lenses+    , crGatewayARN+    , crTapeARN++    -- * Response+    , CancelRetrievalResponse+    -- ** Response constructor+    , cancelRetrievalResponse+    -- ** Response lenses+    , crrTapeARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data CancelRetrieval = CancelRetrieval+    { _crGatewayARN :: Text+    , _crTapeARN    :: Text+    } deriving (Eq, Ord, Show)++-- | 'CancelRetrieval' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'crGatewayARN' @::@ 'Text'+--+-- * 'crTapeARN' @::@ 'Text'+--+cancelRetrieval :: Text -- ^ 'crGatewayARN'+                -> Text -- ^ 'crTapeARN'+                -> CancelRetrieval+cancelRetrieval p1 p2 = CancelRetrieval+    { _crGatewayARN = p1+    , _crTapeARN    = p2+    }++crGatewayARN :: Lens' CancelRetrieval Text+crGatewayARN = lens _crGatewayARN (\s a -> s { _crGatewayARN = a })++-- | The Amazon Resource Name (ARN) of the virtual tape you want to cancel+-- retrieval for.+crTapeARN :: Lens' CancelRetrieval Text+crTapeARN = lens _crTapeARN (\s a -> s { _crTapeARN = a })++newtype CancelRetrievalResponse = CancelRetrievalResponse+    { _crrTapeARN :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'CancelRetrievalResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'crrTapeARN' @::@ 'Maybe' 'Text'+--+cancelRetrievalResponse :: CancelRetrievalResponse+cancelRetrievalResponse = CancelRetrievalResponse+    { _crrTapeARN = Nothing+    }++-- | The Amazon Resource Name (ARN) of the virtual tape for which retrieval+-- was canceled.+crrTapeARN :: Lens' CancelRetrievalResponse (Maybe Text)+crrTapeARN = lens _crrTapeARN (\s a -> s { _crrTapeARN = a })++instance ToPath CancelRetrieval where+    toPath = const "/"++instance ToQuery CancelRetrieval where+    toQuery = const mempty++instance ToHeaders CancelRetrieval++instance ToJSON CancelRetrieval where+    toJSON CancelRetrieval{..} = object+        [ "GatewayARN" .= _crGatewayARN+        , "TapeARN"    .= _crTapeARN+        ]++instance AWSRequest CancelRetrieval where+    type Sv CancelRetrieval = StorageGateway+    type Rs CancelRetrieval = CancelRetrievalResponse++    request  = post "CancelRetrieval"+    response = jsonResponse++instance FromJSON CancelRetrievalResponse where+    parseJSON = withObject "CancelRetrievalResponse" $ \o -> CancelRetrievalResponse+        <$> o .:? "TapeARN"
+ gen/Network/AWS/StorageGateway/CreateCachediSCSIVolume.hs view
@@ -0,0 +1,182 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.CreateCachediSCSIVolume+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation creates a cached volume on a specified cached gateway. This+-- operation is supported only for the gateway-cached volume architecture. In+-- the request, you must specify the gateway, size of the volume in bytes, the+-- iSCSI target name, an IP address on which to expose the target, and a+-- unique client token. In response, AWS Storage Gateway creates the volume+-- and returns information about it such as the volume Amazon Resource Name+-- (ARN), its size, and the iSCSI target ARN that initiators can use to+-- connect to the volume target.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateCachediSCSIVolume.html>+module Network.AWS.StorageGateway.CreateCachediSCSIVolume+    (+    -- * Request+      CreateCachediSCSIVolume+    -- ** Request constructor+    , createCachediSCSIVolume+    -- ** Request lenses+    , ccscsivClientToken+    , ccscsivGatewayARN+    , ccscsivNetworkInterfaceId+    , ccscsivSnapshotId+    , ccscsivTargetName+    , ccscsivVolumeSizeInBytes++    -- * Response+    , CreateCachediSCSIVolumeResponse+    -- ** Response constructor+    , createCachediSCSIVolumeResponse+    -- ** Response lenses+    , ccscsivrTargetARN+    , ccscsivrVolumeARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data CreateCachediSCSIVolume = CreateCachediSCSIVolume+    { _ccscsivClientToken        :: Text+    , _ccscsivGatewayARN         :: Text+    , _ccscsivNetworkInterfaceId :: Text+    , _ccscsivSnapshotId         :: Maybe Text+    , _ccscsivTargetName         :: Text+    , _ccscsivVolumeSizeInBytes  :: Integer+    } deriving (Eq, Ord, Show)++-- | 'CreateCachediSCSIVolume' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ccscsivClientToken' @::@ 'Text'+--+-- * 'ccscsivGatewayARN' @::@ 'Text'+--+-- * 'ccscsivNetworkInterfaceId' @::@ 'Text'+--+-- * 'ccscsivSnapshotId' @::@ 'Maybe' 'Text'+--+-- * 'ccscsivTargetName' @::@ 'Text'+--+-- * 'ccscsivVolumeSizeInBytes' @::@ 'Integer'+--+createCachediSCSIVolume :: Text -- ^ 'ccscsivGatewayARN'+                        -> Integer -- ^ 'ccscsivVolumeSizeInBytes'+                        -> Text -- ^ 'ccscsivTargetName'+                        -> Text -- ^ 'ccscsivNetworkInterfaceId'+                        -> Text -- ^ 'ccscsivClientToken'+                        -> CreateCachediSCSIVolume+createCachediSCSIVolume p1 p2 p3 p4 p5 = CreateCachediSCSIVolume+    { _ccscsivGatewayARN         = p1+    , _ccscsivVolumeSizeInBytes  = p2+    , _ccscsivTargetName         = p3+    , _ccscsivNetworkInterfaceId = p4+    , _ccscsivClientToken        = p5+    , _ccscsivSnapshotId         = Nothing+    }++ccscsivClientToken :: Lens' CreateCachediSCSIVolume Text+ccscsivClientToken =+    lens _ccscsivClientToken (\s a -> s { _ccscsivClientToken = a })++ccscsivGatewayARN :: Lens' CreateCachediSCSIVolume Text+ccscsivGatewayARN =+    lens _ccscsivGatewayARN (\s a -> s { _ccscsivGatewayARN = a })++ccscsivNetworkInterfaceId :: Lens' CreateCachediSCSIVolume Text+ccscsivNetworkInterfaceId =+    lens _ccscsivNetworkInterfaceId+        (\s a -> s { _ccscsivNetworkInterfaceId = a })++ccscsivSnapshotId :: Lens' CreateCachediSCSIVolume (Maybe Text)+ccscsivSnapshotId =+    lens _ccscsivSnapshotId (\s a -> s { _ccscsivSnapshotId = a })++ccscsivTargetName :: Lens' CreateCachediSCSIVolume Text+ccscsivTargetName =+    lens _ccscsivTargetName (\s a -> s { _ccscsivTargetName = a })++ccscsivVolumeSizeInBytes :: Lens' CreateCachediSCSIVolume Integer+ccscsivVolumeSizeInBytes =+    lens _ccscsivVolumeSizeInBytes+        (\s a -> s { _ccscsivVolumeSizeInBytes = a })++data CreateCachediSCSIVolumeResponse = CreateCachediSCSIVolumeResponse+    { _ccscsivrTargetARN :: Maybe Text+    , _ccscsivrVolumeARN :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'CreateCachediSCSIVolumeResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ccscsivrTargetARN' @::@ 'Maybe' 'Text'+--+-- * 'ccscsivrVolumeARN' @::@ 'Maybe' 'Text'+--+createCachediSCSIVolumeResponse :: CreateCachediSCSIVolumeResponse+createCachediSCSIVolumeResponse = CreateCachediSCSIVolumeResponse+    { _ccscsivrVolumeARN = Nothing+    , _ccscsivrTargetARN = Nothing+    }++ccscsivrTargetARN :: Lens' CreateCachediSCSIVolumeResponse (Maybe Text)+ccscsivrTargetARN =+    lens _ccscsivrTargetARN (\s a -> s { _ccscsivrTargetARN = a })++ccscsivrVolumeARN :: Lens' CreateCachediSCSIVolumeResponse (Maybe Text)+ccscsivrVolumeARN =+    lens _ccscsivrVolumeARN (\s a -> s { _ccscsivrVolumeARN = a })++instance ToPath CreateCachediSCSIVolume where+    toPath = const "/"++instance ToQuery CreateCachediSCSIVolume where+    toQuery = const mempty++instance ToHeaders CreateCachediSCSIVolume++instance ToJSON CreateCachediSCSIVolume where+    toJSON CreateCachediSCSIVolume{..} = object+        [ "GatewayARN"         .= _ccscsivGatewayARN+        , "VolumeSizeInBytes"  .= _ccscsivVolumeSizeInBytes+        , "SnapshotId"         .= _ccscsivSnapshotId+        , "TargetName"         .= _ccscsivTargetName+        , "NetworkInterfaceId" .= _ccscsivNetworkInterfaceId+        , "ClientToken"        .= _ccscsivClientToken+        ]++instance AWSRequest CreateCachediSCSIVolume where+    type Sv CreateCachediSCSIVolume = StorageGateway+    type Rs CreateCachediSCSIVolume = CreateCachediSCSIVolumeResponse++    request  = post "CreateCachediSCSIVolume"+    response = jsonResponse++instance FromJSON CreateCachediSCSIVolumeResponse where+    parseJSON = withObject "CreateCachediSCSIVolumeResponse" $ \o -> CreateCachediSCSIVolumeResponse+        <$> o .:? "TargetARN"+        <*> o .:? "VolumeARN"
+ gen/Network/AWS/StorageGateway/CreateSnapshot.hs view
@@ -0,0 +1,151 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.CreateSnapshot+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation initiates a snapshot of a volume. AWS Storage Gateway+-- provides the ability to back up point-in-time snapshots of your data to+-- Amazon Simple Storage (S3) for durable off-site recovery, as well as import+-- the data to an Amazon Elastic Block Store (EBS) volume in Amazon Elastic+-- Compute Cloud (EC2). You can take snapshots of your gateway volume on a+-- scheduled or ad-hoc basis. This API enables you to take ad-hoc snapshot.+-- For more information, see Working With Snapshots in the AWS Storage Gateway+-- Console. In the CreateSnapshot request you identify the volume by providing+-- its Amazon Resource Name (ARN). You must also provide description for the+-- snapshot. When AWS Storage Gateway takes the snapshot of specified volume,+-- the snapshot and description appears in the AWS Storage Gateway Console. In+-- response, AWS Storage Gateway returns you a snapshot ID. You can use this+-- snapshot ID to check the snapshot progress or later use it when you want to+-- create a volume from a snapshot.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateSnapshot.html>+module Network.AWS.StorageGateway.CreateSnapshot+    (+    -- * Request+      CreateSnapshot+    -- ** Request constructor+    , createSnapshot+    -- ** Request lenses+    , csSnapshotDescription+    , csVolumeARN++    -- * Response+    , CreateSnapshotResponse+    -- ** Response constructor+    , createSnapshotResponse+    -- ** Response lenses+    , csrSnapshotId+    , csrVolumeARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data CreateSnapshot = CreateSnapshot+    { _csSnapshotDescription :: Text+    , _csVolumeARN           :: Text+    } deriving (Eq, Ord, Show)++-- | 'CreateSnapshot' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'csSnapshotDescription' @::@ 'Text'+--+-- * 'csVolumeARN' @::@ 'Text'+--+createSnapshot :: Text -- ^ 'csVolumeARN'+               -> Text -- ^ 'csSnapshotDescription'+               -> CreateSnapshot+createSnapshot p1 p2 = CreateSnapshot+    { _csVolumeARN           = p1+    , _csSnapshotDescription = p2+    }++-- | Textual description of the snapshot that appears in the Amazon EC2+-- console, Elastic Block Store snapshots panel in the Description field,+-- and in the AWS Storage Gateway snapshot Details pane, Description field.+csSnapshotDescription :: Lens' CreateSnapshot Text+csSnapshotDescription =+    lens _csSnapshotDescription (\s a -> s { _csSnapshotDescription = a })++-- | The Amazon Resource Name (ARN) of the volume. Use the ListVolumes+-- operation to return a list of gateway volumes.+csVolumeARN :: Lens' CreateSnapshot Text+csVolumeARN = lens _csVolumeARN (\s a -> s { _csVolumeARN = a })++data CreateSnapshotResponse = CreateSnapshotResponse+    { _csrSnapshotId :: Maybe Text+    , _csrVolumeARN  :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'CreateSnapshotResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'csrSnapshotId' @::@ 'Maybe' 'Text'+--+-- * 'csrVolumeARN' @::@ 'Maybe' 'Text'+--+createSnapshotResponse :: CreateSnapshotResponse+createSnapshotResponse = CreateSnapshotResponse+    { _csrVolumeARN  = Nothing+    , _csrSnapshotId = Nothing+    }++-- | The snapshot ID that is used to refer to the snapshot in future+-- operations such as describing snapshots (Amazon Elastic Compute Cloud API+-- DescribeSnapshots) or creating a volume from a snapshot+-- (CreateStorediSCSIVolume).+csrSnapshotId :: Lens' CreateSnapshotResponse (Maybe Text)+csrSnapshotId = lens _csrSnapshotId (\s a -> s { _csrSnapshotId = a })++-- | The Amazon Resource Name (ARN) of the volume of which the snapshot was+-- taken.+csrVolumeARN :: Lens' CreateSnapshotResponse (Maybe Text)+csrVolumeARN = lens _csrVolumeARN (\s a -> s { _csrVolumeARN = a })++instance ToPath CreateSnapshot where+    toPath = const "/"++instance ToQuery CreateSnapshot where+    toQuery = const mempty++instance ToHeaders CreateSnapshot++instance ToJSON CreateSnapshot where+    toJSON CreateSnapshot{..} = object+        [ "VolumeARN"           .= _csVolumeARN+        , "SnapshotDescription" .= _csSnapshotDescription+        ]++instance AWSRequest CreateSnapshot where+    type Sv CreateSnapshot = StorageGateway+    type Rs CreateSnapshot = CreateSnapshotResponse++    request  = post "CreateSnapshot"+    response = jsonResponse++instance FromJSON CreateSnapshotResponse where+    parseJSON = withObject "CreateSnapshotResponse" $ \o -> CreateSnapshotResponse+        <$> o .:? "SnapshotId"+        <*> o .:? "VolumeARN"
+ gen/Network/AWS/StorageGateway/CreateSnapshotFromVolumeRecoveryPoint.hs view
@@ -0,0 +1,152 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.CreateSnapshotFromVolumeRecoveryPoint+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation initiates a snapshot of a gateway from a volume recovery+-- point. This operation is supported only for the gateway-cached volume+-- architecture (see ). A volume recovery point is a point in time at which+-- all data of the volume is consistent and from which you can create a+-- snapshot. To get a list of volume recovery point for gateway-cached+-- volumes, use ListVolumeRecoveryPoints. In the+-- CreateSnapshotFromVolumeRecoveryPoint request, you identify the volume by+-- providing its Amazon Resource Name (ARN). You must also provide a+-- description for the snapshot. When AWS Storage Gateway takes a snapshot of+-- the specified volume, the snapshot and its description appear in the AWS+-- Storage Gateway console. In response, AWS Storage Gateway returns you a+-- snapshot ID. You can use this snapshot ID to check the snapshot progress or+-- later use it when you want to create a volume from a snapshot.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateSnapshotFromVolumeRecoveryPoint.html>+module Network.AWS.StorageGateway.CreateSnapshotFromVolumeRecoveryPoint+    (+    -- * Request+      CreateSnapshotFromVolumeRecoveryPoint+    -- ** Request constructor+    , createSnapshotFromVolumeRecoveryPoint+    -- ** Request lenses+    , csfvrpSnapshotDescription+    , csfvrpVolumeARN++    -- * Response+    , CreateSnapshotFromVolumeRecoveryPointResponse+    -- ** Response constructor+    , createSnapshotFromVolumeRecoveryPointResponse+    -- ** Response lenses+    , csfvrprSnapshotId+    , csfvrprVolumeARN+    , csfvrprVolumeRecoveryPointTime+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data CreateSnapshotFromVolumeRecoveryPoint = CreateSnapshotFromVolumeRecoveryPoint+    { _csfvrpSnapshotDescription :: Text+    , _csfvrpVolumeARN           :: Text+    } deriving (Eq, Ord, Show)++-- | 'CreateSnapshotFromVolumeRecoveryPoint' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'csfvrpSnapshotDescription' @::@ 'Text'+--+-- * 'csfvrpVolumeARN' @::@ 'Text'+--+createSnapshotFromVolumeRecoveryPoint :: Text -- ^ 'csfvrpVolumeARN'+                                      -> Text -- ^ 'csfvrpSnapshotDescription'+                                      -> CreateSnapshotFromVolumeRecoveryPoint+createSnapshotFromVolumeRecoveryPoint p1 p2 = CreateSnapshotFromVolumeRecoveryPoint+    { _csfvrpVolumeARN           = p1+    , _csfvrpSnapshotDescription = p2+    }++csfvrpSnapshotDescription :: Lens' CreateSnapshotFromVolumeRecoveryPoint Text+csfvrpSnapshotDescription =+    lens _csfvrpSnapshotDescription+        (\s a -> s { _csfvrpSnapshotDescription = a })++csfvrpVolumeARN :: Lens' CreateSnapshotFromVolumeRecoveryPoint Text+csfvrpVolumeARN = lens _csfvrpVolumeARN (\s a -> s { _csfvrpVolumeARN = a })++data CreateSnapshotFromVolumeRecoveryPointResponse = CreateSnapshotFromVolumeRecoveryPointResponse+    { _csfvrprSnapshotId              :: Maybe Text+    , _csfvrprVolumeARN               :: Maybe Text+    , _csfvrprVolumeRecoveryPointTime :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'CreateSnapshotFromVolumeRecoveryPointResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'csfvrprSnapshotId' @::@ 'Maybe' 'Text'+--+-- * 'csfvrprVolumeARN' @::@ 'Maybe' 'Text'+--+-- * 'csfvrprVolumeRecoveryPointTime' @::@ 'Maybe' 'Text'+--+createSnapshotFromVolumeRecoveryPointResponse :: CreateSnapshotFromVolumeRecoveryPointResponse+createSnapshotFromVolumeRecoveryPointResponse = CreateSnapshotFromVolumeRecoveryPointResponse+    { _csfvrprSnapshotId              = Nothing+    , _csfvrprVolumeARN               = Nothing+    , _csfvrprVolumeRecoveryPointTime = Nothing+    }++csfvrprSnapshotId :: Lens' CreateSnapshotFromVolumeRecoveryPointResponse (Maybe Text)+csfvrprSnapshotId =+    lens _csfvrprSnapshotId (\s a -> s { _csfvrprSnapshotId = a })++csfvrprVolumeARN :: Lens' CreateSnapshotFromVolumeRecoveryPointResponse (Maybe Text)+csfvrprVolumeARN = lens _csfvrprVolumeARN (\s a -> s { _csfvrprVolumeARN = a })++csfvrprVolumeRecoveryPointTime :: Lens' CreateSnapshotFromVolumeRecoveryPointResponse (Maybe Text)+csfvrprVolumeRecoveryPointTime =+    lens _csfvrprVolumeRecoveryPointTime+        (\s a -> s { _csfvrprVolumeRecoveryPointTime = a })++instance ToPath CreateSnapshotFromVolumeRecoveryPoint where+    toPath = const "/"++instance ToQuery CreateSnapshotFromVolumeRecoveryPoint where+    toQuery = const mempty++instance ToHeaders CreateSnapshotFromVolumeRecoveryPoint++instance ToJSON CreateSnapshotFromVolumeRecoveryPoint where+    toJSON CreateSnapshotFromVolumeRecoveryPoint{..} = object+        [ "VolumeARN"           .= _csfvrpVolumeARN+        , "SnapshotDescription" .= _csfvrpSnapshotDescription+        ]++instance AWSRequest CreateSnapshotFromVolumeRecoveryPoint where+    type Sv CreateSnapshotFromVolumeRecoveryPoint = StorageGateway+    type Rs CreateSnapshotFromVolumeRecoveryPoint = CreateSnapshotFromVolumeRecoveryPointResponse++    request  = post "CreateSnapshotFromVolumeRecoveryPoint"+    response = jsonResponse++instance FromJSON CreateSnapshotFromVolumeRecoveryPointResponse where+    parseJSON = withObject "CreateSnapshotFromVolumeRecoveryPointResponse" $ \o -> CreateSnapshotFromVolumeRecoveryPointResponse+        <$> o .:? "SnapshotId"+        <*> o .:? "VolumeARN"+        <*> o .:? "VolumeRecoveryPointTime"
+ gen/Network/AWS/StorageGateway/CreateStorediSCSIVolume.hs view
@@ -0,0 +1,218 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.CreateStorediSCSIVolume+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation creates a volume on a specified gateway. This operation is+-- supported only for the gateway-stored volume architecture. The size of the+-- volume to create is inferred from the disk size. You can choose to preserve+-- existing data on the disk, create volume from an existing snapshot, or+-- create an empty volume. If you choose to create an empty gateway volume,+-- then any existing data on the disk is erased. In the request you must+-- specify the gateway and the disk information on which you are creating the+-- volume. In response, AWS Storage Gateway creates the volume and returns+-- volume information such as the volume Amazon Resource Name (ARN), its size,+-- and the iSCSI target ARN that initiators can use to connect to the volume+-- target.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateStorediSCSIVolume.html>+module Network.AWS.StorageGateway.CreateStorediSCSIVolume+    (+    -- * Request+      CreateStorediSCSIVolume+    -- ** Request constructor+    , createStorediSCSIVolume+    -- ** Request lenses+    , csscsivDiskId+    , csscsivGatewayARN+    , csscsivNetworkInterfaceId+    , csscsivPreserveExistingData+    , csscsivSnapshotId+    , csscsivTargetName++    -- * Response+    , CreateStorediSCSIVolumeResponse+    -- ** Response constructor+    , createStorediSCSIVolumeResponse+    -- ** Response lenses+    , csscsivrTargetARN+    , csscsivrVolumeARN+    , csscsivrVolumeSizeInBytes+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data CreateStorediSCSIVolume = CreateStorediSCSIVolume+    { _csscsivDiskId               :: Text+    , _csscsivGatewayARN           :: Text+    , _csscsivNetworkInterfaceId   :: Text+    , _csscsivPreserveExistingData :: Bool+    , _csscsivSnapshotId           :: Maybe Text+    , _csscsivTargetName           :: Text+    } deriving (Eq, Ord, Show)++-- | 'CreateStorediSCSIVolume' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'csscsivDiskId' @::@ 'Text'+--+-- * 'csscsivGatewayARN' @::@ 'Text'+--+-- * 'csscsivNetworkInterfaceId' @::@ 'Text'+--+-- * 'csscsivPreserveExistingData' @::@ 'Bool'+--+-- * 'csscsivSnapshotId' @::@ 'Maybe' 'Text'+--+-- * 'csscsivTargetName' @::@ 'Text'+--+createStorediSCSIVolume :: Text -- ^ 'csscsivGatewayARN'+                        -> Text -- ^ 'csscsivDiskId'+                        -> Bool -- ^ 'csscsivPreserveExistingData'+                        -> Text -- ^ 'csscsivTargetName'+                        -> Text -- ^ 'csscsivNetworkInterfaceId'+                        -> CreateStorediSCSIVolume+createStorediSCSIVolume p1 p2 p3 p4 p5 = CreateStorediSCSIVolume+    { _csscsivGatewayARN           = p1+    , _csscsivDiskId               = p2+    , _csscsivPreserveExistingData = p3+    , _csscsivTargetName           = p4+    , _csscsivNetworkInterfaceId   = p5+    , _csscsivSnapshotId           = Nothing+    }++-- | The unique identifier for the gateway local disk that is configured as a+-- stored volume. Use ListLocalDisks to list disk IDs for a gateway.+csscsivDiskId :: Lens' CreateStorediSCSIVolume Text+csscsivDiskId = lens _csscsivDiskId (\s a -> s { _csscsivDiskId = a })++csscsivGatewayARN :: Lens' CreateStorediSCSIVolume Text+csscsivGatewayARN =+    lens _csscsivGatewayARN (\s a -> s { _csscsivGatewayARN = a })++-- | The network interface of the gateway on which to expose the iSCSI target.+-- Only IPv4 addresses are accepted. Use DescribeGatewayInformation to get a+-- list of the network interfaces available on a gateway. Valid Values: A+-- valid IP address.+csscsivNetworkInterfaceId :: Lens' CreateStorediSCSIVolume Text+csscsivNetworkInterfaceId =+    lens _csscsivNetworkInterfaceId+        (\s a -> s { _csscsivNetworkInterfaceId = a })++-- | Specify this field as true if you want to preserve the data on the local+-- disk. Otherwise, specifying this field as false creates an empty volume.+-- Valid Values: true, false.+csscsivPreserveExistingData :: Lens' CreateStorediSCSIVolume Bool+csscsivPreserveExistingData =+    lens _csscsivPreserveExistingData+        (\s a -> s { _csscsivPreserveExistingData = a })++-- | The snapshot ID (e.g. "snap-1122aabb") of the snapshot to restore as the+-- new stored volume. Specify this field if you want to create the iSCSI+-- storage volume from a snapshot otherwise do not include this field. To+-- list snapshots for your account use DescribeSnapshots in the Amazon+-- Elastic Compute Cloud API Reference.+csscsivSnapshotId :: Lens' CreateStorediSCSIVolume (Maybe Text)+csscsivSnapshotId =+    lens _csscsivSnapshotId (\s a -> s { _csscsivSnapshotId = a })++-- | The name of the iSCSI target used by initiators to connect to the target+-- and as a suffix for the target ARN. For example, specifying TargetName as+-- myvolume results in the target ARN of+-- arn:aws:storagegateway:us-east-1:111122223333:gateway/mygateway/target/iqn.1997-05.com.amazon:myvolume.+-- The target name must be unique across all volumes of a gateway.+csscsivTargetName :: Lens' CreateStorediSCSIVolume Text+csscsivTargetName =+    lens _csscsivTargetName (\s a -> s { _csscsivTargetName = a })++data CreateStorediSCSIVolumeResponse = CreateStorediSCSIVolumeResponse+    { _csscsivrTargetARN         :: Maybe Text+    , _csscsivrVolumeARN         :: Maybe Text+    , _csscsivrVolumeSizeInBytes :: Maybe Integer+    } deriving (Eq, Ord, Show)++-- | 'CreateStorediSCSIVolumeResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'csscsivrTargetARN' @::@ 'Maybe' 'Text'+--+-- * 'csscsivrVolumeARN' @::@ 'Maybe' 'Text'+--+-- * 'csscsivrVolumeSizeInBytes' @::@ 'Maybe' 'Integer'+--+createStorediSCSIVolumeResponse :: CreateStorediSCSIVolumeResponse+createStorediSCSIVolumeResponse = CreateStorediSCSIVolumeResponse+    { _csscsivrVolumeARN         = Nothing+    , _csscsivrVolumeSizeInBytes = Nothing+    , _csscsivrTargetARN         = Nothing+    }++-- | he Amazon Resource Name (ARN) of the volume target that includes the+-- iSCSI name that initiators can use to connect to the target.+csscsivrTargetARN :: Lens' CreateStorediSCSIVolumeResponse (Maybe Text)+csscsivrTargetARN =+    lens _csscsivrTargetARN (\s a -> s { _csscsivrTargetARN = a })++-- | The Amazon Resource Name (ARN) of the configured volume.+csscsivrVolumeARN :: Lens' CreateStorediSCSIVolumeResponse (Maybe Text)+csscsivrVolumeARN =+    lens _csscsivrVolumeARN (\s a -> s { _csscsivrVolumeARN = a })++-- | The size of the volume in bytes.+csscsivrVolumeSizeInBytes :: Lens' CreateStorediSCSIVolumeResponse (Maybe Integer)+csscsivrVolumeSizeInBytes =+    lens _csscsivrVolumeSizeInBytes+        (\s a -> s { _csscsivrVolumeSizeInBytes = a })++instance ToPath CreateStorediSCSIVolume where+    toPath = const "/"++instance ToQuery CreateStorediSCSIVolume where+    toQuery = const mempty++instance ToHeaders CreateStorediSCSIVolume++instance ToJSON CreateStorediSCSIVolume where+    toJSON CreateStorediSCSIVolume{..} = object+        [ "GatewayARN"           .= _csscsivGatewayARN+        , "DiskId"               .= _csscsivDiskId+        , "SnapshotId"           .= _csscsivSnapshotId+        , "PreserveExistingData" .= _csscsivPreserveExistingData+        , "TargetName"           .= _csscsivTargetName+        , "NetworkInterfaceId"   .= _csscsivNetworkInterfaceId+        ]++instance AWSRequest CreateStorediSCSIVolume where+    type Sv CreateStorediSCSIVolume = StorageGateway+    type Rs CreateStorediSCSIVolume = CreateStorediSCSIVolumeResponse++    request  = post "CreateStorediSCSIVolume"+    response = jsonResponse++instance FromJSON CreateStorediSCSIVolumeResponse where+    parseJSON = withObject "CreateStorediSCSIVolumeResponse" $ \o -> CreateStorediSCSIVolumeResponse+        <$> o .:? "TargetARN"+        <*> o .:? "VolumeARN"+        <*> o .:? "VolumeSizeInBytes"
+ gen/Network/AWS/StorageGateway/CreateTapes.hs view
@@ -0,0 +1,170 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.CreateTapes+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | Creates one or more virtual tapes. You write data to the virtual tapes and+-- then archive the tapes.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_CreateTapes.html>+module Network.AWS.StorageGateway.CreateTapes+    (+    -- * Request+      CreateTapes+    -- ** Request constructor+    , createTapes+    -- ** Request lenses+    , ctClientToken+    , ctGatewayARN+    , ctNumTapesToCreate+    , ctTapeBarcodePrefix+    , ctTapeSizeInBytes++    -- * Response+    , CreateTapesResponse+    -- ** Response constructor+    , createTapesResponse+    -- ** Response lenses+    , ctrTapeARNs+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data CreateTapes = CreateTapes+    { _ctClientToken       :: Text+    , _ctGatewayARN        :: Text+    , _ctNumTapesToCreate  :: Nat+    , _ctTapeBarcodePrefix :: Text+    , _ctTapeSizeInBytes   :: Nat+    } deriving (Eq, Ord, Show)++-- | 'CreateTapes' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ctClientToken' @::@ 'Text'+--+-- * 'ctGatewayARN' @::@ 'Text'+--+-- * 'ctNumTapesToCreate' @::@ 'Natural'+--+-- * 'ctTapeBarcodePrefix' @::@ 'Text'+--+-- * 'ctTapeSizeInBytes' @::@ 'Natural'+--+createTapes :: Text -- ^ 'ctGatewayARN'+            -> Natural -- ^ 'ctTapeSizeInBytes'+            -> Text -- ^ 'ctClientToken'+            -> Natural -- ^ 'ctNumTapesToCreate'+            -> Text -- ^ 'ctTapeBarcodePrefix'+            -> CreateTapes+createTapes p1 p2 p3 p4 p5 = CreateTapes+    { _ctGatewayARN        = p1+    , _ctTapeSizeInBytes   = withIso _Nat (const id) p2+    , _ctClientToken       = p3+    , _ctNumTapesToCreate  = withIso _Nat (const id) p4+    , _ctTapeBarcodePrefix = p5+    }++-- | A unique identifier that you use to retry a request. If you retry a+-- request, use the same ClientToken you specified in the initial request.+ctClientToken :: Lens' CreateTapes Text+ctClientToken = lens _ctClientToken (\s a -> s { _ctClientToken = a })++-- | The unique Amazon Resource Name(ARN) that represents the gateway to+-- associate the virtual tapes with. Use the ListGateways operation to+-- return a list of gateways for your account and region.+ctGatewayARN :: Lens' CreateTapes Text+ctGatewayARN = lens _ctGatewayARN (\s a -> s { _ctGatewayARN = a })++-- | The number of virtual tapes you want to create.+ctNumTapesToCreate :: Lens' CreateTapes Natural+ctNumTapesToCreate =+    lens _ctNumTapesToCreate (\s a -> s { _ctNumTapesToCreate = a })+        . _Nat++-- | A prefix you append to the barcode of the virtual tape you are creating.+-- This makes a barcode unique.+ctTapeBarcodePrefix :: Lens' CreateTapes Text+ctTapeBarcodePrefix =+    lens _ctTapeBarcodePrefix (\s a -> s { _ctTapeBarcodePrefix = a })++-- | The size, in bytes, of the virtual tapes you want to create.+ctTapeSizeInBytes :: Lens' CreateTapes Natural+ctTapeSizeInBytes =+    lens _ctTapeSizeInBytes (\s a -> s { _ctTapeSizeInBytes = a })+        . _Nat++newtype CreateTapesResponse = CreateTapesResponse+    { _ctrTapeARNs :: List "TapeARNs" Text+    } deriving (Eq, Ord, Show, Monoid, Semigroup)++instance GHC.Exts.IsList CreateTapesResponse where+    type Item CreateTapesResponse = Text++    fromList = CreateTapesResponse . GHC.Exts.fromList+    toList   = GHC.Exts.toList . _ctrTapeARNs++-- | 'CreateTapesResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ctrTapeARNs' @::@ ['Text']+--+createTapesResponse :: CreateTapesResponse+createTapesResponse = CreateTapesResponse+    { _ctrTapeARNs = mempty+    }++-- | A list of unique Amazon Resource Named (ARN) the represents the virtual+-- tapes that were created.+ctrTapeARNs :: Lens' CreateTapesResponse [Text]+ctrTapeARNs = lens _ctrTapeARNs (\s a -> s { _ctrTapeARNs = a }) . _List++instance ToPath CreateTapes where+    toPath = const "/"++instance ToQuery CreateTapes where+    toQuery = const mempty++instance ToHeaders CreateTapes++instance ToJSON CreateTapes where+    toJSON CreateTapes{..} = object+        [ "GatewayARN"        .= _ctGatewayARN+        , "TapeSizeInBytes"   .= _ctTapeSizeInBytes+        , "ClientToken"       .= _ctClientToken+        , "NumTapesToCreate"  .= _ctNumTapesToCreate+        , "TapeBarcodePrefix" .= _ctTapeBarcodePrefix+        ]++instance AWSRequest CreateTapes where+    type Sv CreateTapes = StorageGateway+    type Rs CreateTapes = CreateTapesResponse++    request  = post "CreateTapes"+    response = jsonResponse++instance FromJSON CreateTapesResponse where+    parseJSON = withObject "CreateTapesResponse" $ \o -> CreateTapesResponse+        <$> o .:  "TapeARNs"
+ gen/Network/AWS/StorageGateway/DeleteBandwidthRateLimit.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.DeleteBandwidthRateLimit+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation deletes the bandwidth rate limits of a gateway. You can+-- delete either the upload and download bandwidth rate limit, or you can+-- delete both. If you delete only one of the limits, the other limit remains+-- unchanged. To specify which gateway to work with, use the Amazon Resource+-- Name (ARN) of the gateway in your request.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DeleteBandwidthRateLimit.html>+module Network.AWS.StorageGateway.DeleteBandwidthRateLimit+    (+    -- * Request+      DeleteBandwidthRateLimit+    -- ** Request constructor+    , deleteBandwidthRateLimit+    -- ** Request lenses+    , dbrl1BandwidthType+    , dbrl1GatewayARN++    -- * Response+    , DeleteBandwidthRateLimitResponse+    -- ** Response constructor+    , deleteBandwidthRateLimitResponse+    -- ** Response lenses+    , dbrlr1GatewayARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data DeleteBandwidthRateLimit = DeleteBandwidthRateLimit+    { _dbrl1BandwidthType :: Text+    , _dbrl1GatewayARN    :: Text+    } deriving (Eq, Ord, Show)++-- | 'DeleteBandwidthRateLimit' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dbrl1BandwidthType' @::@ 'Text'+--+-- * 'dbrl1GatewayARN' @::@ 'Text'+--+deleteBandwidthRateLimit :: Text -- ^ 'dbrl1GatewayARN'+                         -> Text -- ^ 'dbrl1BandwidthType'+                         -> DeleteBandwidthRateLimit+deleteBandwidthRateLimit p1 p2 = DeleteBandwidthRateLimit+    { _dbrl1GatewayARN    = p1+    , _dbrl1BandwidthType = p2+    }++dbrl1BandwidthType :: Lens' DeleteBandwidthRateLimit Text+dbrl1BandwidthType =+    lens _dbrl1BandwidthType (\s a -> s { _dbrl1BandwidthType = a })++dbrl1GatewayARN :: Lens' DeleteBandwidthRateLimit Text+dbrl1GatewayARN = lens _dbrl1GatewayARN (\s a -> s { _dbrl1GatewayARN = a })++newtype DeleteBandwidthRateLimitResponse = DeleteBandwidthRateLimitResponse+    { _dbrlr1GatewayARN :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'DeleteBandwidthRateLimitResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dbrlr1GatewayARN' @::@ 'Maybe' 'Text'+--+deleteBandwidthRateLimitResponse :: DeleteBandwidthRateLimitResponse+deleteBandwidthRateLimitResponse = DeleteBandwidthRateLimitResponse+    { _dbrlr1GatewayARN = Nothing+    }++dbrlr1GatewayARN :: Lens' DeleteBandwidthRateLimitResponse (Maybe Text)+dbrlr1GatewayARN = lens _dbrlr1GatewayARN (\s a -> s { _dbrlr1GatewayARN = a })++instance ToPath DeleteBandwidthRateLimit where+    toPath = const "/"++instance ToQuery DeleteBandwidthRateLimit where+    toQuery = const mempty++instance ToHeaders DeleteBandwidthRateLimit++instance ToJSON DeleteBandwidthRateLimit where+    toJSON DeleteBandwidthRateLimit{..} = object+        [ "GatewayARN"    .= _dbrl1GatewayARN+        , "BandwidthType" .= _dbrl1BandwidthType+        ]++instance AWSRequest DeleteBandwidthRateLimit where+    type Sv DeleteBandwidthRateLimit = StorageGateway+    type Rs DeleteBandwidthRateLimit = DeleteBandwidthRateLimitResponse++    request  = post "DeleteBandwidthRateLimit"+    response = jsonResponse++instance FromJSON DeleteBandwidthRateLimitResponse where+    parseJSON = withObject "DeleteBandwidthRateLimitResponse" $ \o -> DeleteBandwidthRateLimitResponse+        <$> o .:? "GatewayARN"
+ gen/Network/AWS/StorageGateway/DeleteChapCredentials.hs view
@@ -0,0 +1,135 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.DeleteChapCredentials+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation deletes Challenge-Handshake Authentication Protocol (CHAP)+-- credentials for a specified iSCSI target and initiator pair.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DeleteChapCredentials.html>+module Network.AWS.StorageGateway.DeleteChapCredentials+    (+    -- * Request+      DeleteChapCredentials+    -- ** Request constructor+    , deleteChapCredentials+    -- ** Request lenses+    , dcc1InitiatorName+    , dcc1TargetARN++    -- * Response+    , DeleteChapCredentialsResponse+    -- ** Response constructor+    , deleteChapCredentialsResponse+    -- ** Response lenses+    , dccrInitiatorName+    , dccrTargetARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data DeleteChapCredentials = DeleteChapCredentials+    { _dcc1InitiatorName :: Text+    , _dcc1TargetARN     :: Text+    } deriving (Eq, Ord, Show)++-- | 'DeleteChapCredentials' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcc1InitiatorName' @::@ 'Text'+--+-- * 'dcc1TargetARN' @::@ 'Text'+--+deleteChapCredentials :: Text -- ^ 'dcc1TargetARN'+                      -> Text -- ^ 'dcc1InitiatorName'+                      -> DeleteChapCredentials+deleteChapCredentials p1 p2 = DeleteChapCredentials+    { _dcc1TargetARN     = p1+    , _dcc1InitiatorName = p2+    }++-- | The iSCSI initiator that connects to the target.+dcc1InitiatorName :: Lens' DeleteChapCredentials Text+dcc1InitiatorName =+    lens _dcc1InitiatorName (\s a -> s { _dcc1InitiatorName = a })++-- | The Amazon Resource Name (ARN) of the iSCSI volume target. Use the+-- DescribeStorediSCSIVolumes operation to return to retrieve the TargetARN+-- for specified VolumeARN.+dcc1TargetARN :: Lens' DeleteChapCredentials Text+dcc1TargetARN = lens _dcc1TargetARN (\s a -> s { _dcc1TargetARN = a })++data DeleteChapCredentialsResponse = DeleteChapCredentialsResponse+    { _dccrInitiatorName :: Maybe Text+    , _dccrTargetARN     :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'DeleteChapCredentialsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dccrInitiatorName' @::@ 'Maybe' 'Text'+--+-- * 'dccrTargetARN' @::@ 'Maybe' 'Text'+--+deleteChapCredentialsResponse :: DeleteChapCredentialsResponse+deleteChapCredentialsResponse = DeleteChapCredentialsResponse+    { _dccrTargetARN     = Nothing+    , _dccrInitiatorName = Nothing+    }++-- | The iSCSI initiator that connects to the target.+dccrInitiatorName :: Lens' DeleteChapCredentialsResponse (Maybe Text)+dccrInitiatorName =+    lens _dccrInitiatorName (\s a -> s { _dccrInitiatorName = a })++-- | The Amazon Resource Name (ARN) of the target.+dccrTargetARN :: Lens' DeleteChapCredentialsResponse (Maybe Text)+dccrTargetARN = lens _dccrTargetARN (\s a -> s { _dccrTargetARN = a })++instance ToPath DeleteChapCredentials where+    toPath = const "/"++instance ToQuery DeleteChapCredentials where+    toQuery = const mempty++instance ToHeaders DeleteChapCredentials++instance ToJSON DeleteChapCredentials where+    toJSON DeleteChapCredentials{..} = object+        [ "TargetARN"     .= _dcc1TargetARN+        , "InitiatorName" .= _dcc1InitiatorName+        ]++instance AWSRequest DeleteChapCredentials where+    type Sv DeleteChapCredentials = StorageGateway+    type Rs DeleteChapCredentials = DeleteChapCredentialsResponse++    request  = post "DeleteChapCredentials"+    response = jsonResponse++instance FromJSON DeleteChapCredentialsResponse where+    parseJSON = withObject "DeleteChapCredentialsResponse" $ \o -> DeleteChapCredentialsResponse+        <$> o .:? "InitiatorName"+        <*> o .:? "TargetARN"
+ gen/Network/AWS/StorageGateway/DeleteGateway.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.DeleteGateway+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation deletes a gateway. To specify which gateway to delete, use+-- the Amazon Resource Name (ARN) of the gateway in your request. The+-- operation deletes the gateway; however, it does not delete the gateway+-- virtual machine (VM) from your host computer. After you delete a gateway,+-- you cannot reactivate it. Completed snapshots of the gateway volumes are+-- not deleted upon deleting the gateway, however, pending snapshots will not+-- complete. After you delete a gateway, your next step is to remove it from+-- your environment. You no longer pay software charges after the gateway is+-- deleted; however, your existing Amazon EBS snapshots persist and you will+-- continue to be billed for these snapshots. You can choose to remove all+-- remaining Amazon EBS snapshots by canceling your Amazon EC2 subscription.+-- If you prefer not to cancel your Amazon EC2 subscription, you can delete+-- your snapshots using the Amazon EC2 console. For more information, see the+-- AWS Storage Gateway Detail Page.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DeleteGateway.html>+module Network.AWS.StorageGateway.DeleteGateway+    (+    -- * Request+      DeleteGateway+    -- ** Request constructor+    , deleteGateway+    -- ** Request lenses+    , dgGatewayARN++    -- * Response+    , DeleteGatewayResponse+    -- ** Response constructor+    , deleteGatewayResponse+    -- ** Response lenses+    , dgrGatewayARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++newtype DeleteGateway = DeleteGateway+    { _dgGatewayARN :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DeleteGateway' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dgGatewayARN' @::@ 'Text'+--+deleteGateway :: Text -- ^ 'dgGatewayARN'+              -> DeleteGateway+deleteGateway p1 = DeleteGateway+    { _dgGatewayARN = p1+    }++dgGatewayARN :: Lens' DeleteGateway Text+dgGatewayARN = lens _dgGatewayARN (\s a -> s { _dgGatewayARN = a })++newtype DeleteGatewayResponse = DeleteGatewayResponse+    { _dgrGatewayARN :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'DeleteGatewayResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dgrGatewayARN' @::@ 'Maybe' 'Text'+--+deleteGatewayResponse :: DeleteGatewayResponse+deleteGatewayResponse = DeleteGatewayResponse+    { _dgrGatewayARN = Nothing+    }++dgrGatewayARN :: Lens' DeleteGatewayResponse (Maybe Text)+dgrGatewayARN = lens _dgrGatewayARN (\s a -> s { _dgrGatewayARN = a })++instance ToPath DeleteGateway where+    toPath = const "/"++instance ToQuery DeleteGateway where+    toQuery = const mempty++instance ToHeaders DeleteGateway++instance ToJSON DeleteGateway where+    toJSON DeleteGateway{..} = object+        [ "GatewayARN" .= _dgGatewayARN+        ]++instance AWSRequest DeleteGateway where+    type Sv DeleteGateway = StorageGateway+    type Rs DeleteGateway = DeleteGatewayResponse++    request  = post "DeleteGateway"+    response = jsonResponse++instance FromJSON DeleteGatewayResponse where+    parseJSON = withObject "DeleteGatewayResponse" $ \o -> DeleteGatewayResponse+        <$> o .:? "GatewayARN"
+ gen/Network/AWS/StorageGateway/DeleteSnapshotSchedule.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.DeleteSnapshotSchedule+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation deletes a snapshot of a volume. You can take snapshots of+-- your gateway volumes on a scheduled or ad-hoc basis. This API enables you+-- to delete a snapshot schedule for a volume. For more information, see+-- Working with Snapshots. In the DeleteSnapshotSchedule request, you identify+-- the volume by providing its Amazon Resource Name (ARN).+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DeleteSnapshotSchedule.html>+module Network.AWS.StorageGateway.DeleteSnapshotSchedule+    (+    -- * Request+      DeleteSnapshotSchedule+    -- ** Request constructor+    , deleteSnapshotSchedule+    -- ** Request lenses+    , dss1VolumeARN++    -- * Response+    , DeleteSnapshotScheduleResponse+    -- ** Response constructor+    , deleteSnapshotScheduleResponse+    -- ** Response lenses+    , dssr1VolumeARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++newtype DeleteSnapshotSchedule = DeleteSnapshotSchedule+    { _dss1VolumeARN :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DeleteSnapshotSchedule' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dss1VolumeARN' @::@ 'Text'+--+deleteSnapshotSchedule :: Text -- ^ 'dss1VolumeARN'+                       -> DeleteSnapshotSchedule+deleteSnapshotSchedule p1 = DeleteSnapshotSchedule+    { _dss1VolumeARN = p1+    }++dss1VolumeARN :: Lens' DeleteSnapshotSchedule Text+dss1VolumeARN = lens _dss1VolumeARN (\s a -> s { _dss1VolumeARN = a })++newtype DeleteSnapshotScheduleResponse = DeleteSnapshotScheduleResponse+    { _dssr1VolumeARN :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'DeleteSnapshotScheduleResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dssr1VolumeARN' @::@ 'Maybe' 'Text'+--+deleteSnapshotScheduleResponse :: DeleteSnapshotScheduleResponse+deleteSnapshotScheduleResponse = DeleteSnapshotScheduleResponse+    { _dssr1VolumeARN = Nothing+    }++dssr1VolumeARN :: Lens' DeleteSnapshotScheduleResponse (Maybe Text)+dssr1VolumeARN = lens _dssr1VolumeARN (\s a -> s { _dssr1VolumeARN = a })++instance ToPath DeleteSnapshotSchedule where+    toPath = const "/"++instance ToQuery DeleteSnapshotSchedule where+    toQuery = const mempty++instance ToHeaders DeleteSnapshotSchedule++instance ToJSON DeleteSnapshotSchedule where+    toJSON DeleteSnapshotSchedule{..} = object+        [ "VolumeARN" .= _dss1VolumeARN+        ]++instance AWSRequest DeleteSnapshotSchedule where+    type Sv DeleteSnapshotSchedule = StorageGateway+    type Rs DeleteSnapshotSchedule = DeleteSnapshotScheduleResponse++    request  = post "DeleteSnapshotSchedule"+    response = jsonResponse++instance FromJSON DeleteSnapshotScheduleResponse where+    parseJSON = withObject "DeleteSnapshotScheduleResponse" $ \o -> DeleteSnapshotScheduleResponse+        <$> o .:? "VolumeARN"
+ gen/Network/AWS/StorageGateway/DeleteTape.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.DeleteTape+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | Deletes the specified virtual tape.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DeleteTape.html>+module Network.AWS.StorageGateway.DeleteTape+    (+    -- * Request+      DeleteTape+    -- ** Request constructor+    , deleteTape+    -- ** Request lenses+    , dt1GatewayARN+    , dt1TapeARN++    -- * Response+    , DeleteTapeResponse+    -- ** Response constructor+    , deleteTapeResponse+    -- ** Response lenses+    , dtrTapeARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data DeleteTape = DeleteTape+    { _dt1GatewayARN :: Text+    , _dt1TapeARN    :: Text+    } deriving (Eq, Ord, Show)++-- | 'DeleteTape' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dt1GatewayARN' @::@ 'Text'+--+-- * 'dt1TapeARN' @::@ 'Text'+--+deleteTape :: Text -- ^ 'dt1GatewayARN'+           -> Text -- ^ 'dt1TapeARN'+           -> DeleteTape+deleteTape p1 p2 = DeleteTape+    { _dt1GatewayARN = p1+    , _dt1TapeARN    = p2+    }++-- | The unique Amazon Resource Name (ARN) of the gateway that the virtual+-- tape to delete is associated with. Use the ListGateways operation to+-- return a list of gateways for your account and region.+dt1GatewayARN :: Lens' DeleteTape Text+dt1GatewayARN = lens _dt1GatewayARN (\s a -> s { _dt1GatewayARN = a })++-- | The Amazon Resource Name (ARN) of the virtual tape to delete.+dt1TapeARN :: Lens' DeleteTape Text+dt1TapeARN = lens _dt1TapeARN (\s a -> s { _dt1TapeARN = a })++newtype DeleteTapeResponse = DeleteTapeResponse+    { _dtrTapeARN :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'DeleteTapeResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dtrTapeARN' @::@ 'Maybe' 'Text'+--+deleteTapeResponse :: DeleteTapeResponse+deleteTapeResponse = DeleteTapeResponse+    { _dtrTapeARN = Nothing+    }++-- | The Amazon Resource Name (ARN) of the deleted virtual tape.+dtrTapeARN :: Lens' DeleteTapeResponse (Maybe Text)+dtrTapeARN = lens _dtrTapeARN (\s a -> s { _dtrTapeARN = a })++instance ToPath DeleteTape where+    toPath = const "/"++instance ToQuery DeleteTape where+    toQuery = const mempty++instance ToHeaders DeleteTape++instance ToJSON DeleteTape where+    toJSON DeleteTape{..} = object+        [ "GatewayARN" .= _dt1GatewayARN+        , "TapeARN"    .= _dt1TapeARN+        ]++instance AWSRequest DeleteTape where+    type Sv DeleteTape = StorageGateway+    type Rs DeleteTape = DeleteTapeResponse++    request  = post "DeleteTape"+    response = jsonResponse++instance FromJSON DeleteTapeResponse where+    parseJSON = withObject "DeleteTapeResponse" $ \o -> DeleteTapeResponse+        <$> o .:? "TapeARN"
+ gen/Network/AWS/StorageGateway/DeleteTapeArchive.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.DeleteTapeArchive+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | Deletes the specified virtual tape from the virtual tape shelf (VTS).+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DeleteTapeArchive.html>+module Network.AWS.StorageGateway.DeleteTapeArchive+    (+    -- * Request+      DeleteTapeArchive+    -- ** Request constructor+    , deleteTapeArchive+    -- ** Request lenses+    , dtaTapeARN++    -- * Response+    , DeleteTapeArchiveResponse+    -- ** Response constructor+    , deleteTapeArchiveResponse+    -- ** Response lenses+    , dtarTapeARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++newtype DeleteTapeArchive = DeleteTapeArchive+    { _dtaTapeARN :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DeleteTapeArchive' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dtaTapeARN' @::@ 'Text'+--+deleteTapeArchive :: Text -- ^ 'dtaTapeARN'+                  -> DeleteTapeArchive+deleteTapeArchive p1 = DeleteTapeArchive+    { _dtaTapeARN = p1+    }++-- | The Amazon Resource Name (ARN) of the virtual tape to delete from the+-- virtual tape shelf (VTS).+dtaTapeARN :: Lens' DeleteTapeArchive Text+dtaTapeARN = lens _dtaTapeARN (\s a -> s { _dtaTapeARN = a })++newtype DeleteTapeArchiveResponse = DeleteTapeArchiveResponse+    { _dtarTapeARN :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'DeleteTapeArchiveResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dtarTapeARN' @::@ 'Maybe' 'Text'+--+deleteTapeArchiveResponse :: DeleteTapeArchiveResponse+deleteTapeArchiveResponse = DeleteTapeArchiveResponse+    { _dtarTapeARN = Nothing+    }++-- | The Amazon Resource Name (ARN) of the virtual tape that was deleted from+-- the virtual tape shelf (VTS).+dtarTapeARN :: Lens' DeleteTapeArchiveResponse (Maybe Text)+dtarTapeARN = lens _dtarTapeARN (\s a -> s { _dtarTapeARN = a })++instance ToPath DeleteTapeArchive where+    toPath = const "/"++instance ToQuery DeleteTapeArchive where+    toQuery = const mempty++instance ToHeaders DeleteTapeArchive++instance ToJSON DeleteTapeArchive where+    toJSON DeleteTapeArchive{..} = object+        [ "TapeARN" .= _dtaTapeARN+        ]++instance AWSRequest DeleteTapeArchive where+    type Sv DeleteTapeArchive = StorageGateway+    type Rs DeleteTapeArchive = DeleteTapeArchiveResponse++    request  = post "DeleteTapeArchive"+    response = jsonResponse++instance FromJSON DeleteTapeArchiveResponse where+    parseJSON = withObject "DeleteTapeArchiveResponse" $ \o -> DeleteTapeArchiveResponse+        <$> o .:? "TapeARN"
+ gen/Network/AWS/StorageGateway/DeleteVolume.hs view
@@ -0,0 +1,121 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.DeleteVolume+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation delete the specified gateway volume that you previously+-- created using the CreateStorediSCSIVolume API. For gateway-stored volumes,+-- the local disk that was configured as the storage volume is not deleted.+-- You can reuse the local disk to create another storage volume. Before you+-- delete a gateway volume, make sure there are no iSCSI connections to the+-- volume you are deleting. You should also make sure there is no snapshot in+-- progress. You can use the Amazon Elastic Compute Cloud (Amazon EC2) API to+-- query snapshots on the volume you are deleting and check the snapshot+-- status. For more information, go to DescribeSnapshots in the Amazon Elastic+-- Compute Cloud API Reference. In the request, you must provide the Amazon+-- Resource Name (ARN) of the storage volume you want to delete.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DeleteVolume.html>+module Network.AWS.StorageGateway.DeleteVolume+    (+    -- * Request+      DeleteVolume+    -- ** Request constructor+    , deleteVolume+    -- ** Request lenses+    , dvVolumeARN++    -- * Response+    , DeleteVolumeResponse+    -- ** Response constructor+    , deleteVolumeResponse+    -- ** Response lenses+    , dvrVolumeARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++newtype DeleteVolume = DeleteVolume+    { _dvVolumeARN :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DeleteVolume' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dvVolumeARN' @::@ 'Text'+--+deleteVolume :: Text -- ^ 'dvVolumeARN'+             -> DeleteVolume+deleteVolume p1 = DeleteVolume+    { _dvVolumeARN = p1+    }++-- | The Amazon Resource Name (ARN) of the volume. Use the ListVolumes+-- operation to return a list of gateway volumes.+dvVolumeARN :: Lens' DeleteVolume Text+dvVolumeARN = lens _dvVolumeARN (\s a -> s { _dvVolumeARN = a })++newtype DeleteVolumeResponse = DeleteVolumeResponse+    { _dvrVolumeARN :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'DeleteVolumeResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dvrVolumeARN' @::@ 'Maybe' 'Text'+--+deleteVolumeResponse :: DeleteVolumeResponse+deleteVolumeResponse = DeleteVolumeResponse+    { _dvrVolumeARN = Nothing+    }++-- | The Amazon Resource Name (ARN) of the storage volume that was deleted. It+-- is the same ARN you provided in the request.+dvrVolumeARN :: Lens' DeleteVolumeResponse (Maybe Text)+dvrVolumeARN = lens _dvrVolumeARN (\s a -> s { _dvrVolumeARN = a })++instance ToPath DeleteVolume where+    toPath = const "/"++instance ToQuery DeleteVolume where+    toQuery = const mempty++instance ToHeaders DeleteVolume++instance ToJSON DeleteVolume where+    toJSON DeleteVolume{..} = object+        [ "VolumeARN" .= _dvVolumeARN+        ]++instance AWSRequest DeleteVolume where+    type Sv DeleteVolume = StorageGateway+    type Rs DeleteVolume = DeleteVolumeResponse++    request  = post "DeleteVolume"+    response = jsonResponse++instance FromJSON DeleteVolumeResponse where+    parseJSON = withObject "DeleteVolumeResponse" $ \o -> DeleteVolumeResponse+        <$> o .:? "VolumeARN"
+ gen/Network/AWS/StorageGateway/DescribeBandwidthRateLimit.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.DescribeBandwidthRateLimit+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation returns the bandwidth rate limits of a gateway. By default,+-- these limits are not set, which means no bandwidth rate limiting is in+-- effect. This operation only returns a value for a bandwidth rate limit only+-- if the limit is set. If no limits are set for the gateway, then this+-- operation returns only the gateway ARN in the response body. To specify+-- which gateway to describe, use the Amazon Resource Name (ARN) of the+-- gateway in your request.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeBandwidthRateLimit.html>+module Network.AWS.StorageGateway.DescribeBandwidthRateLimit+    (+    -- * Request+      DescribeBandwidthRateLimit+    -- ** Request constructor+    , describeBandwidthRateLimit+    -- ** Request lenses+    , dbrlGatewayARN++    -- * Response+    , DescribeBandwidthRateLimitResponse+    -- ** Response constructor+    , describeBandwidthRateLimitResponse+    -- ** Response lenses+    , dbrlrAverageDownloadRateLimitInBitsPerSec+    , dbrlrAverageUploadRateLimitInBitsPerSec+    , dbrlrGatewayARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++newtype DescribeBandwidthRateLimit = DescribeBandwidthRateLimit+    { _dbrlGatewayARN :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DescribeBandwidthRateLimit' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dbrlGatewayARN' @::@ 'Text'+--+describeBandwidthRateLimit :: Text -- ^ 'dbrlGatewayARN'+                           -> DescribeBandwidthRateLimit+describeBandwidthRateLimit p1 = DescribeBandwidthRateLimit+    { _dbrlGatewayARN = p1+    }++dbrlGatewayARN :: Lens' DescribeBandwidthRateLimit Text+dbrlGatewayARN = lens _dbrlGatewayARN (\s a -> s { _dbrlGatewayARN = a })++data DescribeBandwidthRateLimitResponse = DescribeBandwidthRateLimitResponse+    { _dbrlrAverageDownloadRateLimitInBitsPerSec :: Maybe Nat+    , _dbrlrAverageUploadRateLimitInBitsPerSec   :: Maybe Nat+    , _dbrlrGatewayARN                           :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'DescribeBandwidthRateLimitResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dbrlrAverageDownloadRateLimitInBitsPerSec' @::@ 'Maybe' 'Natural'+--+-- * 'dbrlrAverageUploadRateLimitInBitsPerSec' @::@ 'Maybe' 'Natural'+--+-- * 'dbrlrGatewayARN' @::@ 'Maybe' 'Text'+--+describeBandwidthRateLimitResponse :: DescribeBandwidthRateLimitResponse+describeBandwidthRateLimitResponse = DescribeBandwidthRateLimitResponse+    { _dbrlrGatewayARN                           = Nothing+    , _dbrlrAverageUploadRateLimitInBitsPerSec   = Nothing+    , _dbrlrAverageDownloadRateLimitInBitsPerSec = Nothing+    }++-- | The average download bandwidth rate limit in bits per second. This field+-- does not appear in the response if the download rate limit is not set.+dbrlrAverageDownloadRateLimitInBitsPerSec :: Lens' DescribeBandwidthRateLimitResponse (Maybe Natural)+dbrlrAverageDownloadRateLimitInBitsPerSec =+    lens _dbrlrAverageDownloadRateLimitInBitsPerSec+        (\s a -> s { _dbrlrAverageDownloadRateLimitInBitsPerSec = a })+            . mapping _Nat++-- | The average upload bandwidth rate limit in bits per second. This field+-- does not appear in the response if the upload rate limit is not set.+dbrlrAverageUploadRateLimitInBitsPerSec :: Lens' DescribeBandwidthRateLimitResponse (Maybe Natural)+dbrlrAverageUploadRateLimitInBitsPerSec =+    lens _dbrlrAverageUploadRateLimitInBitsPerSec+        (\s a -> s { _dbrlrAverageUploadRateLimitInBitsPerSec = a })+            . mapping _Nat++dbrlrGatewayARN :: Lens' DescribeBandwidthRateLimitResponse (Maybe Text)+dbrlrGatewayARN = lens _dbrlrGatewayARN (\s a -> s { _dbrlrGatewayARN = a })++instance ToPath DescribeBandwidthRateLimit where+    toPath = const "/"++instance ToQuery DescribeBandwidthRateLimit where+    toQuery = const mempty++instance ToHeaders DescribeBandwidthRateLimit++instance ToJSON DescribeBandwidthRateLimit where+    toJSON DescribeBandwidthRateLimit{..} = object+        [ "GatewayARN" .= _dbrlGatewayARN+        ]++instance AWSRequest DescribeBandwidthRateLimit where+    type Sv DescribeBandwidthRateLimit = StorageGateway+    type Rs DescribeBandwidthRateLimit = DescribeBandwidthRateLimitResponse++    request  = post "DescribeBandwidthRateLimit"+    response = jsonResponse++instance FromJSON DescribeBandwidthRateLimitResponse where+    parseJSON = withObject "DescribeBandwidthRateLimitResponse" $ \o -> DescribeBandwidthRateLimitResponse+        <$> o .:? "AverageDownloadRateLimitInBitsPerSec"+        <*> o .:? "AverageUploadRateLimitInBitsPerSec"+        <*> o .:? "GatewayARN"
+ gen/Network/AWS/StorageGateway/DescribeCache.hs view
@@ -0,0 +1,170 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.DescribeCache+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation returns information about the cache of a gateway. This+-- operation is supported only for the gateway-cached volume architecture. The+-- response includes disk IDs that are configured as cache, and it includes+-- the amount of cache allocated and used.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeCache.html>+module Network.AWS.StorageGateway.DescribeCache+    (+    -- * Request+      DescribeCache+    -- ** Request constructor+    , describeCache+    -- ** Request lenses+    , dcGatewayARN++    -- * Response+    , DescribeCacheResponse+    -- ** Response constructor+    , describeCacheResponse+    -- ** Response lenses+    , dcrCacheAllocatedInBytes+    , dcrCacheDirtyPercentage+    , dcrCacheHitPercentage+    , dcrCacheMissPercentage+    , dcrCacheUsedPercentage+    , dcrDiskIds+    , dcrGatewayARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++newtype DescribeCache = DescribeCache+    { _dcGatewayARN :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DescribeCache' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcGatewayARN' @::@ 'Text'+--+describeCache :: Text -- ^ 'dcGatewayARN'+              -> DescribeCache+describeCache p1 = DescribeCache+    { _dcGatewayARN = p1+    }++dcGatewayARN :: Lens' DescribeCache Text+dcGatewayARN = lens _dcGatewayARN (\s a -> s { _dcGatewayARN = a })++data DescribeCacheResponse = DescribeCacheResponse+    { _dcrCacheAllocatedInBytes :: Maybe Integer+    , _dcrCacheDirtyPercentage  :: Maybe Double+    , _dcrCacheHitPercentage    :: Maybe Double+    , _dcrCacheMissPercentage   :: Maybe Double+    , _dcrCacheUsedPercentage   :: Maybe Double+    , _dcrDiskIds               :: List "DiskIds" Text+    , _dcrGatewayARN            :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'DescribeCacheResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcrCacheAllocatedInBytes' @::@ 'Maybe' 'Integer'+--+-- * 'dcrCacheDirtyPercentage' @::@ 'Maybe' 'Double'+--+-- * 'dcrCacheHitPercentage' @::@ 'Maybe' 'Double'+--+-- * 'dcrCacheMissPercentage' @::@ 'Maybe' 'Double'+--+-- * 'dcrCacheUsedPercentage' @::@ 'Maybe' 'Double'+--+-- * 'dcrDiskIds' @::@ ['Text']+--+-- * 'dcrGatewayARN' @::@ 'Maybe' 'Text'+--+describeCacheResponse :: DescribeCacheResponse+describeCacheResponse = DescribeCacheResponse+    { _dcrGatewayARN            = Nothing+    , _dcrDiskIds               = mempty+    , _dcrCacheAllocatedInBytes = Nothing+    , _dcrCacheUsedPercentage   = Nothing+    , _dcrCacheDirtyPercentage  = Nothing+    , _dcrCacheHitPercentage    = Nothing+    , _dcrCacheMissPercentage   = Nothing+    }++dcrCacheAllocatedInBytes :: Lens' DescribeCacheResponse (Maybe Integer)+dcrCacheAllocatedInBytes =+    lens _dcrCacheAllocatedInBytes+        (\s a -> s { _dcrCacheAllocatedInBytes = a })++dcrCacheDirtyPercentage :: Lens' DescribeCacheResponse (Maybe Double)+dcrCacheDirtyPercentage =+    lens _dcrCacheDirtyPercentage (\s a -> s { _dcrCacheDirtyPercentage = a })++dcrCacheHitPercentage :: Lens' DescribeCacheResponse (Maybe Double)+dcrCacheHitPercentage =+    lens _dcrCacheHitPercentage (\s a -> s { _dcrCacheHitPercentage = a })++dcrCacheMissPercentage :: Lens' DescribeCacheResponse (Maybe Double)+dcrCacheMissPercentage =+    lens _dcrCacheMissPercentage (\s a -> s { _dcrCacheMissPercentage = a })++dcrCacheUsedPercentage :: Lens' DescribeCacheResponse (Maybe Double)+dcrCacheUsedPercentage =+    lens _dcrCacheUsedPercentage (\s a -> s { _dcrCacheUsedPercentage = a })++dcrDiskIds :: Lens' DescribeCacheResponse [Text]+dcrDiskIds = lens _dcrDiskIds (\s a -> s { _dcrDiskIds = a }) . _List++dcrGatewayARN :: Lens' DescribeCacheResponse (Maybe Text)+dcrGatewayARN = lens _dcrGatewayARN (\s a -> s { _dcrGatewayARN = a })++instance ToPath DescribeCache where+    toPath = const "/"++instance ToQuery DescribeCache where+    toQuery = const mempty++instance ToHeaders DescribeCache++instance ToJSON DescribeCache where+    toJSON DescribeCache{..} = object+        [ "GatewayARN" .= _dcGatewayARN+        ]++instance AWSRequest DescribeCache where+    type Sv DescribeCache = StorageGateway+    type Rs DescribeCache = DescribeCacheResponse++    request  = post "DescribeCache"+    response = jsonResponse++instance FromJSON DescribeCacheResponse where+    parseJSON = withObject "DescribeCacheResponse" $ \o -> DescribeCacheResponse+        <$> o .:? "CacheAllocatedInBytes"+        <*> o .:? "CacheDirtyPercentage"+        <*> o .:? "CacheHitPercentage"+        <*> o .:? "CacheMissPercentage"+        <*> o .:? "CacheUsedPercentage"+        <*> o .:  "DiskIds"+        <*> o .:? "GatewayARN"
+ gen/Network/AWS/StorageGateway/DescribeCachediSCSIVolumes.hs view
@@ -0,0 +1,129 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.DescribeCachediSCSIVolumes+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation returns a description of the gateway volumes specified in+-- the request. This operation is supported only for the gateway-cached volume+-- architecture. The list of gateway volumes in the request must be from one+-- gateway. In the response Amazon Storage Gateway returns volume information+-- sorted by volume Amazon Resource Name (ARN).+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeCachediSCSIVolumes.html>+module Network.AWS.StorageGateway.DescribeCachediSCSIVolumes+    (+    -- * Request+      DescribeCachediSCSIVolumes+    -- ** Request constructor+    , describeCachediSCSIVolumes+    -- ** Request lenses+    , dcscsivVolumeARNs++    -- * Response+    , DescribeCachediSCSIVolumesResponse+    -- ** Response constructor+    , describeCachediSCSIVolumesResponse+    -- ** Response lenses+    , dcscsivrCachediSCSIVolumes+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++newtype DescribeCachediSCSIVolumes = DescribeCachediSCSIVolumes+    { _dcscsivVolumeARNs :: List "VolumeARNs" Text+    } deriving (Eq, Ord, Show, Monoid, Semigroup)++instance GHC.Exts.IsList DescribeCachediSCSIVolumes where+    type Item DescribeCachediSCSIVolumes = Text++    fromList = DescribeCachediSCSIVolumes . GHC.Exts.fromList+    toList   = GHC.Exts.toList . _dcscsivVolumeARNs++-- | 'DescribeCachediSCSIVolumes' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcscsivVolumeARNs' @::@ ['Text']+--+describeCachediSCSIVolumes :: DescribeCachediSCSIVolumes+describeCachediSCSIVolumes = DescribeCachediSCSIVolumes+    { _dcscsivVolumeARNs = mempty+    }++dcscsivVolumeARNs :: Lens' DescribeCachediSCSIVolumes [Text]+dcscsivVolumeARNs =+    lens _dcscsivVolumeARNs (\s a -> s { _dcscsivVolumeARNs = a })+        . _List++newtype DescribeCachediSCSIVolumesResponse = DescribeCachediSCSIVolumesResponse+    { _dcscsivrCachediSCSIVolumes :: List "CachediSCSIVolumes" CachediSCSIVolume+    } deriving (Eq, Show, Monoid, Semigroup)++instance GHC.Exts.IsList DescribeCachediSCSIVolumesResponse where+    type Item DescribeCachediSCSIVolumesResponse = CachediSCSIVolume++    fromList = DescribeCachediSCSIVolumesResponse . GHC.Exts.fromList+    toList   = GHC.Exts.toList . _dcscsivrCachediSCSIVolumes++-- | 'DescribeCachediSCSIVolumesResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcscsivrCachediSCSIVolumes' @::@ ['CachediSCSIVolume']+--+describeCachediSCSIVolumesResponse :: DescribeCachediSCSIVolumesResponse+describeCachediSCSIVolumesResponse = DescribeCachediSCSIVolumesResponse+    { _dcscsivrCachediSCSIVolumes = mempty+    }++-- | An array of objects where each object contains metadata about one cached+-- volume.+dcscsivrCachediSCSIVolumes :: Lens' DescribeCachediSCSIVolumesResponse [CachediSCSIVolume]+dcscsivrCachediSCSIVolumes =+    lens _dcscsivrCachediSCSIVolumes+        (\s a -> s { _dcscsivrCachediSCSIVolumes = a })+            . _List++instance ToPath DescribeCachediSCSIVolumes where+    toPath = const "/"++instance ToQuery DescribeCachediSCSIVolumes where+    toQuery = const mempty++instance ToHeaders DescribeCachediSCSIVolumes++instance ToJSON DescribeCachediSCSIVolumes where+    toJSON DescribeCachediSCSIVolumes{..} = object+        [ "VolumeARNs" .= _dcscsivVolumeARNs+        ]++instance AWSRequest DescribeCachediSCSIVolumes where+    type Sv DescribeCachediSCSIVolumes = StorageGateway+    type Rs DescribeCachediSCSIVolumes = DescribeCachediSCSIVolumesResponse++    request  = post "DescribeCachediSCSIVolumes"+    response = jsonResponse++instance FromJSON DescribeCachediSCSIVolumesResponse where+    parseJSON = withObject "DescribeCachediSCSIVolumesResponse" $ \o -> DescribeCachediSCSIVolumesResponse+        <$> o .:  "CachediSCSIVolumes"
+ gen/Network/AWS/StorageGateway/DescribeChapCredentials.hs view
@@ -0,0 +1,131 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.DescribeChapCredentials+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation returns an array of Challenge-Handshake Authentication+-- Protocol (CHAP) credentials information for a specified iSCSI target, one+-- for each target-initiator pair.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeChapCredentials.html>+module Network.AWS.StorageGateway.DescribeChapCredentials+    (+    -- * Request+      DescribeChapCredentials+    -- ** Request constructor+    , describeChapCredentials+    -- ** Request lenses+    , dccTargetARN++    -- * Response+    , DescribeChapCredentialsResponse+    -- ** Response constructor+    , describeChapCredentialsResponse+    -- ** Response lenses+    , dccrChapCredentials+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++newtype DescribeChapCredentials = DescribeChapCredentials+    { _dccTargetARN :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DescribeChapCredentials' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dccTargetARN' @::@ 'Text'+--+describeChapCredentials :: Text -- ^ 'dccTargetARN'+                        -> DescribeChapCredentials+describeChapCredentials p1 = DescribeChapCredentials+    { _dccTargetARN = p1+    }++-- | The Amazon Resource Name (ARN) of the iSCSI volume target. Use the+-- DescribeStorediSCSIVolumes operation to return to retrieve the TargetARN+-- for specified VolumeARN.+dccTargetARN :: Lens' DescribeChapCredentials Text+dccTargetARN = lens _dccTargetARN (\s a -> s { _dccTargetARN = a })++newtype DescribeChapCredentialsResponse = DescribeChapCredentialsResponse+    { _dccrChapCredentials :: List "ChapCredentials" ChapInfo+    } deriving (Eq, Show, Monoid, Semigroup)++instance GHC.Exts.IsList DescribeChapCredentialsResponse where+    type Item DescribeChapCredentialsResponse = ChapInfo++    fromList = DescribeChapCredentialsResponse . GHC.Exts.fromList+    toList   = GHC.Exts.toList . _dccrChapCredentials++-- | 'DescribeChapCredentialsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dccrChapCredentials' @::@ ['ChapInfo']+--+describeChapCredentialsResponse :: DescribeChapCredentialsResponse+describeChapCredentialsResponse = DescribeChapCredentialsResponse+    { _dccrChapCredentials = mempty+    }++-- | An array of ChapInfo objects that represent CHAP credentials. Each object+-- in the array contains CHAP credential information for one+-- target-initiator pair. If no CHAP credentials are set, an empty array is+-- returned. CHAP credential information is provided in a JSON object with+-- the following fields: InitiatorName: The iSCSI initiator that connects to+-- the target. SecretToAuthenticateInitiator: The secret key that the+-- initiator (e.g. Windows client) must provide to participate in mutual+-- CHAP with the target. SecretToAuthenticateTarget: The secret key that the+-- target must provide to participate in mutual CHAP with the initiator+-- (e.g. Windows client). TargetARN: The Amazon Resource Name (ARN) of the+-- storage volume.+dccrChapCredentials :: Lens' DescribeChapCredentialsResponse [ChapInfo]+dccrChapCredentials =+    lens _dccrChapCredentials (\s a -> s { _dccrChapCredentials = a })+        . _List++instance ToPath DescribeChapCredentials where+    toPath = const "/"++instance ToQuery DescribeChapCredentials where+    toQuery = const mempty++instance ToHeaders DescribeChapCredentials++instance ToJSON DescribeChapCredentials where+    toJSON DescribeChapCredentials{..} = object+        [ "TargetARN" .= _dccTargetARN+        ]++instance AWSRequest DescribeChapCredentials where+    type Sv DescribeChapCredentials = StorageGateway+    type Rs DescribeChapCredentials = DescribeChapCredentialsResponse++    request  = post "DescribeChapCredentials"+    response = jsonResponse++instance FromJSON DescribeChapCredentialsResponse where+    parseJSON = withObject "DescribeChapCredentialsResponse" $ \o -> DescribeChapCredentialsResponse+        <$> o .:  "ChapCredentials"
+ gen/Network/AWS/StorageGateway/DescribeGatewayInformation.hs view
@@ -0,0 +1,180 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.DescribeGatewayInformation+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation returns metadata about a gateway such as its name, network+-- interfaces, configured time zone, and the state (whether the gateway is+-- running or not). To specify which gateway to describe, use the Amazon+-- Resource Name (ARN) of the gateway in your request.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeGatewayInformation.html>+module Network.AWS.StorageGateway.DescribeGatewayInformation+    (+    -- * Request+      DescribeGatewayInformation+    -- ** Request constructor+    , describeGatewayInformation+    -- ** Request lenses+    , dgiGatewayARN++    -- * Response+    , DescribeGatewayInformationResponse+    -- ** Response constructor+    , describeGatewayInformationResponse+    -- ** Response lenses+    , dgirGatewayARN+    , dgirGatewayId+    , dgirGatewayNetworkInterfaces+    , dgirGatewayState+    , dgirGatewayTimezone+    , dgirGatewayType+    , dgirNextUpdateAvailabilityDate+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++newtype DescribeGatewayInformation = DescribeGatewayInformation+    { _dgiGatewayARN :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DescribeGatewayInformation' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dgiGatewayARN' @::@ 'Text'+--+describeGatewayInformation :: Text -- ^ 'dgiGatewayARN'+                           -> DescribeGatewayInformation+describeGatewayInformation p1 = DescribeGatewayInformation+    { _dgiGatewayARN = p1+    }++dgiGatewayARN :: Lens' DescribeGatewayInformation Text+dgiGatewayARN = lens _dgiGatewayARN (\s a -> s { _dgiGatewayARN = a })++data DescribeGatewayInformationResponse = DescribeGatewayInformationResponse+    { _dgirGatewayARN                 :: Maybe Text+    , _dgirGatewayId                  :: Maybe Text+    , _dgirGatewayNetworkInterfaces   :: List "GatewayNetworkInterfaces" NetworkInterface+    , _dgirGatewayState               :: Maybe Text+    , _dgirGatewayTimezone            :: Maybe Text+    , _dgirGatewayType                :: Maybe Text+    , _dgirNextUpdateAvailabilityDate :: Maybe Text+    } deriving (Eq, Show)++-- | 'DescribeGatewayInformationResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dgirGatewayARN' @::@ 'Maybe' 'Text'+--+-- * 'dgirGatewayId' @::@ 'Maybe' 'Text'+--+-- * 'dgirGatewayNetworkInterfaces' @::@ ['NetworkInterface']+--+-- * 'dgirGatewayState' @::@ 'Maybe' 'Text'+--+-- * 'dgirGatewayTimezone' @::@ 'Maybe' 'Text'+--+-- * 'dgirGatewayType' @::@ 'Maybe' 'Text'+--+-- * 'dgirNextUpdateAvailabilityDate' @::@ 'Maybe' 'Text'+--+describeGatewayInformationResponse :: DescribeGatewayInformationResponse+describeGatewayInformationResponse = DescribeGatewayInformationResponse+    { _dgirGatewayARN                 = Nothing+    , _dgirGatewayId                  = Nothing+    , _dgirGatewayTimezone            = Nothing+    , _dgirGatewayState               = Nothing+    , _dgirGatewayNetworkInterfaces   = mempty+    , _dgirGatewayType                = Nothing+    , _dgirNextUpdateAvailabilityDate = Nothing+    }++dgirGatewayARN :: Lens' DescribeGatewayInformationResponse (Maybe Text)+dgirGatewayARN = lens _dgirGatewayARN (\s a -> s { _dgirGatewayARN = a })++-- | The gateway ID.+dgirGatewayId :: Lens' DescribeGatewayInformationResponse (Maybe Text)+dgirGatewayId = lens _dgirGatewayId (\s a -> s { _dgirGatewayId = a })++-- | A NetworkInterface array that contains descriptions of the gateway+-- network interfaces.+dgirGatewayNetworkInterfaces :: Lens' DescribeGatewayInformationResponse [NetworkInterface]+dgirGatewayNetworkInterfaces =+    lens _dgirGatewayNetworkInterfaces+        (\s a -> s { _dgirGatewayNetworkInterfaces = a })+            . _List++-- | One of the values that indicates the operating state of the gateway.+dgirGatewayState :: Lens' DescribeGatewayInformationResponse (Maybe Text)+dgirGatewayState = lens _dgirGatewayState (\s a -> s { _dgirGatewayState = a })++-- | One of the values that indicates the time zone configured for the+-- gateway.+dgirGatewayTimezone :: Lens' DescribeGatewayInformationResponse (Maybe Text)+dgirGatewayTimezone =+    lens _dgirGatewayTimezone (\s a -> s { _dgirGatewayTimezone = a })++-- | TBD.+dgirGatewayType :: Lens' DescribeGatewayInformationResponse (Maybe Text)+dgirGatewayType = lens _dgirGatewayType (\s a -> s { _dgirGatewayType = a })++-- | The date at which an update to the gateway is available. This date is in+-- the time zone of the gateway. If the gateway is not available for an+-- update this field is not returned in the response.+dgirNextUpdateAvailabilityDate :: Lens' DescribeGatewayInformationResponse (Maybe Text)+dgirNextUpdateAvailabilityDate =+    lens _dgirNextUpdateAvailabilityDate+        (\s a -> s { _dgirNextUpdateAvailabilityDate = a })++instance ToPath DescribeGatewayInformation where+    toPath = const "/"++instance ToQuery DescribeGatewayInformation where+    toQuery = const mempty++instance ToHeaders DescribeGatewayInformation++instance ToJSON DescribeGatewayInformation where+    toJSON DescribeGatewayInformation{..} = object+        [ "GatewayARN" .= _dgiGatewayARN+        ]++instance AWSRequest DescribeGatewayInformation where+    type Sv DescribeGatewayInformation = StorageGateway+    type Rs DescribeGatewayInformation = DescribeGatewayInformationResponse++    request  = post "DescribeGatewayInformation"+    response = jsonResponse++instance FromJSON DescribeGatewayInformationResponse where+    parseJSON = withObject "DescribeGatewayInformationResponse" $ \o -> DescribeGatewayInformationResponse+        <$> o .:? "GatewayARN"+        <*> o .:? "GatewayId"+        <*> o .:  "GatewayNetworkInterfaces"+        <*> o .:? "GatewayState"+        <*> o .:? "GatewayTimezone"+        <*> o .:? "GatewayType"+        <*> o .:? "NextUpdateAvailabilityDate"
+ gen/Network/AWS/StorageGateway/DescribeMaintenanceStartTime.hs view
@@ -0,0 +1,147 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.DescribeMaintenanceStartTime+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation returns your gateway's weekly maintenance start time+-- including the day and time of the week. Note that values are in terms of+-- the gateway's time zone.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeMaintenanceStartTime.html>+module Network.AWS.StorageGateway.DescribeMaintenanceStartTime+    (+    -- * Request+      DescribeMaintenanceStartTime+    -- ** Request constructor+    , describeMaintenanceStartTime+    -- ** Request lenses+    , dmstGatewayARN++    -- * Response+    , DescribeMaintenanceStartTimeResponse+    -- ** Response constructor+    , describeMaintenanceStartTimeResponse+    -- ** Response lenses+    , dmstrDayOfWeek+    , dmstrGatewayARN+    , dmstrHourOfDay+    , dmstrMinuteOfHour+    , dmstrTimezone+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++newtype DescribeMaintenanceStartTime = DescribeMaintenanceStartTime+    { _dmstGatewayARN :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DescribeMaintenanceStartTime' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dmstGatewayARN' @::@ 'Text'+--+describeMaintenanceStartTime :: Text -- ^ 'dmstGatewayARN'+                             -> DescribeMaintenanceStartTime+describeMaintenanceStartTime p1 = DescribeMaintenanceStartTime+    { _dmstGatewayARN = p1+    }++dmstGatewayARN :: Lens' DescribeMaintenanceStartTime Text+dmstGatewayARN = lens _dmstGatewayARN (\s a -> s { _dmstGatewayARN = a })++data DescribeMaintenanceStartTimeResponse = DescribeMaintenanceStartTimeResponse+    { _dmstrDayOfWeek    :: Maybe Nat+    , _dmstrGatewayARN   :: Maybe Text+    , _dmstrHourOfDay    :: Maybe Nat+    , _dmstrMinuteOfHour :: Maybe Nat+    , _dmstrTimezone     :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'DescribeMaintenanceStartTimeResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dmstrDayOfWeek' @::@ 'Maybe' 'Natural'+--+-- * 'dmstrGatewayARN' @::@ 'Maybe' 'Text'+--+-- * 'dmstrHourOfDay' @::@ 'Maybe' 'Natural'+--+-- * 'dmstrMinuteOfHour' @::@ 'Maybe' 'Natural'+--+-- * 'dmstrTimezone' @::@ 'Maybe' 'Text'+--+describeMaintenanceStartTimeResponse :: DescribeMaintenanceStartTimeResponse+describeMaintenanceStartTimeResponse = DescribeMaintenanceStartTimeResponse+    { _dmstrGatewayARN   = Nothing+    , _dmstrHourOfDay    = Nothing+    , _dmstrMinuteOfHour = Nothing+    , _dmstrDayOfWeek    = Nothing+    , _dmstrTimezone     = Nothing+    }++dmstrDayOfWeek :: Lens' DescribeMaintenanceStartTimeResponse (Maybe Natural)+dmstrDayOfWeek = lens _dmstrDayOfWeek (\s a -> s { _dmstrDayOfWeek = a }) . mapping _Nat++dmstrGatewayARN :: Lens' DescribeMaintenanceStartTimeResponse (Maybe Text)+dmstrGatewayARN = lens _dmstrGatewayARN (\s a -> s { _dmstrGatewayARN = a })++dmstrHourOfDay :: Lens' DescribeMaintenanceStartTimeResponse (Maybe Natural)+dmstrHourOfDay = lens _dmstrHourOfDay (\s a -> s { _dmstrHourOfDay = a }) . mapping _Nat++dmstrMinuteOfHour :: Lens' DescribeMaintenanceStartTimeResponse (Maybe Natural)+dmstrMinuteOfHour =+    lens _dmstrMinuteOfHour (\s a -> s { _dmstrMinuteOfHour = a })+        . mapping _Nat++dmstrTimezone :: Lens' DescribeMaintenanceStartTimeResponse (Maybe Text)+dmstrTimezone = lens _dmstrTimezone (\s a -> s { _dmstrTimezone = a })++instance ToPath DescribeMaintenanceStartTime where+    toPath = const "/"++instance ToQuery DescribeMaintenanceStartTime where+    toQuery = const mempty++instance ToHeaders DescribeMaintenanceStartTime++instance ToJSON DescribeMaintenanceStartTime where+    toJSON DescribeMaintenanceStartTime{..} = object+        [ "GatewayARN" .= _dmstGatewayARN+        ]++instance AWSRequest DescribeMaintenanceStartTime where+    type Sv DescribeMaintenanceStartTime = StorageGateway+    type Rs DescribeMaintenanceStartTime = DescribeMaintenanceStartTimeResponse++    request  = post "DescribeMaintenanceStartTime"+    response = jsonResponse++instance FromJSON DescribeMaintenanceStartTimeResponse where+    parseJSON = withObject "DescribeMaintenanceStartTimeResponse" $ \o -> DescribeMaintenanceStartTimeResponse+        <$> o .:? "DayOfWeek"+        <*> o .:? "GatewayARN"+        <*> o .:? "HourOfDay"+        <*> o .:? "MinuteOfHour"+        <*> o .:? "Timezone"
+ gen/Network/AWS/StorageGateway/DescribeSnapshotSchedule.hs view
@@ -0,0 +1,149 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.DescribeSnapshotSchedule+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation describes the snapshot schedule for the specified gateway+-- volume. The snapshot schedule information includes intervals at which+-- snapshots are automatically initiated on the volume.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeSnapshotSchedule.html>+module Network.AWS.StorageGateway.DescribeSnapshotSchedule+    (+    -- * Request+      DescribeSnapshotSchedule+    -- ** Request constructor+    , describeSnapshotSchedule+    -- ** Request lenses+    , dssVolumeARN++    -- * Response+    , DescribeSnapshotScheduleResponse+    -- ** Response constructor+    , describeSnapshotScheduleResponse+    -- ** Response lenses+    , dssrDescription+    , dssrRecurrenceInHours+    , dssrStartAt+    , dssrTimezone+    , dssrVolumeARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++newtype DescribeSnapshotSchedule = DescribeSnapshotSchedule+    { _dssVolumeARN :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DescribeSnapshotSchedule' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dssVolumeARN' @::@ 'Text'+--+describeSnapshotSchedule :: Text -- ^ 'dssVolumeARN'+                         -> DescribeSnapshotSchedule+describeSnapshotSchedule p1 = DescribeSnapshotSchedule+    { _dssVolumeARN = p1+    }++-- | The Amazon Resource Name (ARN) of the volume. Use the ListVolumes+-- operation to return a list of gateway volumes.+dssVolumeARN :: Lens' DescribeSnapshotSchedule Text+dssVolumeARN = lens _dssVolumeARN (\s a -> s { _dssVolumeARN = a })++data DescribeSnapshotScheduleResponse = DescribeSnapshotScheduleResponse+    { _dssrDescription       :: Maybe Text+    , _dssrRecurrenceInHours :: Maybe Nat+    , _dssrStartAt           :: Maybe Nat+    , _dssrTimezone          :: Maybe Text+    , _dssrVolumeARN         :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'DescribeSnapshotScheduleResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dssrDescription' @::@ 'Maybe' 'Text'+--+-- * 'dssrRecurrenceInHours' @::@ 'Maybe' 'Natural'+--+-- * 'dssrStartAt' @::@ 'Maybe' 'Natural'+--+-- * 'dssrTimezone' @::@ 'Maybe' 'Text'+--+-- * 'dssrVolumeARN' @::@ 'Maybe' 'Text'+--+describeSnapshotScheduleResponse :: DescribeSnapshotScheduleResponse+describeSnapshotScheduleResponse = DescribeSnapshotScheduleResponse+    { _dssrVolumeARN         = Nothing+    , _dssrStartAt           = Nothing+    , _dssrRecurrenceInHours = Nothing+    , _dssrDescription       = Nothing+    , _dssrTimezone          = Nothing+    }++dssrDescription :: Lens' DescribeSnapshotScheduleResponse (Maybe Text)+dssrDescription = lens _dssrDescription (\s a -> s { _dssrDescription = a })++dssrRecurrenceInHours :: Lens' DescribeSnapshotScheduleResponse (Maybe Natural)+dssrRecurrenceInHours =+    lens _dssrRecurrenceInHours (\s a -> s { _dssrRecurrenceInHours = a })+        . mapping _Nat++dssrStartAt :: Lens' DescribeSnapshotScheduleResponse (Maybe Natural)+dssrStartAt = lens _dssrStartAt (\s a -> s { _dssrStartAt = a }) . mapping _Nat++dssrTimezone :: Lens' DescribeSnapshotScheduleResponse (Maybe Text)+dssrTimezone = lens _dssrTimezone (\s a -> s { _dssrTimezone = a })++dssrVolumeARN :: Lens' DescribeSnapshotScheduleResponse (Maybe Text)+dssrVolumeARN = lens _dssrVolumeARN (\s a -> s { _dssrVolumeARN = a })++instance ToPath DescribeSnapshotSchedule where+    toPath = const "/"++instance ToQuery DescribeSnapshotSchedule where+    toQuery = const mempty++instance ToHeaders DescribeSnapshotSchedule++instance ToJSON DescribeSnapshotSchedule where+    toJSON DescribeSnapshotSchedule{..} = object+        [ "VolumeARN" .= _dssVolumeARN+        ]++instance AWSRequest DescribeSnapshotSchedule where+    type Sv DescribeSnapshotSchedule = StorageGateway+    type Rs DescribeSnapshotSchedule = DescribeSnapshotScheduleResponse++    request  = post "DescribeSnapshotSchedule"+    response = jsonResponse++instance FromJSON DescribeSnapshotScheduleResponse where+    parseJSON = withObject "DescribeSnapshotScheduleResponse" $ \o -> DescribeSnapshotScheduleResponse+        <$> o .:? "Description"+        <*> o .:? "RecurrenceInHours"+        <*> o .:? "StartAt"+        <*> o .:? "Timezone"+        <*> o .:? "VolumeARN"
+ gen/Network/AWS/StorageGateway/DescribeStorediSCSIVolumes.hs view
@@ -0,0 +1,129 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.DescribeStorediSCSIVolumes+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation returns description of the gateway volumes specified in the+-- request. The list of gateway volumes in the request must be from one+-- gateway. In the response Amazon Storage Gateway returns volume information+-- sorted by volume ARNs.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeStorediSCSIVolumes.html>+module Network.AWS.StorageGateway.DescribeStorediSCSIVolumes+    (+    -- * Request+      DescribeStorediSCSIVolumes+    -- ** Request constructor+    , describeStorediSCSIVolumes+    -- ** Request lenses+    , dsscsivVolumeARNs++    -- * Response+    , DescribeStorediSCSIVolumesResponse+    -- ** Response constructor+    , describeStorediSCSIVolumesResponse+    -- ** Response lenses+    , dsscsivrStorediSCSIVolumes+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++newtype DescribeStorediSCSIVolumes = DescribeStorediSCSIVolumes+    { _dsscsivVolumeARNs :: List "VolumeARNs" Text+    } deriving (Eq, Ord, Show, Monoid, Semigroup)++instance GHC.Exts.IsList DescribeStorediSCSIVolumes where+    type Item DescribeStorediSCSIVolumes = Text++    fromList = DescribeStorediSCSIVolumes . GHC.Exts.fromList+    toList   = GHC.Exts.toList . _dsscsivVolumeARNs++-- | 'DescribeStorediSCSIVolumes' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dsscsivVolumeARNs' @::@ ['Text']+--+describeStorediSCSIVolumes :: DescribeStorediSCSIVolumes+describeStorediSCSIVolumes = DescribeStorediSCSIVolumes+    { _dsscsivVolumeARNs = mempty+    }++-- | An array of strings where each string represents the Amazon Resource Name+-- (ARN) of a stored volume. All of the specified stored volumes must from+-- the same gateway. Use ListVolumes to get volume ARNs for a gateway.+dsscsivVolumeARNs :: Lens' DescribeStorediSCSIVolumes [Text]+dsscsivVolumeARNs =+    lens _dsscsivVolumeARNs (\s a -> s { _dsscsivVolumeARNs = a })+        . _List++newtype DescribeStorediSCSIVolumesResponse = DescribeStorediSCSIVolumesResponse+    { _dsscsivrStorediSCSIVolumes :: List "StorediSCSIVolumes" StorediSCSIVolume+    } deriving (Eq, Show, Monoid, Semigroup)++instance GHC.Exts.IsList DescribeStorediSCSIVolumesResponse where+    type Item DescribeStorediSCSIVolumesResponse = StorediSCSIVolume++    fromList = DescribeStorediSCSIVolumesResponse . GHC.Exts.fromList+    toList   = GHC.Exts.toList . _dsscsivrStorediSCSIVolumes++-- | 'DescribeStorediSCSIVolumesResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dsscsivrStorediSCSIVolumes' @::@ ['StorediSCSIVolume']+--+describeStorediSCSIVolumesResponse :: DescribeStorediSCSIVolumesResponse+describeStorediSCSIVolumesResponse = DescribeStorediSCSIVolumesResponse+    { _dsscsivrStorediSCSIVolumes = mempty+    }++dsscsivrStorediSCSIVolumes :: Lens' DescribeStorediSCSIVolumesResponse [StorediSCSIVolume]+dsscsivrStorediSCSIVolumes =+    lens _dsscsivrStorediSCSIVolumes+        (\s a -> s { _dsscsivrStorediSCSIVolumes = a })+            . _List++instance ToPath DescribeStorediSCSIVolumes where+    toPath = const "/"++instance ToQuery DescribeStorediSCSIVolumes where+    toQuery = const mempty++instance ToHeaders DescribeStorediSCSIVolumes++instance ToJSON DescribeStorediSCSIVolumes where+    toJSON DescribeStorediSCSIVolumes{..} = object+        [ "VolumeARNs" .= _dsscsivVolumeARNs+        ]++instance AWSRequest DescribeStorediSCSIVolumes where+    type Sv DescribeStorediSCSIVolumes = StorageGateway+    type Rs DescribeStorediSCSIVolumes = DescribeStorediSCSIVolumesResponse++    request  = post "DescribeStorediSCSIVolumes"+    response = jsonResponse++instance FromJSON DescribeStorediSCSIVolumesResponse where+    parseJSON = withObject "DescribeStorediSCSIVolumesResponse" $ \o -> DescribeStorediSCSIVolumesResponse+        <$> o .:  "StorediSCSIVolumes"
+ gen/Network/AWS/StorageGateway/DescribeTapeArchives.hs view
@@ -0,0 +1,158 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.DescribeTapeArchives+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | Returns a description of specified virtual tapes in the virtual tape shelf+-- (VTS). If a specific TapeARN is not specified, AWS Storage Gateway returns+-- a description of all virtual tapes found in the VTS associated with your+-- account.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeTapeArchives.html>+module Network.AWS.StorageGateway.DescribeTapeArchives+    (+    -- * Request+      DescribeTapeArchives+    -- ** Request constructor+    , describeTapeArchives+    -- ** Request lenses+    , dtaLimit+    , dtaMarker+    , dtaTapeARNs++    -- * Response+    , DescribeTapeArchivesResponse+    -- ** Response constructor+    , describeTapeArchivesResponse+    -- ** Response lenses+    , dtarMarker+    , dtarTapeArchives+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data DescribeTapeArchives = DescribeTapeArchives+    { _dtaLimit    :: Maybe Nat+    , _dtaMarker   :: Maybe Text+    , _dtaTapeARNs :: List "TapeARNs" Text+    } deriving (Eq, Ord, Show)++-- | 'DescribeTapeArchives' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dtaLimit' @::@ 'Maybe' 'Natural'+--+-- * 'dtaMarker' @::@ 'Maybe' 'Text'+--+-- * 'dtaTapeARNs' @::@ ['Text']+--+describeTapeArchives :: DescribeTapeArchives+describeTapeArchives = DescribeTapeArchives+    { _dtaTapeARNs = mempty+    , _dtaMarker   = Nothing+    , _dtaLimit    = Nothing+    }++-- | Specifies that the number of virtual tapes descried be limited to the+-- specified number.+dtaLimit :: Lens' DescribeTapeArchives (Maybe Natural)+dtaLimit = lens _dtaLimit (\s a -> s { _dtaLimit = a }) . mapping _Nat++-- | An opaque string that indicates the position at which to begin describing+-- virtual tapes.+dtaMarker :: Lens' DescribeTapeArchives (Maybe Text)+dtaMarker = lens _dtaMarker (\s a -> s { _dtaMarker = a })++-- | Specifies one or more unique Amazon Resource Names (ARNs) that represent+-- the virtual tapes you want to describe.+dtaTapeARNs :: Lens' DescribeTapeArchives [Text]+dtaTapeARNs = lens _dtaTapeARNs (\s a -> s { _dtaTapeARNs = a }) . _List++data DescribeTapeArchivesResponse = DescribeTapeArchivesResponse+    { _dtarMarker       :: Maybe Text+    , _dtarTapeArchives :: List "TapeArchives" TapeArchive+    } deriving (Eq, Show)++-- | 'DescribeTapeArchivesResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dtarMarker' @::@ 'Maybe' 'Text'+--+-- * 'dtarTapeArchives' @::@ ['TapeArchive']+--+describeTapeArchivesResponse :: DescribeTapeArchivesResponse+describeTapeArchivesResponse = DescribeTapeArchivesResponse+    { _dtarTapeArchives = mempty+    , _dtarMarker       = Nothing+    }++-- | An opaque string that indicates the position at which the virtual tapes+-- that were fetched for description ended. Use this marker in your next+-- request to fetch the next set of virtual tapes in the virtual tape shelf+-- (VTS). If there are no more virtual tapes to describe, this field does+-- not appear in the response.+dtarMarker :: Lens' DescribeTapeArchivesResponse (Maybe Text)+dtarMarker = lens _dtarMarker (\s a -> s { _dtarMarker = a })++-- | An array of virtual tape objects in the virtual tape shelf (VTS). The+-- description includes of the Amazon Resource Name(ARN) of the virtual+-- tapes. The information returned includes the Amazon Resource Names (ARNs)+-- of the tapes, size of the tapes, status of the tapes, progress of the+-- description and tape barcode.+dtarTapeArchives :: Lens' DescribeTapeArchivesResponse [TapeArchive]+dtarTapeArchives = lens _dtarTapeArchives (\s a -> s { _dtarTapeArchives = a }) . _List++instance ToPath DescribeTapeArchives where+    toPath = const "/"++instance ToQuery DescribeTapeArchives where+    toQuery = const mempty++instance ToHeaders DescribeTapeArchives++instance ToJSON DescribeTapeArchives where+    toJSON DescribeTapeArchives{..} = object+        [ "TapeARNs" .= _dtaTapeARNs+        , "Marker"   .= _dtaMarker+        , "Limit"    .= _dtaLimit+        ]++instance AWSRequest DescribeTapeArchives where+    type Sv DescribeTapeArchives = StorageGateway+    type Rs DescribeTapeArchives = DescribeTapeArchivesResponse++    request  = post "DescribeTapeArchives"+    response = jsonResponse++instance FromJSON DescribeTapeArchivesResponse where+    parseJSON = withObject "DescribeTapeArchivesResponse" $ \o -> DescribeTapeArchivesResponse+        <$> o .:? "Marker"+        <*> o .:  "TapeArchives"++instance AWSPager DescribeTapeArchives where+    page rq rs+        | stop (rq ^. dtaMarker) = Nothing+        | otherwise = (\x -> rq & dtaMarker ?~ x)+            <$> (rs ^. dtarMarker)
+ gen/Network/AWS/StorageGateway/DescribeTapeRecoveryPoints.hs view
@@ -0,0 +1,167 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.DescribeTapeRecoveryPoints+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | Returns a list of virtual tape recovery points that are available for the+-- specified gateway-VTL. A recovery point is a point in time view of a+-- virtual tape at which all the data on the virtual tape is consistent. If+-- your gateway crashes, virtual tapes that have recovery points can be+-- recovered to a new gateway.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeTapeRecoveryPoints.html>+module Network.AWS.StorageGateway.DescribeTapeRecoveryPoints+    (+    -- * Request+      DescribeTapeRecoveryPoints+    -- ** Request constructor+    , describeTapeRecoveryPoints+    -- ** Request lenses+    , dtrpGatewayARN+    , dtrpLimit+    , dtrpMarker++    -- * Response+    , DescribeTapeRecoveryPointsResponse+    -- ** Response constructor+    , describeTapeRecoveryPointsResponse+    -- ** Response lenses+    , dtrprGatewayARN+    , dtrprMarker+    , dtrprTapeRecoveryPointInfos+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data DescribeTapeRecoveryPoints = DescribeTapeRecoveryPoints+    { _dtrpGatewayARN :: Text+    , _dtrpLimit      :: Maybe Nat+    , _dtrpMarker     :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'DescribeTapeRecoveryPoints' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dtrpGatewayARN' @::@ 'Text'+--+-- * 'dtrpLimit' @::@ 'Maybe' 'Natural'+--+-- * 'dtrpMarker' @::@ 'Maybe' 'Text'+--+describeTapeRecoveryPoints :: Text -- ^ 'dtrpGatewayARN'+                           -> DescribeTapeRecoveryPoints+describeTapeRecoveryPoints p1 = DescribeTapeRecoveryPoints+    { _dtrpGatewayARN = p1+    , _dtrpMarker     = Nothing+    , _dtrpLimit      = Nothing+    }++dtrpGatewayARN :: Lens' DescribeTapeRecoveryPoints Text+dtrpGatewayARN = lens _dtrpGatewayARN (\s a -> s { _dtrpGatewayARN = a })++-- | Specifies that the number of virtual tape recovery points that are+-- described be limited to the specified number.+dtrpLimit :: Lens' DescribeTapeRecoveryPoints (Maybe Natural)+dtrpLimit = lens _dtrpLimit (\s a -> s { _dtrpLimit = a }) . mapping _Nat++-- | An opaque string that indicates the position at which to begin describing+-- the virtual tape recovery points.+dtrpMarker :: Lens' DescribeTapeRecoveryPoints (Maybe Text)+dtrpMarker = lens _dtrpMarker (\s a -> s { _dtrpMarker = a })++data DescribeTapeRecoveryPointsResponse = DescribeTapeRecoveryPointsResponse+    { _dtrprGatewayARN             :: Maybe Text+    , _dtrprMarker                 :: Maybe Text+    , _dtrprTapeRecoveryPointInfos :: List "TapeRecoveryPointInfos" TapeRecoveryPointInfo+    } deriving (Eq, Show)++-- | 'DescribeTapeRecoveryPointsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dtrprGatewayARN' @::@ 'Maybe' 'Text'+--+-- * 'dtrprMarker' @::@ 'Maybe' 'Text'+--+-- * 'dtrprTapeRecoveryPointInfos' @::@ ['TapeRecoveryPointInfo']+--+describeTapeRecoveryPointsResponse :: DescribeTapeRecoveryPointsResponse+describeTapeRecoveryPointsResponse = DescribeTapeRecoveryPointsResponse+    { _dtrprGatewayARN             = Nothing+    , _dtrprTapeRecoveryPointInfos = mempty+    , _dtrprMarker                 = Nothing+    }++dtrprGatewayARN :: Lens' DescribeTapeRecoveryPointsResponse (Maybe Text)+dtrprGatewayARN = lens _dtrprGatewayARN (\s a -> s { _dtrprGatewayARN = a })++-- | An opaque string that indicates the position at which the virtual tape+-- recovery points that were listed for description ended. Use this marker+-- in your next request to list the next set of virtual tape recovery points+-- in the list. If there are no more recovery points to describe, this field+-- does not appear in the response.+dtrprMarker :: Lens' DescribeTapeRecoveryPointsResponse (Maybe Text)+dtrprMarker = lens _dtrprMarker (\s a -> s { _dtrprMarker = a })++-- | An array of TapeRecoveryPointInfos that are available for the specified+-- gateway.+dtrprTapeRecoveryPointInfos :: Lens' DescribeTapeRecoveryPointsResponse [TapeRecoveryPointInfo]+dtrprTapeRecoveryPointInfos =+    lens _dtrprTapeRecoveryPointInfos+        (\s a -> s { _dtrprTapeRecoveryPointInfos = a })+            . _List++instance ToPath DescribeTapeRecoveryPoints where+    toPath = const "/"++instance ToQuery DescribeTapeRecoveryPoints where+    toQuery = const mempty++instance ToHeaders DescribeTapeRecoveryPoints++instance ToJSON DescribeTapeRecoveryPoints where+    toJSON DescribeTapeRecoveryPoints{..} = object+        [ "GatewayARN" .= _dtrpGatewayARN+        , "Marker"     .= _dtrpMarker+        , "Limit"      .= _dtrpLimit+        ]++instance AWSRequest DescribeTapeRecoveryPoints where+    type Sv DescribeTapeRecoveryPoints = StorageGateway+    type Rs DescribeTapeRecoveryPoints = DescribeTapeRecoveryPointsResponse++    request  = post "DescribeTapeRecoveryPoints"+    response = jsonResponse++instance FromJSON DescribeTapeRecoveryPointsResponse where+    parseJSON = withObject "DescribeTapeRecoveryPointsResponse" $ \o -> DescribeTapeRecoveryPointsResponse+        <$> o .:? "GatewayARN"+        <*> o .:? "Marker"+        <*> o .:  "TapeRecoveryPointInfos"++instance AWSPager DescribeTapeRecoveryPoints where+    page rq rs+        | stop (rq ^. dtrpMarker) = Nothing+        | otherwise = (\x -> rq & dtrpMarker ?~ x)+            <$> (rs ^. dtrprMarker)
+ gen/Network/AWS/StorageGateway/DescribeTapes.hs view
@@ -0,0 +1,164 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.DescribeTapes+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | Returns a description of the specified Amazon Resource Name (ARN) of+-- virtual tapes. If a TapeARN is not specified, returns a description of all+-- virtual tapes associated with the specified gateway.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeTapes.html>+module Network.AWS.StorageGateway.DescribeTapes+    (+    -- * Request+      DescribeTapes+    -- ** Request constructor+    , describeTapes+    -- ** Request lenses+    , dtGatewayARN+    , dtLimit+    , dtMarker+    , dtTapeARNs++    -- * Response+    , DescribeTapesResponse+    -- ** Response constructor+    , describeTapesResponse+    -- ** Response lenses+    , dtrMarker+    , dtrTapes+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data DescribeTapes = DescribeTapes+    { _dtGatewayARN :: Text+    , _dtLimit      :: Maybe Nat+    , _dtMarker     :: Maybe Text+    , _dtTapeARNs   :: List "TapeARNs" Text+    } deriving (Eq, Ord, Show)++-- | 'DescribeTapes' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dtGatewayARN' @::@ 'Text'+--+-- * 'dtLimit' @::@ 'Maybe' 'Natural'+--+-- * 'dtMarker' @::@ 'Maybe' 'Text'+--+-- * 'dtTapeARNs' @::@ ['Text']+--+describeTapes :: Text -- ^ 'dtGatewayARN'+              -> DescribeTapes+describeTapes p1 = DescribeTapes+    { _dtGatewayARN = p1+    , _dtTapeARNs   = mempty+    , _dtMarker     = Nothing+    , _dtLimit      = Nothing+    }++dtGatewayARN :: Lens' DescribeTapes Text+dtGatewayARN = lens _dtGatewayARN (\s a -> s { _dtGatewayARN = a })++-- | Specifies that the number of virtual tapes described be limited to the+-- specified number.+dtLimit :: Lens' DescribeTapes (Maybe Natural)+dtLimit = lens _dtLimit (\s a -> s { _dtLimit = a }) . mapping _Nat++-- | A marker value, obtained in a previous call to DescribeTapes. This marker+-- indicates which page of results to retrieve. If not specified, the first+-- page of results is retrieved.+dtMarker :: Lens' DescribeTapes (Maybe Text)+dtMarker = lens _dtMarker (\s a -> s { _dtMarker = a })++-- | Specifies one or more unique Amazon Resource Names (ARNs) that represent+-- the virtual tapes you want to describe. If this parameter is not+-- specified, AWS Storage Gateway returns a description of all virtual tapes+-- associated with the specified gateway.+dtTapeARNs :: Lens' DescribeTapes [Text]+dtTapeARNs = lens _dtTapeARNs (\s a -> s { _dtTapeARNs = a }) . _List++data DescribeTapesResponse = DescribeTapesResponse+    { _dtrMarker :: Maybe Text+    , _dtrTapes  :: List "Tapes" Tape+    } deriving (Eq, Show)++-- | 'DescribeTapesResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dtrMarker' @::@ 'Maybe' 'Text'+--+-- * 'dtrTapes' @::@ ['Tape']+--+describeTapesResponse :: DescribeTapesResponse+describeTapesResponse = DescribeTapesResponse+    { _dtrTapes  = mempty+    , _dtrMarker = Nothing+    }++-- | An opaque string which can be used as part of a subsequent DescribeTapes+-- call to retrieve the next page of results. If a response does not contain+-- a marker, then there are no more results to be retrieved.+dtrMarker :: Lens' DescribeTapesResponse (Maybe Text)+dtrMarker = lens _dtrMarker (\s a -> s { _dtrMarker = a })++-- | An array of virtual tape descriptions.+dtrTapes :: Lens' DescribeTapesResponse [Tape]+dtrTapes = lens _dtrTapes (\s a -> s { _dtrTapes = a }) . _List++instance ToPath DescribeTapes where+    toPath = const "/"++instance ToQuery DescribeTapes where+    toQuery = const mempty++instance ToHeaders DescribeTapes++instance ToJSON DescribeTapes where+    toJSON DescribeTapes{..} = object+        [ "GatewayARN" .= _dtGatewayARN+        , "TapeARNs"   .= _dtTapeARNs+        , "Marker"     .= _dtMarker+        , "Limit"      .= _dtLimit+        ]++instance AWSRequest DescribeTapes where+    type Sv DescribeTapes = StorageGateway+    type Rs DescribeTapes = DescribeTapesResponse++    request  = post "DescribeTapes"+    response = jsonResponse++instance FromJSON DescribeTapesResponse where+    parseJSON = withObject "DescribeTapesResponse" $ \o -> DescribeTapesResponse+        <$> o .:? "Marker"+        <*> o .:  "Tapes"++instance AWSPager DescribeTapes where+    page rq rs+        | stop (rq ^. dtMarker) = Nothing+        | otherwise = (\x -> rq & dtMarker ?~ x)+            <$> (rs ^. dtrMarker)
+ gen/Network/AWS/StorageGateway/DescribeUploadBuffer.hs view
@@ -0,0 +1,142 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.DescribeUploadBuffer+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation returns information about the upload buffer of a gateway.+-- This operation is supported for both the gateway-stored and gateway-cached+-- volume architectures. The response includes disk IDs that are configured as+-- upload buffer space, and it includes the amount of upload buffer space+-- allocated and used.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeUploadBuffer.html>+module Network.AWS.StorageGateway.DescribeUploadBuffer+    (+    -- * Request+      DescribeUploadBuffer+    -- ** Request constructor+    , describeUploadBuffer+    -- ** Request lenses+    , dubGatewayARN++    -- * Response+    , DescribeUploadBufferResponse+    -- ** Response constructor+    , describeUploadBufferResponse+    -- ** Response lenses+    , dubrDiskIds+    , dubrGatewayARN+    , dubrUploadBufferAllocatedInBytes+    , dubrUploadBufferUsedInBytes+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++newtype DescribeUploadBuffer = DescribeUploadBuffer+    { _dubGatewayARN :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DescribeUploadBuffer' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dubGatewayARN' @::@ 'Text'+--+describeUploadBuffer :: Text -- ^ 'dubGatewayARN'+                     -> DescribeUploadBuffer+describeUploadBuffer p1 = DescribeUploadBuffer+    { _dubGatewayARN = p1+    }++dubGatewayARN :: Lens' DescribeUploadBuffer Text+dubGatewayARN = lens _dubGatewayARN (\s a -> s { _dubGatewayARN = a })++data DescribeUploadBufferResponse = DescribeUploadBufferResponse+    { _dubrDiskIds                      :: List "DiskIds" Text+    , _dubrGatewayARN                   :: Maybe Text+    , _dubrUploadBufferAllocatedInBytes :: Maybe Integer+    , _dubrUploadBufferUsedInBytes      :: Maybe Integer+    } deriving (Eq, Ord, Show)++-- | 'DescribeUploadBufferResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dubrDiskIds' @::@ ['Text']+--+-- * 'dubrGatewayARN' @::@ 'Maybe' 'Text'+--+-- * 'dubrUploadBufferAllocatedInBytes' @::@ 'Maybe' 'Integer'+--+-- * 'dubrUploadBufferUsedInBytes' @::@ 'Maybe' 'Integer'+--+describeUploadBufferResponse :: DescribeUploadBufferResponse+describeUploadBufferResponse = DescribeUploadBufferResponse+    { _dubrGatewayARN                   = Nothing+    , _dubrDiskIds                      = mempty+    , _dubrUploadBufferUsedInBytes      = Nothing+    , _dubrUploadBufferAllocatedInBytes = Nothing+    }++dubrDiskIds :: Lens' DescribeUploadBufferResponse [Text]+dubrDiskIds = lens _dubrDiskIds (\s a -> s { _dubrDiskIds = a }) . _List++dubrGatewayARN :: Lens' DescribeUploadBufferResponse (Maybe Text)+dubrGatewayARN = lens _dubrGatewayARN (\s a -> s { _dubrGatewayARN = a })++dubrUploadBufferAllocatedInBytes :: Lens' DescribeUploadBufferResponse (Maybe Integer)+dubrUploadBufferAllocatedInBytes =+    lens _dubrUploadBufferAllocatedInBytes+        (\s a -> s { _dubrUploadBufferAllocatedInBytes = a })++dubrUploadBufferUsedInBytes :: Lens' DescribeUploadBufferResponse (Maybe Integer)+dubrUploadBufferUsedInBytes =+    lens _dubrUploadBufferUsedInBytes+        (\s a -> s { _dubrUploadBufferUsedInBytes = a })++instance ToPath DescribeUploadBuffer where+    toPath = const "/"++instance ToQuery DescribeUploadBuffer where+    toQuery = const mempty++instance ToHeaders DescribeUploadBuffer++instance ToJSON DescribeUploadBuffer where+    toJSON DescribeUploadBuffer{..} = object+        [ "GatewayARN" .= _dubGatewayARN+        ]++instance AWSRequest DescribeUploadBuffer where+    type Sv DescribeUploadBuffer = StorageGateway+    type Rs DescribeUploadBuffer = DescribeUploadBufferResponse++    request  = post "DescribeUploadBuffer"+    response = jsonResponse++instance FromJSON DescribeUploadBufferResponse where+    parseJSON = withObject "DescribeUploadBufferResponse" $ \o -> DescribeUploadBufferResponse+        <$> o .:  "DiskIds"+        <*> o .:? "GatewayARN"+        <*> o .:? "UploadBufferAllocatedInBytes"+        <*> o .:? "UploadBufferUsedInBytes"
+ gen/Network/AWS/StorageGateway/DescribeVTLDevices.hs view
@@ -0,0 +1,174 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.DescribeVTLDevices+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | Returns a description of virtual tape library (VTL) devices for the+-- specified gateway. In the response, AWS Storage Gateway returns VTL device+-- information. The list of VTL devices must be from one gateway.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeVTLDevices.html>+module Network.AWS.StorageGateway.DescribeVTLDevices+    (+    -- * Request+      DescribeVTLDevices+    -- ** Request constructor+    , describeVTLDevices+    -- ** Request lenses+    , dvtldGatewayARN+    , dvtldLimit+    , dvtldMarker+    , dvtldVTLDeviceARNs++    -- * Response+    , DescribeVTLDevicesResponse+    -- ** Response constructor+    , describeVTLDevicesResponse+    -- ** Response lenses+    , dvtldrGatewayARN+    , dvtldrMarker+    , dvtldrVTLDevices+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data DescribeVTLDevices = DescribeVTLDevices+    { _dvtldGatewayARN    :: Text+    , _dvtldLimit         :: Maybe Nat+    , _dvtldMarker        :: Maybe Text+    , _dvtldVTLDeviceARNs :: List "VTLDeviceARNs" Text+    } deriving (Eq, Ord, Show)++-- | 'DescribeVTLDevices' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dvtldGatewayARN' @::@ 'Text'+--+-- * 'dvtldLimit' @::@ 'Maybe' 'Natural'+--+-- * 'dvtldMarker' @::@ 'Maybe' 'Text'+--+-- * 'dvtldVTLDeviceARNs' @::@ ['Text']+--+describeVTLDevices :: Text -- ^ 'dvtldGatewayARN'+                   -> DescribeVTLDevices+describeVTLDevices p1 = DescribeVTLDevices+    { _dvtldGatewayARN    = p1+    , _dvtldVTLDeviceARNs = mempty+    , _dvtldMarker        = Nothing+    , _dvtldLimit         = Nothing+    }++dvtldGatewayARN :: Lens' DescribeVTLDevices Text+dvtldGatewayARN = lens _dvtldGatewayARN (\s a -> s { _dvtldGatewayARN = a })++-- | Specifies that the number of VTL devices described be limited to the+-- specified number.+dvtldLimit :: Lens' DescribeVTLDevices (Maybe Natural)+dvtldLimit = lens _dvtldLimit (\s a -> s { _dvtldLimit = a }) . mapping _Nat++-- | An opaque string that indicates the position at which to begin describing+-- the VTL devices.+dvtldMarker :: Lens' DescribeVTLDevices (Maybe Text)+dvtldMarker = lens _dvtldMarker (\s a -> s { _dvtldMarker = a })++-- | An array of strings, where each string represents the Amazon Resource+-- Name (ARN) of a VTL device.+dvtldVTLDeviceARNs :: Lens' DescribeVTLDevices [Text]+dvtldVTLDeviceARNs =+    lens _dvtldVTLDeviceARNs (\s a -> s { _dvtldVTLDeviceARNs = a })+        . _List++data DescribeVTLDevicesResponse = DescribeVTLDevicesResponse+    { _dvtldrGatewayARN :: Maybe Text+    , _dvtldrMarker     :: Maybe Text+    , _dvtldrVTLDevices :: List "VTLDevices" VTLDevice+    } deriving (Eq, Show)++-- | 'DescribeVTLDevicesResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dvtldrGatewayARN' @::@ 'Maybe' 'Text'+--+-- * 'dvtldrMarker' @::@ 'Maybe' 'Text'+--+-- * 'dvtldrVTLDevices' @::@ ['VTLDevice']+--+describeVTLDevicesResponse :: DescribeVTLDevicesResponse+describeVTLDevicesResponse = DescribeVTLDevicesResponse+    { _dvtldrGatewayARN = Nothing+    , _dvtldrVTLDevices = mempty+    , _dvtldrMarker     = Nothing+    }++dvtldrGatewayARN :: Lens' DescribeVTLDevicesResponse (Maybe Text)+dvtldrGatewayARN = lens _dvtldrGatewayARN (\s a -> s { _dvtldrGatewayARN = a })++-- | An opaque string that indicates the position at which the VTL devices+-- that were fetched for description ended. Use the marker in your next+-- request to fetch the next set of VTL devices in the list. If there are no+-- more VTL devices to describe, this field does not appear in the response.+dvtldrMarker :: Lens' DescribeVTLDevicesResponse (Maybe Text)+dvtldrMarker = lens _dvtldrMarker (\s a -> s { _dvtldrMarker = a })++-- | An array of VTL device objects composed of the Amazon Resource Name(ARN)+-- of the VTL devices.+dvtldrVTLDevices :: Lens' DescribeVTLDevicesResponse [VTLDevice]+dvtldrVTLDevices = lens _dvtldrVTLDevices (\s a -> s { _dvtldrVTLDevices = a }) . _List++instance ToPath DescribeVTLDevices where+    toPath = const "/"++instance ToQuery DescribeVTLDevices where+    toQuery = const mempty++instance ToHeaders DescribeVTLDevices++instance ToJSON DescribeVTLDevices where+    toJSON DescribeVTLDevices{..} = object+        [ "GatewayARN"    .= _dvtldGatewayARN+        , "VTLDeviceARNs" .= _dvtldVTLDeviceARNs+        , "Marker"        .= _dvtldMarker+        , "Limit"         .= _dvtldLimit+        ]++instance AWSRequest DescribeVTLDevices where+    type Sv DescribeVTLDevices = StorageGateway+    type Rs DescribeVTLDevices = DescribeVTLDevicesResponse++    request  = post "DescribeVTLDevices"+    response = jsonResponse++instance FromJSON DescribeVTLDevicesResponse where+    parseJSON = withObject "DescribeVTLDevicesResponse" $ \o -> DescribeVTLDevicesResponse+        <$> o .:? "GatewayARN"+        <*> o .:? "Marker"+        <*> o .:  "VTLDevices"++instance AWSPager DescribeVTLDevices where+    page rq rs+        | stop (rq ^. dvtldMarker) = Nothing+        | otherwise = (\x -> rq & dvtldMarker ?~ x)+            <$> (rs ^. dvtldrMarker)
+ gen/Network/AWS/StorageGateway/DescribeWorkingStorage.hs view
@@ -0,0 +1,151 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.DescribeWorkingStorage+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation returns information about the working storage of a gateway.+-- This operation is supported only for the gateway-stored volume+-- architecture. This operation is deprecated in cached-volumes API version+-- (20120630). Use DescribeUploadBuffer instead. The response includes disk+-- IDs that are configured as working storage, and it includes the amount of+-- working storage allocated and used.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DescribeWorkingStorage.html>+module Network.AWS.StorageGateway.DescribeWorkingStorage+    (+    -- * Request+      DescribeWorkingStorage+    -- ** Request constructor+    , describeWorkingStorage+    -- ** Request lenses+    , dwsGatewayARN++    -- * Response+    , DescribeWorkingStorageResponse+    -- ** Response constructor+    , describeWorkingStorageResponse+    -- ** Response lenses+    , dwsrDiskIds+    , dwsrGatewayARN+    , dwsrWorkingStorageAllocatedInBytes+    , dwsrWorkingStorageUsedInBytes+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++newtype DescribeWorkingStorage = DescribeWorkingStorage+    { _dwsGatewayARN :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DescribeWorkingStorage' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dwsGatewayARN' @::@ 'Text'+--+describeWorkingStorage :: Text -- ^ 'dwsGatewayARN'+                       -> DescribeWorkingStorage+describeWorkingStorage p1 = DescribeWorkingStorage+    { _dwsGatewayARN = p1+    }++dwsGatewayARN :: Lens' DescribeWorkingStorage Text+dwsGatewayARN = lens _dwsGatewayARN (\s a -> s { _dwsGatewayARN = a })++data DescribeWorkingStorageResponse = DescribeWorkingStorageResponse+    { _dwsrDiskIds                        :: List "DiskIds" Text+    , _dwsrGatewayARN                     :: Maybe Text+    , _dwsrWorkingStorageAllocatedInBytes :: Maybe Integer+    , _dwsrWorkingStorageUsedInBytes      :: Maybe Integer+    } deriving (Eq, Ord, Show)++-- | 'DescribeWorkingStorageResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dwsrDiskIds' @::@ ['Text']+--+-- * 'dwsrGatewayARN' @::@ 'Maybe' 'Text'+--+-- * 'dwsrWorkingStorageAllocatedInBytes' @::@ 'Maybe' 'Integer'+--+-- * 'dwsrWorkingStorageUsedInBytes' @::@ 'Maybe' 'Integer'+--+describeWorkingStorageResponse :: DescribeWorkingStorageResponse+describeWorkingStorageResponse = DescribeWorkingStorageResponse+    { _dwsrGatewayARN                     = Nothing+    , _dwsrDiskIds                        = mempty+    , _dwsrWorkingStorageUsedInBytes      = Nothing+    , _dwsrWorkingStorageAllocatedInBytes = Nothing+    }++-- | An array of the gateway's local disk IDs that are configured as working+-- storage. Each local disk ID is specified as a string (minimum length of 1+-- and maximum length of 300). If no local disks are configured as working+-- storage, then the DiskIds array is empty.+dwsrDiskIds :: Lens' DescribeWorkingStorageResponse [Text]+dwsrDiskIds = lens _dwsrDiskIds (\s a -> s { _dwsrDiskIds = a }) . _List++dwsrGatewayARN :: Lens' DescribeWorkingStorageResponse (Maybe Text)+dwsrGatewayARN = lens _dwsrGatewayARN (\s a -> s { _dwsrGatewayARN = a })++-- | The total working storage in bytes allocated for the gateway. If no+-- working storage is configured for the gateway, this field returns 0.+dwsrWorkingStorageAllocatedInBytes :: Lens' DescribeWorkingStorageResponse (Maybe Integer)+dwsrWorkingStorageAllocatedInBytes =+    lens _dwsrWorkingStorageAllocatedInBytes+        (\s a -> s { _dwsrWorkingStorageAllocatedInBytes = a })++-- | The total working storage in bytes in use by the gateway. If no working+-- storage is configured for the gateway, this field returns 0.+dwsrWorkingStorageUsedInBytes :: Lens' DescribeWorkingStorageResponse (Maybe Integer)+dwsrWorkingStorageUsedInBytes =+    lens _dwsrWorkingStorageUsedInBytes+        (\s a -> s { _dwsrWorkingStorageUsedInBytes = a })++instance ToPath DescribeWorkingStorage where+    toPath = const "/"++instance ToQuery DescribeWorkingStorage where+    toQuery = const mempty++instance ToHeaders DescribeWorkingStorage++instance ToJSON DescribeWorkingStorage where+    toJSON DescribeWorkingStorage{..} = object+        [ "GatewayARN" .= _dwsGatewayARN+        ]++instance AWSRequest DescribeWorkingStorage where+    type Sv DescribeWorkingStorage = StorageGateway+    type Rs DescribeWorkingStorage = DescribeWorkingStorageResponse++    request  = post "DescribeWorkingStorage"+    response = jsonResponse++instance FromJSON DescribeWorkingStorageResponse where+    parseJSON = withObject "DescribeWorkingStorageResponse" $ \o -> DescribeWorkingStorageResponse+        <$> o .:  "DiskIds"+        <*> o .:? "GatewayARN"+        <*> o .:? "WorkingStorageAllocatedInBytes"+        <*> o .:? "WorkingStorageUsedInBytes"
+ gen/Network/AWS/StorageGateway/DisableGateway.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.DisableGateway+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | Disables a gateway when the gateway is no longer functioning. For example,+-- if your gateway VM is damaged, you can disable the gateway so you can+-- recover virtual tapes. Use this operation for a gateway-VTL that is not+-- reachable or not functioning. Once a gateway is disabled it cannot be+-- enabled.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_DisableGateway.html>+module Network.AWS.StorageGateway.DisableGateway+    (+    -- * Request+      DisableGateway+    -- ** Request constructor+    , disableGateway+    -- ** Request lenses+    , dg1GatewayARN++    -- * Response+    , DisableGatewayResponse+    -- ** Response constructor+    , disableGatewayResponse+    -- ** Response lenses+    , dgr1GatewayARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++newtype DisableGateway = DisableGateway+    { _dg1GatewayARN :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DisableGateway' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dg1GatewayARN' @::@ 'Text'+--+disableGateway :: Text -- ^ 'dg1GatewayARN'+               -> DisableGateway+disableGateway p1 = DisableGateway+    { _dg1GatewayARN = p1+    }++dg1GatewayARN :: Lens' DisableGateway Text+dg1GatewayARN = lens _dg1GatewayARN (\s a -> s { _dg1GatewayARN = a })++newtype DisableGatewayResponse = DisableGatewayResponse+    { _dgr1GatewayARN :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'DisableGatewayResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dgr1GatewayARN' @::@ 'Maybe' 'Text'+--+disableGatewayResponse :: DisableGatewayResponse+disableGatewayResponse = DisableGatewayResponse+    { _dgr1GatewayARN = Nothing+    }++-- | The unique Amazon Resource Name of the disabled gateway.+dgr1GatewayARN :: Lens' DisableGatewayResponse (Maybe Text)+dgr1GatewayARN = lens _dgr1GatewayARN (\s a -> s { _dgr1GatewayARN = a })++instance ToPath DisableGateway where+    toPath = const "/"++instance ToQuery DisableGateway where+    toQuery = const mempty++instance ToHeaders DisableGateway++instance ToJSON DisableGateway where+    toJSON DisableGateway{..} = object+        [ "GatewayARN" .= _dg1GatewayARN+        ]++instance AWSRequest DisableGateway where+    type Sv DisableGateway = StorageGateway+    type Rs DisableGateway = DisableGatewayResponse++    request  = post "DisableGateway"+    response = jsonResponse++instance FromJSON DisableGatewayResponse where+    parseJSON = withObject "DisableGatewayResponse" $ \o -> DisableGatewayResponse+        <$> o .:? "GatewayARN"
+ gen/Network/AWS/StorageGateway/ListGateways.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.ListGateways+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation lists gateways owned by an AWS account in a region specified+-- in the request. The returned list is ordered by gateway Amazon Resource+-- Name (ARN). By default, the operation returns a maximum of 100 gateways.+-- This operation supports pagination that allows you to optionally reduce the+-- number of gateways returned in a response. If you have more gateways than+-- are returned in a response-that is, the response returns only a truncated+-- list of your gateways-the response contains a marker that you can specify+-- in your next request to fetch the next page of gateways.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_ListGateways.html>+module Network.AWS.StorageGateway.ListGateways+    (+    -- * Request+      ListGateways+    -- ** Request constructor+    , listGateways+    -- ** Request lenses+    , lgLimit+    , lgMarker++    -- * Response+    , ListGatewaysResponse+    -- ** Response constructor+    , listGatewaysResponse+    -- ** Response lenses+    , lgrGateways+    , lgrMarker+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data ListGateways = ListGateways+    { _lgLimit  :: Maybe Nat+    , _lgMarker :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'ListGateways' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'lgLimit' @::@ 'Maybe' 'Natural'+--+-- * 'lgMarker' @::@ 'Maybe' 'Text'+--+listGateways :: ListGateways+listGateways = ListGateways+    { _lgMarker = Nothing+    , _lgLimit  = Nothing+    }++-- | Specifies that the list of gateways returned be limited to the specified+-- number of items.+lgLimit :: Lens' ListGateways (Maybe Natural)+lgLimit = lens _lgLimit (\s a -> s { _lgLimit = a }) . mapping _Nat++-- | An opaque string that indicates the position at which to begin the+-- returned list of gateways.+lgMarker :: Lens' ListGateways (Maybe Text)+lgMarker = lens _lgMarker (\s a -> s { _lgMarker = a })++data ListGatewaysResponse = ListGatewaysResponse+    { _lgrGateways :: List "Gateways" GatewayInfo+    , _lgrMarker   :: Maybe Text+    } deriving (Eq, Show)++-- | 'ListGatewaysResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'lgrGateways' @::@ ['GatewayInfo']+--+-- * 'lgrMarker' @::@ 'Maybe' 'Text'+--+listGatewaysResponse :: ListGatewaysResponse+listGatewaysResponse = ListGatewaysResponse+    { _lgrGateways = mempty+    , _lgrMarker   = Nothing+    }++lgrGateways :: Lens' ListGatewaysResponse [GatewayInfo]+lgrGateways = lens _lgrGateways (\s a -> s { _lgrGateways = a }) . _List++lgrMarker :: Lens' ListGatewaysResponse (Maybe Text)+lgrMarker = lens _lgrMarker (\s a -> s { _lgrMarker = a })++instance ToPath ListGateways where+    toPath = const "/"++instance ToQuery ListGateways where+    toQuery = const mempty++instance ToHeaders ListGateways++instance ToJSON ListGateways where+    toJSON ListGateways{..} = object+        [ "Marker" .= _lgMarker+        , "Limit"  .= _lgLimit+        ]++instance AWSRequest ListGateways where+    type Sv ListGateways = StorageGateway+    type Rs ListGateways = ListGatewaysResponse++    request  = post "ListGateways"+    response = jsonResponse++instance FromJSON ListGatewaysResponse where+    parseJSON = withObject "ListGatewaysResponse" $ \o -> ListGatewaysResponse+        <$> o .:  "Gateways"+        <*> o .:? "Marker"++instance AWSPager ListGateways where+    page rq rs+        | stop (rq ^. lgMarker) = Nothing+        | otherwise = (\x -> rq & lgMarker ?~ x)+            <$> (rs ^. lgrMarker)
+ gen/Network/AWS/StorageGateway/ListLocalDisks.hs view
@@ -0,0 +1,120 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.ListLocalDisks+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation returns a list of the local disks of a gateway. To specify+-- which gateway to describe you use the Amazon Resource Name (ARN) of the+-- gateway in the body of the request. The request returns all disks,+-- specifying which are configured as working storage, stored volume or not+-- configured at all.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_ListLocalDisks.html>+module Network.AWS.StorageGateway.ListLocalDisks+    (+    -- * Request+      ListLocalDisks+    -- ** Request constructor+    , listLocalDisks+    -- ** Request lenses+    , lldGatewayARN++    -- * Response+    , ListLocalDisksResponse+    -- ** Response constructor+    , listLocalDisksResponse+    -- ** Response lenses+    , lldrDisks+    , lldrGatewayARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++newtype ListLocalDisks = ListLocalDisks+    { _lldGatewayARN :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'ListLocalDisks' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'lldGatewayARN' @::@ 'Text'+--+listLocalDisks :: Text -- ^ 'lldGatewayARN'+               -> ListLocalDisks+listLocalDisks p1 = ListLocalDisks+    { _lldGatewayARN = p1+    }++lldGatewayARN :: Lens' ListLocalDisks Text+lldGatewayARN = lens _lldGatewayARN (\s a -> s { _lldGatewayARN = a })++data ListLocalDisksResponse = ListLocalDisksResponse+    { _lldrDisks      :: List "Disks" Disk+    , _lldrGatewayARN :: Maybe Text+    } deriving (Eq, Show)++-- | 'ListLocalDisksResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'lldrDisks' @::@ ['Disk']+--+-- * 'lldrGatewayARN' @::@ 'Maybe' 'Text'+--+listLocalDisksResponse :: ListLocalDisksResponse+listLocalDisksResponse = ListLocalDisksResponse+    { _lldrGatewayARN = Nothing+    , _lldrDisks      = mempty+    }++lldrDisks :: Lens' ListLocalDisksResponse [Disk]+lldrDisks = lens _lldrDisks (\s a -> s { _lldrDisks = a }) . _List++lldrGatewayARN :: Lens' ListLocalDisksResponse (Maybe Text)+lldrGatewayARN = lens _lldrGatewayARN (\s a -> s { _lldrGatewayARN = a })++instance ToPath ListLocalDisks where+    toPath = const "/"++instance ToQuery ListLocalDisks where+    toQuery = const mempty++instance ToHeaders ListLocalDisks++instance ToJSON ListLocalDisks where+    toJSON ListLocalDisks{..} = object+        [ "GatewayARN" .= _lldGatewayARN+        ]++instance AWSRequest ListLocalDisks where+    type Sv ListLocalDisks = StorageGateway+    type Rs ListLocalDisks = ListLocalDisksResponse++    request  = post "ListLocalDisks"+    response = jsonResponse++instance FromJSON ListLocalDisksResponse where+    parseJSON = withObject "ListLocalDisksResponse" $ \o -> ListLocalDisksResponse+        <$> o .:  "Disks"+        <*> o .:? "GatewayARN"
+ gen/Network/AWS/StorageGateway/ListVolumeRecoveryPoints.hs view
@@ -0,0 +1,124 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.ListVolumeRecoveryPoints+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation lists the recovery points for a specified gateway. This+-- operation is supported only for the gateway-cached volume architecture.+-- Each gateway-cached volume has one recovery point. A volume recovery point+-- is a point in time at which all data of the volume is consistent and from+-- which you can create a snapshot. To create a snapshot from a volume+-- recovery point use the CreateSnapshotFromVolumeRecoveryPoint operation.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_ListVolumeRecoveryPoints.html>+module Network.AWS.StorageGateway.ListVolumeRecoveryPoints+    (+    -- * Request+      ListVolumeRecoveryPoints+    -- ** Request constructor+    , listVolumeRecoveryPoints+    -- ** Request lenses+    , lvrpGatewayARN++    -- * Response+    , ListVolumeRecoveryPointsResponse+    -- ** Response constructor+    , listVolumeRecoveryPointsResponse+    -- ** Response lenses+    , lvrprGatewayARN+    , lvrprVolumeRecoveryPointInfos+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++newtype ListVolumeRecoveryPoints = ListVolumeRecoveryPoints+    { _lvrpGatewayARN :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'ListVolumeRecoveryPoints' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'lvrpGatewayARN' @::@ 'Text'+--+listVolumeRecoveryPoints :: Text -- ^ 'lvrpGatewayARN'+                         -> ListVolumeRecoveryPoints+listVolumeRecoveryPoints p1 = ListVolumeRecoveryPoints+    { _lvrpGatewayARN = p1+    }++lvrpGatewayARN :: Lens' ListVolumeRecoveryPoints Text+lvrpGatewayARN = lens _lvrpGatewayARN (\s a -> s { _lvrpGatewayARN = a })++data ListVolumeRecoveryPointsResponse = ListVolumeRecoveryPointsResponse+    { _lvrprGatewayARN               :: Maybe Text+    , _lvrprVolumeRecoveryPointInfos :: List "VolumeRecoveryPointInfos" VolumeRecoveryPointInfo+    } deriving (Eq, Show)++-- | 'ListVolumeRecoveryPointsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'lvrprGatewayARN' @::@ 'Maybe' 'Text'+--+-- * 'lvrprVolumeRecoveryPointInfos' @::@ ['VolumeRecoveryPointInfo']+--+listVolumeRecoveryPointsResponse :: ListVolumeRecoveryPointsResponse+listVolumeRecoveryPointsResponse = ListVolumeRecoveryPointsResponse+    { _lvrprGatewayARN               = Nothing+    , _lvrprVolumeRecoveryPointInfos = mempty+    }++lvrprGatewayARN :: Lens' ListVolumeRecoveryPointsResponse (Maybe Text)+lvrprGatewayARN = lens _lvrprGatewayARN (\s a -> s { _lvrprGatewayARN = a })++lvrprVolumeRecoveryPointInfos :: Lens' ListVolumeRecoveryPointsResponse [VolumeRecoveryPointInfo]+lvrprVolumeRecoveryPointInfos =+    lens _lvrprVolumeRecoveryPointInfos+        (\s a -> s { _lvrprVolumeRecoveryPointInfos = a })+            . _List++instance ToPath ListVolumeRecoveryPoints where+    toPath = const "/"++instance ToQuery ListVolumeRecoveryPoints where+    toQuery = const mempty++instance ToHeaders ListVolumeRecoveryPoints++instance ToJSON ListVolumeRecoveryPoints where+    toJSON ListVolumeRecoveryPoints{..} = object+        [ "GatewayARN" .= _lvrpGatewayARN+        ]++instance AWSRequest ListVolumeRecoveryPoints where+    type Sv ListVolumeRecoveryPoints = StorageGateway+    type Rs ListVolumeRecoveryPoints = ListVolumeRecoveryPointsResponse++    request  = post "ListVolumeRecoveryPoints"+    response = jsonResponse++instance FromJSON ListVolumeRecoveryPointsResponse where+    parseJSON = withObject "ListVolumeRecoveryPointsResponse" $ \o -> ListVolumeRecoveryPointsResponse+        <$> o .:? "GatewayARN"+        <*> o .:  "VolumeRecoveryPointInfos"
+ gen/Network/AWS/StorageGateway/ListVolumes.hs view
@@ -0,0 +1,162 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.ListVolumes+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation lists the iSCSI stored volumes of a gateway. Results are+-- sorted by volume ARN. The response includes only the volume ARNs. If you+-- want additional volume information, use the DescribeStorediSCSIVolumes API.+-- The operation supports pagination. By default, the operation returns a+-- maximum of up to 100 volumes. You can optionally specify the Limit field in+-- the body to limit the number of volumes in the response. If the number of+-- volumes returned in the response is truncated, the response includes a+-- Marker field. You can use this Marker value in your subsequent request to+-- retrieve the next set of volumes.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_ListVolumes.html>+module Network.AWS.StorageGateway.ListVolumes+    (+    -- * Request+      ListVolumes+    -- ** Request constructor+    , listVolumes+    -- ** Request lenses+    , lvGatewayARN+    , lvLimit+    , lvMarker++    -- * Response+    , ListVolumesResponse+    -- ** Response constructor+    , listVolumesResponse+    -- ** Response lenses+    , lvrGatewayARN+    , lvrMarker+    , lvrVolumeInfos+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data ListVolumes = ListVolumes+    { _lvGatewayARN :: Text+    , _lvLimit      :: Maybe Nat+    , _lvMarker     :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'ListVolumes' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'lvGatewayARN' @::@ 'Text'+--+-- * 'lvLimit' @::@ 'Maybe' 'Natural'+--+-- * 'lvMarker' @::@ 'Maybe' 'Text'+--+listVolumes :: Text -- ^ 'lvGatewayARN'+            -> ListVolumes+listVolumes p1 = ListVolumes+    { _lvGatewayARN = p1+    , _lvMarker     = Nothing+    , _lvLimit      = Nothing+    }++lvGatewayARN :: Lens' ListVolumes Text+lvGatewayARN = lens _lvGatewayARN (\s a -> s { _lvGatewayARN = a })++-- | Specifies that the list of volumes returned be limited to the specified+-- number of items.+lvLimit :: Lens' ListVolumes (Maybe Natural)+lvLimit = lens _lvLimit (\s a -> s { _lvLimit = a }) . mapping _Nat++-- | A string that indicates the position at which to begin the returned list+-- of volumes. Obtain the marker from the response of a previous List iSCSI+-- Volumes request.+lvMarker :: Lens' ListVolumes (Maybe Text)+lvMarker = lens _lvMarker (\s a -> s { _lvMarker = a })++data ListVolumesResponse = ListVolumesResponse+    { _lvrGatewayARN  :: Maybe Text+    , _lvrMarker      :: Maybe Text+    , _lvrVolumeInfos :: List "VolumeInfos" VolumeInfo+    } deriving (Eq, Show)++-- | 'ListVolumesResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'lvrGatewayARN' @::@ 'Maybe' 'Text'+--+-- * 'lvrMarker' @::@ 'Maybe' 'Text'+--+-- * 'lvrVolumeInfos' @::@ ['VolumeInfo']+--+listVolumesResponse :: ListVolumesResponse+listVolumesResponse = ListVolumesResponse+    { _lvrGatewayARN  = Nothing+    , _lvrMarker      = Nothing+    , _lvrVolumeInfos = mempty+    }++lvrGatewayARN :: Lens' ListVolumesResponse (Maybe Text)+lvrGatewayARN = lens _lvrGatewayARN (\s a -> s { _lvrGatewayARN = a })++lvrMarker :: Lens' ListVolumesResponse (Maybe Text)+lvrMarker = lens _lvrMarker (\s a -> s { _lvrMarker = a })++lvrVolumeInfos :: Lens' ListVolumesResponse [VolumeInfo]+lvrVolumeInfos = lens _lvrVolumeInfos (\s a -> s { _lvrVolumeInfos = a }) . _List++instance ToPath ListVolumes where+    toPath = const "/"++instance ToQuery ListVolumes where+    toQuery = const mempty++instance ToHeaders ListVolumes++instance ToJSON ListVolumes where+    toJSON ListVolumes{..} = object+        [ "GatewayARN" .= _lvGatewayARN+        , "Marker"     .= _lvMarker+        , "Limit"      .= _lvLimit+        ]++instance AWSRequest ListVolumes where+    type Sv ListVolumes = StorageGateway+    type Rs ListVolumes = ListVolumesResponse++    request  = post "ListVolumes"+    response = jsonResponse++instance FromJSON ListVolumesResponse where+    parseJSON = withObject "ListVolumesResponse" $ \o -> ListVolumesResponse+        <$> o .:? "GatewayARN"+        <*> o .:? "Marker"+        <*> o .:  "VolumeInfos"++instance AWSPager ListVolumes where+    page rq rs+        | stop (rq ^. lvMarker) = Nothing+        | otherwise = (\x -> rq & lvMarker ?~ x)+            <$> (rs ^. lvrMarker)
+ gen/Network/AWS/StorageGateway/RetrieveTapeArchive.hs view
@@ -0,0 +1,130 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.RetrieveTapeArchive+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | Retrieves an archived virtual tape from the virtual tape shelf (VTS) to a+-- gateway-VTL. Virtual tapes archived in the VTS are not associated with any+-- gateway. However after a tape is retrieved, it is associated with a+-- gateway, even though it is also listed in the VTS. Once a tape is+-- successfully retrieved to a gateway, it cannot be retrieved again to+-- another gateway. You must archive the tape again before you can retrieve it+-- to another gateway.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_RetrieveTapeArchive.html>+module Network.AWS.StorageGateway.RetrieveTapeArchive+    (+    -- * Request+      RetrieveTapeArchive+    -- ** Request constructor+    , retrieveTapeArchive+    -- ** Request lenses+    , rtaGatewayARN+    , rtaTapeARN++    -- * Response+    , RetrieveTapeArchiveResponse+    -- ** Response constructor+    , retrieveTapeArchiveResponse+    -- ** Response lenses+    , rtarTapeARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data RetrieveTapeArchive = RetrieveTapeArchive+    { _rtaGatewayARN :: Text+    , _rtaTapeARN    :: Text+    } deriving (Eq, Ord, Show)++-- | 'RetrieveTapeArchive' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rtaGatewayARN' @::@ 'Text'+--+-- * 'rtaTapeARN' @::@ 'Text'+--+retrieveTapeArchive :: Text -- ^ 'rtaTapeARN'+                    -> Text -- ^ 'rtaGatewayARN'+                    -> RetrieveTapeArchive+retrieveTapeArchive p1 p2 = RetrieveTapeArchive+    { _rtaTapeARN    = p1+    , _rtaGatewayARN = p2+    }++-- | The Amazon Resource Name (ARN) of the gateway you want to retrieve the+-- virtual tape to. Use the ListGateways operation to return a list of+-- gateways for your account and region. You retrieve archived virtual tapes+-- to only one gateway and the gateway must be a gateway-VTL.+rtaGatewayARN :: Lens' RetrieveTapeArchive Text+rtaGatewayARN = lens _rtaGatewayARN (\s a -> s { _rtaGatewayARN = a })++-- | The Amazon Resource Name (ARN) of the virtual tape you want to retrieve+-- from the virtual tape shelf (VTS).+rtaTapeARN :: Lens' RetrieveTapeArchive Text+rtaTapeARN = lens _rtaTapeARN (\s a -> s { _rtaTapeARN = a })++newtype RetrieveTapeArchiveResponse = RetrieveTapeArchiveResponse+    { _rtarTapeARN :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'RetrieveTapeArchiveResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rtarTapeARN' @::@ 'Maybe' 'Text'+--+retrieveTapeArchiveResponse :: RetrieveTapeArchiveResponse+retrieveTapeArchiveResponse = RetrieveTapeArchiveResponse+    { _rtarTapeARN = Nothing+    }++-- | The Amazon Resource Name (ARN) of the retrieved virtual tape.+rtarTapeARN :: Lens' RetrieveTapeArchiveResponse (Maybe Text)+rtarTapeARN = lens _rtarTapeARN (\s a -> s { _rtarTapeARN = a })++instance ToPath RetrieveTapeArchive where+    toPath = const "/"++instance ToQuery RetrieveTapeArchive where+    toQuery = const mempty++instance ToHeaders RetrieveTapeArchive++instance ToJSON RetrieveTapeArchive where+    toJSON RetrieveTapeArchive{..} = object+        [ "TapeARN"    .= _rtaTapeARN+        , "GatewayARN" .= _rtaGatewayARN+        ]++instance AWSRequest RetrieveTapeArchive where+    type Sv RetrieveTapeArchive = StorageGateway+    type Rs RetrieveTapeArchive = RetrieveTapeArchiveResponse++    request  = post "RetrieveTapeArchive"+    response = jsonResponse++instance FromJSON RetrieveTapeArchiveResponse where+    parseJSON = withObject "RetrieveTapeArchiveResponse" $ \o -> RetrieveTapeArchiveResponse+        <$> o .:? "TapeARN"
+ gen/Network/AWS/StorageGateway/RetrieveTapeRecoveryPoint.hs view
@@ -0,0 +1,124 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.RetrieveTapeRecoveryPoint+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | Retrieves the recovery point for the specified virtual tape. A recovery+-- point is a point in time view of a virtual tape at which all the data on+-- the tape is consistent. If your gateway crashes, virtual tapes that have+-- recovery points can be recovered to a new gateway.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_RetrieveTapeRecoveryPoint.html>+module Network.AWS.StorageGateway.RetrieveTapeRecoveryPoint+    (+    -- * Request+      RetrieveTapeRecoveryPoint+    -- ** Request constructor+    , retrieveTapeRecoveryPoint+    -- ** Request lenses+    , rtrpGatewayARN+    , rtrpTapeARN++    -- * Response+    , RetrieveTapeRecoveryPointResponse+    -- ** Response constructor+    , retrieveTapeRecoveryPointResponse+    -- ** Response lenses+    , rtrprTapeARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data RetrieveTapeRecoveryPoint = RetrieveTapeRecoveryPoint+    { _rtrpGatewayARN :: Text+    , _rtrpTapeARN    :: Text+    } deriving (Eq, Ord, Show)++-- | 'RetrieveTapeRecoveryPoint' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rtrpGatewayARN' @::@ 'Text'+--+-- * 'rtrpTapeARN' @::@ 'Text'+--+retrieveTapeRecoveryPoint :: Text -- ^ 'rtrpTapeARN'+                          -> Text -- ^ 'rtrpGatewayARN'+                          -> RetrieveTapeRecoveryPoint+retrieveTapeRecoveryPoint p1 p2 = RetrieveTapeRecoveryPoint+    { _rtrpTapeARN    = p1+    , _rtrpGatewayARN = p2+    }++rtrpGatewayARN :: Lens' RetrieveTapeRecoveryPoint Text+rtrpGatewayARN = lens _rtrpGatewayARN (\s a -> s { _rtrpGatewayARN = a })++-- | The Amazon Resource Name (ARN) of the virtual tape for which you want to+-- retrieve the recovery point.+rtrpTapeARN :: Lens' RetrieveTapeRecoveryPoint Text+rtrpTapeARN = lens _rtrpTapeARN (\s a -> s { _rtrpTapeARN = a })++newtype RetrieveTapeRecoveryPointResponse = RetrieveTapeRecoveryPointResponse+    { _rtrprTapeARN :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'RetrieveTapeRecoveryPointResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rtrprTapeARN' @::@ 'Maybe' 'Text'+--+retrieveTapeRecoveryPointResponse :: RetrieveTapeRecoveryPointResponse+retrieveTapeRecoveryPointResponse = RetrieveTapeRecoveryPointResponse+    { _rtrprTapeARN = Nothing+    }++-- | The Amazon Resource Name (ARN) of the virtual tape for which the recovery+-- point was retrieved.+rtrprTapeARN :: Lens' RetrieveTapeRecoveryPointResponse (Maybe Text)+rtrprTapeARN = lens _rtrprTapeARN (\s a -> s { _rtrprTapeARN = a })++instance ToPath RetrieveTapeRecoveryPoint where+    toPath = const "/"++instance ToQuery RetrieveTapeRecoveryPoint where+    toQuery = const mempty++instance ToHeaders RetrieveTapeRecoveryPoint++instance ToJSON RetrieveTapeRecoveryPoint where+    toJSON RetrieveTapeRecoveryPoint{..} = object+        [ "TapeARN"    .= _rtrpTapeARN+        , "GatewayARN" .= _rtrpGatewayARN+        ]++instance AWSRequest RetrieveTapeRecoveryPoint where+    type Sv RetrieveTapeRecoveryPoint = StorageGateway+    type Rs RetrieveTapeRecoveryPoint = RetrieveTapeRecoveryPointResponse++    request  = post "RetrieveTapeRecoveryPoint"+    response = jsonResponse++instance FromJSON RetrieveTapeRecoveryPointResponse where+    parseJSON = withObject "RetrieveTapeRecoveryPointResponse" $ \o -> RetrieveTapeRecoveryPointResponse+        <$> o .:? "TapeARN"
+ gen/Network/AWS/StorageGateway/ShutdownGateway.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.ShutdownGateway+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation shuts down a gateway. To specify which gateway to shut down,+-- use the Amazon Resource Name (ARN) of the gateway in the body of your+-- request. The operation shuts down the gateway service component running in+-- the storage gateway's virtual machine (VM) and not the VM. After the+-- gateway is shutdown, you cannot call any other API except StartGateway,+-- DescribeGatewayInformation, and ListGateways. For more information, see+-- ActivateGateway. Your applications cannot read from or write to the+-- gateway's storage volumes, and there are no snapshots taken. If do not+-- intend to use the gateway again, you must delete the gateway (using+-- DeleteGateway) to no longer pay software charges associated with the+-- gateway.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_ShutdownGateway.html>+module Network.AWS.StorageGateway.ShutdownGateway+    (+    -- * Request+      ShutdownGateway+    -- ** Request constructor+    , shutdownGateway+    -- ** Request lenses+    , sg1GatewayARN++    -- * Response+    , ShutdownGatewayResponse+    -- ** Response constructor+    , shutdownGatewayResponse+    -- ** Response lenses+    , sgr1GatewayARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++newtype ShutdownGateway = ShutdownGateway+    { _sg1GatewayARN :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'ShutdownGateway' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'sg1GatewayARN' @::@ 'Text'+--+shutdownGateway :: Text -- ^ 'sg1GatewayARN'+                -> ShutdownGateway+shutdownGateway p1 = ShutdownGateway+    { _sg1GatewayARN = p1+    }++sg1GatewayARN :: Lens' ShutdownGateway Text+sg1GatewayARN = lens _sg1GatewayARN (\s a -> s { _sg1GatewayARN = a })++newtype ShutdownGatewayResponse = ShutdownGatewayResponse+    { _sgr1GatewayARN :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'ShutdownGatewayResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'sgr1GatewayARN' @::@ 'Maybe' 'Text'+--+shutdownGatewayResponse :: ShutdownGatewayResponse+shutdownGatewayResponse = ShutdownGatewayResponse+    { _sgr1GatewayARN = Nothing+    }++sgr1GatewayARN :: Lens' ShutdownGatewayResponse (Maybe Text)+sgr1GatewayARN = lens _sgr1GatewayARN (\s a -> s { _sgr1GatewayARN = a })++instance ToPath ShutdownGateway where+    toPath = const "/"++instance ToQuery ShutdownGateway where+    toQuery = const mempty++instance ToHeaders ShutdownGateway++instance ToJSON ShutdownGateway where+    toJSON ShutdownGateway{..} = object+        [ "GatewayARN" .= _sg1GatewayARN+        ]++instance AWSRequest ShutdownGateway where+    type Sv ShutdownGateway = StorageGateway+    type Rs ShutdownGateway = ShutdownGatewayResponse++    request  = post "ShutdownGateway"+    response = jsonResponse++instance FromJSON ShutdownGatewayResponse where+    parseJSON = withObject "ShutdownGatewayResponse" $ \o -> ShutdownGatewayResponse+        <$> o .:? "GatewayARN"
+ gen/Network/AWS/StorageGateway/StartGateway.hs view
@@ -0,0 +1,112 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.StartGateway+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation starts a gateway that you previously shut down (see+-- ShutdownGateway). After the gateway starts, you can then make other API+-- calls, your applications can read from or write to the gateway's storage+-- volumes and you will be able to take snapshot backups. To specify which+-- gateway to start, use the Amazon Resource Name (ARN) of the gateway in your+-- request.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_StartGateway.html>+module Network.AWS.StorageGateway.StartGateway+    (+    -- * Request+      StartGateway+    -- ** Request constructor+    , startGateway+    -- ** Request lenses+    , sgGatewayARN++    -- * Response+    , StartGatewayResponse+    -- ** Response constructor+    , startGatewayResponse+    -- ** Response lenses+    , sgrGatewayARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++newtype StartGateway = StartGateway+    { _sgGatewayARN :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'StartGateway' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'sgGatewayARN' @::@ 'Text'+--+startGateway :: Text -- ^ 'sgGatewayARN'+             -> StartGateway+startGateway p1 = StartGateway+    { _sgGatewayARN = p1+    }++sgGatewayARN :: Lens' StartGateway Text+sgGatewayARN = lens _sgGatewayARN (\s a -> s { _sgGatewayARN = a })++newtype StartGatewayResponse = StartGatewayResponse+    { _sgrGatewayARN :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'StartGatewayResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'sgrGatewayARN' @::@ 'Maybe' 'Text'+--+startGatewayResponse :: StartGatewayResponse+startGatewayResponse = StartGatewayResponse+    { _sgrGatewayARN = Nothing+    }++sgrGatewayARN :: Lens' StartGatewayResponse (Maybe Text)+sgrGatewayARN = lens _sgrGatewayARN (\s a -> s { _sgrGatewayARN = a })++instance ToPath StartGateway where+    toPath = const "/"++instance ToQuery StartGateway where+    toQuery = const mempty++instance ToHeaders StartGateway++instance ToJSON StartGateway where+    toJSON StartGateway{..} = object+        [ "GatewayARN" .= _sgGatewayARN+        ]++instance AWSRequest StartGateway where+    type Sv StartGateway = StorageGateway+    type Rs StartGateway = StartGatewayResponse++    request  = post "StartGateway"+    response = jsonResponse++instance FromJSON StartGatewayResponse where+    parseJSON = withObject "StartGatewayResponse" $ \o -> StartGatewayResponse+        <$> o .:? "GatewayARN"
+ gen/Network/AWS/StorageGateway/Types.hs view
@@ -0,0 +1,1405 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.Types+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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 Network.AWS.StorageGateway.Types+    (+    -- * Service+      StorageGateway+    -- ** Error+    , JSONError++    -- * ChapInfo+    , ChapInfo+    , chapInfo+    , ciInitiatorName+    , ciSecretToAuthenticateInitiator+    , ciSecretToAuthenticateTarget+    , ciTargetARN++    -- * VolumeiSCSIAttributes+    , VolumeiSCSIAttributes+    , volumeiSCSIAttributes+    , vscsiaChapEnabled+    , vscsiaLunNumber+    , vscsiaNetworkInterfaceId+    , vscsiaNetworkInterfacePort+    , vscsiaTargetARN++    -- * DeviceiSCSIAttributes+    , DeviceiSCSIAttributes+    , deviceiSCSIAttributes+    , dscsiaChapEnabled+    , dscsiaNetworkInterfaceId+    , dscsiaNetworkInterfacePort+    , dscsiaTargetARN++    -- * Error'+    , Error'+    , error+    , eErrorCode+    , eErrorDetails++    -- * Disk+    , Disk+    , disk+    , dDiskAllocationResource+    , dDiskAllocationType+    , dDiskId+    , dDiskNode+    , dDiskPath+    , dDiskSizeInBytes++    -- * Tape+    , Tape+    , tape+    , tProgress+    , tTapeARN+    , tTapeBarcode+    , tTapeSizeInBytes+    , tTapeStatus+    , tVTLDevice++    -- * NetworkInterface+    , NetworkInterface+    , networkInterface+    , niIpv4Address+    , niIpv6Address+    , niMacAddress++    -- * VTLDevice+    , VTLDevice+    , vtldevice+    , vtldDeviceiSCSIAttributes+    , vtldVTLDeviceARN+    , vtldVTLDeviceProductIdentifier+    , vtldVTLDeviceType+    , vtldVTLDeviceVendor++    -- * TapeRecoveryPointInfo+    , TapeRecoveryPointInfo+    , tapeRecoveryPointInfo+    , trpiTapeARN+    , trpiTapeRecoveryPointTime+    , trpiTapeSizeInBytes+    , trpiTapeStatus++    -- * VolumeRecoveryPointInfo+    , VolumeRecoveryPointInfo+    , volumeRecoveryPointInfo+    , vrpiVolumeARN+    , vrpiVolumeRecoveryPointTime+    , vrpiVolumeSizeInBytes+    , vrpiVolumeUsageInBytes++    -- * TapeArchive+    , TapeArchive+    , tapeArchive+    , taCompletionTime+    , taRetrievedTo+    , taTapeARN+    , taTapeBarcode+    , taTapeSizeInBytes+    , taTapeStatus++    -- * ErrorCode+    , ErrorCode (..)++    -- * StorediSCSIVolume+    , StorediSCSIVolume+    , storediSCSIVolume+    , sscsivPreservedExistingData+    , sscsivSourceSnapshotId+    , sscsivVolumeARN+    , sscsivVolumeDiskId+    , sscsivVolumeId+    , sscsivVolumeProgress+    , sscsivVolumeSizeInBytes+    , sscsivVolumeStatus+    , sscsivVolumeType+    , sscsivVolumeiSCSIAttributes++    -- * CachediSCSIVolume+    , CachediSCSIVolume+    , cachediSCSIVolume+    , cscsivSourceSnapshotId+    , cscsivVolumeARN+    , cscsivVolumeId+    , cscsivVolumeProgress+    , cscsivVolumeSizeInBytes+    , cscsivVolumeStatus+    , cscsivVolumeType+    , cscsivVolumeiSCSIAttributes++    -- * VolumeInfo+    , VolumeInfo+    , volumeInfo+    , viVolumeARN+    , viVolumeType++    -- * GatewayInfo+    , GatewayInfo+    , gatewayInfo+    , giGatewayARN+    , giGatewayOperationalState+    , giGatewayType+    ) where++import Data.Char (isUpper)+import Network.AWS.Error+import Network.AWS.Prelude+import Network.AWS.Signing.V4+import qualified GHC.Exts++-- | Version @2013-06-30@ of the Amazon Storage Gateway service.+data StorageGateway++instance AWSService StorageGateway where+    type Sg StorageGateway = V4+    type Er StorageGateway = JSONError++    service = Service+        { _svcEndpoint     = regional+        , _svcAbbrev       = "StorageGateway"+        , _svcPrefix       = "storagegateway"+        , _svcVersion      = "2013-06-30"+        , _svcTargetPrefix = Just "StorageGateway_20130630"+        , _svcJSONVersion  = Just "1.1"+        }++    handle = jsonError statusSuccess++data ChapInfo = ChapInfo+    { _ciInitiatorName                 :: Maybe Text+    , _ciSecretToAuthenticateInitiator :: Maybe Text+    , _ciSecretToAuthenticateTarget    :: Maybe Text+    , _ciTargetARN                     :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'ChapInfo' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ciInitiatorName' @::@ 'Maybe' 'Text'+--+-- * 'ciSecretToAuthenticateInitiator' @::@ 'Maybe' 'Text'+--+-- * 'ciSecretToAuthenticateTarget' @::@ 'Maybe' 'Text'+--+-- * 'ciTargetARN' @::@ 'Maybe' 'Text'+--+chapInfo :: ChapInfo+chapInfo = ChapInfo+    { _ciTargetARN                     = Nothing+    , _ciSecretToAuthenticateInitiator = Nothing+    , _ciInitiatorName                 = Nothing+    , _ciSecretToAuthenticateTarget    = Nothing+    }++-- | The iSCSI initiator that connects to the target.+ciInitiatorName :: Lens' ChapInfo (Maybe Text)+ciInitiatorName = lens _ciInitiatorName (\s a -> s { _ciInitiatorName = a })++-- | The secret key that the initiator (e.g. Windows client) must provide to+-- participate in mutual CHAP with the target.+ciSecretToAuthenticateInitiator :: Lens' ChapInfo (Maybe Text)+ciSecretToAuthenticateInitiator =+    lens _ciSecretToAuthenticateInitiator+        (\s a -> s { _ciSecretToAuthenticateInitiator = a })++-- | The secret key that the target must provide to participate in mutual CHAP+-- with the initiator (e.g. Windows client).+ciSecretToAuthenticateTarget :: Lens' ChapInfo (Maybe Text)+ciSecretToAuthenticateTarget =+    lens _ciSecretToAuthenticateTarget+        (\s a -> s { _ciSecretToAuthenticateTarget = a })++-- | The Amazon Resource Name (ARN) of the volume. Valid Values: 50 to 500+-- lowercase letters, numbers, periods (.), and hyphens (-).+ciTargetARN :: Lens' ChapInfo (Maybe Text)+ciTargetARN = lens _ciTargetARN (\s a -> s { _ciTargetARN = a })++instance FromJSON ChapInfo where+    parseJSON = withObject "ChapInfo" $ \o -> ChapInfo+        <$> o .:? "InitiatorName"+        <*> o .:? "SecretToAuthenticateInitiator"+        <*> o .:? "SecretToAuthenticateTarget"+        <*> o .:? "TargetARN"++instance ToJSON ChapInfo where+    toJSON ChapInfo{..} = object+        [ "TargetARN"                     .= _ciTargetARN+        , "SecretToAuthenticateInitiator" .= _ciSecretToAuthenticateInitiator+        , "InitiatorName"                 .= _ciInitiatorName+        , "SecretToAuthenticateTarget"    .= _ciSecretToAuthenticateTarget+        ]++data VolumeiSCSIAttributes = VolumeiSCSIAttributes+    { _vscsiaChapEnabled          :: Maybe Bool+    , _vscsiaLunNumber            :: Maybe Nat+    , _vscsiaNetworkInterfaceId   :: Maybe Text+    , _vscsiaNetworkInterfacePort :: Maybe Int+    , _vscsiaTargetARN            :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'VolumeiSCSIAttributes' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vscsiaChapEnabled' @::@ 'Maybe' 'Bool'+--+-- * 'vscsiaLunNumber' @::@ 'Maybe' 'Natural'+--+-- * 'vscsiaNetworkInterfaceId' @::@ 'Maybe' 'Text'+--+-- * 'vscsiaNetworkInterfacePort' @::@ 'Maybe' 'Int'+--+-- * 'vscsiaTargetARN' @::@ 'Maybe' 'Text'+--+volumeiSCSIAttributes :: VolumeiSCSIAttributes+volumeiSCSIAttributes = VolumeiSCSIAttributes+    { _vscsiaTargetARN            = Nothing+    , _vscsiaNetworkInterfaceId   = Nothing+    , _vscsiaNetworkInterfacePort = Nothing+    , _vscsiaLunNumber            = Nothing+    , _vscsiaChapEnabled          = Nothing+    }++-- | Indicates whether mutual CHAP is enabled for the iSCSI target.+vscsiaChapEnabled :: Lens' VolumeiSCSIAttributes (Maybe Bool)+vscsiaChapEnabled =+    lens _vscsiaChapEnabled (\s a -> s { _vscsiaChapEnabled = a })++-- | The logical disk number.+vscsiaLunNumber :: Lens' VolumeiSCSIAttributes (Maybe Natural)+vscsiaLunNumber = lens _vscsiaLunNumber (\s a -> s { _vscsiaLunNumber = a }) . mapping _Nat++-- | The network interface identifier.+vscsiaNetworkInterfaceId :: Lens' VolumeiSCSIAttributes (Maybe Text)+vscsiaNetworkInterfaceId =+    lens _vscsiaNetworkInterfaceId+        (\s a -> s { _vscsiaNetworkInterfaceId = a })++-- | The port used to communicate with iSCSI targets.+vscsiaNetworkInterfacePort :: Lens' VolumeiSCSIAttributes (Maybe Int)+vscsiaNetworkInterfacePort =+    lens _vscsiaNetworkInterfacePort+        (\s a -> s { _vscsiaNetworkInterfacePort = a })++-- | The Amazon Resource Name (ARN) of the volume target.+vscsiaTargetARN :: Lens' VolumeiSCSIAttributes (Maybe Text)+vscsiaTargetARN = lens _vscsiaTargetARN (\s a -> s { _vscsiaTargetARN = a })++instance FromJSON VolumeiSCSIAttributes where+    parseJSON = withObject "VolumeiSCSIAttributes" $ \o -> VolumeiSCSIAttributes+        <$> o .:? "ChapEnabled"+        <*> o .:? "LunNumber"+        <*> o .:? "NetworkInterfaceId"+        <*> o .:? "NetworkInterfacePort"+        <*> o .:? "TargetARN"++instance ToJSON VolumeiSCSIAttributes where+    toJSON VolumeiSCSIAttributes{..} = object+        [ "TargetARN"            .= _vscsiaTargetARN+        , "NetworkInterfaceId"   .= _vscsiaNetworkInterfaceId+        , "NetworkInterfacePort" .= _vscsiaNetworkInterfacePort+        , "LunNumber"            .= _vscsiaLunNumber+        , "ChapEnabled"          .= _vscsiaChapEnabled+        ]++data DeviceiSCSIAttributes = DeviceiSCSIAttributes+    { _dscsiaChapEnabled          :: Maybe Bool+    , _dscsiaNetworkInterfaceId   :: Maybe Text+    , _dscsiaNetworkInterfacePort :: Maybe Int+    , _dscsiaTargetARN            :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'DeviceiSCSIAttributes' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dscsiaChapEnabled' @::@ 'Maybe' 'Bool'+--+-- * 'dscsiaNetworkInterfaceId' @::@ 'Maybe' 'Text'+--+-- * 'dscsiaNetworkInterfacePort' @::@ 'Maybe' 'Int'+--+-- * 'dscsiaTargetARN' @::@ 'Maybe' 'Text'+--+deviceiSCSIAttributes :: DeviceiSCSIAttributes+deviceiSCSIAttributes = DeviceiSCSIAttributes+    { _dscsiaTargetARN            = Nothing+    , _dscsiaNetworkInterfaceId   = Nothing+    , _dscsiaNetworkInterfacePort = Nothing+    , _dscsiaChapEnabled          = Nothing+    }++-- | Indicates whether mutual CHAP is enabled for the iSCSI target.+dscsiaChapEnabled :: Lens' DeviceiSCSIAttributes (Maybe Bool)+dscsiaChapEnabled =+    lens _dscsiaChapEnabled (\s a -> s { _dscsiaChapEnabled = a })++-- | The network interface identifier of the VTL device.+dscsiaNetworkInterfaceId :: Lens' DeviceiSCSIAttributes (Maybe Text)+dscsiaNetworkInterfaceId =+    lens _dscsiaNetworkInterfaceId+        (\s a -> s { _dscsiaNetworkInterfaceId = a })++-- | The port used to communicate with iSCSI VTL device targets.+dscsiaNetworkInterfacePort :: Lens' DeviceiSCSIAttributes (Maybe Int)+dscsiaNetworkInterfacePort =+    lens _dscsiaNetworkInterfacePort+        (\s a -> s { _dscsiaNetworkInterfacePort = a })++-- | Specifies the unique Amazon Resource Name(ARN) that encodes the iSCSI+-- qualified name(iqn) of a tape drive or media changer target.+dscsiaTargetARN :: Lens' DeviceiSCSIAttributes (Maybe Text)+dscsiaTargetARN = lens _dscsiaTargetARN (\s a -> s { _dscsiaTargetARN = a })++instance FromJSON DeviceiSCSIAttributes where+    parseJSON = withObject "DeviceiSCSIAttributes" $ \o -> DeviceiSCSIAttributes+        <$> o .:? "ChapEnabled"+        <*> o .:? "NetworkInterfaceId"+        <*> o .:? "NetworkInterfacePort"+        <*> o .:? "TargetARN"++instance ToJSON DeviceiSCSIAttributes where+    toJSON DeviceiSCSIAttributes{..} = object+        [ "TargetARN"            .= _dscsiaTargetARN+        , "NetworkInterfaceId"   .= _dscsiaNetworkInterfaceId+        , "NetworkInterfacePort" .= _dscsiaNetworkInterfacePort+        , "ChapEnabled"          .= _dscsiaChapEnabled+        ]++data Error' = Error'+    { _eErrorCode    :: Maybe Text+    , _eErrorDetails :: Map Text Text+    } deriving (Eq, Show)++-- | 'Error'' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'eErrorCode' @::@ 'Maybe' 'Text'+--+-- * 'eErrorDetails' @::@ 'HashMap' 'Text' 'Text'+--+error :: Error'+error = Error'+    { _eErrorCode    = Nothing+    , _eErrorDetails = mempty+    }++-- | Additional information about the error.+eErrorCode :: Lens' Error' (Maybe Text)+eErrorCode = lens _eErrorCode (\s a -> s { _eErrorCode = a })++-- | Human-readable text that provides detail about the error that occurred.+eErrorDetails :: Lens' Error' (HashMap Text Text)+eErrorDetails = lens _eErrorDetails (\s a -> s { _eErrorDetails = a }) . _Map++instance FromJSON Error' where+    parseJSON = withObject "Error'" $ \o -> Error'+        <$> o .:? "errorCode"+        <*> o .:  "errorDetails"++instance ToJSON Error' where+    toJSON Error'{..} = object+        [ "errorCode"    .= _eErrorCode+        , "errorDetails" .= _eErrorDetails+        ]++data Disk = Disk+    { _dDiskAllocationResource :: Maybe Text+    , _dDiskAllocationType     :: Maybe Text+    , _dDiskId                 :: Maybe Text+    , _dDiskNode               :: Maybe Text+    , _dDiskPath               :: Maybe Text+    , _dDiskSizeInBytes        :: Maybe Integer+    } deriving (Eq, Ord, Show)++-- | 'Disk' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dDiskAllocationResource' @::@ 'Maybe' 'Text'+--+-- * 'dDiskAllocationType' @::@ 'Maybe' 'Text'+--+-- * 'dDiskId' @::@ 'Maybe' 'Text'+--+-- * 'dDiskNode' @::@ 'Maybe' 'Text'+--+-- * 'dDiskPath' @::@ 'Maybe' 'Text'+--+-- * 'dDiskSizeInBytes' @::@ 'Maybe' 'Integer'+--+disk :: Disk+disk = Disk+    { _dDiskId                 = Nothing+    , _dDiskPath               = Nothing+    , _dDiskNode               = Nothing+    , _dDiskSizeInBytes        = Nothing+    , _dDiskAllocationType     = Nothing+    , _dDiskAllocationResource = Nothing+    }++dDiskAllocationResource :: Lens' Disk (Maybe Text)+dDiskAllocationResource =+    lens _dDiskAllocationResource (\s a -> s { _dDiskAllocationResource = a })++dDiskAllocationType :: Lens' Disk (Maybe Text)+dDiskAllocationType =+    lens _dDiskAllocationType (\s a -> s { _dDiskAllocationType = a })++dDiskId :: Lens' Disk (Maybe Text)+dDiskId = lens _dDiskId (\s a -> s { _dDiskId = a })++dDiskNode :: Lens' Disk (Maybe Text)+dDiskNode = lens _dDiskNode (\s a -> s { _dDiskNode = a })++dDiskPath :: Lens' Disk (Maybe Text)+dDiskPath = lens _dDiskPath (\s a -> s { _dDiskPath = a })++dDiskSizeInBytes :: Lens' Disk (Maybe Integer)+dDiskSizeInBytes = lens _dDiskSizeInBytes (\s a -> s { _dDiskSizeInBytes = a })++instance FromJSON Disk where+    parseJSON = withObject "Disk" $ \o -> Disk+        <$> o .:? "DiskAllocationResource"+        <*> o .:? "DiskAllocationType"+        <*> o .:? "DiskId"+        <*> o .:? "DiskNode"+        <*> o .:? "DiskPath"+        <*> o .:? "DiskSizeInBytes"++instance ToJSON Disk where+    toJSON Disk{..} = object+        [ "DiskId"                 .= _dDiskId+        , "DiskPath"               .= _dDiskPath+        , "DiskNode"               .= _dDiskNode+        , "DiskSizeInBytes"        .= _dDiskSizeInBytes+        , "DiskAllocationType"     .= _dDiskAllocationType+        , "DiskAllocationResource" .= _dDiskAllocationResource+        ]++data Tape = Tape+    { _tProgress        :: Maybe Double+    , _tTapeARN         :: Maybe Text+    , _tTapeBarcode     :: Maybe Text+    , _tTapeSizeInBytes :: Maybe Nat+    , _tTapeStatus      :: Maybe Text+    , _tVTLDevice       :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'Tape' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'tProgress' @::@ 'Maybe' 'Double'+--+-- * 'tTapeARN' @::@ 'Maybe' 'Text'+--+-- * 'tTapeBarcode' @::@ 'Maybe' 'Text'+--+-- * 'tTapeSizeInBytes' @::@ 'Maybe' 'Natural'+--+-- * 'tTapeStatus' @::@ 'Maybe' 'Text'+--+-- * 'tVTLDevice' @::@ 'Maybe' 'Text'+--+tape :: Tape+tape = Tape+    { _tTapeARN         = Nothing+    , _tTapeBarcode     = Nothing+    , _tTapeSizeInBytes = Nothing+    , _tTapeStatus      = Nothing+    , _tVTLDevice       = Nothing+    , _tProgress        = Nothing+    }++-- | For archiving virtual tapes, indicates how much data remains to be+-- uploaded before archiving is complete. Range: 0 (not started) to 100+-- (complete).+tProgress :: Lens' Tape (Maybe Double)+tProgress = lens _tProgress (\s a -> s { _tProgress = a })++-- | The Amazon Resource Name (ARN) of the virtual tape.+tTapeARN :: Lens' Tape (Maybe Text)+tTapeARN = lens _tTapeARN (\s a -> s { _tTapeARN = a })++-- | The barcode that identifies a specific virtual tape.+tTapeBarcode :: Lens' Tape (Maybe Text)+tTapeBarcode = lens _tTapeBarcode (\s a -> s { _tTapeBarcode = a })++-- | The size, in bytes, of the virtual tape.+tTapeSizeInBytes :: Lens' Tape (Maybe Natural)+tTapeSizeInBytes = lens _tTapeSizeInBytes (\s a -> s { _tTapeSizeInBytes = a }) . mapping _Nat++-- | The current state of the virtual tape.+tTapeStatus :: Lens' Tape (Maybe Text)+tTapeStatus = lens _tTapeStatus (\s a -> s { _tTapeStatus = a })++-- | The virtual tape library (VTL) device that the virtual tape is associated+-- with.+tVTLDevice :: Lens' Tape (Maybe Text)+tVTLDevice = lens _tVTLDevice (\s a -> s { _tVTLDevice = a })++instance FromJSON Tape where+    parseJSON = withObject "Tape" $ \o -> Tape+        <$> o .:? "Progress"+        <*> o .:? "TapeARN"+        <*> o .:? "TapeBarcode"+        <*> o .:? "TapeSizeInBytes"+        <*> o .:? "TapeStatus"+        <*> o .:? "VTLDevice"++instance ToJSON Tape where+    toJSON Tape{..} = object+        [ "TapeARN"         .= _tTapeARN+        , "TapeBarcode"     .= _tTapeBarcode+        , "TapeSizeInBytes" .= _tTapeSizeInBytes+        , "TapeStatus"      .= _tTapeStatus+        , "VTLDevice"       .= _tVTLDevice+        , "Progress"        .= _tProgress+        ]++data NetworkInterface = NetworkInterface+    { _niIpv4Address :: Maybe Text+    , _niIpv6Address :: Maybe Text+    , _niMacAddress  :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'NetworkInterface' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'niIpv4Address' @::@ 'Maybe' 'Text'+--+-- * 'niIpv6Address' @::@ 'Maybe' 'Text'+--+-- * 'niMacAddress' @::@ 'Maybe' 'Text'+--+networkInterface :: NetworkInterface+networkInterface = NetworkInterface+    { _niIpv4Address = Nothing+    , _niMacAddress  = Nothing+    , _niIpv6Address = Nothing+    }++-- | The Internet Protocol version 4 (IPv4) address of the interface.+niIpv4Address :: Lens' NetworkInterface (Maybe Text)+niIpv4Address = lens _niIpv4Address (\s a -> s { _niIpv4Address = a })++-- | The Internet Protocol version 6 (IPv6) address of the interface.+-- Currently not supported.+niIpv6Address :: Lens' NetworkInterface (Maybe Text)+niIpv6Address = lens _niIpv6Address (\s a -> s { _niIpv6Address = a })++-- | The Media Access Control (MAC) address of the interface.+niMacAddress :: Lens' NetworkInterface (Maybe Text)+niMacAddress = lens _niMacAddress (\s a -> s { _niMacAddress = a })++instance FromJSON NetworkInterface where+    parseJSON = withObject "NetworkInterface" $ \o -> NetworkInterface+        <$> o .:? "Ipv4Address"+        <*> o .:? "Ipv6Address"+        <*> o .:? "MacAddress"++instance ToJSON NetworkInterface where+    toJSON NetworkInterface{..} = object+        [ "Ipv4Address" .= _niIpv4Address+        , "MacAddress"  .= _niMacAddress+        , "Ipv6Address" .= _niIpv6Address+        ]++data VTLDevice = VTLDevice+    { _vtldDeviceiSCSIAttributes      :: Maybe DeviceiSCSIAttributes+    , _vtldVTLDeviceARN               :: Maybe Text+    , _vtldVTLDeviceProductIdentifier :: Maybe Text+    , _vtldVTLDeviceType              :: Maybe Text+    , _vtldVTLDeviceVendor            :: Maybe Text+    } deriving (Eq, Show)++-- | 'VTLDevice' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vtldDeviceiSCSIAttributes' @::@ 'Maybe' 'DeviceiSCSIAttributes'+--+-- * 'vtldVTLDeviceARN' @::@ 'Maybe' 'Text'+--+-- * 'vtldVTLDeviceProductIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'vtldVTLDeviceType' @::@ 'Maybe' 'Text'+--+-- * 'vtldVTLDeviceVendor' @::@ 'Maybe' 'Text'+--+vtldevice :: VTLDevice+vtldevice = VTLDevice+    { _vtldVTLDeviceARN               = Nothing+    , _vtldVTLDeviceType              = Nothing+    , _vtldVTLDeviceVendor            = Nothing+    , _vtldVTLDeviceProductIdentifier = Nothing+    , _vtldDeviceiSCSIAttributes      = Nothing+    }++-- | A list of iSCSI information about a VTL device.+vtldDeviceiSCSIAttributes :: Lens' VTLDevice (Maybe DeviceiSCSIAttributes)+vtldDeviceiSCSIAttributes =+    lens _vtldDeviceiSCSIAttributes+        (\s a -> s { _vtldDeviceiSCSIAttributes = a })++-- | Specifies the unique Amazon Resource Name (ARN) of the device (tape drive+-- or media changer).+vtldVTLDeviceARN :: Lens' VTLDevice (Maybe Text)+vtldVTLDeviceARN = lens _vtldVTLDeviceARN (\s a -> s { _vtldVTLDeviceARN = a })++vtldVTLDeviceProductIdentifier :: Lens' VTLDevice (Maybe Text)+vtldVTLDeviceProductIdentifier =+    lens _vtldVTLDeviceProductIdentifier+        (\s a -> s { _vtldVTLDeviceProductIdentifier = a })++vtldVTLDeviceType :: Lens' VTLDevice (Maybe Text)+vtldVTLDeviceType =+    lens _vtldVTLDeviceType (\s a -> s { _vtldVTLDeviceType = a })++vtldVTLDeviceVendor :: Lens' VTLDevice (Maybe Text)+vtldVTLDeviceVendor =+    lens _vtldVTLDeviceVendor (\s a -> s { _vtldVTLDeviceVendor = a })++instance FromJSON VTLDevice where+    parseJSON = withObject "VTLDevice" $ \o -> VTLDevice+        <$> o .:? "DeviceiSCSIAttributes"+        <*> o .:? "VTLDeviceARN"+        <*> o .:? "VTLDeviceProductIdentifier"+        <*> o .:? "VTLDeviceType"+        <*> o .:? "VTLDeviceVendor"++instance ToJSON VTLDevice where+    toJSON VTLDevice{..} = object+        [ "VTLDeviceARN"               .= _vtldVTLDeviceARN+        , "VTLDeviceType"              .= _vtldVTLDeviceType+        , "VTLDeviceVendor"            .= _vtldVTLDeviceVendor+        , "VTLDeviceProductIdentifier" .= _vtldVTLDeviceProductIdentifier+        , "DeviceiSCSIAttributes"      .= _vtldDeviceiSCSIAttributes+        ]++data TapeRecoveryPointInfo = TapeRecoveryPointInfo+    { _trpiTapeARN               :: Maybe Text+    , _trpiTapeRecoveryPointTime :: Maybe RFC822+    , _trpiTapeSizeInBytes       :: Maybe Nat+    , _trpiTapeStatus            :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'TapeRecoveryPointInfo' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'trpiTapeARN' @::@ 'Maybe' 'Text'+--+-- * 'trpiTapeRecoveryPointTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'trpiTapeSizeInBytes' @::@ 'Maybe' 'Natural'+--+-- * 'trpiTapeStatus' @::@ 'Maybe' 'Text'+--+tapeRecoveryPointInfo :: TapeRecoveryPointInfo+tapeRecoveryPointInfo = TapeRecoveryPointInfo+    { _trpiTapeARN               = Nothing+    , _trpiTapeRecoveryPointTime = Nothing+    , _trpiTapeSizeInBytes       = Nothing+    , _trpiTapeStatus            = Nothing+    }++-- | The Amazon Resource Name (ARN) of the virtual tape.+trpiTapeARN :: Lens' TapeRecoveryPointInfo (Maybe Text)+trpiTapeARN = lens _trpiTapeARN (\s a -> s { _trpiTapeARN = a })++-- | The time when the point-in-time view of the virtual tape was replicated+-- for later recovery. The string format of the tape recovery point time is+-- in the ISO8601 extended YYYY-MM-DD'T'HH:MM:SS'Z' format.+trpiTapeRecoveryPointTime :: Lens' TapeRecoveryPointInfo (Maybe UTCTime)+trpiTapeRecoveryPointTime =+    lens _trpiTapeRecoveryPointTime+        (\s a -> s { _trpiTapeRecoveryPointTime = a })+            . mapping _Time++-- | The size, in bytes, of the virtual tapes to recover.+trpiTapeSizeInBytes :: Lens' TapeRecoveryPointInfo (Maybe Natural)+trpiTapeSizeInBytes =+    lens _trpiTapeSizeInBytes (\s a -> s { _trpiTapeSizeInBytes = a })+        . mapping _Nat++trpiTapeStatus :: Lens' TapeRecoveryPointInfo (Maybe Text)+trpiTapeStatus = lens _trpiTapeStatus (\s a -> s { _trpiTapeStatus = a })++instance FromJSON TapeRecoveryPointInfo where+    parseJSON = withObject "TapeRecoveryPointInfo" $ \o -> TapeRecoveryPointInfo+        <$> o .:? "TapeARN"+        <*> o .:? "TapeRecoveryPointTime"+        <*> o .:? "TapeSizeInBytes"+        <*> o .:? "TapeStatus"++instance ToJSON TapeRecoveryPointInfo where+    toJSON TapeRecoveryPointInfo{..} = object+        [ "TapeARN"               .= _trpiTapeARN+        , "TapeRecoveryPointTime" .= _trpiTapeRecoveryPointTime+        , "TapeSizeInBytes"       .= _trpiTapeSizeInBytes+        , "TapeStatus"            .= _trpiTapeStatus+        ]++data VolumeRecoveryPointInfo = VolumeRecoveryPointInfo+    { _vrpiVolumeARN               :: Maybe Text+    , _vrpiVolumeRecoveryPointTime :: Maybe Text+    , _vrpiVolumeSizeInBytes       :: Maybe Integer+    , _vrpiVolumeUsageInBytes      :: Maybe Integer+    } deriving (Eq, Ord, Show)++-- | 'VolumeRecoveryPointInfo' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vrpiVolumeARN' @::@ 'Maybe' 'Text'+--+-- * 'vrpiVolumeRecoveryPointTime' @::@ 'Maybe' 'Text'+--+-- * 'vrpiVolumeSizeInBytes' @::@ 'Maybe' 'Integer'+--+-- * 'vrpiVolumeUsageInBytes' @::@ 'Maybe' 'Integer'+--+volumeRecoveryPointInfo :: VolumeRecoveryPointInfo+volumeRecoveryPointInfo = VolumeRecoveryPointInfo+    { _vrpiVolumeARN               = Nothing+    , _vrpiVolumeSizeInBytes       = Nothing+    , _vrpiVolumeUsageInBytes      = Nothing+    , _vrpiVolumeRecoveryPointTime = Nothing+    }++vrpiVolumeARN :: Lens' VolumeRecoveryPointInfo (Maybe Text)+vrpiVolumeARN = lens _vrpiVolumeARN (\s a -> s { _vrpiVolumeARN = a })++vrpiVolumeRecoveryPointTime :: Lens' VolumeRecoveryPointInfo (Maybe Text)+vrpiVolumeRecoveryPointTime =+    lens _vrpiVolumeRecoveryPointTime+        (\s a -> s { _vrpiVolumeRecoveryPointTime = a })++vrpiVolumeSizeInBytes :: Lens' VolumeRecoveryPointInfo (Maybe Integer)+vrpiVolumeSizeInBytes =+    lens _vrpiVolumeSizeInBytes (\s a -> s { _vrpiVolumeSizeInBytes = a })++vrpiVolumeUsageInBytes :: Lens' VolumeRecoveryPointInfo (Maybe Integer)+vrpiVolumeUsageInBytes =+    lens _vrpiVolumeUsageInBytes (\s a -> s { _vrpiVolumeUsageInBytes = a })++instance FromJSON VolumeRecoveryPointInfo where+    parseJSON = withObject "VolumeRecoveryPointInfo" $ \o -> VolumeRecoveryPointInfo+        <$> o .:? "VolumeARN"+        <*> o .:? "VolumeRecoveryPointTime"+        <*> o .:? "VolumeSizeInBytes"+        <*> o .:? "VolumeUsageInBytes"++instance ToJSON VolumeRecoveryPointInfo where+    toJSON VolumeRecoveryPointInfo{..} = object+        [ "VolumeARN"               .= _vrpiVolumeARN+        , "VolumeSizeInBytes"       .= _vrpiVolumeSizeInBytes+        , "VolumeUsageInBytes"      .= _vrpiVolumeUsageInBytes+        , "VolumeRecoveryPointTime" .= _vrpiVolumeRecoveryPointTime+        ]++data TapeArchive = TapeArchive+    { _taCompletionTime  :: Maybe RFC822+    , _taRetrievedTo     :: Maybe Text+    , _taTapeARN         :: Maybe Text+    , _taTapeBarcode     :: Maybe Text+    , _taTapeSizeInBytes :: Maybe Nat+    , _taTapeStatus      :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'TapeArchive' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'taCompletionTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'taRetrievedTo' @::@ 'Maybe' 'Text'+--+-- * 'taTapeARN' @::@ 'Maybe' 'Text'+--+-- * 'taTapeBarcode' @::@ 'Maybe' 'Text'+--+-- * 'taTapeSizeInBytes' @::@ 'Maybe' 'Natural'+--+-- * 'taTapeStatus' @::@ 'Maybe' 'Text'+--+tapeArchive :: TapeArchive+tapeArchive = TapeArchive+    { _taTapeARN         = Nothing+    , _taTapeBarcode     = Nothing+    , _taTapeSizeInBytes = Nothing+    , _taCompletionTime  = Nothing+    , _taRetrievedTo     = Nothing+    , _taTapeStatus      = Nothing+    }++-- | The time that the archiving of the virtual tape was completed. The string+-- format of the completion time is in the ISO8601 extended+-- YYYY-MM-DD'T'HH:MM:SS'Z' format.+taCompletionTime :: Lens' TapeArchive (Maybe UTCTime)+taCompletionTime = lens _taCompletionTime (\s a -> s { _taCompletionTime = a }) . mapping _Time++-- | The Amazon Resource Name (ARN) of the gateway-VTL that the virtual tape+-- is being retrieved to. The virtual tape is retrieved from the virtual+-- tape shelf (VTS).+taRetrievedTo :: Lens' TapeArchive (Maybe Text)+taRetrievedTo = lens _taRetrievedTo (\s a -> s { _taRetrievedTo = a })++-- | The Amazon Resource Name (ARN) of an archived virtual tape.+taTapeARN :: Lens' TapeArchive (Maybe Text)+taTapeARN = lens _taTapeARN (\s a -> s { _taTapeARN = a })++-- | The barcode that identifies the archived virtual tape.+taTapeBarcode :: Lens' TapeArchive (Maybe Text)+taTapeBarcode = lens _taTapeBarcode (\s a -> s { _taTapeBarcode = a })++-- | The size, in bytes, of the archived virtual tape.+taTapeSizeInBytes :: Lens' TapeArchive (Maybe Natural)+taTapeSizeInBytes =+    lens _taTapeSizeInBytes (\s a -> s { _taTapeSizeInBytes = a })+        . mapping _Nat++-- | The current state of the archived virtual tape.+taTapeStatus :: Lens' TapeArchive (Maybe Text)+taTapeStatus = lens _taTapeStatus (\s a -> s { _taTapeStatus = a })++instance FromJSON TapeArchive where+    parseJSON = withObject "TapeArchive" $ \o -> TapeArchive+        <$> o .:? "CompletionTime"+        <*> o .:? "RetrievedTo"+        <*> o .:? "TapeARN"+        <*> o .:? "TapeBarcode"+        <*> o .:? "TapeSizeInBytes"+        <*> o .:? "TapeStatus"++instance ToJSON TapeArchive where+    toJSON TapeArchive{..} = object+        [ "TapeARN"         .= _taTapeARN+        , "TapeBarcode"     .= _taTapeBarcode+        , "TapeSizeInBytes" .= _taTapeSizeInBytes+        , "CompletionTime"  .= _taCompletionTime+        , "RetrievedTo"     .= _taRetrievedTo+        , "TapeStatus"      .= _taTapeStatus+        ]++data ErrorCode+    = ActivationKeyExpired              -- ^ ActivationKeyExpired+    | ActivationKeyInvalid              -- ^ ActivationKeyInvalid+    | ActivationKeyNotFound             -- ^ ActivationKeyNotFound+    | AuthenticationFailure             -- ^ AuthenticationFailure+    | BandwidthThrottleScheduleNotFound -- ^ BandwidthThrottleScheduleNotFound+    | Blocked                           -- ^ Blocked+    | CannotExportSnapshot              -- ^ CannotExportSnapshot+    | ChapCredentialNotFound            -- ^ ChapCredentialNotFound+    | DiskAlreadyAllocated              -- ^ DiskAlreadyAllocated+    | DiskDoesNotExist                  -- ^ DiskDoesNotExist+    | DiskSizeGreaterThanVolumeMaxSize  -- ^ DiskSizeGreaterThanVolumeMaxSize+    | DiskSizeLessThanVolumeSize        -- ^ DiskSizeLessThanVolumeSize+    | DiskSizeNotGigAligned             -- ^ DiskSizeNotGigAligned+    | DuplicateCertificateInfo          -- ^ DuplicateCertificateInfo+    | DuplicateSchedule                 -- ^ DuplicateSchedule+    | EndpointNotFound                  -- ^ EndpointNotFound+    | GatewayInternalError              -- ^ GatewayInternalError+    | GatewayNotConnected               -- ^ GatewayNotConnected+    | GatewayNotFound                   -- ^ GatewayNotFound+    | GatewayProxyNetworkConnectionBusy -- ^ GatewayProxyNetworkConnectionBusy+    | IAMNotSupported                   -- ^ IAMNotSupported+    | InitiatorInvalid                  -- ^ InitiatorInvalid+    | InitiatorNotFound                 -- ^ InitiatorNotFound+    | InternalError                     -- ^ InternalError+    | InvalidEndpoint                   -- ^ InvalidEndpoint+    | InvalidGateway                    -- ^ InvalidGateway+    | InvalidParameters                 -- ^ InvalidParameters+    | InvalidSchedule                   -- ^ InvalidSchedule+    | LocalStorageLimitExceeded         -- ^ LocalStorageLimitExceeded+    | LunAlreadyAllocated               -- ^ LunAlreadyAllocated +    | LunInvalid                        -- ^ LunInvalid+    | MaximumContentLengthExceeded      -- ^ MaximumContentLengthExceeded+    | MaximumTapeCartridgeCountExceeded -- ^ MaximumTapeCartridgeCountExceeded+    | MaximumVolumeCountExceeded        -- ^ MaximumVolumeCountExceeded+    | NetworkConfigurationChanged       -- ^ NetworkConfigurationChanged+    | NoDisksAvailable                  -- ^ NoDisksAvailable+    | NotImplemented                    -- ^ NotImplemented+    | NotSupported                      -- ^ NotSupported+    | OperationAborted                  -- ^ OperationAborted+    | OutdatedGateway                   -- ^ OutdatedGateway+    | ParametersNotImplemented          -- ^ ParametersNotImplemented+    | RegionInvalid                     -- ^ RegionInvalid+    | RequestTimeout                    -- ^ RequestTimeout+    | ServiceUnavailable                -- ^ ServiceUnavailable+    | SnapshotDeleted                   -- ^ SnapshotDeleted+    | SnapshotIdInvalid                 -- ^ SnapshotIdInvalid+    | SnapshotInProgress                -- ^ SnapshotInProgress+    | SnapshotNotFound                  -- ^ SnapshotNotFound+    | SnapshotScheduleNotFound          -- ^ SnapshotScheduleNotFound+    | StagingAreaFull                   -- ^ StagingAreaFull+    | StorageFailure                    -- ^ StorageFailure+    | TapeCartridgeNotFound             -- ^ TapeCartridgeNotFound+    | TargetAlreadyExists               -- ^ TargetAlreadyExists+    | TargetInvalid                     -- ^ TargetInvalid+    | TargetNotFound                    -- ^ TargetNotFound+    | UnauthorizedOperation             -- ^ UnauthorizedOperation+    | VolumeAlreadyExists               -- ^ VolumeAlreadyExists+    | VolumeIdInvalid                   -- ^ VolumeIdInvalid+    | VolumeInUse                       -- ^ VolumeInUse+    | VolumeNotFound                    -- ^ VolumeNotFound+    | VolumeNotReady                    -- ^ VolumeNotReady+      deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable ErrorCode++instance FromText ErrorCode where+    parser = match "ActivationKeyExpired"              ActivationKeyExpired+         <|> match "ActivationKeyInvalid"              ActivationKeyInvalid+         <|> match "ActivationKeyNotFound"             ActivationKeyNotFound+         <|> match "AuthenticationFailure"             AuthenticationFailure+         <|> match "BandwidthThrottleScheduleNotFound" BandwidthThrottleScheduleNotFound+         <|> match "Blocked"                           Blocked+         <|> match "CannotExportSnapshot"              CannotExportSnapshot+         <|> match "ChapCredentialNotFound"            ChapCredentialNotFound+         <|> match "DiskAlreadyAllocated"              DiskAlreadyAllocated+         <|> match "DiskDoesNotExist"                  DiskDoesNotExist+         <|> match "DiskSizeGreaterThanVolumeMaxSize"  DiskSizeGreaterThanVolumeMaxSize+         <|> match "DiskSizeLessThanVolumeSize"        DiskSizeLessThanVolumeSize+         <|> match "DiskSizeNotGigAligned"             DiskSizeNotGigAligned+         <|> match "DuplicateCertificateInfo"          DuplicateCertificateInfo+         <|> match "DuplicateSchedule"                 DuplicateSchedule+         <|> match "EndpointNotFound"                  EndpointNotFound+         <|> match "GatewayInternalError"              GatewayInternalError+         <|> match "GatewayNotConnected"               GatewayNotConnected+         <|> match "GatewayNotFound"                   GatewayNotFound+         <|> match "GatewayProxyNetworkConnectionBusy" GatewayProxyNetworkConnectionBusy+         <|> match "IAMNotSupported"                   IAMNotSupported+         <|> match "InitiatorInvalid"                  InitiatorInvalid+         <|> match "InitiatorNotFound"                 InitiatorNotFound+         <|> match "InternalError"                     InternalError+         <|> match "InvalidEndpoint"                   InvalidEndpoint+         <|> match "InvalidGateway"                    InvalidGateway+         <|> match "InvalidParameters"                 InvalidParameters+         <|> match "InvalidSchedule"                   InvalidSchedule+         <|> match "LocalStorageLimitExceeded"         LocalStorageLimitExceeded+         <|> match "LunAlreadyAllocated "              LunAlreadyAllocated+         <|> match "LunInvalid"                        LunInvalid+         <|> match "MaximumContentLengthExceeded"      MaximumContentLengthExceeded+         <|> match "MaximumTapeCartridgeCountExceeded" MaximumTapeCartridgeCountExceeded+         <|> match "MaximumVolumeCountExceeded"        MaximumVolumeCountExceeded+         <|> match "NetworkConfigurationChanged"       NetworkConfigurationChanged+         <|> match "NoDisksAvailable"                  NoDisksAvailable+         <|> match "NotImplemented"                    NotImplemented+         <|> match "NotSupported"                      NotSupported+         <|> match "OperationAborted"                  OperationAborted+         <|> match "OutdatedGateway"                   OutdatedGateway+         <|> match "ParametersNotImplemented"          ParametersNotImplemented+         <|> match "RegionInvalid"                     RegionInvalid+         <|> match "RequestTimeout"                    RequestTimeout+         <|> match "ServiceUnavailable"                ServiceUnavailable+         <|> match "SnapshotDeleted"                   SnapshotDeleted+         <|> match "SnapshotIdInvalid"                 SnapshotIdInvalid+         <|> match "SnapshotInProgress"                SnapshotInProgress+         <|> match "SnapshotNotFound"                  SnapshotNotFound+         <|> match "SnapshotScheduleNotFound"          SnapshotScheduleNotFound+         <|> match "StagingAreaFull"                   StagingAreaFull+         <|> match "StorageFailure"                    StorageFailure+         <|> match "TapeCartridgeNotFound"             TapeCartridgeNotFound+         <|> match "TargetAlreadyExists"               TargetAlreadyExists+         <|> match "TargetInvalid"                     TargetInvalid+         <|> match "TargetNotFound"                    TargetNotFound+         <|> match "UnauthorizedOperation"             UnauthorizedOperation+         <|> match "VolumeAlreadyExists"               VolumeAlreadyExists+         <|> match "VolumeIdInvalid"                   VolumeIdInvalid+         <|> match "VolumeInUse"                       VolumeInUse+         <|> match "VolumeNotFound"                    VolumeNotFound+         <|> match "VolumeNotReady"                    VolumeNotReady++instance ToText ErrorCode where+    toText = \case+        ActivationKeyExpired              -> "ActivationKeyExpired"+        ActivationKeyInvalid              -> "ActivationKeyInvalid"+        ActivationKeyNotFound             -> "ActivationKeyNotFound"+        AuthenticationFailure             -> "AuthenticationFailure"+        BandwidthThrottleScheduleNotFound -> "BandwidthThrottleScheduleNotFound"+        Blocked                           -> "Blocked"+        CannotExportSnapshot              -> "CannotExportSnapshot"+        ChapCredentialNotFound            -> "ChapCredentialNotFound"+        DiskAlreadyAllocated              -> "DiskAlreadyAllocated"+        DiskDoesNotExist                  -> "DiskDoesNotExist"+        DiskSizeGreaterThanVolumeMaxSize  -> "DiskSizeGreaterThanVolumeMaxSize"+        DiskSizeLessThanVolumeSize        -> "DiskSizeLessThanVolumeSize"+        DiskSizeNotGigAligned             -> "DiskSizeNotGigAligned"+        DuplicateCertificateInfo          -> "DuplicateCertificateInfo"+        DuplicateSchedule                 -> "DuplicateSchedule"+        EndpointNotFound                  -> "EndpointNotFound"+        GatewayInternalError              -> "GatewayInternalError"+        GatewayNotConnected               -> "GatewayNotConnected"+        GatewayNotFound                   -> "GatewayNotFound"+        GatewayProxyNetworkConnectionBusy -> "GatewayProxyNetworkConnectionBusy"+        IAMNotSupported                   -> "IAMNotSupported"+        InitiatorInvalid                  -> "InitiatorInvalid"+        InitiatorNotFound                 -> "InitiatorNotFound"+        InternalError                     -> "InternalError"+        InvalidEndpoint                   -> "InvalidEndpoint"+        InvalidGateway                    -> "InvalidGateway"+        InvalidParameters                 -> "InvalidParameters"+        InvalidSchedule                   -> "InvalidSchedule"+        LocalStorageLimitExceeded         -> "LocalStorageLimitExceeded"+        LunAlreadyAllocated               -> "LunAlreadyAllocated "+        LunInvalid                        -> "LunInvalid"+        MaximumContentLengthExceeded      -> "MaximumContentLengthExceeded"+        MaximumTapeCartridgeCountExceeded -> "MaximumTapeCartridgeCountExceeded"+        MaximumVolumeCountExceeded        -> "MaximumVolumeCountExceeded"+        NetworkConfigurationChanged       -> "NetworkConfigurationChanged"+        NoDisksAvailable                  -> "NoDisksAvailable"+        NotImplemented                    -> "NotImplemented"+        NotSupported                      -> "NotSupported"+        OperationAborted                  -> "OperationAborted"+        OutdatedGateway                   -> "OutdatedGateway"+        ParametersNotImplemented          -> "ParametersNotImplemented"+        RegionInvalid                     -> "RegionInvalid"+        RequestTimeout                    -> "RequestTimeout"+        ServiceUnavailable                -> "ServiceUnavailable"+        SnapshotDeleted                   -> "SnapshotDeleted"+        SnapshotIdInvalid                 -> "SnapshotIdInvalid"+        SnapshotInProgress                -> "SnapshotInProgress"+        SnapshotNotFound                  -> "SnapshotNotFound"+        SnapshotScheduleNotFound          -> "SnapshotScheduleNotFound"+        StagingAreaFull                   -> "StagingAreaFull"+        StorageFailure                    -> "StorageFailure"+        TapeCartridgeNotFound             -> "TapeCartridgeNotFound"+        TargetAlreadyExists               -> "TargetAlreadyExists"+        TargetInvalid                     -> "TargetInvalid"+        TargetNotFound                    -> "TargetNotFound"+        UnauthorizedOperation             -> "UnauthorizedOperation"+        VolumeAlreadyExists               -> "VolumeAlreadyExists"+        VolumeIdInvalid                   -> "VolumeIdInvalid"+        VolumeInUse                       -> "VolumeInUse"+        VolumeNotFound                    -> "VolumeNotFound"+        VolumeNotReady                    -> "VolumeNotReady"++instance FromJSON ErrorCode where+    parseJSON = parseJSONText "ErrorCode"++instance ToJSON ErrorCode where+    toJSON = toJSONText++data StorediSCSIVolume = StorediSCSIVolume+    { _sscsivPreservedExistingData :: Maybe Bool+    , _sscsivSourceSnapshotId      :: Maybe Text+    , _sscsivVolumeARN             :: Maybe Text+    , _sscsivVolumeDiskId          :: Maybe Text+    , _sscsivVolumeId              :: Maybe Text+    , _sscsivVolumeProgress        :: Maybe Double+    , _sscsivVolumeSizeInBytes     :: Maybe Integer+    , _sscsivVolumeStatus          :: Maybe Text+    , _sscsivVolumeType            :: Maybe Text+    , _sscsivVolumeiSCSIAttributes :: Maybe VolumeiSCSIAttributes+    } deriving (Eq, Show)++-- | 'StorediSCSIVolume' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'sscsivPreservedExistingData' @::@ 'Maybe' 'Bool'+--+-- * 'sscsivSourceSnapshotId' @::@ 'Maybe' 'Text'+--+-- * 'sscsivVolumeARN' @::@ 'Maybe' 'Text'+--+-- * 'sscsivVolumeDiskId' @::@ 'Maybe' 'Text'+--+-- * 'sscsivVolumeId' @::@ 'Maybe' 'Text'+--+-- * 'sscsivVolumeProgress' @::@ 'Maybe' 'Double'+--+-- * 'sscsivVolumeSizeInBytes' @::@ 'Maybe' 'Integer'+--+-- * 'sscsivVolumeStatus' @::@ 'Maybe' 'Text'+--+-- * 'sscsivVolumeType' @::@ 'Maybe' 'Text'+--+-- * 'sscsivVolumeiSCSIAttributes' @::@ 'Maybe' 'VolumeiSCSIAttributes'+--+storediSCSIVolume :: StorediSCSIVolume+storediSCSIVolume = StorediSCSIVolume+    { _sscsivVolumeARN             = Nothing+    , _sscsivVolumeId              = Nothing+    , _sscsivVolumeType            = Nothing+    , _sscsivVolumeStatus          = Nothing+    , _sscsivVolumeSizeInBytes     = Nothing+    , _sscsivVolumeProgress        = Nothing+    , _sscsivVolumeDiskId          = Nothing+    , _sscsivSourceSnapshotId      = Nothing+    , _sscsivPreservedExistingData = Nothing+    , _sscsivVolumeiSCSIAttributes = Nothing+    }++sscsivPreservedExistingData :: Lens' StorediSCSIVolume (Maybe Bool)+sscsivPreservedExistingData =+    lens _sscsivPreservedExistingData+        (\s a -> s { _sscsivPreservedExistingData = a })++sscsivSourceSnapshotId :: Lens' StorediSCSIVolume (Maybe Text)+sscsivSourceSnapshotId =+    lens _sscsivSourceSnapshotId (\s a -> s { _sscsivSourceSnapshotId = a })++sscsivVolumeARN :: Lens' StorediSCSIVolume (Maybe Text)+sscsivVolumeARN = lens _sscsivVolumeARN (\s a -> s { _sscsivVolumeARN = a })++sscsivVolumeDiskId :: Lens' StorediSCSIVolume (Maybe Text)+sscsivVolumeDiskId =+    lens _sscsivVolumeDiskId (\s a -> s { _sscsivVolumeDiskId = a })++sscsivVolumeId :: Lens' StorediSCSIVolume (Maybe Text)+sscsivVolumeId = lens _sscsivVolumeId (\s a -> s { _sscsivVolumeId = a })++sscsivVolumeProgress :: Lens' StorediSCSIVolume (Maybe Double)+sscsivVolumeProgress =+    lens _sscsivVolumeProgress (\s a -> s { _sscsivVolumeProgress = a })++sscsivVolumeSizeInBytes :: Lens' StorediSCSIVolume (Maybe Integer)+sscsivVolumeSizeInBytes =+    lens _sscsivVolumeSizeInBytes (\s a -> s { _sscsivVolumeSizeInBytes = a })++sscsivVolumeStatus :: Lens' StorediSCSIVolume (Maybe Text)+sscsivVolumeStatus =+    lens _sscsivVolumeStatus (\s a -> s { _sscsivVolumeStatus = a })++sscsivVolumeType :: Lens' StorediSCSIVolume (Maybe Text)+sscsivVolumeType = lens _sscsivVolumeType (\s a -> s { _sscsivVolumeType = a })++sscsivVolumeiSCSIAttributes :: Lens' StorediSCSIVolume (Maybe VolumeiSCSIAttributes)+sscsivVolumeiSCSIAttributes =+    lens _sscsivVolumeiSCSIAttributes+        (\s a -> s { _sscsivVolumeiSCSIAttributes = a })++instance FromJSON StorediSCSIVolume where+    parseJSON = withObject "StorediSCSIVolume" $ \o -> StorediSCSIVolume+        <$> o .:? "PreservedExistingData"+        <*> o .:? "SourceSnapshotId"+        <*> o .:? "VolumeARN"+        <*> o .:? "VolumeDiskId"+        <*> o .:? "VolumeId"+        <*> o .:? "VolumeProgress"+        <*> o .:? "VolumeSizeInBytes"+        <*> o .:? "VolumeStatus"+        <*> o .:? "VolumeType"+        <*> o .:? "VolumeiSCSIAttributes"++instance ToJSON StorediSCSIVolume where+    toJSON StorediSCSIVolume{..} = object+        [ "VolumeARN"             .= _sscsivVolumeARN+        , "VolumeId"              .= _sscsivVolumeId+        , "VolumeType"            .= _sscsivVolumeType+        , "VolumeStatus"          .= _sscsivVolumeStatus+        , "VolumeSizeInBytes"     .= _sscsivVolumeSizeInBytes+        , "VolumeProgress"        .= _sscsivVolumeProgress+        , "VolumeDiskId"          .= _sscsivVolumeDiskId+        , "SourceSnapshotId"      .= _sscsivSourceSnapshotId+        , "PreservedExistingData" .= _sscsivPreservedExistingData+        , "VolumeiSCSIAttributes" .= _sscsivVolumeiSCSIAttributes+        ]++data CachediSCSIVolume = CachediSCSIVolume+    { _cscsivSourceSnapshotId      :: Maybe Text+    , _cscsivVolumeARN             :: Maybe Text+    , _cscsivVolumeId              :: Maybe Text+    , _cscsivVolumeProgress        :: Maybe Double+    , _cscsivVolumeSizeInBytes     :: Maybe Integer+    , _cscsivVolumeStatus          :: Maybe Text+    , _cscsivVolumeType            :: Maybe Text+    , _cscsivVolumeiSCSIAttributes :: Maybe VolumeiSCSIAttributes+    } deriving (Eq, Show)++-- | 'CachediSCSIVolume' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'cscsivSourceSnapshotId' @::@ 'Maybe' 'Text'+--+-- * 'cscsivVolumeARN' @::@ 'Maybe' 'Text'+--+-- * 'cscsivVolumeId' @::@ 'Maybe' 'Text'+--+-- * 'cscsivVolumeProgress' @::@ 'Maybe' 'Double'+--+-- * 'cscsivVolumeSizeInBytes' @::@ 'Maybe' 'Integer'+--+-- * 'cscsivVolumeStatus' @::@ 'Maybe' 'Text'+--+-- * 'cscsivVolumeType' @::@ 'Maybe' 'Text'+--+-- * 'cscsivVolumeiSCSIAttributes' @::@ 'Maybe' 'VolumeiSCSIAttributes'+--+cachediSCSIVolume :: CachediSCSIVolume+cachediSCSIVolume = CachediSCSIVolume+    { _cscsivVolumeARN             = Nothing+    , _cscsivVolumeId              = Nothing+    , _cscsivVolumeType            = Nothing+    , _cscsivVolumeStatus          = Nothing+    , _cscsivVolumeSizeInBytes     = Nothing+    , _cscsivVolumeProgress        = Nothing+    , _cscsivSourceSnapshotId      = Nothing+    , _cscsivVolumeiSCSIAttributes = Nothing+    }++cscsivSourceSnapshotId :: Lens' CachediSCSIVolume (Maybe Text)+cscsivSourceSnapshotId =+    lens _cscsivSourceSnapshotId (\s a -> s { _cscsivSourceSnapshotId = a })++cscsivVolumeARN :: Lens' CachediSCSIVolume (Maybe Text)+cscsivVolumeARN = lens _cscsivVolumeARN (\s a -> s { _cscsivVolumeARN = a })++cscsivVolumeId :: Lens' CachediSCSIVolume (Maybe Text)+cscsivVolumeId = lens _cscsivVolumeId (\s a -> s { _cscsivVolumeId = a })++cscsivVolumeProgress :: Lens' CachediSCSIVolume (Maybe Double)+cscsivVolumeProgress =+    lens _cscsivVolumeProgress (\s a -> s { _cscsivVolumeProgress = a })++cscsivVolumeSizeInBytes :: Lens' CachediSCSIVolume (Maybe Integer)+cscsivVolumeSizeInBytes =+    lens _cscsivVolumeSizeInBytes (\s a -> s { _cscsivVolumeSizeInBytes = a })++cscsivVolumeStatus :: Lens' CachediSCSIVolume (Maybe Text)+cscsivVolumeStatus =+    lens _cscsivVolumeStatus (\s a -> s { _cscsivVolumeStatus = a })++cscsivVolumeType :: Lens' CachediSCSIVolume (Maybe Text)+cscsivVolumeType = lens _cscsivVolumeType (\s a -> s { _cscsivVolumeType = a })++cscsivVolumeiSCSIAttributes :: Lens' CachediSCSIVolume (Maybe VolumeiSCSIAttributes)+cscsivVolumeiSCSIAttributes =+    lens _cscsivVolumeiSCSIAttributes+        (\s a -> s { _cscsivVolumeiSCSIAttributes = a })++instance FromJSON CachediSCSIVolume where+    parseJSON = withObject "CachediSCSIVolume" $ \o -> CachediSCSIVolume+        <$> o .:? "SourceSnapshotId"+        <*> o .:? "VolumeARN"+        <*> o .:? "VolumeId"+        <*> o .:? "VolumeProgress"+        <*> o .:? "VolumeSizeInBytes"+        <*> o .:? "VolumeStatus"+        <*> o .:? "VolumeType"+        <*> o .:? "VolumeiSCSIAttributes"++instance ToJSON CachediSCSIVolume where+    toJSON CachediSCSIVolume{..} = object+        [ "VolumeARN"             .= _cscsivVolumeARN+        , "VolumeId"              .= _cscsivVolumeId+        , "VolumeType"            .= _cscsivVolumeType+        , "VolumeStatus"          .= _cscsivVolumeStatus+        , "VolumeSizeInBytes"     .= _cscsivVolumeSizeInBytes+        , "VolumeProgress"        .= _cscsivVolumeProgress+        , "SourceSnapshotId"      .= _cscsivSourceSnapshotId+        , "VolumeiSCSIAttributes" .= _cscsivVolumeiSCSIAttributes+        ]++data VolumeInfo = VolumeInfo+    { _viVolumeARN  :: Maybe Text+    , _viVolumeType :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'VolumeInfo' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'viVolumeARN' @::@ 'Maybe' 'Text'+--+-- * 'viVolumeType' @::@ 'Maybe' 'Text'+--+volumeInfo :: VolumeInfo+volumeInfo = VolumeInfo+    { _viVolumeARN  = Nothing+    , _viVolumeType = Nothing+    }++viVolumeARN :: Lens' VolumeInfo (Maybe Text)+viVolumeARN = lens _viVolumeARN (\s a -> s { _viVolumeARN = a })++viVolumeType :: Lens' VolumeInfo (Maybe Text)+viVolumeType = lens _viVolumeType (\s a -> s { _viVolumeType = a })++instance FromJSON VolumeInfo where+    parseJSON = withObject "VolumeInfo" $ \o -> VolumeInfo+        <$> o .:? "VolumeARN"+        <*> o .:? "VolumeType"++instance ToJSON VolumeInfo where+    toJSON VolumeInfo{..} = object+        [ "VolumeARN"  .= _viVolumeARN+        , "VolumeType" .= _viVolumeType+        ]++data GatewayInfo = GatewayInfo+    { _giGatewayARN              :: Maybe Text+    , _giGatewayOperationalState :: Maybe Text+    , _giGatewayType             :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'GatewayInfo' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'giGatewayARN' @::@ 'Maybe' 'Text'+--+-- * 'giGatewayOperationalState' @::@ 'Maybe' 'Text'+--+-- * 'giGatewayType' @::@ 'Maybe' 'Text'+--+gatewayInfo :: GatewayInfo+gatewayInfo = GatewayInfo+    { _giGatewayARN              = Nothing+    , _giGatewayType             = Nothing+    , _giGatewayOperationalState = Nothing+    }++giGatewayARN :: Lens' GatewayInfo (Maybe Text)+giGatewayARN = lens _giGatewayARN (\s a -> s { _giGatewayARN = a })++giGatewayOperationalState :: Lens' GatewayInfo (Maybe Text)+giGatewayOperationalState =+    lens _giGatewayOperationalState+        (\s a -> s { _giGatewayOperationalState = a })++giGatewayType :: Lens' GatewayInfo (Maybe Text)+giGatewayType = lens _giGatewayType (\s a -> s { _giGatewayType = a })++instance FromJSON GatewayInfo where+    parseJSON = withObject "GatewayInfo" $ \o -> GatewayInfo+        <$> o .:? "GatewayARN"+        <*> o .:? "GatewayOperationalState"+        <*> o .:? "GatewayType"++instance ToJSON GatewayInfo where+    toJSON GatewayInfo{..} = object+        [ "GatewayARN"              .= _giGatewayARN+        , "GatewayType"             .= _giGatewayType+        , "GatewayOperationalState" .= _giGatewayOperationalState+        ]
+ gen/Network/AWS/StorageGateway/UpdateBandwidthRateLimit.hs view
@@ -0,0 +1,140 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.UpdateBandwidthRateLimit+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation updates the bandwidth rate limits of a gateway. You can+-- update both the upload and download bandwidth rate limit or specify only+-- one of the two. If you don't set a bandwidth rate limit, the existing rate+-- limit remains. By default, a gateway's bandwidth rate limits are not set.+-- If you don't set any limit, the gateway does not have any limitations on+-- its bandwidth usage and could potentially use the maximum available+-- bandwidth. To specify which gateway to update, use the Amazon Resource Name+-- (ARN) of the gateway in your request.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_UpdateBandwidthRateLimit.html>+module Network.AWS.StorageGateway.UpdateBandwidthRateLimit+    (+    -- * Request+      UpdateBandwidthRateLimit+    -- ** Request constructor+    , updateBandwidthRateLimit+    -- ** Request lenses+    , ubrlAverageDownloadRateLimitInBitsPerSec+    , ubrlAverageUploadRateLimitInBitsPerSec+    , ubrlGatewayARN++    -- * Response+    , UpdateBandwidthRateLimitResponse+    -- ** Response constructor+    , updateBandwidthRateLimitResponse+    -- ** Response lenses+    , ubrlrGatewayARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data UpdateBandwidthRateLimit = UpdateBandwidthRateLimit+    { _ubrlAverageDownloadRateLimitInBitsPerSec :: Maybe Nat+    , _ubrlAverageUploadRateLimitInBitsPerSec   :: Maybe Nat+    , _ubrlGatewayARN                           :: Text+    } deriving (Eq, Ord, Show)++-- | 'UpdateBandwidthRateLimit' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ubrlAverageDownloadRateLimitInBitsPerSec' @::@ 'Maybe' 'Natural'+--+-- * 'ubrlAverageUploadRateLimitInBitsPerSec' @::@ 'Maybe' 'Natural'+--+-- * 'ubrlGatewayARN' @::@ 'Text'+--+updateBandwidthRateLimit :: Text -- ^ 'ubrlGatewayARN'+                         -> UpdateBandwidthRateLimit+updateBandwidthRateLimit p1 = UpdateBandwidthRateLimit+    { _ubrlGatewayARN                           = p1+    , _ubrlAverageUploadRateLimitInBitsPerSec   = Nothing+    , _ubrlAverageDownloadRateLimitInBitsPerSec = Nothing+    }++-- | The average download bandwidth rate limit in bits per second.+ubrlAverageDownloadRateLimitInBitsPerSec :: Lens' UpdateBandwidthRateLimit (Maybe Natural)+ubrlAverageDownloadRateLimitInBitsPerSec =+    lens _ubrlAverageDownloadRateLimitInBitsPerSec+        (\s a -> s { _ubrlAverageDownloadRateLimitInBitsPerSec = a })+            . mapping _Nat++-- | The average upload bandwidth rate limit in bits per second.+ubrlAverageUploadRateLimitInBitsPerSec :: Lens' UpdateBandwidthRateLimit (Maybe Natural)+ubrlAverageUploadRateLimitInBitsPerSec =+    lens _ubrlAverageUploadRateLimitInBitsPerSec+        (\s a -> s { _ubrlAverageUploadRateLimitInBitsPerSec = a })+            . mapping _Nat++ubrlGatewayARN :: Lens' UpdateBandwidthRateLimit Text+ubrlGatewayARN = lens _ubrlGatewayARN (\s a -> s { _ubrlGatewayARN = a })++newtype UpdateBandwidthRateLimitResponse = UpdateBandwidthRateLimitResponse+    { _ubrlrGatewayARN :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'UpdateBandwidthRateLimitResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ubrlrGatewayARN' @::@ 'Maybe' 'Text'+--+updateBandwidthRateLimitResponse :: UpdateBandwidthRateLimitResponse+updateBandwidthRateLimitResponse = UpdateBandwidthRateLimitResponse+    { _ubrlrGatewayARN = Nothing+    }++ubrlrGatewayARN :: Lens' UpdateBandwidthRateLimitResponse (Maybe Text)+ubrlrGatewayARN = lens _ubrlrGatewayARN (\s a -> s { _ubrlrGatewayARN = a })++instance ToPath UpdateBandwidthRateLimit where+    toPath = const "/"++instance ToQuery UpdateBandwidthRateLimit where+    toQuery = const mempty++instance ToHeaders UpdateBandwidthRateLimit++instance ToJSON UpdateBandwidthRateLimit where+    toJSON UpdateBandwidthRateLimit{..} = object+        [ "GatewayARN"                           .= _ubrlGatewayARN+        , "AverageUploadRateLimitInBitsPerSec"   .= _ubrlAverageUploadRateLimitInBitsPerSec+        , "AverageDownloadRateLimitInBitsPerSec" .= _ubrlAverageDownloadRateLimitInBitsPerSec+        ]++instance AWSRequest UpdateBandwidthRateLimit where+    type Sv UpdateBandwidthRateLimit = StorageGateway+    type Rs UpdateBandwidthRateLimit = UpdateBandwidthRateLimitResponse++    request  = post "UpdateBandwidthRateLimit"+    response = jsonResponse++instance FromJSON UpdateBandwidthRateLimitResponse where+    parseJSON = withObject "UpdateBandwidthRateLimitResponse" $ \o -> UpdateBandwidthRateLimitResponse+        <$> o .:? "GatewayARN"
+ gen/Network/AWS/StorageGateway/UpdateChapCredentials.hs view
@@ -0,0 +1,166 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.UpdateChapCredentials+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation updates the Challenge-Handshake Authentication Protocol+-- (CHAP) credentials for a specified iSCSI target. By default, a gateway does+-- not have CHAP enabled; however, for added security, you might use it. When+-- you update CHAP credentials, all existing connections on the target are+-- closed and initiators must reconnect with the new credentials.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_UpdateChapCredentials.html>+module Network.AWS.StorageGateway.UpdateChapCredentials+    (+    -- * Request+      UpdateChapCredentials+    -- ** Request constructor+    , updateChapCredentials+    -- ** Request lenses+    , uccInitiatorName+    , uccSecretToAuthenticateInitiator+    , uccSecretToAuthenticateTarget+    , uccTargetARN++    -- * Response+    , UpdateChapCredentialsResponse+    -- ** Response constructor+    , updateChapCredentialsResponse+    -- ** Response lenses+    , uccrInitiatorName+    , uccrTargetARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data UpdateChapCredentials = UpdateChapCredentials+    { _uccInitiatorName                 :: Text+    , _uccSecretToAuthenticateInitiator :: Text+    , _uccSecretToAuthenticateTarget    :: Maybe Text+    , _uccTargetARN                     :: Text+    } deriving (Eq, Ord, Show)++-- | 'UpdateChapCredentials' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'uccInitiatorName' @::@ 'Text'+--+-- * 'uccSecretToAuthenticateInitiator' @::@ 'Text'+--+-- * 'uccSecretToAuthenticateTarget' @::@ 'Maybe' 'Text'+--+-- * 'uccTargetARN' @::@ 'Text'+--+updateChapCredentials :: Text -- ^ 'uccTargetARN'+                      -> Text -- ^ 'uccSecretToAuthenticateInitiator'+                      -> Text -- ^ 'uccInitiatorName'+                      -> UpdateChapCredentials+updateChapCredentials p1 p2 p3 = UpdateChapCredentials+    { _uccTargetARN                     = p1+    , _uccSecretToAuthenticateInitiator = p2+    , _uccInitiatorName                 = p3+    , _uccSecretToAuthenticateTarget    = Nothing+    }++-- | The iSCSI initiator that connects to the target.+uccInitiatorName :: Lens' UpdateChapCredentials Text+uccInitiatorName = lens _uccInitiatorName (\s a -> s { _uccInitiatorName = a })++-- | The secret key that the initiator (e.g. Windows client) must provide to+-- participate in mutual CHAP with the target.+uccSecretToAuthenticateInitiator :: Lens' UpdateChapCredentials Text+uccSecretToAuthenticateInitiator =+    lens _uccSecretToAuthenticateInitiator+        (\s a -> s { _uccSecretToAuthenticateInitiator = a })++-- | The secret key that the target must provide to participate in mutual CHAP+-- with the initiator (e.g. Windows client).+uccSecretToAuthenticateTarget :: Lens' UpdateChapCredentials (Maybe Text)+uccSecretToAuthenticateTarget =+    lens _uccSecretToAuthenticateTarget+        (\s a -> s { _uccSecretToAuthenticateTarget = a })++-- | The Amazon Resource Name (ARN) of the iSCSI volume target. Use the+-- DescribeStorediSCSIVolumes operation to return to retrieve the TargetARN+-- for specified VolumeARN.+uccTargetARN :: Lens' UpdateChapCredentials Text+uccTargetARN = lens _uccTargetARN (\s a -> s { _uccTargetARN = a })++data UpdateChapCredentialsResponse = UpdateChapCredentialsResponse+    { _uccrInitiatorName :: Maybe Text+    , _uccrTargetARN     :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'UpdateChapCredentialsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'uccrInitiatorName' @::@ 'Maybe' 'Text'+--+-- * 'uccrTargetARN' @::@ 'Maybe' 'Text'+--+updateChapCredentialsResponse :: UpdateChapCredentialsResponse+updateChapCredentialsResponse = UpdateChapCredentialsResponse+    { _uccrTargetARN     = Nothing+    , _uccrInitiatorName = Nothing+    }++-- | The iSCSI initiator that connects to the target. This is the same+-- initiator name specified in the request.+uccrInitiatorName :: Lens' UpdateChapCredentialsResponse (Maybe Text)+uccrInitiatorName =+    lens _uccrInitiatorName (\s a -> s { _uccrInitiatorName = a })++-- | The Amazon Resource Name (ARN) of the target. This is the same target+-- specified in the request.+uccrTargetARN :: Lens' UpdateChapCredentialsResponse (Maybe Text)+uccrTargetARN = lens _uccrTargetARN (\s a -> s { _uccrTargetARN = a })++instance ToPath UpdateChapCredentials where+    toPath = const "/"++instance ToQuery UpdateChapCredentials where+    toQuery = const mempty++instance ToHeaders UpdateChapCredentials++instance ToJSON UpdateChapCredentials where+    toJSON UpdateChapCredentials{..} = object+        [ "TargetARN"                     .= _uccTargetARN+        , "SecretToAuthenticateInitiator" .= _uccSecretToAuthenticateInitiator+        , "InitiatorName"                 .= _uccInitiatorName+        , "SecretToAuthenticateTarget"    .= _uccSecretToAuthenticateTarget+        ]++instance AWSRequest UpdateChapCredentials where+    type Sv UpdateChapCredentials = StorageGateway+    type Rs UpdateChapCredentials = UpdateChapCredentialsResponse++    request  = post "UpdateChapCredentials"+    response = jsonResponse++instance FromJSON UpdateChapCredentialsResponse where+    parseJSON = withObject "UpdateChapCredentialsResponse" $ \o -> UpdateChapCredentialsResponse+        <$> o .:? "InitiatorName"+        <*> o .:? "TargetARN"
+ gen/Network/AWS/StorageGateway/UpdateGatewayInformation.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.UpdateGatewayInformation+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation updates a gateway's metadata, which includes the gateway's+-- name and time zone. To specify which gateway to update, use the Amazon+-- Resource Name (ARN) of the gateway in your request.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_UpdateGatewayInformation.html>+module Network.AWS.StorageGateway.UpdateGatewayInformation+    (+    -- * Request+      UpdateGatewayInformation+    -- ** Request constructor+    , updateGatewayInformation+    -- ** Request lenses+    , ugiGatewayARN+    , ugiGatewayName+    , ugiGatewayTimezone++    -- * Response+    , UpdateGatewayInformationResponse+    -- ** Response constructor+    , updateGatewayInformationResponse+    -- ** Response lenses+    , ugirGatewayARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data UpdateGatewayInformation = UpdateGatewayInformation+    { _ugiGatewayARN      :: Text+    , _ugiGatewayName     :: Maybe Text+    , _ugiGatewayTimezone :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'UpdateGatewayInformation' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ugiGatewayARN' @::@ 'Text'+--+-- * 'ugiGatewayName' @::@ 'Maybe' 'Text'+--+-- * 'ugiGatewayTimezone' @::@ 'Maybe' 'Text'+--+updateGatewayInformation :: Text -- ^ 'ugiGatewayARN'+                         -> UpdateGatewayInformation+updateGatewayInformation p1 = UpdateGatewayInformation+    { _ugiGatewayARN      = p1+    , _ugiGatewayName     = Nothing+    , _ugiGatewayTimezone = Nothing+    }++ugiGatewayARN :: Lens' UpdateGatewayInformation Text+ugiGatewayARN = lens _ugiGatewayARN (\s a -> s { _ugiGatewayARN = a })++ugiGatewayName :: Lens' UpdateGatewayInformation (Maybe Text)+ugiGatewayName = lens _ugiGatewayName (\s a -> s { _ugiGatewayName = a })++ugiGatewayTimezone :: Lens' UpdateGatewayInformation (Maybe Text)+ugiGatewayTimezone =+    lens _ugiGatewayTimezone (\s a -> s { _ugiGatewayTimezone = a })++newtype UpdateGatewayInformationResponse = UpdateGatewayInformationResponse+    { _ugirGatewayARN :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'UpdateGatewayInformationResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ugirGatewayARN' @::@ 'Maybe' 'Text'+--+updateGatewayInformationResponse :: UpdateGatewayInformationResponse+updateGatewayInformationResponse = UpdateGatewayInformationResponse+    { _ugirGatewayARN = Nothing+    }++ugirGatewayARN :: Lens' UpdateGatewayInformationResponse (Maybe Text)+ugirGatewayARN = lens _ugirGatewayARN (\s a -> s { _ugirGatewayARN = a })++instance ToPath UpdateGatewayInformation where+    toPath = const "/"++instance ToQuery UpdateGatewayInformation where+    toQuery = const mempty++instance ToHeaders UpdateGatewayInformation++instance ToJSON UpdateGatewayInformation where+    toJSON UpdateGatewayInformation{..} = object+        [ "GatewayARN"      .= _ugiGatewayARN+        , "GatewayName"     .= _ugiGatewayName+        , "GatewayTimezone" .= _ugiGatewayTimezone+        ]++instance AWSRequest UpdateGatewayInformation where+    type Sv UpdateGatewayInformation = StorageGateway+    type Rs UpdateGatewayInformation = UpdateGatewayInformationResponse++    request  = post "UpdateGatewayInformation"+    response = jsonResponse++instance FromJSON UpdateGatewayInformationResponse where+    parseJSON = withObject "UpdateGatewayInformationResponse" $ \o -> UpdateGatewayInformationResponse+        <$> o .:? "GatewayARN"
+ gen/Network/AWS/StorageGateway/UpdateGatewaySoftwareNow.hs view
@@ -0,0 +1,113 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.UpdateGatewaySoftwareNow+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation updates the gateway virtual machine (VM) software. The+-- request immediately triggers the software update. A software update forces+-- a system restart of your gateway. You can minimize the chance of any+-- disruption to your applications by increasing your iSCSI Initiators'+-- timeouts. For more information about increasing iSCSI Initiator timeouts+-- for Windows and Linux, see Customizing Your Windows iSCSI Settings and+-- Customizing Your Linux iSCSI Settings, respectively.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_UpdateGatewaySoftwareNow.html>+module Network.AWS.StorageGateway.UpdateGatewaySoftwareNow+    (+    -- * Request+      UpdateGatewaySoftwareNow+    -- ** Request constructor+    , updateGatewaySoftwareNow+    -- ** Request lenses+    , ugsnGatewayARN++    -- * Response+    , UpdateGatewaySoftwareNowResponse+    -- ** Response constructor+    , updateGatewaySoftwareNowResponse+    -- ** Response lenses+    , ugsnrGatewayARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++newtype UpdateGatewaySoftwareNow = UpdateGatewaySoftwareNow+    { _ugsnGatewayARN :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'UpdateGatewaySoftwareNow' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ugsnGatewayARN' @::@ 'Text'+--+updateGatewaySoftwareNow :: Text -- ^ 'ugsnGatewayARN'+                         -> UpdateGatewaySoftwareNow+updateGatewaySoftwareNow p1 = UpdateGatewaySoftwareNow+    { _ugsnGatewayARN = p1+    }++ugsnGatewayARN :: Lens' UpdateGatewaySoftwareNow Text+ugsnGatewayARN = lens _ugsnGatewayARN (\s a -> s { _ugsnGatewayARN = a })++newtype UpdateGatewaySoftwareNowResponse = UpdateGatewaySoftwareNowResponse+    { _ugsnrGatewayARN :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'UpdateGatewaySoftwareNowResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ugsnrGatewayARN' @::@ 'Maybe' 'Text'+--+updateGatewaySoftwareNowResponse :: UpdateGatewaySoftwareNowResponse+updateGatewaySoftwareNowResponse = UpdateGatewaySoftwareNowResponse+    { _ugsnrGatewayARN = Nothing+    }++ugsnrGatewayARN :: Lens' UpdateGatewaySoftwareNowResponse (Maybe Text)+ugsnrGatewayARN = lens _ugsnrGatewayARN (\s a -> s { _ugsnrGatewayARN = a })++instance ToPath UpdateGatewaySoftwareNow where+    toPath = const "/"++instance ToQuery UpdateGatewaySoftwareNow where+    toQuery = const mempty++instance ToHeaders UpdateGatewaySoftwareNow++instance ToJSON UpdateGatewaySoftwareNow where+    toJSON UpdateGatewaySoftwareNow{..} = object+        [ "GatewayARN" .= _ugsnGatewayARN+        ]++instance AWSRequest UpdateGatewaySoftwareNow where+    type Sv UpdateGatewaySoftwareNow = StorageGateway+    type Rs UpdateGatewaySoftwareNow = UpdateGatewaySoftwareNowResponse++    request  = post "UpdateGatewaySoftwareNow"+    response = jsonResponse++instance FromJSON UpdateGatewaySoftwareNowResponse where+    parseJSON = withObject "UpdateGatewaySoftwareNowResponse" $ \o -> UpdateGatewaySoftwareNowResponse+        <$> o .:? "GatewayARN"
+ gen/Network/AWS/StorageGateway/UpdateMaintenanceStartTime.hs view
@@ -0,0 +1,146 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.UpdateMaintenanceStartTime+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation updates a gateway's weekly maintenance start time+-- information, including day and time of the week. The maintenance time is+-- the time in your gateway's time zone.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_UpdateMaintenanceStartTime.html>+module Network.AWS.StorageGateway.UpdateMaintenanceStartTime+    (+    -- * Request+      UpdateMaintenanceStartTime+    -- ** Request constructor+    , updateMaintenanceStartTime+    -- ** Request lenses+    , umstDayOfWeek+    , umstGatewayARN+    , umstHourOfDay+    , umstMinuteOfHour++    -- * Response+    , UpdateMaintenanceStartTimeResponse+    -- ** Response constructor+    , updateMaintenanceStartTimeResponse+    -- ** Response lenses+    , umstrGatewayARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data UpdateMaintenanceStartTime = UpdateMaintenanceStartTime+    { _umstDayOfWeek    :: Nat+    , _umstGatewayARN   :: Text+    , _umstHourOfDay    :: Nat+    , _umstMinuteOfHour :: Nat+    } deriving (Eq, Ord, Show)++-- | 'UpdateMaintenanceStartTime' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'umstDayOfWeek' @::@ 'Natural'+--+-- * 'umstGatewayARN' @::@ 'Text'+--+-- * 'umstHourOfDay' @::@ 'Natural'+--+-- * 'umstMinuteOfHour' @::@ 'Natural'+--+updateMaintenanceStartTime :: Text -- ^ 'umstGatewayARN'+                           -> Natural -- ^ 'umstHourOfDay'+                           -> Natural -- ^ 'umstMinuteOfHour'+                           -> Natural -- ^ 'umstDayOfWeek'+                           -> UpdateMaintenanceStartTime+updateMaintenanceStartTime p1 p2 p3 p4 = UpdateMaintenanceStartTime+    { _umstGatewayARN   = p1+    , _umstHourOfDay    = withIso _Nat (const id) p2+    , _umstMinuteOfHour = withIso _Nat (const id) p3+    , _umstDayOfWeek    = withIso _Nat (const id) p4+    }++-- | The maintenance start time day of the week.+umstDayOfWeek :: Lens' UpdateMaintenanceStartTime Natural+umstDayOfWeek = lens _umstDayOfWeek (\s a -> s { _umstDayOfWeek = a }) . _Nat++umstGatewayARN :: Lens' UpdateMaintenanceStartTime Text+umstGatewayARN = lens _umstGatewayARN (\s a -> s { _umstGatewayARN = a })++-- | The hour component of the maintenance start time represented as hh, where+-- hh is the hour (00 to 23). The hour of the day is in the time zone of the+-- gateway.+umstHourOfDay :: Lens' UpdateMaintenanceStartTime Natural+umstHourOfDay = lens _umstHourOfDay (\s a -> s { _umstHourOfDay = a }) . _Nat++-- | The minute component of the maintenance start time represented as mm,+-- where mm is the minute (00 to 59). The minute of the hour is in the time+-- zone of the gateway.+umstMinuteOfHour :: Lens' UpdateMaintenanceStartTime Natural+umstMinuteOfHour = lens _umstMinuteOfHour (\s a -> s { _umstMinuteOfHour = a }) . _Nat++newtype UpdateMaintenanceStartTimeResponse = UpdateMaintenanceStartTimeResponse+    { _umstrGatewayARN :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'UpdateMaintenanceStartTimeResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'umstrGatewayARN' @::@ 'Maybe' 'Text'+--+updateMaintenanceStartTimeResponse :: UpdateMaintenanceStartTimeResponse+updateMaintenanceStartTimeResponse = UpdateMaintenanceStartTimeResponse+    { _umstrGatewayARN = Nothing+    }++umstrGatewayARN :: Lens' UpdateMaintenanceStartTimeResponse (Maybe Text)+umstrGatewayARN = lens _umstrGatewayARN (\s a -> s { _umstrGatewayARN = a })++instance ToPath UpdateMaintenanceStartTime where+    toPath = const "/"++instance ToQuery UpdateMaintenanceStartTime where+    toQuery = const mempty++instance ToHeaders UpdateMaintenanceStartTime++instance ToJSON UpdateMaintenanceStartTime where+    toJSON UpdateMaintenanceStartTime{..} = object+        [ "GatewayARN"   .= _umstGatewayARN+        , "HourOfDay"    .= _umstHourOfDay+        , "MinuteOfHour" .= _umstMinuteOfHour+        , "DayOfWeek"    .= _umstDayOfWeek+        ]++instance AWSRequest UpdateMaintenanceStartTime where+    type Sv UpdateMaintenanceStartTime = StorageGateway+    type Rs UpdateMaintenanceStartTime = UpdateMaintenanceStartTimeResponse++    request  = post "UpdateMaintenanceStartTime"+    response = jsonResponse++instance FromJSON UpdateMaintenanceStartTimeResponse where+    parseJSON = withObject "UpdateMaintenanceStartTimeResponse" $ \o -> UpdateMaintenanceStartTimeResponse+        <$> o .:? "GatewayARN"
+ gen/Network/AWS/StorageGateway/UpdateSnapshotSchedule.hs view
@@ -0,0 +1,152 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.StorageGateway.UpdateSnapshotSchedule+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- 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)++-- | This operation updates a snapshot schedule configured for a gateway volume.+-- The default snapshot schedule for volume is once every 24 hours, starting+-- at the creation time of the volume. You can use this API to change the+-- snapshot schedule configured for the volume. In the request you must+-- identify the gateway volume whose snapshot schedule you want to update, and+-- the schedule information, including when you want the snapshot to begin on+-- a day and the frequency (in hours) of snapshots.+--+-- <http://docs.aws.amazon.com/storagegateway/latest/APIReference/API_UpdateSnapshotSchedule.html>+module Network.AWS.StorageGateway.UpdateSnapshotSchedule+    (+    -- * Request+      UpdateSnapshotSchedule+    -- ** Request constructor+    , updateSnapshotSchedule+    -- ** Request lenses+    , ussDescription+    , ussRecurrenceInHours+    , ussStartAt+    , ussVolumeARN++    -- * Response+    , UpdateSnapshotScheduleResponse+    -- ** Response constructor+    , updateSnapshotScheduleResponse+    -- ** Response lenses+    , ussrVolumeARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.StorageGateway.Types+import qualified GHC.Exts++data UpdateSnapshotSchedule = UpdateSnapshotSchedule+    { _ussDescription       :: Maybe Text+    , _ussRecurrenceInHours :: Nat+    , _ussStartAt           :: Nat+    , _ussVolumeARN         :: Text+    } deriving (Eq, Ord, Show)++-- | 'UpdateSnapshotSchedule' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ussDescription' @::@ 'Maybe' 'Text'+--+-- * 'ussRecurrenceInHours' @::@ 'Natural'+--+-- * 'ussStartAt' @::@ 'Natural'+--+-- * 'ussVolumeARN' @::@ 'Text'+--+updateSnapshotSchedule :: Text -- ^ 'ussVolumeARN'+                       -> Natural -- ^ 'ussStartAt'+                       -> Natural -- ^ 'ussRecurrenceInHours'+                       -> UpdateSnapshotSchedule+updateSnapshotSchedule p1 p2 p3 = UpdateSnapshotSchedule+    { _ussVolumeARN         = p1+    , _ussStartAt           = withIso _Nat (const id) p2+    , _ussRecurrenceInHours = withIso _Nat (const id) p3+    , _ussDescription       = Nothing+    }++-- | Optional description of the snapshot that overwrites the existing+-- description.+ussDescription :: Lens' UpdateSnapshotSchedule (Maybe Text)+ussDescription = lens _ussDescription (\s a -> s { _ussDescription = a })++-- | Frequency of snapshots. Specify the number of hours between snapshots.+ussRecurrenceInHours :: Lens' UpdateSnapshotSchedule Natural+ussRecurrenceInHours =+    lens _ussRecurrenceInHours (\s a -> s { _ussRecurrenceInHours = a })+        . _Nat++-- | The hour of the day at which the snapshot schedule begins represented as+-- hh, where hh is the hour (0 to 23). The hour of the day is in the time+-- zone of the gateway.+ussStartAt :: Lens' UpdateSnapshotSchedule Natural+ussStartAt = lens _ussStartAt (\s a -> s { _ussStartAt = a }) . _Nat++-- | The Amazon Resource Name (ARN) of the volume. Use the ListVolumes+-- operation to return a list of gateway volumes.+ussVolumeARN :: Lens' UpdateSnapshotSchedule Text+ussVolumeARN = lens _ussVolumeARN (\s a -> s { _ussVolumeARN = a })++newtype UpdateSnapshotScheduleResponse = UpdateSnapshotScheduleResponse+    { _ussrVolumeARN :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'UpdateSnapshotScheduleResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ussrVolumeARN' @::@ 'Maybe' 'Text'+--+updateSnapshotScheduleResponse :: UpdateSnapshotScheduleResponse+updateSnapshotScheduleResponse = UpdateSnapshotScheduleResponse+    { _ussrVolumeARN = Nothing+    }++ussrVolumeARN :: Lens' UpdateSnapshotScheduleResponse (Maybe Text)+ussrVolumeARN = lens _ussrVolumeARN (\s a -> s { _ussrVolumeARN = a })++instance ToPath UpdateSnapshotSchedule where+    toPath = const "/"++instance ToQuery UpdateSnapshotSchedule where+    toQuery = const mempty++instance ToHeaders UpdateSnapshotSchedule++instance ToJSON UpdateSnapshotSchedule where+    toJSON UpdateSnapshotSchedule{..} = object+        [ "VolumeARN"         .= _ussVolumeARN+        , "StartAt"           .= _ussStartAt+        , "RecurrenceInHours" .= _ussRecurrenceInHours+        , "Description"       .= _ussDescription+        ]++instance AWSRequest UpdateSnapshotSchedule where+    type Sv UpdateSnapshotSchedule = StorageGateway+    type Rs UpdateSnapshotSchedule = UpdateSnapshotScheduleResponse++    request  = post "UpdateSnapshotSchedule"+    response = jsonResponse++instance FromJSON UpdateSnapshotScheduleResponse where+    parseJSON = withObject "UpdateSnapshotScheduleResponse" $ \o -> UpdateSnapshotScheduleResponse+        <$> o .:? "VolumeARN"