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 +373/−0
- README.md +32/−0
- Setup.hs +2/−0
- amazonka-cloudhsm.cabal +62/−0
- gen/Network/AWS/CloudHSM.hs +55/−0
- gen/Network/AWS/CloudHSM/CreateHapg.hs +112/−0
- gen/Network/AWS/CloudHSM/CreateHsm.hs +188/−0
- gen/Network/AWS/CloudHSM/CreateLunaClient.hs +122/−0
- gen/Network/AWS/CloudHSM/DeleteHapg.hs +112/−0
- gen/Network/AWS/CloudHSM/DeleteHsm.hs +113/−0
- gen/Network/AWS/CloudHSM/DeleteLunaClient.hs +112/−0
- gen/Network/AWS/CloudHSM/DescribeHapg.hs +200/−0
- gen/Network/AWS/CloudHSM/DescribeHsm.hs +335/−0
- gen/Network/AWS/CloudHSM/DescribeLunaClient.hs +166/−0
- gen/Network/AWS/CloudHSM/GetConfig.hs +154/−0
- gen/Network/AWS/CloudHSM/ListAvailableZones.hs +100/−0
- gen/Network/AWS/CloudHSM/ListHapgs.hs +127/−0
- gen/Network/AWS/CloudHSM/ListHsms.hs +128/−0
- gen/Network/AWS/CloudHSM/ListLunaClients.hs +127/−0
- gen/Network/AWS/CloudHSM/ModifyHapg.hs +134/−0
- gen/Network/AWS/CloudHSM/ModifyHsm.hs +161/−0
- gen/Network/AWS/CloudHSM/ModifyLunaClient.hs +125/−0
- gen/Network/AWS/CloudHSM/Types.hs +219/−0
+ 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