packages feed

amazonka-cloudhsm (empty) → 0.2.1

raw patch · 23 files changed

+3259/−0 lines, 23 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,32 @@+# Amazon CloudHSM 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++The AWS CloudHSM service helps you meet corporate, contractual and regulatory+compliance requirements for data security by using dedicated Hardware+Security Module (HSM) appliances within the AWS cloud. With CloudHSM, you+control the encryption keys and cryptographic operations performed by the HSM.++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-cloudhsm)+and the [AWS API Reference](http://docs.aws.amazon.com/cloudhsm/latest/dg/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-cloudhsm` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).++Parts of the code are derived from AWS service descriptions, licensed under Apache 2.0.+Source files subject to this contain an additional licensing clause in their header.
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ amazonka-cloudhsm.cabal view
@@ -0,0 +1,62 @@+name:                  amazonka-cloudhsm+version:               0.2.1+synopsis:              Amazon CloudHSM 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, Distributed Computing+build-type:            Simple+extra-source-files:    README.md+cabal-version:         >= 1.10++description:+    The AWS CloudHSM service helps you meet corporate, contractual and regulatory+    compliance requirements for data security by using dedicated Hardware+    Security Module (HSM) appliances within the AWS cloud. With CloudHSM, you+    control the encryption keys and cryptographic operations performed by the HSM.++    .+    /See:/ <http://docs.aws.amazon.com/cloudhsm/latest/dg/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.CloudHSM+        , Network.AWS.CloudHSM.CreateHapg+        , Network.AWS.CloudHSM.CreateHsm+        , Network.AWS.CloudHSM.CreateLunaClient+        , Network.AWS.CloudHSM.DeleteHapg+        , Network.AWS.CloudHSM.DeleteHsm+        , Network.AWS.CloudHSM.DeleteLunaClient+        , Network.AWS.CloudHSM.DescribeHapg+        , Network.AWS.CloudHSM.DescribeHsm+        , Network.AWS.CloudHSM.DescribeLunaClient+        , Network.AWS.CloudHSM.GetConfig+        , Network.AWS.CloudHSM.ListAvailableZones+        , Network.AWS.CloudHSM.ListHapgs+        , Network.AWS.CloudHSM.ListHsms+        , Network.AWS.CloudHSM.ListLunaClients+        , Network.AWS.CloudHSM.ModifyHapg+        , Network.AWS.CloudHSM.ModifyHsm+        , Network.AWS.CloudHSM.ModifyLunaClient+        , Network.AWS.CloudHSM.Types++    other-modules:++    build-depends:+          amazonka-core == 0.2.1.*+        , base          >= 4.7     && < 5
+ gen/Network/AWS/CloudHSM.hs view
@@ -0,0 +1,55 @@+-- Module      : Network.AWS.CloudHSM+-- 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)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | The AWS CloudHSM service helps you meet corporate, contractual and regulatory+-- compliance requirements for data security by using dedicated Hardware+-- Security Module (HSM) appliances within the AWS cloud. With CloudHSM, you+-- control the encryption keys and cryptographic operations performed by the HSM.+module Network.AWS.CloudHSM+    ( module Network.AWS.CloudHSM.CreateHapg+    , module Network.AWS.CloudHSM.CreateHsm+    , module Network.AWS.CloudHSM.CreateLunaClient+    , module Network.AWS.CloudHSM.DeleteHapg+    , module Network.AWS.CloudHSM.DeleteHsm+    , module Network.AWS.CloudHSM.DeleteLunaClient+    , module Network.AWS.CloudHSM.DescribeHapg+    , module Network.AWS.CloudHSM.DescribeHsm+    , module Network.AWS.CloudHSM.DescribeLunaClient+    , module Network.AWS.CloudHSM.GetConfig+    , module Network.AWS.CloudHSM.ListAvailableZones+    , module Network.AWS.CloudHSM.ListHapgs+    , module Network.AWS.CloudHSM.ListHsms+    , module Network.AWS.CloudHSM.ListLunaClients+    , module Network.AWS.CloudHSM.ModifyHapg+    , module Network.AWS.CloudHSM.ModifyHsm+    , module Network.AWS.CloudHSM.ModifyLunaClient+    , module Network.AWS.CloudHSM.Types+    ) where++import Network.AWS.CloudHSM.CreateHapg+import Network.AWS.CloudHSM.CreateHsm+import Network.AWS.CloudHSM.CreateLunaClient+import Network.AWS.CloudHSM.DeleteHapg+import Network.AWS.CloudHSM.DeleteHsm+import Network.AWS.CloudHSM.DeleteLunaClient+import Network.AWS.CloudHSM.DescribeHapg+import Network.AWS.CloudHSM.DescribeHsm+import Network.AWS.CloudHSM.DescribeLunaClient+import Network.AWS.CloudHSM.GetConfig+import Network.AWS.CloudHSM.ListAvailableZones+import Network.AWS.CloudHSM.ListHapgs+import Network.AWS.CloudHSM.ListHsms+import Network.AWS.CloudHSM.ListLunaClients+import Network.AWS.CloudHSM.ModifyHapg+import Network.AWS.CloudHSM.ModifyHsm+import Network.AWS.CloudHSM.ModifyLunaClient+import Network.AWS.CloudHSM.Types
+ gen/Network/AWS/CloudHSM/CreateHapg.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.CloudHSM.CreateHapg+-- 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)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Creates a high-availability partition group. A high-availability partition+-- group is a group of partitions that spans multiple physical HSMs.+--+-- <http://docs.aws.amazon.com/cloudhsm/latest/dg/API_CreateHapg.html>+module Network.AWS.CloudHSM.CreateHapg+    (+    -- * Request+      CreateHapg+    -- ** Request constructor+    , createHapg+    -- ** Request lenses+    , chLabel++    -- * Response+    , CreateHapgResponse+    -- ** Response constructor+    , createHapgResponse+    -- ** Response lenses+    , chrHapgArn+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.CloudHSM.Types+import qualified GHC.Exts++newtype CreateHapg = CreateHapg+    { _chLabel :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'CreateHapg' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'chLabel' @::@ 'Text'+--+createHapg :: Text -- ^ 'chLabel'+           -> CreateHapg+createHapg p1 = CreateHapg+    { _chLabel = p1+    }++-- | The label of the new high-availability partition group.+chLabel :: Lens' CreateHapg Text+chLabel = lens _chLabel (\s a -> s { _chLabel = a })++newtype CreateHapgResponse = CreateHapgResponse+    { _chrHapgArn :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'CreateHapgResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'chrHapgArn' @::@ 'Maybe' 'Text'+--+createHapgResponse :: CreateHapgResponse+createHapgResponse = CreateHapgResponse+    { _chrHapgArn = Nothing+    }++-- | The ARN of the high-availability partition group.+chrHapgArn :: Lens' CreateHapgResponse (Maybe Text)+chrHapgArn = lens _chrHapgArn (\s a -> s { _chrHapgArn = a })++instance ToPath CreateHapg where+    toPath = const "/"++instance ToQuery CreateHapg where+    toQuery = const mempty++instance ToHeaders CreateHapg++instance ToJSON CreateHapg where+    toJSON CreateHapg{..} = object+        [ "Label" .= _chLabel+        ]++instance AWSRequest CreateHapg where+    type Sv CreateHapg = CloudHSM+    type Rs CreateHapg = CreateHapgResponse++    request  = post "CreateHapg"+    response = jsonResponse++instance FromJSON CreateHapgResponse where+    parseJSON = withObject "CreateHapgResponse" $ \o -> CreateHapgResponse+        <$> o .:? "HapgArn"
+ gen/Network/AWS/CloudHSM/CreateHsm.hs view
@@ -0,0 +1,188 @@+{-# 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.CloudHSM.CreateHsm+-- 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)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Creates an uninitialized HSM instance. Running this command provisions an HSM+-- appliance and will result in charges to your AWS account for the HSM.+--+-- <http://docs.aws.amazon.com/cloudhsm/latest/dg/API_CreateHsm.html>+module Network.AWS.CloudHSM.CreateHsm+    (+    -- * Request+      CreateHsm+    -- ** Request constructor+    , createHsm+    -- ** Request lenses+    , chClientToken+    , chEniIp+    , chExternalId+    , chIamRoleArn+    , chSshKey+    , chSubnetId+    , chSubscriptionType+    , chSyslogIp++    -- * Response+    , CreateHsmResponse+    -- ** Response constructor+    , createHsmResponse+    -- ** Response lenses+    , chrHsmArn+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.CloudHSM.Types+import qualified GHC.Exts++data CreateHsm = CreateHsm+    { _chClientToken      :: Maybe Text+    , _chEniIp            :: Maybe Text+    , _chExternalId       :: Maybe Text+    , _chIamRoleArn       :: Text+    , _chSshKey           :: Text+    , _chSubnetId         :: Text+    , _chSubscriptionType :: SubscriptionType+    , _chSyslogIp         :: Maybe Text+    } deriving (Eq, Show)++-- | 'CreateHsm' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'chClientToken' @::@ 'Maybe' 'Text'+--+-- * 'chEniIp' @::@ 'Maybe' 'Text'+--+-- * 'chExternalId' @::@ 'Maybe' 'Text'+--+-- * 'chIamRoleArn' @::@ 'Text'+--+-- * 'chSshKey' @::@ 'Text'+--+-- * 'chSubnetId' @::@ 'Text'+--+-- * 'chSubscriptionType' @::@ 'SubscriptionType'+--+-- * 'chSyslogIp' @::@ 'Maybe' 'Text'+--+createHsm :: Text -- ^ 'chSubnetId'+          -> Text -- ^ 'chSshKey'+          -> Text -- ^ 'chIamRoleArn'+          -> SubscriptionType -- ^ 'chSubscriptionType'+          -> CreateHsm+createHsm p1 p2 p3 p4 = CreateHsm+    { _chSubnetId         = p1+    , _chSshKey           = p2+    , _chIamRoleArn       = p3+    , _chSubscriptionType = p4+    , _chEniIp            = Nothing+    , _chExternalId       = Nothing+    , _chClientToken      = Nothing+    , _chSyslogIp         = Nothing+    }++-- | A user-defined token to ensure idempotence. Subsequent calls to this action+-- with the same token will be ignored.+chClientToken :: Lens' CreateHsm (Maybe Text)+chClientToken = lens _chClientToken (\s a -> s { _chClientToken = a })++-- | The IP address to assign to the HSM's ENI.+chEniIp :: Lens' CreateHsm (Maybe Text)+chEniIp = lens _chEniIp (\s a -> s { _chEniIp = a })++-- | The external ID from IamRoleArn, if present.+chExternalId :: Lens' CreateHsm (Maybe Text)+chExternalId = lens _chExternalId (\s a -> s { _chExternalId = a })++-- | The ARN of an IAM role to enable the AWS CloudHSM service to allocate an ENI+-- on your behalf.+chIamRoleArn :: Lens' CreateHsm Text+chIamRoleArn = lens _chIamRoleArn (\s a -> s { _chIamRoleArn = a })++-- | The SSH public key to install on the HSM.+chSshKey :: Lens' CreateHsm Text+chSshKey = lens _chSshKey (\s a -> s { _chSshKey = a })++-- | The identifier of the subnet in your VPC in which to place the HSM.+chSubnetId :: Lens' CreateHsm Text+chSubnetId = lens _chSubnetId (\s a -> s { _chSubnetId = a })++-- | The subscription type.+chSubscriptionType :: Lens' CreateHsm SubscriptionType+chSubscriptionType =+    lens _chSubscriptionType (\s a -> s { _chSubscriptionType = a })++-- | The IP address for the syslog monitoring server.+chSyslogIp :: Lens' CreateHsm (Maybe Text)+chSyslogIp = lens _chSyslogIp (\s a -> s { _chSyslogIp = a })++newtype CreateHsmResponse = CreateHsmResponse+    { _chrHsmArn :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'CreateHsmResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'chrHsmArn' @::@ 'Maybe' 'Text'+--+createHsmResponse :: CreateHsmResponse+createHsmResponse = CreateHsmResponse+    { _chrHsmArn = Nothing+    }++-- | The ARN of the HSM.+chrHsmArn :: Lens' CreateHsmResponse (Maybe Text)+chrHsmArn = lens _chrHsmArn (\s a -> s { _chrHsmArn = a })++instance ToPath CreateHsm where+    toPath = const "/"++instance ToQuery CreateHsm where+    toQuery = const mempty++instance ToHeaders CreateHsm++instance ToJSON CreateHsm where+    toJSON CreateHsm{..} = object+        [ "SubnetId"         .= _chSubnetId+        , "SshKey"           .= _chSshKey+        , "EniIp"            .= _chEniIp+        , "IamRoleArn"       .= _chIamRoleArn+        , "ExternalId"       .= _chExternalId+        , "SubscriptionType" .= _chSubscriptionType+        , "ClientToken"      .= _chClientToken+        , "SyslogIp"         .= _chSyslogIp+        ]++instance AWSRequest CreateHsm where+    type Sv CreateHsm = CloudHSM+    type Rs CreateHsm = CreateHsmResponse++    request  = post "CreateHsm"+    response = jsonResponse++instance FromJSON CreateHsmResponse where+    parseJSON = withObject "CreateHsmResponse" $ \o -> CreateHsmResponse+        <$> o .:? "HsmArn"
+ gen/Network/AWS/CloudHSM/CreateLunaClient.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.CloudHSM.CreateLunaClient+-- 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)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Creates an HSM client.+--+-- <http://docs.aws.amazon.com/cloudhsm/latest/dg/API_CreateLunaClient.html>+module Network.AWS.CloudHSM.CreateLunaClient+    (+    -- * Request+      CreateLunaClient+    -- ** Request constructor+    , createLunaClient+    -- ** Request lenses+    , clcCertificate+    , clcLabel++    -- * Response+    , CreateLunaClientResponse+    -- ** Response constructor+    , createLunaClientResponse+    -- ** Response lenses+    , clcrClientArn+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.CloudHSM.Types+import qualified GHC.Exts++data CreateLunaClient = CreateLunaClient+    { _clcCertificate :: Text+    , _clcLabel       :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'CreateLunaClient' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'clcCertificate' @::@ 'Text'+--+-- * 'clcLabel' @::@ 'Maybe' 'Text'+--+createLunaClient :: Text -- ^ 'clcCertificate'+                 -> CreateLunaClient+createLunaClient p1 = CreateLunaClient+    { _clcCertificate = p1+    , _clcLabel       = Nothing+    }++-- | The contents of a Base64-Encoded X.509 v3 certificate to be installed on the+-- HSMs used by this client.+clcCertificate :: Lens' CreateLunaClient Text+clcCertificate = lens _clcCertificate (\s a -> s { _clcCertificate = a })++-- | The label for the client.+clcLabel :: Lens' CreateLunaClient (Maybe Text)+clcLabel = lens _clcLabel (\s a -> s { _clcLabel = a })++newtype CreateLunaClientResponse = CreateLunaClientResponse+    { _clcrClientArn :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'CreateLunaClientResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'clcrClientArn' @::@ 'Maybe' 'Text'+--+createLunaClientResponse :: CreateLunaClientResponse+createLunaClientResponse = CreateLunaClientResponse+    { _clcrClientArn = Nothing+    }++-- | The ARN of the client.+clcrClientArn :: Lens' CreateLunaClientResponse (Maybe Text)+clcrClientArn = lens _clcrClientArn (\s a -> s { _clcrClientArn = a })++instance ToPath CreateLunaClient where+    toPath = const "/"++instance ToQuery CreateLunaClient where+    toQuery = const mempty++instance ToHeaders CreateLunaClient++instance ToJSON CreateLunaClient where+    toJSON CreateLunaClient{..} = object+        [ "Label"       .= _clcLabel+        , "Certificate" .= _clcCertificate+        ]++instance AWSRequest CreateLunaClient where+    type Sv CreateLunaClient = CloudHSM+    type Rs CreateLunaClient = CreateLunaClientResponse++    request  = post "CreateLunaClient"+    response = jsonResponse++instance FromJSON CreateLunaClientResponse where+    parseJSON = withObject "CreateLunaClientResponse" $ \o -> CreateLunaClientResponse+        <$> o .:? "ClientArn"
+ gen/Network/AWS/CloudHSM/DeleteHapg.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.CloudHSM.DeleteHapg+-- 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)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Deletes a high-availability partition group.+--+-- <http://docs.aws.amazon.com/cloudhsm/latest/dg/API_DeleteHapg.html>+module Network.AWS.CloudHSM.DeleteHapg+    (+    -- * Request+      DeleteHapg+    -- ** Request constructor+    , deleteHapg+    -- ** Request lenses+    , dhHapgArn++    -- * Response+    , DeleteHapgResponse+    -- ** Response constructor+    , deleteHapgResponse+    -- ** Response lenses+    , dhrStatus+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.CloudHSM.Types+import qualified GHC.Exts++newtype DeleteHapg = DeleteHapg+    { _dhHapgArn :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DeleteHapg' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dhHapgArn' @::@ 'Text'+--+deleteHapg :: Text -- ^ 'dhHapgArn'+           -> DeleteHapg+deleteHapg p1 = DeleteHapg+    { _dhHapgArn = p1+    }++-- | The ARN of the high-availability partition group to delete.+dhHapgArn :: Lens' DeleteHapg Text+dhHapgArn = lens _dhHapgArn (\s a -> s { _dhHapgArn = a })++newtype DeleteHapgResponse = DeleteHapgResponse+    { _dhrStatus :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DeleteHapgResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dhrStatus' @::@ 'Text'+--+deleteHapgResponse :: Text -- ^ 'dhrStatus'+                   -> DeleteHapgResponse+deleteHapgResponse p1 = DeleteHapgResponse+    { _dhrStatus = p1+    }++-- | The status of the action.+dhrStatus :: Lens' DeleteHapgResponse Text+dhrStatus = lens _dhrStatus (\s a -> s { _dhrStatus = a })++instance ToPath DeleteHapg where+    toPath = const "/"++instance ToQuery DeleteHapg where+    toQuery = const mempty++instance ToHeaders DeleteHapg++instance ToJSON DeleteHapg where+    toJSON DeleteHapg{..} = object+        [ "HapgArn" .= _dhHapgArn+        ]++instance AWSRequest DeleteHapg where+    type Sv DeleteHapg = CloudHSM+    type Rs DeleteHapg = DeleteHapgResponse++    request  = post "DeleteHapg"+    response = jsonResponse++instance FromJSON DeleteHapgResponse where+    parseJSON = withObject "DeleteHapgResponse" $ \o -> DeleteHapgResponse+        <$> o .:  "Status"
+ gen/Network/AWS/CloudHSM/DeleteHsm.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.CloudHSM.DeleteHsm+-- 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)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Deletes an HSM. Once complete, this operation cannot be undone and your key+-- material cannot be recovered.+--+-- <http://docs.aws.amazon.com/cloudhsm/latest/dg/API_DeleteHsm.html>+module Network.AWS.CloudHSM.DeleteHsm+    (+    -- * Request+      DeleteHsm+    -- ** Request constructor+    , deleteHsm+    -- ** Request lenses+    , dhHsmArn++    -- * Response+    , DeleteHsmResponse+    -- ** Response constructor+    , deleteHsmResponse+    -- ** Response lenses+    , dhr1Status+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.CloudHSM.Types+import qualified GHC.Exts++newtype DeleteHsm = DeleteHsm+    { _dhHsmArn :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DeleteHsm' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dhHsmArn' @::@ 'Text'+--+deleteHsm :: Text -- ^ 'dhHsmArn'+          -> DeleteHsm+deleteHsm p1 = DeleteHsm+    { _dhHsmArn = p1+    }++-- | The ARN of the HSM to delete.+dhHsmArn :: Lens' DeleteHsm Text+dhHsmArn = lens _dhHsmArn (\s a -> s { _dhHsmArn = a })++newtype DeleteHsmResponse = DeleteHsmResponse+    { _dhr1Status :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DeleteHsmResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dhr1Status' @::@ 'Text'+--+deleteHsmResponse :: Text -- ^ 'dhr1Status'+                  -> DeleteHsmResponse+deleteHsmResponse p1 = DeleteHsmResponse+    { _dhr1Status = p1+    }++-- | The status of the action.+dhr1Status :: Lens' DeleteHsmResponse Text+dhr1Status = lens _dhr1Status (\s a -> s { _dhr1Status = a })++instance ToPath DeleteHsm where+    toPath = const "/"++instance ToQuery DeleteHsm where+    toQuery = const mempty++instance ToHeaders DeleteHsm++instance ToJSON DeleteHsm where+    toJSON DeleteHsm{..} = object+        [ "HsmArn" .= _dhHsmArn+        ]++instance AWSRequest DeleteHsm where+    type Sv DeleteHsm = CloudHSM+    type Rs DeleteHsm = DeleteHsmResponse++    request  = post "DeleteHsm"+    response = jsonResponse++instance FromJSON DeleteHsmResponse where+    parseJSON = withObject "DeleteHsmResponse" $ \o -> DeleteHsmResponse+        <$> o .:  "Status"
+ gen/Network/AWS/CloudHSM/DeleteLunaClient.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.CloudHSM.DeleteLunaClient+-- 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)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Deletes a client.+--+-- <http://docs.aws.amazon.com/cloudhsm/latest/dg/API_DeleteLunaClient.html>+module Network.AWS.CloudHSM.DeleteLunaClient+    (+    -- * Request+      DeleteLunaClient+    -- ** Request constructor+    , deleteLunaClient+    -- ** Request lenses+    , dlc1ClientArn++    -- * Response+    , DeleteLunaClientResponse+    -- ** Response constructor+    , deleteLunaClientResponse+    -- ** Response lenses+    , dlcrStatus+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.CloudHSM.Types+import qualified GHC.Exts++newtype DeleteLunaClient = DeleteLunaClient+    { _dlc1ClientArn :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DeleteLunaClient' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dlc1ClientArn' @::@ 'Text'+--+deleteLunaClient :: Text -- ^ 'dlc1ClientArn'+                 -> DeleteLunaClient+deleteLunaClient p1 = DeleteLunaClient+    { _dlc1ClientArn = p1+    }++-- | The ARN of the client to delete.+dlc1ClientArn :: Lens' DeleteLunaClient Text+dlc1ClientArn = lens _dlc1ClientArn (\s a -> s { _dlc1ClientArn = a })++newtype DeleteLunaClientResponse = DeleteLunaClientResponse+    { _dlcrStatus :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DeleteLunaClientResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dlcrStatus' @::@ 'Text'+--+deleteLunaClientResponse :: Text -- ^ 'dlcrStatus'+                         -> DeleteLunaClientResponse+deleteLunaClientResponse p1 = DeleteLunaClientResponse+    { _dlcrStatus = p1+    }++-- | The status of the action.+dlcrStatus :: Lens' DeleteLunaClientResponse Text+dlcrStatus = lens _dlcrStatus (\s a -> s { _dlcrStatus = a })++instance ToPath DeleteLunaClient where+    toPath = const "/"++instance ToQuery DeleteLunaClient where+    toQuery = const mempty++instance ToHeaders DeleteLunaClient++instance ToJSON DeleteLunaClient where+    toJSON DeleteLunaClient{..} = object+        [ "ClientArn" .= _dlc1ClientArn+        ]++instance AWSRequest DeleteLunaClient where+    type Sv DeleteLunaClient = CloudHSM+    type Rs DeleteLunaClient = DeleteLunaClientResponse++    request  = post "DeleteLunaClient"+    response = jsonResponse++instance FromJSON DeleteLunaClientResponse where+    parseJSON = withObject "DeleteLunaClientResponse" $ \o -> DeleteLunaClientResponse+        <$> o .:  "Status"
+ gen/Network/AWS/CloudHSM/DescribeHapg.hs view
@@ -0,0 +1,200 @@+{-# 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.CloudHSM.DescribeHapg+-- 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)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Retrieves information about a high-availability partition group.+--+-- <http://docs.aws.amazon.com/cloudhsm/latest/dg/API_DescribeHapg.html>+module Network.AWS.CloudHSM.DescribeHapg+    (+    -- * Request+      DescribeHapg+    -- ** Request constructor+    , describeHapg+    -- ** Request lenses+    , dh1HapgArn++    -- * Response+    , DescribeHapgResponse+    -- ** Response constructor+    , describeHapgResponse+    -- ** Response lenses+    , dhrHapgArn+    , dhrHapgSerial+    , dhrHsmsLastActionFailed+    , dhrHsmsPendingDeletion+    , dhrHsmsPendingRegistration+    , dhrLabel+    , dhrLastModifiedTimestamp+    , dhrPartitionSerialList+    , dhrState+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.CloudHSM.Types+import qualified GHC.Exts++newtype DescribeHapg = DescribeHapg+    { _dh1HapgArn :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DescribeHapg' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dh1HapgArn' @::@ 'Text'+--+describeHapg :: Text -- ^ 'dh1HapgArn'+             -> DescribeHapg+describeHapg p1 = DescribeHapg+    { _dh1HapgArn = p1+    }++-- | The ARN of the high-availability partition group to describe.+dh1HapgArn :: Lens' DescribeHapg Text+dh1HapgArn = lens _dh1HapgArn (\s a -> s { _dh1HapgArn = a })++data DescribeHapgResponse = DescribeHapgResponse+    { _dhrHapgArn                 :: Maybe Text+    , _dhrHapgSerial              :: Maybe Text+    , _dhrHsmsLastActionFailed    :: List "HsmsLastActionFailed" Text+    , _dhrHsmsPendingDeletion     :: List "HsmsPendingDeletion" Text+    , _dhrHsmsPendingRegistration :: List "HsmsPendingRegistration" Text+    , _dhrLabel                   :: Maybe Text+    , _dhrLastModifiedTimestamp   :: Maybe Text+    , _dhrPartitionSerialList     :: List "PartitionSerialList" Text+    , _dhrState                   :: Maybe CloudHsmObjectState+    } deriving (Eq, Show)++-- | 'DescribeHapgResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dhrHapgArn' @::@ 'Maybe' 'Text'+--+-- * 'dhrHapgSerial' @::@ 'Maybe' 'Text'+--+-- * 'dhrHsmsLastActionFailed' @::@ ['Text']+--+-- * 'dhrHsmsPendingDeletion' @::@ ['Text']+--+-- * 'dhrHsmsPendingRegistration' @::@ ['Text']+--+-- * 'dhrLabel' @::@ 'Maybe' 'Text'+--+-- * 'dhrLastModifiedTimestamp' @::@ 'Maybe' 'Text'+--+-- * 'dhrPartitionSerialList' @::@ ['Text']+--+-- * 'dhrState' @::@ 'Maybe' 'CloudHsmObjectState'+--+describeHapgResponse :: DescribeHapgResponse+describeHapgResponse = DescribeHapgResponse+    { _dhrHapgArn                 = Nothing+    , _dhrHapgSerial              = Nothing+    , _dhrHsmsLastActionFailed    = mempty+    , _dhrHsmsPendingDeletion     = mempty+    , _dhrHsmsPendingRegistration = mempty+    , _dhrLabel                   = Nothing+    , _dhrLastModifiedTimestamp   = Nothing+    , _dhrPartitionSerialList     = mempty+    , _dhrState                   = Nothing+    }++-- | The ARN of the high-availability partition group.+dhrHapgArn :: Lens' DescribeHapgResponse (Maybe Text)+dhrHapgArn = lens _dhrHapgArn (\s a -> s { _dhrHapgArn = a })++-- | The serial number of the high-availability partition group.+dhrHapgSerial :: Lens' DescribeHapgResponse (Maybe Text)+dhrHapgSerial = lens _dhrHapgSerial (\s a -> s { _dhrHapgSerial = a })++dhrHsmsLastActionFailed :: Lens' DescribeHapgResponse [Text]+dhrHsmsLastActionFailed =+    lens _dhrHsmsLastActionFailed (\s a -> s { _dhrHsmsLastActionFailed = a })+        . _List++dhrHsmsPendingDeletion :: Lens' DescribeHapgResponse [Text]+dhrHsmsPendingDeletion =+    lens _dhrHsmsPendingDeletion (\s a -> s { _dhrHsmsPendingDeletion = a })+        . _List++dhrHsmsPendingRegistration :: Lens' DescribeHapgResponse [Text]+dhrHsmsPendingRegistration =+    lens _dhrHsmsPendingRegistration+        (\s a -> s { _dhrHsmsPendingRegistration = a })+            . _List++-- | The label for the high-availability partition group.+dhrLabel :: Lens' DescribeHapgResponse (Maybe Text)+dhrLabel = lens _dhrLabel (\s a -> s { _dhrLabel = a })++-- | The date and time the high-availability partition group was last modified.+dhrLastModifiedTimestamp :: Lens' DescribeHapgResponse (Maybe Text)+dhrLastModifiedTimestamp =+    lens _dhrLastModifiedTimestamp+        (\s a -> s { _dhrLastModifiedTimestamp = a })++-- | The list of partition serial numbers that belong to the high-availability+-- partition group.+dhrPartitionSerialList :: Lens' DescribeHapgResponse [Text]+dhrPartitionSerialList =+    lens _dhrPartitionSerialList (\s a -> s { _dhrPartitionSerialList = a })+        . _List++-- | The state of the high-availability partition group.+dhrState :: Lens' DescribeHapgResponse (Maybe CloudHsmObjectState)+dhrState = lens _dhrState (\s a -> s { _dhrState = a })++instance ToPath DescribeHapg where+    toPath = const "/"++instance ToQuery DescribeHapg where+    toQuery = const mempty++instance ToHeaders DescribeHapg++instance ToJSON DescribeHapg where+    toJSON DescribeHapg{..} = object+        [ "HapgArn" .= _dh1HapgArn+        ]++instance AWSRequest DescribeHapg where+    type Sv DescribeHapg = CloudHSM+    type Rs DescribeHapg = DescribeHapgResponse++    request  = post "DescribeHapg"+    response = jsonResponse++instance FromJSON DescribeHapgResponse where+    parseJSON = withObject "DescribeHapgResponse" $ \o -> DescribeHapgResponse+        <$> o .:? "HapgArn"+        <*> o .:? "HapgSerial"+        <*> o .:? "HsmsLastActionFailed" .!= mempty+        <*> o .:? "HsmsPendingDeletion" .!= mempty+        <*> o .:? "HsmsPendingRegistration" .!= mempty+        <*> o .:? "Label"+        <*> o .:? "LastModifiedTimestamp"+        <*> o .:? "PartitionSerialList" .!= mempty+        <*> o .:? "State"
+ gen/Network/AWS/CloudHSM/DescribeHsm.hs view
@@ -0,0 +1,335 @@+{-# 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.CloudHSM.DescribeHsm+-- 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)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Retrieves information about an HSM. You can identify the HSM by its ARN or+-- its serial number.+--+-- <http://docs.aws.amazon.com/cloudhsm/latest/dg/API_DescribeHsm.html>+module Network.AWS.CloudHSM.DescribeHsm+    (+    -- * Request+      DescribeHsm+    -- ** Request constructor+    , describeHsm+    -- ** Request lenses+    , dh1HsmArn+    , dh1HsmSerialNumber++    -- * Response+    , DescribeHsmResponse+    -- ** Response constructor+    , describeHsmResponse+    -- ** Response lenses+    , dhr2AvailabilityZone+    , dhr2EniId+    , dhr2EniIp+    , dhr2HsmArn+    , dhr2HsmType+    , dhr2IamRoleArn+    , dhr2Partitions+    , dhr2SerialNumber+    , dhr2ServerCertLastUpdated+    , dhr2ServerCertUri+    , dhr2SoftwareVersion+    , dhr2SshKeyLastUpdated+    , dhr2SshPublicKey+    , dhr2Status+    , dhr2StatusDetails+    , dhr2SubnetId+    , dhr2SubscriptionEndDate+    , dhr2SubscriptionStartDate+    , dhr2SubscriptionType+    , dhr2VendorName+    , dhr2VpcId+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.CloudHSM.Types+import qualified GHC.Exts++data DescribeHsm = DescribeHsm+    { _dh1HsmArn          :: Maybe Text+    , _dh1HsmSerialNumber :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'DescribeHsm' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dh1HsmArn' @::@ 'Maybe' 'Text'+--+-- * 'dh1HsmSerialNumber' @::@ 'Maybe' 'Text'+--+describeHsm :: DescribeHsm+describeHsm = DescribeHsm+    { _dh1HsmArn          = Nothing+    , _dh1HsmSerialNumber = Nothing+    }++-- | The ARN of the HSM. Either the /HsmArn/ or the /SerialNumber/ parameter must be+-- specified.+dh1HsmArn :: Lens' DescribeHsm (Maybe Text)+dh1HsmArn = lens _dh1HsmArn (\s a -> s { _dh1HsmArn = a })++-- | The serial number of the HSM. Either the /HsmArn/ or the /HsmSerialNumber/+-- parameter must be specified.+dh1HsmSerialNumber :: Lens' DescribeHsm (Maybe Text)+dh1HsmSerialNumber =+    lens _dh1HsmSerialNumber (\s a -> s { _dh1HsmSerialNumber = a })++data DescribeHsmResponse = DescribeHsmResponse+    { _dhr2AvailabilityZone      :: Maybe Text+    , _dhr2EniId                 :: Maybe Text+    , _dhr2EniIp                 :: Maybe Text+    , _dhr2HsmArn                :: Maybe Text+    , _dhr2HsmType               :: Maybe Text+    , _dhr2IamRoleArn            :: Maybe Text+    , _dhr2Partitions            :: List "Partitions" Text+    , _dhr2SerialNumber          :: Maybe Text+    , _dhr2ServerCertLastUpdated :: Maybe Text+    , _dhr2ServerCertUri         :: Maybe Text+    , _dhr2SoftwareVersion       :: Maybe Text+    , _dhr2SshKeyLastUpdated     :: Maybe Text+    , _dhr2SshPublicKey          :: Maybe Text+    , _dhr2Status                :: Maybe HsmStatus+    , _dhr2StatusDetails         :: Maybe Text+    , _dhr2SubnetId              :: Maybe Text+    , _dhr2SubscriptionEndDate   :: Maybe Text+    , _dhr2SubscriptionStartDate :: Maybe Text+    , _dhr2SubscriptionType      :: Maybe SubscriptionType+    , _dhr2VendorName            :: Maybe Text+    , _dhr2VpcId                 :: Maybe Text+    } deriving (Eq, Show)++-- | 'DescribeHsmResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dhr2AvailabilityZone' @::@ 'Maybe' 'Text'+--+-- * 'dhr2EniId' @::@ 'Maybe' 'Text'+--+-- * 'dhr2EniIp' @::@ 'Maybe' 'Text'+--+-- * 'dhr2HsmArn' @::@ 'Maybe' 'Text'+--+-- * 'dhr2HsmType' @::@ 'Maybe' 'Text'+--+-- * 'dhr2IamRoleArn' @::@ 'Maybe' 'Text'+--+-- * 'dhr2Partitions' @::@ ['Text']+--+-- * 'dhr2SerialNumber' @::@ 'Maybe' 'Text'+--+-- * 'dhr2ServerCertLastUpdated' @::@ 'Maybe' 'Text'+--+-- * 'dhr2ServerCertUri' @::@ 'Maybe' 'Text'+--+-- * 'dhr2SoftwareVersion' @::@ 'Maybe' 'Text'+--+-- * 'dhr2SshKeyLastUpdated' @::@ 'Maybe' 'Text'+--+-- * 'dhr2SshPublicKey' @::@ 'Maybe' 'Text'+--+-- * 'dhr2Status' @::@ 'Maybe' 'HsmStatus'+--+-- * 'dhr2StatusDetails' @::@ 'Maybe' 'Text'+--+-- * 'dhr2SubnetId' @::@ 'Maybe' 'Text'+--+-- * 'dhr2SubscriptionEndDate' @::@ 'Maybe' 'Text'+--+-- * 'dhr2SubscriptionStartDate' @::@ 'Maybe' 'Text'+--+-- * 'dhr2SubscriptionType' @::@ 'Maybe' 'SubscriptionType'+--+-- * 'dhr2VendorName' @::@ 'Maybe' 'Text'+--+-- * 'dhr2VpcId' @::@ 'Maybe' 'Text'+--+describeHsmResponse :: DescribeHsmResponse+describeHsmResponse = DescribeHsmResponse+    { _dhr2HsmArn                = Nothing+    , _dhr2Status                = Nothing+    , _dhr2StatusDetails         = Nothing+    , _dhr2AvailabilityZone      = Nothing+    , _dhr2EniId                 = Nothing+    , _dhr2EniIp                 = Nothing+    , _dhr2SubscriptionType      = Nothing+    , _dhr2SubscriptionStartDate = Nothing+    , _dhr2SubscriptionEndDate   = Nothing+    , _dhr2VpcId                 = Nothing+    , _dhr2SubnetId              = Nothing+    , _dhr2IamRoleArn            = Nothing+    , _dhr2SerialNumber          = Nothing+    , _dhr2VendorName            = Nothing+    , _dhr2HsmType               = Nothing+    , _dhr2SoftwareVersion       = Nothing+    , _dhr2SshPublicKey          = Nothing+    , _dhr2SshKeyLastUpdated     = Nothing+    , _dhr2ServerCertUri         = Nothing+    , _dhr2ServerCertLastUpdated = Nothing+    , _dhr2Partitions            = mempty+    }++-- | The Availability Zone that the HSM is in.+dhr2AvailabilityZone :: Lens' DescribeHsmResponse (Maybe Text)+dhr2AvailabilityZone =+    lens _dhr2AvailabilityZone (\s a -> s { _dhr2AvailabilityZone = a })++-- | The identifier of the elastic network interface (ENI) attached to the HSM.+dhr2EniId :: Lens' DescribeHsmResponse (Maybe Text)+dhr2EniId = lens _dhr2EniId (\s a -> s { _dhr2EniId = a })++-- | The IP address assigned to the HSM's ENI.+dhr2EniIp :: Lens' DescribeHsmResponse (Maybe Text)+dhr2EniIp = lens _dhr2EniIp (\s a -> s { _dhr2EniIp = a })++-- | The ARN of the HSM.+dhr2HsmArn :: Lens' DescribeHsmResponse (Maybe Text)+dhr2HsmArn = lens _dhr2HsmArn (\s a -> s { _dhr2HsmArn = a })++-- | The HSM model type.+dhr2HsmType :: Lens' DescribeHsmResponse (Maybe Text)+dhr2HsmType = lens _dhr2HsmType (\s a -> s { _dhr2HsmType = a })++-- | The ARN of the IAM role assigned to the HSM.+dhr2IamRoleArn :: Lens' DescribeHsmResponse (Maybe Text)+dhr2IamRoleArn = lens _dhr2IamRoleArn (\s a -> s { _dhr2IamRoleArn = a })++-- | The list of partitions on the HSM.+dhr2Partitions :: Lens' DescribeHsmResponse [Text]+dhr2Partitions = lens _dhr2Partitions (\s a -> s { _dhr2Partitions = a }) . _List++-- | The serial number of the HSM.+dhr2SerialNumber :: Lens' DescribeHsmResponse (Maybe Text)+dhr2SerialNumber = lens _dhr2SerialNumber (\s a -> s { _dhr2SerialNumber = a })++-- | The date and time the server certificate was last updated.+dhr2ServerCertLastUpdated :: Lens' DescribeHsmResponse (Maybe Text)+dhr2ServerCertLastUpdated =+    lens _dhr2ServerCertLastUpdated+        (\s a -> s { _dhr2ServerCertLastUpdated = a })++-- | The URI of the certificate server.+dhr2ServerCertUri :: Lens' DescribeHsmResponse (Maybe Text)+dhr2ServerCertUri =+    lens _dhr2ServerCertUri (\s a -> s { _dhr2ServerCertUri = a })++-- | The HSM software version.+dhr2SoftwareVersion :: Lens' DescribeHsmResponse (Maybe Text)+dhr2SoftwareVersion =+    lens _dhr2SoftwareVersion (\s a -> s { _dhr2SoftwareVersion = a })++-- | The date and time the SSH key was last updated.+dhr2SshKeyLastUpdated :: Lens' DescribeHsmResponse (Maybe Text)+dhr2SshKeyLastUpdated =+    lens _dhr2SshKeyLastUpdated (\s a -> s { _dhr2SshKeyLastUpdated = a })++-- | The public SSH key.+dhr2SshPublicKey :: Lens' DescribeHsmResponse (Maybe Text)+dhr2SshPublicKey = lens _dhr2SshPublicKey (\s a -> s { _dhr2SshPublicKey = a })++-- | The status of the HSM.+dhr2Status :: Lens' DescribeHsmResponse (Maybe HsmStatus)+dhr2Status = lens _dhr2Status (\s a -> s { _dhr2Status = a })++-- | Contains additional information about the status of the HSM.+dhr2StatusDetails :: Lens' DescribeHsmResponse (Maybe Text)+dhr2StatusDetails =+    lens _dhr2StatusDetails (\s a -> s { _dhr2StatusDetails = a })++-- | The identifier of the subnet the HSM is in.+dhr2SubnetId :: Lens' DescribeHsmResponse (Maybe Text)+dhr2SubnetId = lens _dhr2SubnetId (\s a -> s { _dhr2SubnetId = a })++-- | The subscription end date.+dhr2SubscriptionEndDate :: Lens' DescribeHsmResponse (Maybe Text)+dhr2SubscriptionEndDate =+    lens _dhr2SubscriptionEndDate (\s a -> s { _dhr2SubscriptionEndDate = a })++-- | The subscription start date.+dhr2SubscriptionStartDate :: Lens' DescribeHsmResponse (Maybe Text)+dhr2SubscriptionStartDate =+    lens _dhr2SubscriptionStartDate+        (\s a -> s { _dhr2SubscriptionStartDate = a })++-- | The subscription type.+dhr2SubscriptionType :: Lens' DescribeHsmResponse (Maybe SubscriptionType)+dhr2SubscriptionType =+    lens _dhr2SubscriptionType (\s a -> s { _dhr2SubscriptionType = a })++-- | The name of the HSM vendor.+dhr2VendorName :: Lens' DescribeHsmResponse (Maybe Text)+dhr2VendorName = lens _dhr2VendorName (\s a -> s { _dhr2VendorName = a })++-- | The identifier of the VPC that the HSM is in.+dhr2VpcId :: Lens' DescribeHsmResponse (Maybe Text)+dhr2VpcId = lens _dhr2VpcId (\s a -> s { _dhr2VpcId = a })++instance ToPath DescribeHsm where+    toPath = const "/"++instance ToQuery DescribeHsm where+    toQuery = const mempty++instance ToHeaders DescribeHsm++instance ToJSON DescribeHsm where+    toJSON DescribeHsm{..} = object+        [ "HsmArn"          .= _dh1HsmArn+        , "HsmSerialNumber" .= _dh1HsmSerialNumber+        ]++instance AWSRequest DescribeHsm where+    type Sv DescribeHsm = CloudHSM+    type Rs DescribeHsm = DescribeHsmResponse++    request  = post "DescribeHsm"+    response = jsonResponse++instance FromJSON DescribeHsmResponse where+    parseJSON = withObject "DescribeHsmResponse" $ \o -> DescribeHsmResponse+        <$> o .:? "AvailabilityZone"+        <*> o .:? "EniId"+        <*> o .:? "EniIp"+        <*> o .:? "HsmArn"+        <*> o .:? "HsmType"+        <*> o .:? "IamRoleArn"+        <*> o .:? "Partitions" .!= mempty+        <*> o .:? "SerialNumber"+        <*> o .:? "ServerCertLastUpdated"+        <*> o .:? "ServerCertUri"+        <*> o .:? "SoftwareVersion"+        <*> o .:? "SshKeyLastUpdated"+        <*> o .:? "SshPublicKey"+        <*> o .:? "Status"+        <*> o .:? "StatusDetails"+        <*> o .:? "SubnetId"+        <*> o .:? "SubscriptionEndDate"+        <*> o .:? "SubscriptionStartDate"+        <*> o .:? "SubscriptionType"+        <*> o .:? "VendorName"+        <*> o .:? "VpcId"
+ gen/Network/AWS/CloudHSM/DescribeLunaClient.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.CloudHSM.DescribeLunaClient+-- 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)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Retrieves information about an HSM client.+--+-- <http://docs.aws.amazon.com/cloudhsm/latest/dg/API_DescribeLunaClient.html>+module Network.AWS.CloudHSM.DescribeLunaClient+    (+    -- * Request+      DescribeLunaClient+    -- ** Request constructor+    , describeLunaClient+    -- ** Request lenses+    , dlcCertificateFingerprint+    , dlcClientArn++    -- * Response+    , DescribeLunaClientResponse+    -- ** Response constructor+    , describeLunaClientResponse+    -- ** Response lenses+    , dlcrCertificate+    , dlcrCertificateFingerprint+    , dlcrClientArn+    , dlcrLabel+    , dlcrLastModifiedTimestamp+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.CloudHSM.Types+import qualified GHC.Exts++data DescribeLunaClient = DescribeLunaClient+    { _dlcCertificateFingerprint :: Maybe Text+    , _dlcClientArn              :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'DescribeLunaClient' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dlcCertificateFingerprint' @::@ 'Maybe' 'Text'+--+-- * 'dlcClientArn' @::@ 'Maybe' 'Text'+--+describeLunaClient :: DescribeLunaClient+describeLunaClient = DescribeLunaClient+    { _dlcClientArn              = Nothing+    , _dlcCertificateFingerprint = Nothing+    }++-- | The certificate fingerprint.+dlcCertificateFingerprint :: Lens' DescribeLunaClient (Maybe Text)+dlcCertificateFingerprint =+    lens _dlcCertificateFingerprint+        (\s a -> s { _dlcCertificateFingerprint = a })++-- | The ARN of the client.+dlcClientArn :: Lens' DescribeLunaClient (Maybe Text)+dlcClientArn = lens _dlcClientArn (\s a -> s { _dlcClientArn = a })++data DescribeLunaClientResponse = DescribeLunaClientResponse+    { _dlcrCertificate            :: Maybe Text+    , _dlcrCertificateFingerprint :: Maybe Text+    , _dlcrClientArn              :: Maybe Text+    , _dlcrLabel                  :: Maybe Text+    , _dlcrLastModifiedTimestamp  :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'DescribeLunaClientResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dlcrCertificate' @::@ 'Maybe' 'Text'+--+-- * 'dlcrCertificateFingerprint' @::@ 'Maybe' 'Text'+--+-- * 'dlcrClientArn' @::@ 'Maybe' 'Text'+--+-- * 'dlcrLabel' @::@ 'Maybe' 'Text'+--+-- * 'dlcrLastModifiedTimestamp' @::@ 'Maybe' 'Text'+--+describeLunaClientResponse :: DescribeLunaClientResponse+describeLunaClientResponse = DescribeLunaClientResponse+    { _dlcrClientArn              = Nothing+    , _dlcrCertificate            = Nothing+    , _dlcrCertificateFingerprint = Nothing+    , _dlcrLastModifiedTimestamp  = Nothing+    , _dlcrLabel                  = Nothing+    }++-- | The certificate installed on the HSMs used by this client.+dlcrCertificate :: Lens' DescribeLunaClientResponse (Maybe Text)+dlcrCertificate = lens _dlcrCertificate (\s a -> s { _dlcrCertificate = a })++-- | The certificate fingerprint.+dlcrCertificateFingerprint :: Lens' DescribeLunaClientResponse (Maybe Text)+dlcrCertificateFingerprint =+    lens _dlcrCertificateFingerprint+        (\s a -> s { _dlcrCertificateFingerprint = a })++-- | The ARN of the client.+dlcrClientArn :: Lens' DescribeLunaClientResponse (Maybe Text)+dlcrClientArn = lens _dlcrClientArn (\s a -> s { _dlcrClientArn = a })++-- | The label of the client.+dlcrLabel :: Lens' DescribeLunaClientResponse (Maybe Text)+dlcrLabel = lens _dlcrLabel (\s a -> s { _dlcrLabel = a })++-- | The date and time the client was last modified.+dlcrLastModifiedTimestamp :: Lens' DescribeLunaClientResponse (Maybe Text)+dlcrLastModifiedTimestamp =+    lens _dlcrLastModifiedTimestamp+        (\s a -> s { _dlcrLastModifiedTimestamp = a })++instance ToPath DescribeLunaClient where+    toPath = const "/"++instance ToQuery DescribeLunaClient where+    toQuery = const mempty++instance ToHeaders DescribeLunaClient++instance ToJSON DescribeLunaClient where+    toJSON DescribeLunaClient{..} = object+        [ "ClientArn"              .= _dlcClientArn+        , "CertificateFingerprint" .= _dlcCertificateFingerprint+        ]++instance AWSRequest DescribeLunaClient where+    type Sv DescribeLunaClient = CloudHSM+    type Rs DescribeLunaClient = DescribeLunaClientResponse++    request  = post "DescribeLunaClient"+    response = jsonResponse++instance FromJSON DescribeLunaClientResponse where+    parseJSON = withObject "DescribeLunaClientResponse" $ \o -> DescribeLunaClientResponse+        <$> o .:? "Certificate"+        <*> o .:? "CertificateFingerprint"+        <*> o .:? "ClientArn"+        <*> o .:? "Label"+        <*> o .:? "LastModifiedTimestamp"
+ gen/Network/AWS/CloudHSM/GetConfig.hs view
@@ -0,0 +1,154 @@+{-# 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.CloudHSM.GetConfig+-- 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)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Gets the configuration files necessary to connect to all high availability+-- partition groups the client is associated with.+--+-- <http://docs.aws.amazon.com/cloudhsm/latest/dg/API_GetConfig.html>+module Network.AWS.CloudHSM.GetConfig+    (+    -- * Request+      GetConfig+    -- ** Request constructor+    , getConfig+    -- ** Request lenses+    , gcClientArn+    , gcClientVersion+    , gcHapgList++    -- * Response+    , GetConfigResponse+    -- ** Response constructor+    , getConfigResponse+    -- ** Response lenses+    , gcrConfigCred+    , gcrConfigFile+    , gcrConfigType+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.CloudHSM.Types+import qualified GHC.Exts++data GetConfig = GetConfig+    { _gcClientArn     :: Text+    , _gcClientVersion :: ClientVersion+    , _gcHapgList      :: List "HapgList" Text+    } deriving (Eq, Show)++-- | 'GetConfig' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'gcClientArn' @::@ 'Text'+--+-- * 'gcClientVersion' @::@ 'ClientVersion'+--+-- * 'gcHapgList' @::@ ['Text']+--+getConfig :: Text -- ^ 'gcClientArn'+          -> ClientVersion -- ^ 'gcClientVersion'+          -> GetConfig+getConfig p1 p2 = GetConfig+    { _gcClientArn     = p1+    , _gcClientVersion = p2+    , _gcHapgList      = mempty+    }++-- | The ARN of the client.+gcClientArn :: Lens' GetConfig Text+gcClientArn = lens _gcClientArn (\s a -> s { _gcClientArn = a })++-- | The client version.+gcClientVersion :: Lens' GetConfig ClientVersion+gcClientVersion = lens _gcClientVersion (\s a -> s { _gcClientVersion = a })++-- | A list of ARNs that identify the high-availability partition groups that are+-- associated with the client.+gcHapgList :: Lens' GetConfig [Text]+gcHapgList = lens _gcHapgList (\s a -> s { _gcHapgList = a }) . _List++data GetConfigResponse = GetConfigResponse+    { _gcrConfigCred :: Maybe Text+    , _gcrConfigFile :: Maybe Text+    , _gcrConfigType :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'GetConfigResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'gcrConfigCred' @::@ 'Maybe' 'Text'+--+-- * 'gcrConfigFile' @::@ 'Maybe' 'Text'+--+-- * 'gcrConfigType' @::@ 'Maybe' 'Text'+--+getConfigResponse :: GetConfigResponse+getConfigResponse = GetConfigResponse+    { _gcrConfigType = Nothing+    , _gcrConfigFile = Nothing+    , _gcrConfigCred = Nothing+    }++-- | The certificate file containing the server.pem files of the HSMs.+gcrConfigCred :: Lens' GetConfigResponse (Maybe Text)+gcrConfigCred = lens _gcrConfigCred (\s a -> s { _gcrConfigCred = a })++-- | The chrystoki.conf configuration file.+gcrConfigFile :: Lens' GetConfigResponse (Maybe Text)+gcrConfigFile = lens _gcrConfigFile (\s a -> s { _gcrConfigFile = a })++-- | The type of credentials.+gcrConfigType :: Lens' GetConfigResponse (Maybe Text)+gcrConfigType = lens _gcrConfigType (\s a -> s { _gcrConfigType = a })++instance ToPath GetConfig where+    toPath = const "/"++instance ToQuery GetConfig where+    toQuery = const mempty++instance ToHeaders GetConfig++instance ToJSON GetConfig where+    toJSON GetConfig{..} = object+        [ "ClientArn"     .= _gcClientArn+        , "ClientVersion" .= _gcClientVersion+        , "HapgList"      .= _gcHapgList+        ]++instance AWSRequest GetConfig where+    type Sv GetConfig = CloudHSM+    type Rs GetConfig = GetConfigResponse++    request  = post "GetConfig"+    response = jsonResponse++instance FromJSON GetConfigResponse where+    parseJSON = withObject "GetConfigResponse" $ \o -> GetConfigResponse+        <$> o .:? "ConfigCred"+        <*> o .:? "ConfigFile"+        <*> o .:? "ConfigType"
+ gen/Network/AWS/CloudHSM/ListAvailableZones.hs view
@@ -0,0 +1,100 @@+{-# 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.CloudHSM.ListAvailableZones+-- 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)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Lists the Availability Zones that have available AWS CloudHSM capacity.+--+-- <http://docs.aws.amazon.com/cloudhsm/latest/dg/API_ListAvailableZones.html>+module Network.AWS.CloudHSM.ListAvailableZones+    (+    -- * Request+      ListAvailableZones+    -- ** Request constructor+    , listAvailableZones++    -- * Response+    , ListAvailableZonesResponse+    -- ** Response constructor+    , listAvailableZonesResponse+    -- ** Response lenses+    , lazrAZList+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.CloudHSM.Types+import qualified GHC.Exts++data ListAvailableZones = ListAvailableZones+    deriving (Eq, Ord, Show, Generic)++-- | 'ListAvailableZones' constructor.+listAvailableZones :: ListAvailableZones+listAvailableZones = ListAvailableZones++newtype ListAvailableZonesResponse = ListAvailableZonesResponse+    { _lazrAZList :: List "AZList" Text+    } deriving (Eq, Ord, Show, Monoid, Semigroup)++instance GHC.Exts.IsList ListAvailableZonesResponse where+    type Item ListAvailableZonesResponse = Text++    fromList = ListAvailableZonesResponse . GHC.Exts.fromList+    toList   = GHC.Exts.toList . _lazrAZList++-- | 'ListAvailableZonesResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'lazrAZList' @::@ ['Text']+--+listAvailableZonesResponse :: ListAvailableZonesResponse+listAvailableZonesResponse = ListAvailableZonesResponse+    { _lazrAZList = mempty+    }++-- | The list of Availability Zones that have available AWS CloudHSM capacity.+lazrAZList :: Lens' ListAvailableZonesResponse [Text]+lazrAZList = lens _lazrAZList (\s a -> s { _lazrAZList = a }) . _List++instance ToPath ListAvailableZones where+    toPath = const "/"++instance ToQuery ListAvailableZones where+    toQuery = const mempty++instance ToHeaders ListAvailableZones++instance ToJSON ListAvailableZones where+    toJSON = const (toJSON Empty)++instance AWSRequest ListAvailableZones where+    type Sv ListAvailableZones = CloudHSM+    type Rs ListAvailableZones = ListAvailableZonesResponse++    request  = post "ListAvailableZones"+    response = jsonResponse++instance FromJSON ListAvailableZonesResponse where+    parseJSON = withObject "ListAvailableZonesResponse" $ \o -> ListAvailableZonesResponse+        <$> o .:? "AZList" .!= mempty
+ gen/Network/AWS/CloudHSM/ListHapgs.hs view
@@ -0,0 +1,127 @@+{-# 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.CloudHSM.ListHapgs+-- 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)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Lists the high-availability partition groups for the account.+--+-- This operation supports pagination with the use of the /NextToken/ member. If+-- more results are available, the /NextToken/ member of the response contains a+-- token that you pass in the next call to 'ListHapgs' to retrieve the next set of+-- items.+--+-- <http://docs.aws.amazon.com/cloudhsm/latest/dg/API_ListHapgs.html>+module Network.AWS.CloudHSM.ListHapgs+    (+    -- * Request+      ListHapgs+    -- ** Request constructor+    , listHapgs+    -- ** Request lenses+    , lhNextToken++    -- * Response+    , ListHapgsResponse+    -- ** Response constructor+    , listHapgsResponse+    -- ** Response lenses+    , lhr1HapgList+    , lhr1NextToken+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.CloudHSM.Types+import qualified GHC.Exts++newtype ListHapgs = ListHapgs+    { _lhNextToken :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'ListHapgs' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'lhNextToken' @::@ 'Maybe' 'Text'+--+listHapgs :: ListHapgs+listHapgs = ListHapgs+    { _lhNextToken = Nothing+    }++-- | The /NextToken/ value from a previous call to 'ListHapgs'. Pass null if this is+-- the first call.+lhNextToken :: Lens' ListHapgs (Maybe Text)+lhNextToken = lens _lhNextToken (\s a -> s { _lhNextToken = a })++data ListHapgsResponse = ListHapgsResponse+    { _lhr1HapgList  :: List "HapgList" Text+    , _lhr1NextToken :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'ListHapgsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'lhr1HapgList' @::@ ['Text']+--+-- * 'lhr1NextToken' @::@ 'Maybe' 'Text'+--+listHapgsResponse :: ListHapgsResponse+listHapgsResponse = ListHapgsResponse+    { _lhr1HapgList  = mempty+    , _lhr1NextToken = Nothing+    }++-- | The list of high-availability partition groups.+lhr1HapgList :: Lens' ListHapgsResponse [Text]+lhr1HapgList = lens _lhr1HapgList (\s a -> s { _lhr1HapgList = a }) . _List++-- | If not null, more results are available. Pass this value to 'ListHapgs' to+-- retrieve the next set of items.+lhr1NextToken :: Lens' ListHapgsResponse (Maybe Text)+lhr1NextToken = lens _lhr1NextToken (\s a -> s { _lhr1NextToken = a })++instance ToPath ListHapgs where+    toPath = const "/"++instance ToQuery ListHapgs where+    toQuery = const mempty++instance ToHeaders ListHapgs++instance ToJSON ListHapgs where+    toJSON ListHapgs{..} = object+        [ "NextToken" .= _lhNextToken+        ]++instance AWSRequest ListHapgs where+    type Sv ListHapgs = CloudHSM+    type Rs ListHapgs = ListHapgsResponse++    request  = post "ListHapgs"+    response = jsonResponse++instance FromJSON ListHapgsResponse where+    parseJSON = withObject "ListHapgsResponse" $ \o -> ListHapgsResponse+        <$> o .:? "HapgList" .!= mempty+        <*> o .:? "NextToken"
+ gen/Network/AWS/CloudHSM/ListHsms.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.CloudHSM.ListHsms+-- 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)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Retrieves the identifiers of all of the HSMs provisioned for the current+-- customer.+--+-- This operation supports pagination with the use of the /NextToken/ member. If+-- more results are available, the /NextToken/ member of the response contains a+-- token that you pass in the next call to 'ListHsms' to retrieve the next set of+-- items.+--+-- <http://docs.aws.amazon.com/cloudhsm/latest/dg/API_ListHsms.html>+module Network.AWS.CloudHSM.ListHsms+    (+    -- * Request+      ListHsms+    -- ** Request constructor+    , listHsms+    -- ** Request lenses+    , lh1NextToken++    -- * Response+    , ListHsmsResponse+    -- ** Response constructor+    , listHsmsResponse+    -- ** Response lenses+    , lhrHsmList+    , lhrNextToken+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.CloudHSM.Types+import qualified GHC.Exts++newtype ListHsms = ListHsms+    { _lh1NextToken :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'ListHsms' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'lh1NextToken' @::@ 'Maybe' 'Text'+--+listHsms :: ListHsms+listHsms = ListHsms+    { _lh1NextToken = Nothing+    }++-- | The /NextToken/ value from a previous call to 'ListHsms'. Pass null if this is+-- the first call.+lh1NextToken :: Lens' ListHsms (Maybe Text)+lh1NextToken = lens _lh1NextToken (\s a -> s { _lh1NextToken = a })++data ListHsmsResponse = ListHsmsResponse+    { _lhrHsmList   :: List "HsmList" Text+    , _lhrNextToken :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'ListHsmsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'lhrHsmList' @::@ ['Text']+--+-- * 'lhrNextToken' @::@ 'Maybe' 'Text'+--+listHsmsResponse :: ListHsmsResponse+listHsmsResponse = ListHsmsResponse+    { _lhrHsmList   = mempty+    , _lhrNextToken = Nothing+    }++-- | The list of ARNs that identify the HSMs.+lhrHsmList :: Lens' ListHsmsResponse [Text]+lhrHsmList = lens _lhrHsmList (\s a -> s { _lhrHsmList = a }) . _List++-- | If not null, more results are available. Pass this value to 'ListHsms' to+-- retrieve the next set of items.+lhrNextToken :: Lens' ListHsmsResponse (Maybe Text)+lhrNextToken = lens _lhrNextToken (\s a -> s { _lhrNextToken = a })++instance ToPath ListHsms where+    toPath = const "/"++instance ToQuery ListHsms where+    toQuery = const mempty++instance ToHeaders ListHsms++instance ToJSON ListHsms where+    toJSON ListHsms{..} = object+        [ "NextToken" .= _lh1NextToken+        ]++instance AWSRequest ListHsms where+    type Sv ListHsms = CloudHSM+    type Rs ListHsms = ListHsmsResponse++    request  = post "ListHsms"+    response = jsonResponse++instance FromJSON ListHsmsResponse where+    parseJSON = withObject "ListHsmsResponse" $ \o -> ListHsmsResponse+        <$> o .:? "HsmList" .!= mempty+        <*> o .:? "NextToken"
+ gen/Network/AWS/CloudHSM/ListLunaClients.hs view
@@ -0,0 +1,127 @@+{-# 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.CloudHSM.ListLunaClients+-- 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)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Lists all of the clients.+--+-- This operation supports pagination with the use of the /NextToken/ member. If+-- more results are available, the /NextToken/ member of the response contains a+-- token that you pass in the next call to 'ListLunaClients' to retrieve the next+-- set of items.+--+-- <http://docs.aws.amazon.com/cloudhsm/latest/dg/API_ListLunaClients.html>+module Network.AWS.CloudHSM.ListLunaClients+    (+    -- * Request+      ListLunaClients+    -- ** Request constructor+    , listLunaClients+    -- ** Request lenses+    , llcNextToken++    -- * Response+    , ListLunaClientsResponse+    -- ** Response constructor+    , listLunaClientsResponse+    -- ** Response lenses+    , llcrClientList+    , llcrNextToken+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.CloudHSM.Types+import qualified GHC.Exts++newtype ListLunaClients = ListLunaClients+    { _llcNextToken :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'ListLunaClients' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'llcNextToken' @::@ 'Maybe' 'Text'+--+listLunaClients :: ListLunaClients+listLunaClients = ListLunaClients+    { _llcNextToken = Nothing+    }++-- | The /NextToken/ value from a previous call to 'ListLunaClients'. Pass null if+-- this is the first call.+llcNextToken :: Lens' ListLunaClients (Maybe Text)+llcNextToken = lens _llcNextToken (\s a -> s { _llcNextToken = a })++data ListLunaClientsResponse = ListLunaClientsResponse+    { _llcrClientList :: List "ClientList" Text+    , _llcrNextToken  :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'ListLunaClientsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'llcrClientList' @::@ ['Text']+--+-- * 'llcrNextToken' @::@ 'Maybe' 'Text'+--+listLunaClientsResponse :: ListLunaClientsResponse+listLunaClientsResponse = ListLunaClientsResponse+    { _llcrClientList = mempty+    , _llcrNextToken  = Nothing+    }++-- | The list of clients.+llcrClientList :: Lens' ListLunaClientsResponse [Text]+llcrClientList = lens _llcrClientList (\s a -> s { _llcrClientList = a }) . _List++-- | If not null, more results are available. Pass this to 'ListLunaClients' to+-- retrieve the next set of items.+llcrNextToken :: Lens' ListLunaClientsResponse (Maybe Text)+llcrNextToken = lens _llcrNextToken (\s a -> s { _llcrNextToken = a })++instance ToPath ListLunaClients where+    toPath = const "/"++instance ToQuery ListLunaClients where+    toQuery = const mempty++instance ToHeaders ListLunaClients++instance ToJSON ListLunaClients where+    toJSON ListLunaClients{..} = object+        [ "NextToken" .= _llcNextToken+        ]++instance AWSRequest ListLunaClients where+    type Sv ListLunaClients = CloudHSM+    type Rs ListLunaClients = ListLunaClientsResponse++    request  = post "ListLunaClients"+    response = jsonResponse++instance FromJSON ListLunaClientsResponse where+    parseJSON = withObject "ListLunaClientsResponse" $ \o -> ListLunaClientsResponse+        <$> o .:? "ClientList" .!= mempty+        <*> o .:? "NextToken"
+ gen/Network/AWS/CloudHSM/ModifyHapg.hs view
@@ -0,0 +1,134 @@+{-# 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.CloudHSM.ModifyHapg+-- 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)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Modifies an existing high-availability partition group.+--+-- <http://docs.aws.amazon.com/cloudhsm/latest/dg/API_ModifyHapg.html>+module Network.AWS.CloudHSM.ModifyHapg+    (+    -- * Request+      ModifyHapg+    -- ** Request constructor+    , modifyHapg+    -- ** Request lenses+    , mhHapgArn+    , mhLabel+    , mhPartitionSerialList++    -- * Response+    , ModifyHapgResponse+    -- ** Response constructor+    , modifyHapgResponse+    -- ** Response lenses+    , mhrHapgArn+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.CloudHSM.Types+import qualified GHC.Exts++data ModifyHapg = ModifyHapg+    { _mhHapgArn             :: Text+    , _mhLabel               :: Maybe Text+    , _mhPartitionSerialList :: List "PartitionSerialList" Text+    } deriving (Eq, Ord, Show)++-- | 'ModifyHapg' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'mhHapgArn' @::@ 'Text'+--+-- * 'mhLabel' @::@ 'Maybe' 'Text'+--+-- * 'mhPartitionSerialList' @::@ ['Text']+--+modifyHapg :: Text -- ^ 'mhHapgArn'+           -> ModifyHapg+modifyHapg p1 = ModifyHapg+    { _mhHapgArn             = p1+    , _mhLabel               = Nothing+    , _mhPartitionSerialList = mempty+    }++-- | The ARN of the high-availability partition group to modify.+mhHapgArn :: Lens' ModifyHapg Text+mhHapgArn = lens _mhHapgArn (\s a -> s { _mhHapgArn = a })++-- | The new label for the high-availability partition group.+mhLabel :: Lens' ModifyHapg (Maybe Text)+mhLabel = lens _mhLabel (\s a -> s { _mhLabel = a })++-- | The list of partition serial numbers to make members of the high-availability+-- partition group.+mhPartitionSerialList :: Lens' ModifyHapg [Text]+mhPartitionSerialList =+    lens _mhPartitionSerialList (\s a -> s { _mhPartitionSerialList = a })+        . _List++newtype ModifyHapgResponse = ModifyHapgResponse+    { _mhrHapgArn :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'ModifyHapgResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'mhrHapgArn' @::@ 'Maybe' 'Text'+--+modifyHapgResponse :: ModifyHapgResponse+modifyHapgResponse = ModifyHapgResponse+    { _mhrHapgArn = Nothing+    }++-- | The ARN of the high-availability partition group.+mhrHapgArn :: Lens' ModifyHapgResponse (Maybe Text)+mhrHapgArn = lens _mhrHapgArn (\s a -> s { _mhrHapgArn = a })++instance ToPath ModifyHapg where+    toPath = const "/"++instance ToQuery ModifyHapg where+    toQuery = const mempty++instance ToHeaders ModifyHapg++instance ToJSON ModifyHapg where+    toJSON ModifyHapg{..} = object+        [ "HapgArn"             .= _mhHapgArn+        , "Label"               .= _mhLabel+        , "PartitionSerialList" .= _mhPartitionSerialList+        ]++instance AWSRequest ModifyHapg where+    type Sv ModifyHapg = CloudHSM+    type Rs ModifyHapg = ModifyHapgResponse++    request  = post "ModifyHapg"+    response = jsonResponse++instance FromJSON ModifyHapgResponse where+    parseJSON = withObject "ModifyHapgResponse" $ \o -> ModifyHapgResponse+        <$> o .:? "HapgArn"
+ gen/Network/AWS/CloudHSM/ModifyHsm.hs view
@@ -0,0 +1,161 @@+{-# 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.CloudHSM.ModifyHsm+-- 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)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Modifies an HSM.+--+-- <http://docs.aws.amazon.com/cloudhsm/latest/dg/API_ModifyHsm.html>+module Network.AWS.CloudHSM.ModifyHsm+    (+    -- * Request+      ModifyHsm+    -- ** Request constructor+    , modifyHsm+    -- ** Request lenses+    , mhEniIp+    , mhExternalId+    , mhHsmArn+    , mhIamRoleArn+    , mhSubnetId+    , mhSyslogIp++    -- * Response+    , ModifyHsmResponse+    -- ** Response constructor+    , modifyHsmResponse+    -- ** Response lenses+    , mhrHsmArn+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.CloudHSM.Types+import qualified GHC.Exts++data ModifyHsm = ModifyHsm+    { _mhEniIp      :: Maybe Text+    , _mhExternalId :: Maybe Text+    , _mhHsmArn     :: Text+    , _mhIamRoleArn :: Maybe Text+    , _mhSubnetId   :: Maybe Text+    , _mhSyslogIp   :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'ModifyHsm' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'mhEniIp' @::@ 'Maybe' 'Text'+--+-- * 'mhExternalId' @::@ 'Maybe' 'Text'+--+-- * 'mhHsmArn' @::@ 'Text'+--+-- * 'mhIamRoleArn' @::@ 'Maybe' 'Text'+--+-- * 'mhSubnetId' @::@ 'Maybe' 'Text'+--+-- * 'mhSyslogIp' @::@ 'Maybe' 'Text'+--+modifyHsm :: Text -- ^ 'mhHsmArn'+          -> ModifyHsm+modifyHsm p1 = ModifyHsm+    { _mhHsmArn     = p1+    , _mhSubnetId   = Nothing+    , _mhEniIp      = Nothing+    , _mhIamRoleArn = Nothing+    , _mhExternalId = Nothing+    , _mhSyslogIp   = Nothing+    }++-- | The new IP address for the elastic network interface attached to the HSM.+mhEniIp :: Lens' ModifyHsm (Maybe Text)+mhEniIp = lens _mhEniIp (\s a -> s { _mhEniIp = a })++-- | The new external ID.+mhExternalId :: Lens' ModifyHsm (Maybe Text)+mhExternalId = lens _mhExternalId (\s a -> s { _mhExternalId = a })++-- | The ARN of the HSM to modify.+mhHsmArn :: Lens' ModifyHsm Text+mhHsmArn = lens _mhHsmArn (\s a -> s { _mhHsmArn = a })++-- | The new IAM role ARN.+mhIamRoleArn :: Lens' ModifyHsm (Maybe Text)+mhIamRoleArn = lens _mhIamRoleArn (\s a -> s { _mhIamRoleArn = a })++-- | The new identifier of the subnet that the HSM is in.+mhSubnetId :: Lens' ModifyHsm (Maybe Text)+mhSubnetId = lens _mhSubnetId (\s a -> s { _mhSubnetId = a })++-- | The new IP address for the syslog monitoring server.+mhSyslogIp :: Lens' ModifyHsm (Maybe Text)+mhSyslogIp = lens _mhSyslogIp (\s a -> s { _mhSyslogIp = a })++newtype ModifyHsmResponse = ModifyHsmResponse+    { _mhrHsmArn :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'ModifyHsmResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'mhrHsmArn' @::@ 'Maybe' 'Text'+--+modifyHsmResponse :: ModifyHsmResponse+modifyHsmResponse = ModifyHsmResponse+    { _mhrHsmArn = Nothing+    }++-- | The ARN of the HSM.+mhrHsmArn :: Lens' ModifyHsmResponse (Maybe Text)+mhrHsmArn = lens _mhrHsmArn (\s a -> s { _mhrHsmArn = a })++instance ToPath ModifyHsm where+    toPath = const "/"++instance ToQuery ModifyHsm where+    toQuery = const mempty++instance ToHeaders ModifyHsm++instance ToJSON ModifyHsm where+    toJSON ModifyHsm{..} = object+        [ "HsmArn"     .= _mhHsmArn+        , "SubnetId"   .= _mhSubnetId+        , "EniIp"      .= _mhEniIp+        , "IamRoleArn" .= _mhIamRoleArn+        , "ExternalId" .= _mhExternalId+        , "SyslogIp"   .= _mhSyslogIp+        ]++instance AWSRequest ModifyHsm where+    type Sv ModifyHsm = CloudHSM+    type Rs ModifyHsm = ModifyHsmResponse++    request  = post "ModifyHsm"+    response = jsonResponse++instance FromJSON ModifyHsmResponse where+    parseJSON = withObject "ModifyHsmResponse" $ \o -> ModifyHsmResponse+        <$> o .:? "HsmArn"
+ gen/Network/AWS/CloudHSM/ModifyLunaClient.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.CloudHSM.ModifyLunaClient+-- 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)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | Modifies the certificate used by the client.+--+-- This action can potentially start a workflow to install the new certificate+-- on the client's HSMs.+--+-- <http://docs.aws.amazon.com/cloudhsm/latest/dg/API_ModifyLunaClient.html>+module Network.AWS.CloudHSM.ModifyLunaClient+    (+    -- * Request+      ModifyLunaClient+    -- ** Request constructor+    , modifyLunaClient+    -- ** Request lenses+    , mlcCertificate+    , mlcClientArn++    -- * Response+    , ModifyLunaClientResponse+    -- ** Response constructor+    , modifyLunaClientResponse+    -- ** Response lenses+    , mlcrClientArn+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.CloudHSM.Types+import qualified GHC.Exts++data ModifyLunaClient = ModifyLunaClient+    { _mlcCertificate :: Text+    , _mlcClientArn   :: Text+    } deriving (Eq, Ord, Show)++-- | 'ModifyLunaClient' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'mlcCertificate' @::@ 'Text'+--+-- * 'mlcClientArn' @::@ 'Text'+--+modifyLunaClient :: Text -- ^ 'mlcClientArn'+                 -> Text -- ^ 'mlcCertificate'+                 -> ModifyLunaClient+modifyLunaClient p1 p2 = ModifyLunaClient+    { _mlcClientArn   = p1+    , _mlcCertificate = p2+    }++-- | The new certificate for the client.+mlcCertificate :: Lens' ModifyLunaClient Text+mlcCertificate = lens _mlcCertificate (\s a -> s { _mlcCertificate = a })++-- | The ARN of the client.+mlcClientArn :: Lens' ModifyLunaClient Text+mlcClientArn = lens _mlcClientArn (\s a -> s { _mlcClientArn = a })++newtype ModifyLunaClientResponse = ModifyLunaClientResponse+    { _mlcrClientArn :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'ModifyLunaClientResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'mlcrClientArn' @::@ 'Maybe' 'Text'+--+modifyLunaClientResponse :: ModifyLunaClientResponse+modifyLunaClientResponse = ModifyLunaClientResponse+    { _mlcrClientArn = Nothing+    }++-- | The ARN of the client.+mlcrClientArn :: Lens' ModifyLunaClientResponse (Maybe Text)+mlcrClientArn = lens _mlcrClientArn (\s a -> s { _mlcrClientArn = a })++instance ToPath ModifyLunaClient where+    toPath = const "/"++instance ToQuery ModifyLunaClient where+    toQuery = const mempty++instance ToHeaders ModifyLunaClient++instance ToJSON ModifyLunaClient where+    toJSON ModifyLunaClient{..} = object+        [ "ClientArn"   .= _mlcClientArn+        , "Certificate" .= _mlcCertificate+        ]++instance AWSRequest ModifyLunaClient where+    type Sv ModifyLunaClient = CloudHSM+    type Rs ModifyLunaClient = ModifyLunaClientResponse++    request  = post "ModifyLunaClient"+    response = jsonResponse++instance FromJSON ModifyLunaClientResponse where+    parseJSON = withObject "ModifyLunaClientResponse" $ \o -> ModifyLunaClientResponse+        <$> o .:? "ClientArn"
+ gen/Network/AWS/CloudHSM/Types.hs view
@@ -0,0 +1,219 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE ViewPatterns                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.CloudHSM.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)+--+-- Derived from AWS service descriptions, licensed under Apache 2.0.++module Network.AWS.CloudHSM.Types+    (+    -- * Service+      CloudHSM+    -- ** Error+    , JSONError++    -- * CloudHsmObjectState+    , CloudHsmObjectState (..)++    -- * SubscriptionType+    , SubscriptionType (..)++    -- * HsmStatus+    , HsmStatus (..)++    -- * ClientVersion+    , ClientVersion (..)+    ) where++import Network.AWS.Prelude+import Network.AWS.Signing+import qualified GHC.Exts++-- | Version @2014-05-30@ of the Amazon CloudHSM service.+data CloudHSM++instance AWSService CloudHSM where+    type Sg CloudHSM = V4+    type Er CloudHSM = JSONError++    service = service'+      where+        service' :: Service CloudHSM+        service' = Service+            { _svcAbbrev       = "CloudHSM"+            , _svcPrefix       = "cloudhsm"+            , _svcVersion      = "2014-05-30"+            , _svcTargetPrefix = Just "CloudHsmFrontendService"+            , _svcJSONVersion  = Just "1.1"+            , _svcHandle       = handle+            , _svcRetry        = retry+            }++        handle :: Status+               -> Maybe (LazyByteString -> ServiceError JSONError)+        handle = jsonError statusSuccess service'++        retry :: Retry CloudHSM+        retry = Exponential+            { _retryBase     = 0.05+            , _retryGrowth   = 2+            , _retryAttempts = 5+            , _retryCheck    = check+            }++        check :: Status+              -> JSONError+              -> Bool+        check (statusCode -> s) (awsErrorCode -> e)+            | s == 500  = True -- General Server Error+            | s == 509  = True -- Limit Exceeded+            | s == 503  = True -- Service Unavailable+            | otherwise = False++data CloudHsmObjectState+    = Degraded -- ^ DEGRADED+    | Ready    -- ^ READY+    | Updating -- ^ UPDATING+      deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable CloudHsmObjectState++instance FromText CloudHsmObjectState where+    parser = takeLowerText >>= \case+        "degraded" -> pure Degraded+        "ready"    -> pure Ready+        "updating" -> pure Updating+        e          -> fail $+            "Failure parsing CloudHsmObjectState from " ++ show e++instance ToText CloudHsmObjectState where+    toText = \case+        Degraded -> "DEGRADED"+        Ready    -> "READY"+        Updating -> "UPDATING"++instance ToByteString CloudHsmObjectState+instance ToHeader     CloudHsmObjectState+instance ToQuery      CloudHsmObjectState++instance FromJSON CloudHsmObjectState where+    parseJSON = parseJSONText "CloudHsmObjectState"++instance ToJSON CloudHsmObjectState where+    toJSON = toJSONText++data SubscriptionType+    = Production -- ^ PRODUCTION+      deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable SubscriptionType++instance FromText SubscriptionType where+    parser = takeLowerText >>= \case+        "production" -> pure Production+        e            -> fail $+            "Failure parsing SubscriptionType from " ++ show e++instance ToText SubscriptionType where+    toText Production = "PRODUCTION"++instance ToByteString SubscriptionType+instance ToHeader     SubscriptionType+instance ToQuery      SubscriptionType++instance FromJSON SubscriptionType where+    parseJSON = parseJSONText "SubscriptionType"++instance ToJSON SubscriptionType where+    toJSON = toJSONText++data HsmStatus+    = HSDegraded    -- ^ DEGRADED+    | HSPending     -- ^ PENDING+    | HSRunning     -- ^ RUNNING+    | HSSuspended   -- ^ SUSPENDED+    | HSTerminated  -- ^ TERMINATED+    | HSTerminating -- ^ TERMINATING+    | HSUpdating    -- ^ UPDATING+      deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable HsmStatus++instance FromText HsmStatus where+    parser = takeLowerText >>= \case+        "degraded"    -> pure HSDegraded+        "pending"     -> pure HSPending+        "running"     -> pure HSRunning+        "suspended"   -> pure HSSuspended+        "terminated"  -> pure HSTerminated+        "terminating" -> pure HSTerminating+        "updating"    -> pure HSUpdating+        e             -> fail $+            "Failure parsing HsmStatus from " ++ show e++instance ToText HsmStatus where+    toText = \case+        HSDegraded    -> "DEGRADED"+        HSPending     -> "PENDING"+        HSRunning     -> "RUNNING"+        HSSuspended   -> "SUSPENDED"+        HSTerminated  -> "TERMINATED"+        HSTerminating -> "TERMINATING"+        HSUpdating    -> "UPDATING"++instance ToByteString HsmStatus+instance ToHeader     HsmStatus+instance ToQuery      HsmStatus++instance FromJSON HsmStatus where+    parseJSON = parseJSONText "HsmStatus"++instance ToJSON HsmStatus where+    toJSON = toJSONText++data ClientVersion+    = V51 -- ^ 5.1+    | V53 -- ^ 5.3+      deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable ClientVersion++instance FromText ClientVersion where+    parser = takeLowerText >>= \case+        "5.1" -> pure V51+        "5.3" -> pure V53+        e     -> fail $+            "Failure parsing ClientVersion from " ++ show e++instance ToText ClientVersion where+    toText = \case+        V51 -> "5.1"+        V53 -> "5.3"++instance ToByteString ClientVersion+instance ToHeader     ClientVersion+instance ToQuery      ClientVersion++instance FromJSON ClientVersion where+    parseJSON = parseJSONText "ClientVersion"++instance ToJSON ClientVersion where+    toJSON = toJSONText