packages feed

amazonka-route53-domains (empty) → 0.0.0

raw patch · 21 files changed

+4428/−0 lines, 21 filesdep +amazonka-coredep +basesetup-changed

Dependencies added: amazonka-core, base

Files

+ LICENSE view
@@ -0,0 +1,373 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.++Exhibit B - "Incompatible With Secondary Licenses" Notice+---------------------------------------------------------++  This Source Code Form is "Incompatible With Secondary Licenses", as+  defined by the Mozilla Public License, v. 2.0.
+ README.md view
@@ -0,0 +1,26 @@+# Amazon Route 53 Domains 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++Pending++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-route53-domains)+and [AWS API Reference](http://docs.aws.amazon.com/Route53/latest/APIReference/actions-on-domain-registrations.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-route53-domains` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ amazonka-route53-domains.cabal view
@@ -0,0 +1,56 @@+name:                  amazonka-route53-domains+version:               0.0.0+synopsis:              Amazon Route 53 Domains SDK.+homepage:              https://github.com/brendanhay/amazonka+license:               OtherLicense+license-file:          LICENSE+author:                Brendan Hay+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>+copyright:             Copyright (c) 2013-2014 Brendan Hay+category:              Network, AWS, Cloud+build-type:            Simple+extra-source-files:    README.md+cabal-version:         >= 1.10++description:+    Pending+    .+    /See:/ <http://docs.aws.amazon.com/Route53/latest/APIReference/actions-on-domain-registrations.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.Route53Domains+        , Network.AWS.Route53Domains.CheckDomainAvailability+        , Network.AWS.Route53Domains.DisableDomainAutoRenew+        , Network.AWS.Route53Domains.DisableDomainTransferLock+        , Network.AWS.Route53Domains.EnableDomainAutoRenew+        , Network.AWS.Route53Domains.EnableDomainTransferLock+        , Network.AWS.Route53Domains.GetDomainDetail+        , Network.AWS.Route53Domains.GetOperationDetail+        , Network.AWS.Route53Domains.ListDomains+        , Network.AWS.Route53Domains.ListOperations+        , Network.AWS.Route53Domains.RegisterDomain+        , Network.AWS.Route53Domains.RetrieveDomainAuthCode+        , Network.AWS.Route53Domains.TransferDomain+        , Network.AWS.Route53Domains.Types+        , Network.AWS.Route53Domains.UpdateDomainContact+        , Network.AWS.Route53Domains.UpdateDomainContactPrivacy+        , Network.AWS.Route53Domains.UpdateDomainNameservers++    other-modules:++    build-depends:+          amazonka-core+        , base          >= 4.7 && < 5
+ gen/Network/AWS/Route53Domains.hs view
@@ -0,0 +1,46 @@+-- Module      : Network.AWS.Route53Domains+-- 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)++-- | Pending.+module Network.AWS.Route53Domains+    ( module Network.AWS.Route53Domains.CheckDomainAvailability+    , module Network.AWS.Route53Domains.DisableDomainAutoRenew+    , module Network.AWS.Route53Domains.DisableDomainTransferLock+    , module Network.AWS.Route53Domains.EnableDomainAutoRenew+    , module Network.AWS.Route53Domains.EnableDomainTransferLock+    , module Network.AWS.Route53Domains.GetDomainDetail+    , module Network.AWS.Route53Domains.GetOperationDetail+    , module Network.AWS.Route53Domains.ListDomains+    , module Network.AWS.Route53Domains.ListOperations+    , module Network.AWS.Route53Domains.RegisterDomain+    , module Network.AWS.Route53Domains.RetrieveDomainAuthCode+    , module Network.AWS.Route53Domains.TransferDomain+    , module Network.AWS.Route53Domains.Types+    , module Network.AWS.Route53Domains.UpdateDomainContact+    , module Network.AWS.Route53Domains.UpdateDomainContactPrivacy+    , module Network.AWS.Route53Domains.UpdateDomainNameservers+    ) where++import Network.AWS.Route53Domains.CheckDomainAvailability+import Network.AWS.Route53Domains.DisableDomainAutoRenew+import Network.AWS.Route53Domains.DisableDomainTransferLock+import Network.AWS.Route53Domains.EnableDomainAutoRenew+import Network.AWS.Route53Domains.EnableDomainTransferLock+import Network.AWS.Route53Domains.GetDomainDetail+import Network.AWS.Route53Domains.GetOperationDetail+import Network.AWS.Route53Domains.ListDomains+import Network.AWS.Route53Domains.ListOperations+import Network.AWS.Route53Domains.RegisterDomain+import Network.AWS.Route53Domains.RetrieveDomainAuthCode+import Network.AWS.Route53Domains.TransferDomain+import Network.AWS.Route53Domains.Types+import Network.AWS.Route53Domains.UpdateDomainContact+import Network.AWS.Route53Domains.UpdateDomainContactPrivacy+import Network.AWS.Route53Domains.UpdateDomainNameservers
+ gen/Network/AWS/Route53Domains/CheckDomainAvailability.hs view
@@ -0,0 +1,133 @@+{-# 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.Route53Domains.CheckDomainAvailability+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++-- | This operation checks the availability of one domain name. You can access+-- this API without authenticating. Note that if the availability status of a+-- domain is pending, you must submit another request to determine the+-- availability of the domain name.+--+-- <http://docs.aws.amazon.com/Route53/latest/APIReference/api-CheckDomainAvailability.html>+module Network.AWS.Route53Domains.CheckDomainAvailability+    (+    -- * Request+      CheckDomainAvailability+    -- ** Request constructor+    , checkDomainAvailability+    -- ** Request lenses+    , cdaDomainName+    , cdaIdnLangCode++    -- * Response+    , CheckDomainAvailabilityResponse+    -- ** Response constructor+    , checkDomainAvailabilityResponse+    -- ** Response lenses+    , cdarAvailability+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.Route53Domains.Types+import qualified GHC.Exts++data CheckDomainAvailability = CheckDomainAvailability+    { _cdaDomainName  :: Text+    , _cdaIdnLangCode :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'CheckDomainAvailability' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'cdaDomainName' @::@ 'Text'+--+-- * 'cdaIdnLangCode' @::@ 'Maybe' 'Text'+--+checkDomainAvailability :: Text -- ^ 'cdaDomainName'+                        -> CheckDomainAvailability+checkDomainAvailability p1 = CheckDomainAvailability+    { _cdaDomainName  = p1+    , _cdaIdnLangCode = Nothing+    }++-- | The name of a domain. Type: String Default: None Constraints: The domain+-- name can contain only the letters a through z, the numbers 0 through 9,+-- and hyphen (-). Internationalized Domain Names are not supported.+-- Required: Yes.+cdaDomainName :: Lens' CheckDomainAvailability Text+cdaDomainName = lens _cdaDomainName (\s a -> s { _cdaDomainName = a })++-- | Reserved for future use.+cdaIdnLangCode :: Lens' CheckDomainAvailability (Maybe Text)+cdaIdnLangCode = lens _cdaIdnLangCode (\s a -> s { _cdaIdnLangCode = a })++newtype CheckDomainAvailabilityResponse = CheckDomainAvailabilityResponse+    { _cdarAvailability :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'CheckDomainAvailabilityResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'cdarAvailability' @::@ 'Text'+--+checkDomainAvailabilityResponse :: Text -- ^ 'cdarAvailability'+                                -> CheckDomainAvailabilityResponse+checkDomainAvailabilityResponse p1 = CheckDomainAvailabilityResponse+    { _cdarAvailability = p1+    }++-- | Whether the domain name is available for registering. Type: String Valid+-- values: AVAILABLE – The domain name is available. AVAILABLE_RESERVED –+-- The domain name is reserved under specific conditions. AVAILABLE_PREORDER+-- – The domain name is available and can be preordered. UNAVAILABLE – The+-- domain name is not available. UNAVAILABLE_PREMIUM – The domain name is+-- not available. UNAVAILABLE_RESTRICTED – The domain name is forbidden.+-- RESERVED – The domain name has been reserved for another person or+-- organization.+cdarAvailability :: Lens' CheckDomainAvailabilityResponse Text+cdarAvailability = lens _cdarAvailability (\s a -> s { _cdarAvailability = a })++instance ToPath CheckDomainAvailability where+    toPath = const "/"++instance ToQuery CheckDomainAvailability where+    toQuery = const mempty++instance ToHeaders CheckDomainAvailability++instance ToJSON CheckDomainAvailability where+    toJSON CheckDomainAvailability{..} = object+        [ "DomainName"  .= _cdaDomainName+        , "IdnLangCode" .= _cdaIdnLangCode+        ]++instance AWSRequest CheckDomainAvailability where+    type Sv CheckDomainAvailability = Route53Domains+    type Rs CheckDomainAvailability = CheckDomainAvailabilityResponse++    request  = post "CheckDomainAvailability"+    response = jsonResponse++instance FromJSON CheckDomainAvailabilityResponse where+    parseJSON = withObject "CheckDomainAvailabilityResponse" $ \o -> CheckDomainAvailabilityResponse+        <$> o .:  "Availability"
+ gen/Network/AWS/Route53Domains/DisableDomainAutoRenew.hs view
@@ -0,0 +1,91 @@+{-# 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.Route53Domains.DisableDomainAutoRenew+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++-- | This operation disables automatic renewal of domain registration for the+-- specified domain.+--+-- <http://docs.aws.amazon.com/Route53/latest/APIReference/api-DisableDomainAutoRenew.html>+module Network.AWS.Route53Domains.DisableDomainAutoRenew+    (+    -- * Request+      DisableDomainAutoRenew+    -- ** Request constructor+    , disableDomainAutoRenew+    -- ** Request lenses+    , ddarDomainName++    -- * Response+    , DisableDomainAutoRenewResponse+    -- ** Response constructor+    , disableDomainAutoRenewResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.Route53Domains.Types+import qualified GHC.Exts++newtype DisableDomainAutoRenew = DisableDomainAutoRenew+    { _ddarDomainName :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DisableDomainAutoRenew' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ddarDomainName' @::@ 'Text'+--+disableDomainAutoRenew :: Text -- ^ 'ddarDomainName'+                       -> DisableDomainAutoRenew+disableDomainAutoRenew p1 = DisableDomainAutoRenew+    { _ddarDomainName = p1+    }++ddarDomainName :: Lens' DisableDomainAutoRenew Text+ddarDomainName = lens _ddarDomainName (\s a -> s { _ddarDomainName = a })++data DisableDomainAutoRenewResponse = DisableDomainAutoRenewResponse+    deriving (Eq, Ord, Show, Generic)++-- | 'DisableDomainAutoRenewResponse' constructor.+disableDomainAutoRenewResponse :: DisableDomainAutoRenewResponse+disableDomainAutoRenewResponse = DisableDomainAutoRenewResponse++instance ToPath DisableDomainAutoRenew where+    toPath = const "/"++instance ToQuery DisableDomainAutoRenew where+    toQuery = const mempty++instance ToHeaders DisableDomainAutoRenew++instance ToJSON DisableDomainAutoRenew where+    toJSON DisableDomainAutoRenew{..} = object+        [ "DomainName" .= _ddarDomainName+        ]++instance AWSRequest DisableDomainAutoRenew where+    type Sv DisableDomainAutoRenew = Route53Domains+    type Rs DisableDomainAutoRenew = DisableDomainAutoRenewResponse++    request  = post "DisableDomainAutoRenew"+    response = nullResponse DisableDomainAutoRenewResponse
+ gen/Network/AWS/Route53Domains/DisableDomainTransferLock.hs view
@@ -0,0 +1,121 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.Route53Domains.DisableDomainTransferLock+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++-- | This operation removes the transfer lock on the domain (specifically the+-- clientTransferProhibited status) to allow domain transfers. We recommend+-- you refrain from performing this action unless you intend to transfer the+-- domain to a different registrar. Successful submission returns an operation+-- ID that you can use to track the progress and completion of the action. If+-- the request is not completed successfully, the domain registrant will be+-- notified by email.+--+-- <http://docs.aws.amazon.com/Route53/latest/APIReference/api-DisableDomainTransferLock.html>+module Network.AWS.Route53Domains.DisableDomainTransferLock+    (+    -- * Request+      DisableDomainTransferLock+    -- ** Request constructor+    , disableDomainTransferLock+    -- ** Request lenses+    , ddtlDomainName++    -- * Response+    , DisableDomainTransferLockResponse+    -- ** Response constructor+    , disableDomainTransferLockResponse+    -- ** Response lenses+    , ddtlrOperationId+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.Route53Domains.Types+import qualified GHC.Exts++newtype DisableDomainTransferLock = DisableDomainTransferLock+    { _ddtlDomainName :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DisableDomainTransferLock' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ddtlDomainName' @::@ 'Text'+--+disableDomainTransferLock :: Text -- ^ 'ddtlDomainName'+                          -> DisableDomainTransferLock+disableDomainTransferLock p1 = DisableDomainTransferLock+    { _ddtlDomainName = p1+    }++-- | The name of a domain. Type: String Default: None Constraints: The domain+-- name can contain only the letters a through z, the numbers 0 through 9,+-- and hyphen (-). Internationalized Domain Names are not supported.+-- Required: Yes.+ddtlDomainName :: Lens' DisableDomainTransferLock Text+ddtlDomainName = lens _ddtlDomainName (\s a -> s { _ddtlDomainName = a })++newtype DisableDomainTransferLockResponse = DisableDomainTransferLockResponse+    { _ddtlrOperationId :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DisableDomainTransferLockResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ddtlrOperationId' @::@ 'Text'+--+disableDomainTransferLockResponse :: Text -- ^ 'ddtlrOperationId'+                                  -> DisableDomainTransferLockResponse+disableDomainTransferLockResponse p1 = DisableDomainTransferLockResponse+    { _ddtlrOperationId = p1+    }++-- | Identifier for tracking the progress of the request. To use this ID to+-- query the operation status, use GetOperationDetail. Type: String Default:+-- None Constraints: Maximum 255 characters.+ddtlrOperationId :: Lens' DisableDomainTransferLockResponse Text+ddtlrOperationId = lens _ddtlrOperationId (\s a -> s { _ddtlrOperationId = a })++instance ToPath DisableDomainTransferLock where+    toPath = const "/"++instance ToQuery DisableDomainTransferLock where+    toQuery = const mempty++instance ToHeaders DisableDomainTransferLock++instance ToJSON DisableDomainTransferLock where+    toJSON DisableDomainTransferLock{..} = object+        [ "DomainName" .= _ddtlDomainName+        ]++instance AWSRequest DisableDomainTransferLock where+    type Sv DisableDomainTransferLock = Route53Domains+    type Rs DisableDomainTransferLock = DisableDomainTransferLockResponse++    request  = post "DisableDomainTransferLock"+    response = jsonResponse++instance FromJSON DisableDomainTransferLockResponse where+    parseJSON = withObject "DisableDomainTransferLockResponse" $ \o -> DisableDomainTransferLockResponse+        <$> o .:  "OperationId"
+ gen/Network/AWS/Route53Domains/EnableDomainAutoRenew.hs view
@@ -0,0 +1,98 @@+{-# 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.Route53Domains.EnableDomainAutoRenew+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++-- | This operation configures Amazon Route 53 to automatically renew the+-- specified domain before the domain registration expires. The cost of+-- renewing your domain registration is billed to your AWS account. The period+-- during which you can renew a domain name varies by TLD. For a list of TLDs+-- and their renewal policies, see "Renewal, restoration, and deletion times"+-- (http://wiki.gandi.net/en/domains/renew#renewal_restoration_and_deletion_times)+-- on the website for our registrar partner, Gandi. Route 53 requires that you+-- renew before the end of the renewal period that is listed on the Gandi+-- website so we can complete processing before the deadline.+--+-- <http://docs.aws.amazon.com/Route53/latest/APIReference/api-EnableDomainAutoRenew.html>+module Network.AWS.Route53Domains.EnableDomainAutoRenew+    (+    -- * Request+      EnableDomainAutoRenew+    -- ** Request constructor+    , enableDomainAutoRenew+    -- ** Request lenses+    , edarDomainName++    -- * Response+    , EnableDomainAutoRenewResponse+    -- ** Response constructor+    , enableDomainAutoRenewResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.Route53Domains.Types+import qualified GHC.Exts++newtype EnableDomainAutoRenew = EnableDomainAutoRenew+    { _edarDomainName :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'EnableDomainAutoRenew' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'edarDomainName' @::@ 'Text'+--+enableDomainAutoRenew :: Text -- ^ 'edarDomainName'+                      -> EnableDomainAutoRenew+enableDomainAutoRenew p1 = EnableDomainAutoRenew+    { _edarDomainName = p1+    }++edarDomainName :: Lens' EnableDomainAutoRenew Text+edarDomainName = lens _edarDomainName (\s a -> s { _edarDomainName = a })++data EnableDomainAutoRenewResponse = EnableDomainAutoRenewResponse+    deriving (Eq, Ord, Show, Generic)++-- | 'EnableDomainAutoRenewResponse' constructor.+enableDomainAutoRenewResponse :: EnableDomainAutoRenewResponse+enableDomainAutoRenewResponse = EnableDomainAutoRenewResponse++instance ToPath EnableDomainAutoRenew where+    toPath = const "/"++instance ToQuery EnableDomainAutoRenew where+    toQuery = const mempty++instance ToHeaders EnableDomainAutoRenew++instance ToJSON EnableDomainAutoRenew where+    toJSON EnableDomainAutoRenew{..} = object+        [ "DomainName" .= _edarDomainName+        ]++instance AWSRequest EnableDomainAutoRenew where+    type Sv EnableDomainAutoRenew = Route53Domains+    type Rs EnableDomainAutoRenew = EnableDomainAutoRenewResponse++    request  = post "EnableDomainAutoRenew"+    response = nullResponse EnableDomainAutoRenewResponse
+ gen/Network/AWS/Route53Domains/EnableDomainTransferLock.hs view
@@ -0,0 +1,119 @@+{-# 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.Route53Domains.EnableDomainTransferLock+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++-- | This operation sets the transfer lock on the domain (specifically the+-- clientTransferProhibited status) to prevent domain transfers. Successful+-- submission returns an operation ID that you can use to track the progress+-- and completion of the action. If the request is not completed successfully,+-- the domain registrant will be notified by email.+--+-- <http://docs.aws.amazon.com/Route53/latest/APIReference/api-EnableDomainTransferLock.html>+module Network.AWS.Route53Domains.EnableDomainTransferLock+    (+    -- * Request+      EnableDomainTransferLock+    -- ** Request constructor+    , enableDomainTransferLock+    -- ** Request lenses+    , edtlDomainName++    -- * Response+    , EnableDomainTransferLockResponse+    -- ** Response constructor+    , enableDomainTransferLockResponse+    -- ** Response lenses+    , edtlrOperationId+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.Route53Domains.Types+import qualified GHC.Exts++newtype EnableDomainTransferLock = EnableDomainTransferLock+    { _edtlDomainName :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'EnableDomainTransferLock' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'edtlDomainName' @::@ 'Text'+--+enableDomainTransferLock :: Text -- ^ 'edtlDomainName'+                         -> EnableDomainTransferLock+enableDomainTransferLock p1 = EnableDomainTransferLock+    { _edtlDomainName = p1+    }++-- | The name of a domain. Type: String Default: None Constraints: The domain+-- name can contain only the letters a through z, the numbers 0 through 9,+-- and hyphen (-). Internationalized Domain Names are not supported.+-- Required: Yes.+edtlDomainName :: Lens' EnableDomainTransferLock Text+edtlDomainName = lens _edtlDomainName (\s a -> s { _edtlDomainName = a })++newtype EnableDomainTransferLockResponse = EnableDomainTransferLockResponse+    { _edtlrOperationId :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'EnableDomainTransferLockResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'edtlrOperationId' @::@ 'Text'+--+enableDomainTransferLockResponse :: Text -- ^ 'edtlrOperationId'+                                 -> EnableDomainTransferLockResponse+enableDomainTransferLockResponse p1 = EnableDomainTransferLockResponse+    { _edtlrOperationId = p1+    }++-- | Identifier for tracking the progress of the request. To use this ID to+-- query the operation status, use GetOperationDetail. Type: String Default:+-- None Constraints: Maximum 255 characters.+edtlrOperationId :: Lens' EnableDomainTransferLockResponse Text+edtlrOperationId = lens _edtlrOperationId (\s a -> s { _edtlrOperationId = a })++instance ToPath EnableDomainTransferLock where+    toPath = const "/"++instance ToQuery EnableDomainTransferLock where+    toQuery = const mempty++instance ToHeaders EnableDomainTransferLock++instance ToJSON EnableDomainTransferLock where+    toJSON EnableDomainTransferLock{..} = object+        [ "DomainName" .= _edtlDomainName+        ]++instance AWSRequest EnableDomainTransferLock where+    type Sv EnableDomainTransferLock = Route53Domains+    type Rs EnableDomainTransferLock = EnableDomainTransferLockResponse++    request  = post "EnableDomainTransferLock"+    response = jsonResponse++instance FromJSON EnableDomainTransferLockResponse where+    parseJSON = withObject "EnableDomainTransferLockResponse" $ \o -> EnableDomainTransferLockResponse+        <$> o .:  "OperationId"
+ gen/Network/AWS/Route53Domains/GetDomainDetail.hs view
@@ -0,0 +1,364 @@+{-# 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.Route53Domains.GetDomainDetail+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++-- | This operation returns detailed information about the domain. The domain's+-- contact information is also returned as part of the output.+--+-- <http://docs.aws.amazon.com/Route53/latest/APIReference/api-GetDomainDetail.html>+module Network.AWS.Route53Domains.GetDomainDetail+    (+    -- * Request+      GetDomainDetail+    -- ** Request constructor+    , getDomainDetail+    -- ** Request lenses+    , gddDomainName++    -- * Response+    , GetDomainDetailResponse+    -- ** Response constructor+    , getDomainDetailResponse+    -- ** Response lenses+    , gddrAbuseContactEmail+    , gddrAbuseContactPhone+    , gddrAdminContact+    , gddrAdminPrivacy+    , gddrAutoRenew+    , gddrCreationDate+    , gddrDnsSec+    , gddrDomainName+    , gddrExpirationDate+    , gddrNameservers+    , gddrRegistrantContact+    , gddrRegistrantPrivacy+    , gddrRegistrarName+    , gddrRegistrarUrl+    , gddrRegistryDomainId+    , gddrReseller+    , gddrStatusList+    , gddrTechContact+    , gddrTechPrivacy+    , gddrUpdatedDate+    , gddrWhoIsServer+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.Route53Domains.Types+import qualified GHC.Exts++newtype GetDomainDetail = GetDomainDetail+    { _gddDomainName :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'GetDomainDetail' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'gddDomainName' @::@ 'Text'+--+getDomainDetail :: Text -- ^ 'gddDomainName'+                -> GetDomainDetail+getDomainDetail p1 = GetDomainDetail+    { _gddDomainName = p1+    }++-- | The name of a domain. Type: String Default: None Constraints: The domain+-- name can contain only the letters a through z, the numbers 0 through 9,+-- and hyphen (-). Internationalized Domain Names are not supported.+-- Required: Yes.+gddDomainName :: Lens' GetDomainDetail Text+gddDomainName = lens _gddDomainName (\s a -> s { _gddDomainName = a })++data GetDomainDetailResponse = GetDomainDetailResponse+    { _gddrAbuseContactEmail :: Maybe Text+    , _gddrAbuseContactPhone :: Maybe Text+    , _gddrAdminContact      :: ContactDetail+    , _gddrAdminPrivacy      :: Maybe Bool+    , _gddrAutoRenew         :: Maybe Bool+    , _gddrCreationDate      :: Maybe RFC822+    , _gddrDnsSec            :: Maybe Text+    , _gddrDomainName        :: Text+    , _gddrExpirationDate    :: Maybe RFC822+    , _gddrNameservers       :: List "Nameservers" Nameserver+    , _gddrRegistrantContact :: ContactDetail+    , _gddrRegistrantPrivacy :: Maybe Bool+    , _gddrRegistrarName     :: Maybe Text+    , _gddrRegistrarUrl      :: Maybe Text+    , _gddrRegistryDomainId  :: Maybe Text+    , _gddrReseller          :: Maybe Text+    , _gddrStatusList        :: List "StatusList" Text+    , _gddrTechContact       :: ContactDetail+    , _gddrTechPrivacy       :: Maybe Bool+    , _gddrUpdatedDate       :: Maybe RFC822+    , _gddrWhoIsServer       :: Maybe Text+    } deriving (Eq, Show)++-- | 'GetDomainDetailResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'gddrAbuseContactEmail' @::@ 'Maybe' 'Text'+--+-- * 'gddrAbuseContactPhone' @::@ 'Maybe' 'Text'+--+-- * 'gddrAdminContact' @::@ 'ContactDetail'+--+-- * 'gddrAdminPrivacy' @::@ 'Maybe' 'Bool'+--+-- * 'gddrAutoRenew' @::@ 'Maybe' 'Bool'+--+-- * 'gddrCreationDate' @::@ 'Maybe' 'UTCTime'+--+-- * 'gddrDnsSec' @::@ 'Maybe' 'Text'+--+-- * 'gddrDomainName' @::@ 'Text'+--+-- * 'gddrExpirationDate' @::@ 'Maybe' 'UTCTime'+--+-- * 'gddrNameservers' @::@ ['Nameserver']+--+-- * 'gddrRegistrantContact' @::@ 'ContactDetail'+--+-- * 'gddrRegistrantPrivacy' @::@ 'Maybe' 'Bool'+--+-- * 'gddrRegistrarName' @::@ 'Maybe' 'Text'+--+-- * 'gddrRegistrarUrl' @::@ 'Maybe' 'Text'+--+-- * 'gddrRegistryDomainId' @::@ 'Maybe' 'Text'+--+-- * 'gddrReseller' @::@ 'Maybe' 'Text'+--+-- * 'gddrStatusList' @::@ ['Text']+--+-- * 'gddrTechContact' @::@ 'ContactDetail'+--+-- * 'gddrTechPrivacy' @::@ 'Maybe' 'Bool'+--+-- * 'gddrUpdatedDate' @::@ 'Maybe' 'UTCTime'+--+-- * 'gddrWhoIsServer' @::@ 'Maybe' 'Text'+--+getDomainDetailResponse :: Text -- ^ 'gddrDomainName'+                        -> ContactDetail -- ^ 'gddrAdminContact'+                        -> ContactDetail -- ^ 'gddrRegistrantContact'+                        -> ContactDetail -- ^ 'gddrTechContact'+                        -> GetDomainDetailResponse+getDomainDetailResponse p1 p2 p3 p4 = GetDomainDetailResponse+    { _gddrDomainName        = p1+    , _gddrAdminContact      = p2+    , _gddrRegistrantContact = p3+    , _gddrTechContact       = p4+    , _gddrNameservers       = mempty+    , _gddrAutoRenew         = Nothing+    , _gddrAdminPrivacy      = Nothing+    , _gddrRegistrantPrivacy = Nothing+    , _gddrTechPrivacy       = Nothing+    , _gddrRegistrarName     = Nothing+    , _gddrWhoIsServer       = Nothing+    , _gddrRegistrarUrl      = Nothing+    , _gddrAbuseContactEmail = Nothing+    , _gddrAbuseContactPhone = Nothing+    , _gddrRegistryDomainId  = Nothing+    , _gddrCreationDate      = Nothing+    , _gddrUpdatedDate       = Nothing+    , _gddrExpirationDate    = Nothing+    , _gddrReseller          = Nothing+    , _gddrDnsSec            = Nothing+    , _gddrStatusList        = mempty+    }++-- | Email address to contact to report incorrect contact information for a+-- domain, to report that the domain is being used to send spam, to report+-- that someone is cybersquatting on a domain name, or report some other+-- type of abuse. Type: String.+gddrAbuseContactEmail :: Lens' GetDomainDetailResponse (Maybe Text)+gddrAbuseContactEmail =+    lens _gddrAbuseContactEmail (\s a -> s { _gddrAbuseContactEmail = a })++-- | Phone number for reporting abuse. Type: String.+gddrAbuseContactPhone :: Lens' GetDomainDetailResponse (Maybe Text)+gddrAbuseContactPhone =+    lens _gddrAbuseContactPhone (\s a -> s { _gddrAbuseContactPhone = a })++-- | Provides details about the domain administrative contact. Type: Complex+-- Children: FirstName, MiddleName, LastName, ContactType, OrganizationName,+-- AddressLine1, AddressLine2, City, State, CountryCode, ZipCode,+-- PhoneNumber, Email, Fax, ExtraParams.+gddrAdminContact :: Lens' GetDomainDetailResponse ContactDetail+gddrAdminContact = lens _gddrAdminContact (\s a -> s { _gddrAdminContact = a })++-- | Specifies whether contact information for the admin contact is concealed+-- from WHOIS queries. If the value is true, WHOIS ("who is") queries will+-- return contact information for our registrar partner, Gandi, instead of+-- the contact information that you enter. Type: Boolean.+gddrAdminPrivacy :: Lens' GetDomainDetailResponse (Maybe Bool)+gddrAdminPrivacy = lens _gddrAdminPrivacy (\s a -> s { _gddrAdminPrivacy = a })++-- | Specifies whether the domain registration is set to renew automatically.+-- Type: Boolean.+gddrAutoRenew :: Lens' GetDomainDetailResponse (Maybe Bool)+gddrAutoRenew = lens _gddrAutoRenew (\s a -> s { _gddrAutoRenew = a })++-- | The date when the domain was created as found in the response to a WHOIS+-- query. The date format is Unix time.+gddrCreationDate :: Lens' GetDomainDetailResponse (Maybe UTCTime)+gddrCreationDate = lens _gddrCreationDate (\s a -> s { _gddrCreationDate = a }) . mapping _Time++-- | Reserved for future use.+gddrDnsSec :: Lens' GetDomainDetailResponse (Maybe Text)+gddrDnsSec = lens _gddrDnsSec (\s a -> s { _gddrDnsSec = a })++-- | The name of a domain. Type: String.+gddrDomainName :: Lens' GetDomainDetailResponse Text+gddrDomainName = lens _gddrDomainName (\s a -> s { _gddrDomainName = a })++-- | The date when the registration for the domain is set to expire. The date+-- format is Unix time.+gddrExpirationDate :: Lens' GetDomainDetailResponse (Maybe UTCTime)+gddrExpirationDate =+    lens _gddrExpirationDate (\s a -> s { _gddrExpirationDate = a })+        . mapping _Time++-- | The name of the domain. Type: String.+gddrNameservers :: Lens' GetDomainDetailResponse [Nameserver]+gddrNameservers = lens _gddrNameservers (\s a -> s { _gddrNameservers = a }) . _List++-- | Provides details about the domain registrant. Type: Complex Children:+-- FirstName, MiddleName, LastName, ContactType, OrganizationName,+-- AddressLine1, AddressLine2, City, State, CountryCode, ZipCode,+-- PhoneNumber, Email, Fax, ExtraParams.+gddrRegistrantContact :: Lens' GetDomainDetailResponse ContactDetail+gddrRegistrantContact =+    lens _gddrRegistrantContact (\s a -> s { _gddrRegistrantContact = a })++-- | Specifies whether contact information for the registrant contact is+-- concealed from WHOIS queries. If the value is true, WHOIS ("who is")+-- queries will return contact information for our registrar partner, Gandi,+-- instead of the contact information that you enter. Type: Boolean.+gddrRegistrantPrivacy :: Lens' GetDomainDetailResponse (Maybe Bool)+gddrRegistrantPrivacy =+    lens _gddrRegistrantPrivacy (\s a -> s { _gddrRegistrantPrivacy = a })++-- | Name of the registrar of the domain as identified in the registry. Amazon+-- Route 53 domains are registered by registrar Gandi. The value is "GANDI+-- SAS". Type: String.+gddrRegistrarName :: Lens' GetDomainDetailResponse (Maybe Text)+gddrRegistrarName =+    lens _gddrRegistrarName (\s a -> s { _gddrRegistrarName = a })++-- | Web address of the registrar. Type: String.+gddrRegistrarUrl :: Lens' GetDomainDetailResponse (Maybe Text)+gddrRegistrarUrl = lens _gddrRegistrarUrl (\s a -> s { _gddrRegistrarUrl = a })++-- | Reserved for future use.+gddrRegistryDomainId :: Lens' GetDomainDetailResponse (Maybe Text)+gddrRegistryDomainId =+    lens _gddrRegistryDomainId (\s a -> s { _gddrRegistryDomainId = a })++-- | Reseller of the domain. Domains registered or transferred using Amazon+-- Route 53 domains will have "Amazon" as the reseller. Type: String.+gddrReseller :: Lens' GetDomainDetailResponse (Maybe Text)+gddrReseller = lens _gddrReseller (\s a -> s { _gddrReseller = a })++-- | An array of domain name status codes, also known as Extensible+-- Provisioning Protocol (EPP) status codes. ICANN, the organization that+-- maintains a central database of domain names, has developed a set of+-- domain name status codes that tell you the status of a variety of+-- operations on a domain name, for example, registering a domain name,+-- transferring a domain name to another registrar, renewing the+-- registration for a domain name, and so on. All registrars use this same+-- set of status codes. For a current list of domain name status codes and+-- an explanation of what each code means, go to the ICANN website and+-- search for epp status codes. (Search on the ICANN website; web searches+-- sometimes return an old version of the document.) Type: Array of String.+gddrStatusList :: Lens' GetDomainDetailResponse [Text]+gddrStatusList = lens _gddrStatusList (\s a -> s { _gddrStatusList = a }) . _List++-- | Provides details about the domain technical contact. Type: Complex+-- Children: FirstName, MiddleName, LastName, ContactType, OrganizationName,+-- AddressLine1, AddressLine2, City, State, CountryCode, ZipCode,+-- PhoneNumber, Email, Fax, ExtraParams.+gddrTechContact :: Lens' GetDomainDetailResponse ContactDetail+gddrTechContact = lens _gddrTechContact (\s a -> s { _gddrTechContact = a })++-- | Specifies whether contact information for the tech contact is concealed+-- from WHOIS queries. If the value is true, WHOIS ("who is") queries will+-- return contact information for our registrar partner, Gandi, instead of+-- the contact information that you enter. Type: Boolean.+gddrTechPrivacy :: Lens' GetDomainDetailResponse (Maybe Bool)+gddrTechPrivacy = lens _gddrTechPrivacy (\s a -> s { _gddrTechPrivacy = a })++-- | The last updated date of the domain as found in the response to a WHOIS+-- query. The date format is Unix time.+gddrUpdatedDate :: Lens' GetDomainDetailResponse (Maybe UTCTime)+gddrUpdatedDate = lens _gddrUpdatedDate (\s a -> s { _gddrUpdatedDate = a }) . mapping _Time++-- | The fully qualified name of the WHOIS server that can answer the WHOIS+-- query for the domain. Type: String.+gddrWhoIsServer :: Lens' GetDomainDetailResponse (Maybe Text)+gddrWhoIsServer = lens _gddrWhoIsServer (\s a -> s { _gddrWhoIsServer = a })++instance ToPath GetDomainDetail where+    toPath = const "/"++instance ToQuery GetDomainDetail where+    toQuery = const mempty++instance ToHeaders GetDomainDetail++instance ToJSON GetDomainDetail where+    toJSON GetDomainDetail{..} = object+        [ "DomainName" .= _gddDomainName+        ]++instance AWSRequest GetDomainDetail where+    type Sv GetDomainDetail = Route53Domains+    type Rs GetDomainDetail = GetDomainDetailResponse++    request  = post "GetDomainDetail"+    response = jsonResponse++instance FromJSON GetDomainDetailResponse where+    parseJSON = withObject "GetDomainDetailResponse" $ \o -> GetDomainDetailResponse+        <$> o .:? "AbuseContactEmail"+        <*> o .:? "AbuseContactPhone"+        <*> o .:  "AdminContact"+        <*> o .:? "AdminPrivacy"+        <*> o .:? "AutoRenew"+        <*> o .:? "CreationDate"+        <*> o .:? "DnsSec"+        <*> o .:  "DomainName"+        <*> o .:? "ExpirationDate"+        <*> o .:  "Nameservers"+        <*> o .:  "RegistrantContact"+        <*> o .:? "RegistrantPrivacy"+        <*> o .:? "RegistrarName"+        <*> o .:? "RegistrarUrl"+        <*> o .:? "RegistryDomainId"+        <*> o .:? "Reseller"+        <*> o .:  "StatusList"+        <*> o .:  "TechContact"+        <*> o .:? "TechPrivacy"+        <*> o .:? "UpdatedDate"+        <*> o .:? "WhoIsServer"
+ gen/Network/AWS/Route53Domains/GetOperationDetail.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.Route53Domains.GetOperationDetail+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++-- | This operation returns the current status of an operation that is not+-- completed.+--+-- <http://docs.aws.amazon.com/Route53/latest/APIReference/api-GetOperationDetail.html>+module Network.AWS.Route53Domains.GetOperationDetail+    (+    -- * Request+      GetOperationDetail+    -- ** Request constructor+    , getOperationDetail+    -- ** Request lenses+    , godOperationId++    -- * Response+    , GetOperationDetailResponse+    -- ** Response constructor+    , getOperationDetailResponse+    -- ** Response lenses+    , godrDomainName+    , godrMessage+    , godrOperationId+    , godrStatus+    , godrSubmittedDate+    , godrType+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.Route53Domains.Types+import qualified GHC.Exts++newtype GetOperationDetail = GetOperationDetail+    { _godOperationId :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'GetOperationDetail' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'godOperationId' @::@ 'Text'+--+getOperationDetail :: Text -- ^ 'godOperationId'+                   -> GetOperationDetail+getOperationDetail p1 = GetOperationDetail+    { _godOperationId = p1+    }++-- | The identifier for the operation for which you want to get the status.+-- Amazon Route 53 returned the identifier in the response to the original+-- request. Type: String Default: None Required: Yes.+godOperationId :: Lens' GetOperationDetail Text+godOperationId = lens _godOperationId (\s a -> s { _godOperationId = a })++data GetOperationDetailResponse = GetOperationDetailResponse+    { _godrDomainName    :: Maybe Text+    , _godrMessage       :: Maybe Text+    , _godrOperationId   :: Maybe Text+    , _godrStatus        :: Maybe Text+    , _godrSubmittedDate :: Maybe RFC822+    , _godrType          :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'GetOperationDetailResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'godrDomainName' @::@ 'Maybe' 'Text'+--+-- * 'godrMessage' @::@ 'Maybe' 'Text'+--+-- * 'godrOperationId' @::@ 'Maybe' 'Text'+--+-- * 'godrStatus' @::@ 'Maybe' 'Text'+--+-- * 'godrSubmittedDate' @::@ 'Maybe' 'UTCTime'+--+-- * 'godrType' @::@ 'Maybe' 'Text'+--+getOperationDetailResponse :: GetOperationDetailResponse+getOperationDetailResponse = GetOperationDetailResponse+    { _godrOperationId   = Nothing+    , _godrStatus        = Nothing+    , _godrMessage       = Nothing+    , _godrDomainName    = Nothing+    , _godrType          = Nothing+    , _godrSubmittedDate = Nothing+    }++-- | The name of a domain. Type: String.+godrDomainName :: Lens' GetOperationDetailResponse (Maybe Text)+godrDomainName = lens _godrDomainName (\s a -> s { _godrDomainName = a })++-- | Detailed information on the status including possible errors. Type:+-- String.+godrMessage :: Lens' GetOperationDetailResponse (Maybe Text)+godrMessage = lens _godrMessage (\s a -> s { _godrMessage = a })++-- | The identifier for the operation. Type: String.+godrOperationId :: Lens' GetOperationDetailResponse (Maybe Text)+godrOperationId = lens _godrOperationId (\s a -> s { _godrOperationId = a })++-- | The current status of the requested operation in the system. Type:+-- String.+godrStatus :: Lens' GetOperationDetailResponse (Maybe Text)+godrStatus = lens _godrStatus (\s a -> s { _godrStatus = a })++-- | The date when the request was submitted.+godrSubmittedDate :: Lens' GetOperationDetailResponse (Maybe UTCTime)+godrSubmittedDate =+    lens _godrSubmittedDate (\s a -> s { _godrSubmittedDate = a })+        . mapping _Time++-- | The type of operation that was requested. Type: String.+godrType :: Lens' GetOperationDetailResponse (Maybe Text)+godrType = lens _godrType (\s a -> s { _godrType = a })++instance ToPath GetOperationDetail where+    toPath = const "/"++instance ToQuery GetOperationDetail where+    toQuery = const mempty++instance ToHeaders GetOperationDetail++instance ToJSON GetOperationDetail where+    toJSON GetOperationDetail{..} = object+        [ "OperationId" .= _godOperationId+        ]++instance AWSRequest GetOperationDetail where+    type Sv GetOperationDetail = Route53Domains+    type Rs GetOperationDetail = GetOperationDetailResponse++    request  = post "GetOperationDetail"+    response = jsonResponse++instance FromJSON GetOperationDetailResponse where+    parseJSON = withObject "GetOperationDetailResponse" $ \o -> GetOperationDetailResponse+        <$> o .:? "DomainName"+        <*> o .:? "Message"+        <*> o .:? "OperationId"+        <*> o .:? "Status"+        <*> o .:? "SubmittedDate"+        <*> o .:? "Type"
+ gen/Network/AWS/Route53Domains/ListDomains.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.Route53Domains.ListDomains+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++-- | This operation returns all the domain names registered with Amazon Route 53+-- for the current AWS account.+--+-- <http://docs.aws.amazon.com/Route53/latest/APIReference/api-ListDomains.html>+module Network.AWS.Route53Domains.ListDomains+    (+    -- * Request+      ListDomains+    -- ** Request constructor+    , listDomains+    -- ** Request lenses+    , ldMarker+    , ldMaxItems++    -- * Response+    , ListDomainsResponse+    -- ** Response constructor+    , listDomainsResponse+    -- ** Response lenses+    , ldrDomains+    , ldrNextPageMarker+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.Route53Domains.Types+import qualified GHC.Exts++data ListDomains = ListDomains+    { _ldMarker   :: Maybe Text+    , _ldMaxItems :: Maybe Int+    } deriving (Eq, Ord, Show)++-- | 'ListDomains' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ldMarker' @::@ 'Maybe' 'Text'+--+-- * 'ldMaxItems' @::@ 'Maybe' 'Int'+--+listDomains :: ListDomains+listDomains = ListDomains+    { _ldMarker   = Nothing+    , _ldMaxItems = Nothing+    }++-- | For an initial request for a list of domains, omit this element. If the+-- number of domains that are associated with the current AWS account is+-- greater than the value that you specified for MaxItems, you can use+-- Marker to return additional domains. Get the value of NextPageMarker from+-- the previous response, and submit another request that includes the value+-- of NextPageMarker in the Marker element. Type: String Default: None+-- Constraints: The marker must match the value specified in the previous+-- request. Required: No.+ldMarker :: Lens' ListDomains (Maybe Text)+ldMarker = lens _ldMarker (\s a -> s { _ldMarker = a })++-- | Number of domains to be returned. Type: Integer Default: 20 Constraints:+-- A numeral between 1 and 100. Required: No.+ldMaxItems :: Lens' ListDomains (Maybe Int)+ldMaxItems = lens _ldMaxItems (\s a -> s { _ldMaxItems = a })++data ListDomainsResponse = ListDomainsResponse+    { _ldrDomains        :: List "Domains" DomainSummary+    , _ldrNextPageMarker :: Maybe Text+    } deriving (Eq, Show)++-- | 'ListDomainsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ldrDomains' @::@ ['DomainSummary']+--+-- * 'ldrNextPageMarker' @::@ 'Maybe' 'Text'+--+listDomainsResponse :: ListDomainsResponse+listDomainsResponse = ListDomainsResponse+    { _ldrDomains        = mempty+    , _ldrNextPageMarker = Nothing+    }++-- | A summary of domains. Type: Complex type containing a list of domain+-- summaries. Children: AutoRenew, DomainName, Expiry, TransferLock.+ldrDomains :: Lens' ListDomainsResponse [DomainSummary]+ldrDomains = lens _ldrDomains (\s a -> s { _ldrDomains = a }) . _List++-- | If there are more domains than you specified for MaxItems in the request,+-- submit another request and include the value of NextPageMarker in the+-- value of Marker. Type: String Parent: Operations.+ldrNextPageMarker :: Lens' ListDomainsResponse (Maybe Text)+ldrNextPageMarker =+    lens _ldrNextPageMarker (\s a -> s { _ldrNextPageMarker = a })++instance ToPath ListDomains where+    toPath = const "/"++instance ToQuery ListDomains where+    toQuery = const mempty++instance ToHeaders ListDomains++instance ToJSON ListDomains where+    toJSON ListDomains{..} = object+        [ "Marker"   .= _ldMarker+        , "MaxItems" .= _ldMaxItems+        ]++instance AWSRequest ListDomains where+    type Sv ListDomains = Route53Domains+    type Rs ListDomains = ListDomainsResponse++    request  = post "ListDomains"+    response = jsonResponse++instance FromJSON ListDomainsResponse where+    parseJSON = withObject "ListDomainsResponse" $ \o -> ListDomainsResponse+        <$> o .:  "Domains"+        <*> o .:? "NextPageMarker"
+ gen/Network/AWS/Route53Domains/ListOperations.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.Route53Domains.ListOperations+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++-- | This operation returns the operation IDs of operations that are not yet+-- complete.+--+-- <http://docs.aws.amazon.com/Route53/latest/APIReference/api-ListOperations.html>+module Network.AWS.Route53Domains.ListOperations+    (+    -- * Request+      ListOperations+    -- ** Request constructor+    , listOperations+    -- ** Request lenses+    , loMarker+    , loMaxItems++    -- * Response+    , ListOperationsResponse+    -- ** Response constructor+    , listOperationsResponse+    -- ** Response lenses+    , lorNextPageMarker+    , lorOperations+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.Route53Domains.Types+import qualified GHC.Exts++data ListOperations = ListOperations+    { _loMarker   :: Maybe Text+    , _loMaxItems :: Maybe Int+    } deriving (Eq, Ord, Show)++-- | 'ListOperations' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'loMarker' @::@ 'Maybe' 'Text'+--+-- * 'loMaxItems' @::@ 'Maybe' 'Int'+--+listOperations :: ListOperations+listOperations = ListOperations+    { _loMarker   = Nothing+    , _loMaxItems = Nothing+    }++-- | For an initial request for a list of operations, omit this element. If+-- the number of operations that are not yet complete is greater than the+-- value that you specified for MaxItems, you can use Marker to return+-- additional operations. Get the value of NextPageMarker from the previous+-- response, and submit another request that includes the value of+-- NextPageMarker in the Marker element. Type: String Default: None+-- Required: No.+loMarker :: Lens' ListOperations (Maybe Text)+loMarker = lens _loMarker (\s a -> s { _loMarker = a })++-- | Number of domains to be returned. Type: Integer Default: 20 Constraints:+-- A value between 1 and 100. Required: No.+loMaxItems :: Lens' ListOperations (Maybe Int)+loMaxItems = lens _loMaxItems (\s a -> s { _loMaxItems = a })++data ListOperationsResponse = ListOperationsResponse+    { _lorNextPageMarker :: Maybe Text+    , _lorOperations     :: List "Operations" OperationSummary+    } deriving (Eq, Show)++-- | 'ListOperationsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'lorNextPageMarker' @::@ 'Maybe' 'Text'+--+-- * 'lorOperations' @::@ ['OperationSummary']+--+listOperationsResponse :: ListOperationsResponse+listOperationsResponse = ListOperationsResponse+    { _lorOperations     = mempty+    , _lorNextPageMarker = Nothing+    }++-- | If there are more operations than you specified for MaxItems in the+-- request, submit another request and include the value of NextPageMarker+-- in the value of Marker. Type: String Parent: Operations.+lorNextPageMarker :: Lens' ListOperationsResponse (Maybe Text)+lorNextPageMarker =+    lens _lorNextPageMarker (\s a -> s { _lorNextPageMarker = a })++-- | Lists summaries of the operations. Type: Complex type containing a list+-- of operation summaries Children: OperationId, Status, SubmittedDate,+-- Type.+lorOperations :: Lens' ListOperationsResponse [OperationSummary]+lorOperations = lens _lorOperations (\s a -> s { _lorOperations = a }) . _List++instance ToPath ListOperations where+    toPath = const "/"++instance ToQuery ListOperations where+    toQuery = const mempty++instance ToHeaders ListOperations++instance ToJSON ListOperations where+    toJSON ListOperations{..} = object+        [ "Marker"   .= _loMarker+        , "MaxItems" .= _loMaxItems+        ]++instance AWSRequest ListOperations where+    type Sv ListOperations = Route53Domains+    type Rs ListOperations = ListOperationsResponse++    request  = post "ListOperations"+    response = jsonResponse++instance FromJSON ListOperationsResponse where+    parseJSON = withObject "ListOperationsResponse" $ \o -> ListOperationsResponse+        <$> o .:? "NextPageMarker"+        <*> o .:  "Operations"
+ gen/Network/AWS/Route53Domains/RegisterDomain.hs view
@@ -0,0 +1,260 @@+{-# 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.Route53Domains.RegisterDomain+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++-- | This operation registers a domain. Domains are registered by the AWS+-- registrar partner, Gandi. For some top-level domains (TLDs), this operation+-- requires extra parameters. When you register a domain, Amazon Route 53 does+-- the following: Creates a Amazon Route 53 hosted zone that has the same name+-- as the domain. Amazon Route 53 assigns four name servers to your hosted+-- zone and automatically updates your domain registration with the names of+-- these name servers. Enables autorenew, so your domain registration will+-- renew automatically each year. We'll notify you in advance of the renewal+-- date so you can choose whether to renew the registration. Optionally+-- enables privacy protection, so WHOIS queries return contact information for+-- our registrar partner, Gandi, instead of the information you entered for+-- registrant, admin, and tech contacts. If registration is successful,+-- returns an operation ID that you can use to track the progress and+-- completion of the action. If the request is not completed successfully, the+-- domain registrant is notified by email. Charges your AWS account an amount+-- based on the top-level domain. For more information, see Amazon Route 53+-- Pricing.+--+-- <http://docs.aws.amazon.com/Route53/latest/APIReference/api-RegisterDomain.html>+module Network.AWS.Route53Domains.RegisterDomain+    (+    -- * Request+      RegisterDomain+    -- ** Request constructor+    , registerDomain+    -- ** Request lenses+    , rdAdminContact+    , rdAutoRenew+    , rdDomainName+    , rdDurationInYears+    , rdIdnLangCode+    , rdPrivacyProtectAdminContact+    , rdPrivacyProtectRegistrantContact+    , rdPrivacyProtectTechContact+    , rdRegistrantContact+    , rdTechContact++    -- * Response+    , RegisterDomainResponse+    -- ** Response constructor+    , registerDomainResponse+    -- ** Response lenses+    , rdrOperationId+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.Route53Domains.Types+import qualified GHC.Exts++data RegisterDomain = RegisterDomain+    { _rdAdminContact                    :: ContactDetail+    , _rdAutoRenew                       :: Maybe Bool+    , _rdDomainName                      :: Text+    , _rdDurationInYears                 :: Nat+    , _rdIdnLangCode                     :: Maybe Text+    , _rdPrivacyProtectAdminContact      :: Maybe Bool+    , _rdPrivacyProtectRegistrantContact :: Maybe Bool+    , _rdPrivacyProtectTechContact       :: Maybe Bool+    , _rdRegistrantContact               :: ContactDetail+    , _rdTechContact                     :: ContactDetail+    } deriving (Eq, Show)++-- | 'RegisterDomain' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rdAdminContact' @::@ 'ContactDetail'+--+-- * 'rdAutoRenew' @::@ 'Maybe' 'Bool'+--+-- * 'rdDomainName' @::@ 'Text'+--+-- * 'rdDurationInYears' @::@ 'Natural'+--+-- * 'rdIdnLangCode' @::@ 'Maybe' 'Text'+--+-- * 'rdPrivacyProtectAdminContact' @::@ 'Maybe' 'Bool'+--+-- * 'rdPrivacyProtectRegistrantContact' @::@ 'Maybe' 'Bool'+--+-- * 'rdPrivacyProtectTechContact' @::@ 'Maybe' 'Bool'+--+-- * 'rdRegistrantContact' @::@ 'ContactDetail'+--+-- * 'rdTechContact' @::@ 'ContactDetail'+--+registerDomain :: Text -- ^ 'rdDomainName'+               -> Natural -- ^ 'rdDurationInYears'+               -> ContactDetail -- ^ 'rdAdminContact'+               -> ContactDetail -- ^ 'rdRegistrantContact'+               -> ContactDetail -- ^ 'rdTechContact'+               -> RegisterDomain+registerDomain p1 p2 p3 p4 p5 = RegisterDomain+    { _rdDomainName                      = p1+    , _rdDurationInYears                 = withIso _Nat (const id) p2+    , _rdAdminContact                    = p3+    , _rdRegistrantContact               = p4+    , _rdTechContact                     = p5+    , _rdIdnLangCode                     = Nothing+    , _rdAutoRenew                       = Nothing+    , _rdPrivacyProtectAdminContact      = Nothing+    , _rdPrivacyProtectRegistrantContact = Nothing+    , _rdPrivacyProtectTechContact       = Nothing+    }++-- | Provides detailed contact information. Type: Complex Children: FirstName,+-- MiddleName, LastName, ContactType, OrganizationName, AddressLine1,+-- AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax,+-- ExtraParams Required: Yes.+rdAdminContact :: Lens' RegisterDomain ContactDetail+rdAdminContact = lens _rdAdminContact (\s a -> s { _rdAdminContact = a })++-- | Indicates whether the domain will be automatically renewed (true) or not+-- (false). Autorenewal only takes effect after the account is charged.+-- Type: Boolean Valid values: true | false Default: true Required: No.+rdAutoRenew :: Lens' RegisterDomain (Maybe Bool)+rdAutoRenew = lens _rdAutoRenew (\s a -> s { _rdAutoRenew = a })++-- | The name of a domain. Type: String Default: None Constraints: The domain+-- name can contain only the letters a through z, the numbers 0 through 9,+-- and hyphen (-). Internationalized Domain Names are not supported.+-- Required: Yes.+rdDomainName :: Lens' RegisterDomain Text+rdDomainName = lens _rdDomainName (\s a -> s { _rdDomainName = a })++-- | The number of years the domain will be registered. Domains are registered+-- for a minimum of one year. The maximum period depends on the top-level+-- domain. Type: Integer Default: 1 Valid values: Integer from 1 to 10+-- Required: Yes.+rdDurationInYears :: Lens' RegisterDomain Natural+rdDurationInYears =+    lens _rdDurationInYears (\s a -> s { _rdDurationInYears = a })+        . _Nat++-- | Reserved for future use.+rdIdnLangCode :: Lens' RegisterDomain (Maybe Text)+rdIdnLangCode = lens _rdIdnLangCode (\s a -> s { _rdIdnLangCode = a })++-- | Whether you want to conceal contact information from WHOIS queries. If+-- you specify true, WHOIS ("who is") queries will return contact+-- information for our registrar partner, Gandi, instead of the contact+-- information that you enter. Type: Boolean Default: true Valid values:+-- true | false Required: No.+rdPrivacyProtectAdminContact :: Lens' RegisterDomain (Maybe Bool)+rdPrivacyProtectAdminContact =+    lens _rdPrivacyProtectAdminContact+        (\s a -> s { _rdPrivacyProtectAdminContact = a })++-- | Whether you want to conceal contact information from WHOIS queries. If+-- you specify true, WHOIS ("who is") queries will return contact+-- information for our registrar partner, Gandi, instead of the contact+-- information that you enter. Type: Boolean Default: true Valid values:+-- true | false Required: No.+rdPrivacyProtectRegistrantContact :: Lens' RegisterDomain (Maybe Bool)+rdPrivacyProtectRegistrantContact =+    lens _rdPrivacyProtectRegistrantContact+        (\s a -> s { _rdPrivacyProtectRegistrantContact = a })++-- | Whether you want to conceal contact information from WHOIS queries. If+-- you specify true, WHOIS ("who is") queries will return contact+-- information for our registrar partner, Gandi, instead of the contact+-- information that you enter. Type: Boolean Default: true Valid values:+-- true | false Required: No.+rdPrivacyProtectTechContact :: Lens' RegisterDomain (Maybe Bool)+rdPrivacyProtectTechContact =+    lens _rdPrivacyProtectTechContact+        (\s a -> s { _rdPrivacyProtectTechContact = a })++-- | Provides detailed contact information. Type: Complex Children: FirstName,+-- MiddleName, LastName, ContactType, OrganizationName, AddressLine1,+-- AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax,+-- ExtraParams Required: Yes.+rdRegistrantContact :: Lens' RegisterDomain ContactDetail+rdRegistrantContact =+    lens _rdRegistrantContact (\s a -> s { _rdRegistrantContact = a })++-- | Provides detailed contact information. Type: Complex Children: FirstName,+-- MiddleName, LastName, ContactType, OrganizationName, AddressLine1,+-- AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax,+-- ExtraParams Required: Yes.+rdTechContact :: Lens' RegisterDomain ContactDetail+rdTechContact = lens _rdTechContact (\s a -> s { _rdTechContact = a })++newtype RegisterDomainResponse = RegisterDomainResponse+    { _rdrOperationId :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'RegisterDomainResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rdrOperationId' @::@ 'Text'+--+registerDomainResponse :: Text -- ^ 'rdrOperationId'+                       -> RegisterDomainResponse+registerDomainResponse p1 = RegisterDomainResponse+    { _rdrOperationId = p1+    }++-- | Identifier for tracking the progress of the request. To use this ID to+-- query the operation status, use GetOperationDetail. Type: String Default:+-- None Constraints: Maximum 255 characters.+rdrOperationId :: Lens' RegisterDomainResponse Text+rdrOperationId = lens _rdrOperationId (\s a -> s { _rdrOperationId = a })++instance ToPath RegisterDomain where+    toPath = const "/"++instance ToQuery RegisterDomain where+    toQuery = const mempty++instance ToHeaders RegisterDomain++instance ToJSON RegisterDomain where+    toJSON RegisterDomain{..} = object+        [ "DomainName"                      .= _rdDomainName+        , "IdnLangCode"                     .= _rdIdnLangCode+        , "DurationInYears"                 .= _rdDurationInYears+        , "AutoRenew"                       .= _rdAutoRenew+        , "AdminContact"                    .= _rdAdminContact+        , "RegistrantContact"               .= _rdRegistrantContact+        , "TechContact"                     .= _rdTechContact+        , "PrivacyProtectAdminContact"      .= _rdPrivacyProtectAdminContact+        , "PrivacyProtectRegistrantContact" .= _rdPrivacyProtectRegistrantContact+        , "PrivacyProtectTechContact"       .= _rdPrivacyProtectTechContact+        ]++instance AWSRequest RegisterDomain where+    type Sv RegisterDomain = Route53Domains+    type Rs RegisterDomain = RegisterDomainResponse++    request  = post "RegisterDomain"+    response = jsonResponse++instance FromJSON RegisterDomainResponse where+    parseJSON = withObject "RegisterDomainResponse" $ \o -> RegisterDomainResponse+        <$> o .:  "OperationId"
+ gen/Network/AWS/Route53Domains/RetrieveDomainAuthCode.hs view
@@ -0,0 +1,114 @@+{-# 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.Route53Domains.RetrieveDomainAuthCode+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++-- | This operation returns the AuthCode for the domain. To transfer a domain to+-- another registrar, you provide this value to the new registrar.+--+-- <http://docs.aws.amazon.com/Route53/latest/APIReference/api-RetrieveDomainAuthCode.html>+module Network.AWS.Route53Domains.RetrieveDomainAuthCode+    (+    -- * Request+      RetrieveDomainAuthCode+    -- ** Request constructor+    , retrieveDomainAuthCode+    -- ** Request lenses+    , rdacDomainName++    -- * Response+    , RetrieveDomainAuthCodeResponse+    -- ** Response constructor+    , retrieveDomainAuthCodeResponse+    -- ** Response lenses+    , rdacrAuthCode+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.Route53Domains.Types+import qualified GHC.Exts++newtype RetrieveDomainAuthCode = RetrieveDomainAuthCode+    { _rdacDomainName :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'RetrieveDomainAuthCode' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rdacDomainName' @::@ 'Text'+--+retrieveDomainAuthCode :: Text -- ^ 'rdacDomainName'+                       -> RetrieveDomainAuthCode+retrieveDomainAuthCode p1 = RetrieveDomainAuthCode+    { _rdacDomainName = p1+    }++-- | The name of a domain. Type: String Default: None Constraints: The domain+-- name can contain only the letters a through z, the numbers 0 through 9,+-- and hyphen (-). Internationalized Domain Names are not supported.+-- Required: Yes.+rdacDomainName :: Lens' RetrieveDomainAuthCode Text+rdacDomainName = lens _rdacDomainName (\s a -> s { _rdacDomainName = a })++newtype RetrieveDomainAuthCodeResponse = RetrieveDomainAuthCodeResponse+    { _rdacrAuthCode :: Sensitive Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'RetrieveDomainAuthCodeResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rdacrAuthCode' @::@ 'Text'+--+retrieveDomainAuthCodeResponse :: Text -- ^ 'rdacrAuthCode'+                               -> RetrieveDomainAuthCodeResponse+retrieveDomainAuthCodeResponse p1 = RetrieveDomainAuthCodeResponse+    { _rdacrAuthCode = withIso _Sensitive (const id) p1+    }++-- | The authorization code for the domain. Type: String.+rdacrAuthCode :: Lens' RetrieveDomainAuthCodeResponse Text+rdacrAuthCode = lens _rdacrAuthCode (\s a -> s { _rdacrAuthCode = a }) . _Sensitive++instance ToPath RetrieveDomainAuthCode where+    toPath = const "/"++instance ToQuery RetrieveDomainAuthCode where+    toQuery = const mempty++instance ToHeaders RetrieveDomainAuthCode++instance ToJSON RetrieveDomainAuthCode where+    toJSON RetrieveDomainAuthCode{..} = object+        [ "DomainName" .= _rdacDomainName+        ]++instance AWSRequest RetrieveDomainAuthCode where+    type Sv RetrieveDomainAuthCode = Route53Domains+    type Rs RetrieveDomainAuthCode = RetrieveDomainAuthCodeResponse++    request  = post "RetrieveDomainAuthCode"+    response = jsonResponse++instance FromJSON RetrieveDomainAuthCodeResponse where+    parseJSON = withObject "RetrieveDomainAuthCodeResponse" $ \o -> RetrieveDomainAuthCodeResponse+        <$> o .:  "AuthCode"
+ gen/Network/AWS/Route53Domains/TransferDomain.hs view
@@ -0,0 +1,281 @@+{-# 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.Route53Domains.TransferDomain+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++-- | This operation transfers a domain from another registrar to Amazon Route+-- 53. Domains are registered by the AWS registrar, Gandi upon transfer. To+-- transfer a domain, you need to meet all the domain transfer criteria,+-- including the following: You must supply nameservers to transfer a domain.+-- You must disable the domain transfer lock (if any) before transferring the+-- domain. A minimum of 60 days must have elapsed since the domain's+-- registration or last transfer. We recommend you use the Amazon Route 53 as+-- the DNS service for your domain. You can create a hosted zone in Amazon+-- Route 53 for your current domain before transferring your domain. Note that+-- upon transfer, the domain duration is extended for a year if not otherwise+-- specified. Autorenew is enabled by default. If the transfer is successful,+-- this method returns an operation ID that you can use to track the progress+-- and completion of the action. If the request is not completed successfully,+-- the domain registrant will be notified by email. Transferring domains+-- charges your AWS account an amount based on the top-level domain. For more+-- information, see Amazon Route 53 Pricing.+--+-- <http://docs.aws.amazon.com/Route53/latest/APIReference/api-TransferDomain.html>+module Network.AWS.Route53Domains.TransferDomain+    (+    -- * Request+      TransferDomain+    -- ** Request constructor+    , transferDomain+    -- ** Request lenses+    , tdAdminContact+    , tdAuthCode+    , tdAutoRenew+    , tdDomainName+    , tdDurationInYears+    , tdIdnLangCode+    , tdNameservers+    , tdPrivacyProtectAdminContact+    , tdPrivacyProtectRegistrantContact+    , tdPrivacyProtectTechContact+    , tdRegistrantContact+    , tdTechContact++    -- * Response+    , TransferDomainResponse+    -- ** Response constructor+    , transferDomainResponse+    -- ** Response lenses+    , tdrOperationId+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.Route53Domains.Types+import qualified GHC.Exts++data TransferDomain = TransferDomain+    { _tdAdminContact                    :: ContactDetail+    , _tdAuthCode                        :: Maybe (Sensitive Text)+    , _tdAutoRenew                       :: Maybe Bool+    , _tdDomainName                      :: Text+    , _tdDurationInYears                 :: Nat+    , _tdIdnLangCode                     :: Maybe Text+    , _tdNameservers                     :: List "Nameservers" Nameserver+    , _tdPrivacyProtectAdminContact      :: Maybe Bool+    , _tdPrivacyProtectRegistrantContact :: Maybe Bool+    , _tdPrivacyProtectTechContact       :: Maybe Bool+    , _tdRegistrantContact               :: ContactDetail+    , _tdTechContact                     :: ContactDetail+    } deriving (Eq, Show)++-- | 'TransferDomain' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'tdAdminContact' @::@ 'ContactDetail'+--+-- * 'tdAuthCode' @::@ 'Maybe' 'Text'+--+-- * 'tdAutoRenew' @::@ 'Maybe' 'Bool'+--+-- * 'tdDomainName' @::@ 'Text'+--+-- * 'tdDurationInYears' @::@ 'Natural'+--+-- * 'tdIdnLangCode' @::@ 'Maybe' 'Text'+--+-- * 'tdNameservers' @::@ ['Nameserver']+--+-- * 'tdPrivacyProtectAdminContact' @::@ 'Maybe' 'Bool'+--+-- * 'tdPrivacyProtectRegistrantContact' @::@ 'Maybe' 'Bool'+--+-- * 'tdPrivacyProtectTechContact' @::@ 'Maybe' 'Bool'+--+-- * 'tdRegistrantContact' @::@ 'ContactDetail'+--+-- * 'tdTechContact' @::@ 'ContactDetail'+--+transferDomain :: Text -- ^ 'tdDomainName'+               -> Natural -- ^ 'tdDurationInYears'+               -> ContactDetail -- ^ 'tdAdminContact'+               -> ContactDetail -- ^ 'tdRegistrantContact'+               -> ContactDetail -- ^ 'tdTechContact'+               -> TransferDomain+transferDomain p1 p2 p3 p4 p5 = TransferDomain+    { _tdDomainName                      = p1+    , _tdDurationInYears                 = withIso _Nat (const id) p2+    , _tdAdminContact                    = p3+    , _tdRegistrantContact               = p4+    , _tdTechContact                     = p5+    , _tdIdnLangCode                     = Nothing+    , _tdNameservers                     = mempty+    , _tdAuthCode                        = Nothing+    , _tdAutoRenew                       = Nothing+    , _tdPrivacyProtectAdminContact      = Nothing+    , _tdPrivacyProtectRegistrantContact = Nothing+    , _tdPrivacyProtectTechContact       = Nothing+    }++-- | Provides detailed contact information. Type: Complex Children: FirstName,+-- MiddleName, LastName, ContactType, OrganizationName, AddressLine1,+-- AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax,+-- ExtraParams Required: Yes.+tdAdminContact :: Lens' TransferDomain ContactDetail+tdAdminContact = lens _tdAdminContact (\s a -> s { _tdAdminContact = a })++-- | The authorization code for the domain. You get this value from the+-- current registrar. Type: String Required: Yes.+tdAuthCode :: Lens' TransferDomain (Maybe Text)+tdAuthCode = lens _tdAuthCode (\s a -> s { _tdAuthCode = a }) . mapping _Sensitive++-- | Indicates whether the domain will be automatically renewed (true) or not+-- (false). Autorenewal only takes effect after the account is charged.+-- Type: Boolean Valid values: true | false Default: true Required: No.+tdAutoRenew :: Lens' TransferDomain (Maybe Bool)+tdAutoRenew = lens _tdAutoRenew (\s a -> s { _tdAutoRenew = a })++-- | The name of a domain. Type: String Default: None Constraints: The domain+-- name can contain only the letters a through z, the numbers 0 through 9,+-- and hyphen (-). Internationalized Domain Names are not supported.+-- Required: Yes.+tdDomainName :: Lens' TransferDomain Text+tdDomainName = lens _tdDomainName (\s a -> s { _tdDomainName = a })++-- | The number of years the domain will be registered. Domains are registered+-- for a minimum of one year. The maximum period depends on the top-level+-- domain. Type: Integer Default: 1 Valid values: Integer from 1 to 10+-- Required: Yes.+tdDurationInYears :: Lens' TransferDomain Natural+tdDurationInYears =+    lens _tdDurationInYears (\s a -> s { _tdDurationInYears = a })+        . _Nat++-- | Reserved for future use.+tdIdnLangCode :: Lens' TransferDomain (Maybe Text)+tdIdnLangCode = lens _tdIdnLangCode (\s a -> s { _tdIdnLangCode = a })++-- | Contains details for the host and glue IP addresses. Type: Complex+-- Children: GlueIps, Name.+tdNameservers :: Lens' TransferDomain [Nameserver]+tdNameservers = lens _tdNameservers (\s a -> s { _tdNameservers = a }) . _List++-- | Whether you want to conceal contact information from WHOIS queries. If+-- you specify true, WHOIS ("who is") queries will return contact+-- information for our registrar partner, Gandi, instead of the contact+-- information that you enter. Type: Boolean Default: true Valid values:+-- true | false Required: No.+tdPrivacyProtectAdminContact :: Lens' TransferDomain (Maybe Bool)+tdPrivacyProtectAdminContact =+    lens _tdPrivacyProtectAdminContact+        (\s a -> s { _tdPrivacyProtectAdminContact = a })++-- | Whether you want to conceal contact information from WHOIS queries. If+-- you specify true, WHOIS ("who is") queries will return contact+-- information for our registrar partner, Gandi, instead of the contact+-- information that you enter. Type: Boolean Default: true Valid values:+-- true | false Required: No.+tdPrivacyProtectRegistrantContact :: Lens' TransferDomain (Maybe Bool)+tdPrivacyProtectRegistrantContact =+    lens _tdPrivacyProtectRegistrantContact+        (\s a -> s { _tdPrivacyProtectRegistrantContact = a })++-- | Whether you want to conceal contact information from WHOIS queries. If+-- you specify true, WHOIS ("who is") queries will return contact+-- information for our registrar partner, Gandi, instead of the contact+-- information that you enter. Type: Boolean Default: true Valid values:+-- true | false Required: No.+tdPrivacyProtectTechContact :: Lens' TransferDomain (Maybe Bool)+tdPrivacyProtectTechContact =+    lens _tdPrivacyProtectTechContact+        (\s a -> s { _tdPrivacyProtectTechContact = a })++-- | Provides detailed contact information. Type: Complex Children: FirstName,+-- MiddleName, LastName, ContactType, OrganizationName, AddressLine1,+-- AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax,+-- ExtraParams Required: Yes.+tdRegistrantContact :: Lens' TransferDomain ContactDetail+tdRegistrantContact =+    lens _tdRegistrantContact (\s a -> s { _tdRegistrantContact = a })++-- | Provides detailed contact information. Type: Complex Children: FirstName,+-- MiddleName, LastName, ContactType, OrganizationName, AddressLine1,+-- AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax,+-- ExtraParams Required: Yes.+tdTechContact :: Lens' TransferDomain ContactDetail+tdTechContact = lens _tdTechContact (\s a -> s { _tdTechContact = a })++newtype TransferDomainResponse = TransferDomainResponse+    { _tdrOperationId :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'TransferDomainResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'tdrOperationId' @::@ 'Text'+--+transferDomainResponse :: Text -- ^ 'tdrOperationId'+                       -> TransferDomainResponse+transferDomainResponse p1 = TransferDomainResponse+    { _tdrOperationId = p1+    }++-- | Identifier for tracking the progress of the request. To use this ID to+-- query the operation status, use GetOperationDetail. Type: String Default:+-- None Constraints: Maximum 255 characters.+tdrOperationId :: Lens' TransferDomainResponse Text+tdrOperationId = lens _tdrOperationId (\s a -> s { _tdrOperationId = a })++instance ToPath TransferDomain where+    toPath = const "/"++instance ToQuery TransferDomain where+    toQuery = const mempty++instance ToHeaders TransferDomain++instance ToJSON TransferDomain where+    toJSON TransferDomain{..} = object+        [ "DomainName"                      .= _tdDomainName+        , "IdnLangCode"                     .= _tdIdnLangCode+        , "DurationInYears"                 .= _tdDurationInYears+        , "Nameservers"                     .= _tdNameservers+        , "AuthCode"                        .= _tdAuthCode+        , "AutoRenew"                       .= _tdAutoRenew+        , "AdminContact"                    .= _tdAdminContact+        , "RegistrantContact"               .= _tdRegistrantContact+        , "TechContact"                     .= _tdTechContact+        , "PrivacyProtectAdminContact"      .= _tdPrivacyProtectAdminContact+        , "PrivacyProtectRegistrantContact" .= _tdPrivacyProtectRegistrantContact+        , "PrivacyProtectTechContact"       .= _tdPrivacyProtectTechContact+        ]++instance AWSRequest TransferDomain where+    type Sv TransferDomain = Route53Domains+    type Rs TransferDomain = TransferDomainResponse++    request  = post "TransferDomain"+    response = jsonResponse++instance FromJSON TransferDomainResponse where+    parseJSON = withObject "TransferDomainResponse" $ \o -> TransferDomainResponse+        <$> o .:  "OperationId"
+ gen/Network/AWS/Route53Domains/Types.hs view
@@ -0,0 +1,1438 @@+{-# 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.Route53Domains.Types+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++module Network.AWS.Route53Domains.Types+    (+    -- * Service+      Route53Domains+    -- ** Error+    , JSONError++    -- * DomainSummary+    , DomainSummary+    , domainSummary+    , dsAutoRenew+    , dsDomainName+    , dsExpiry+    , dsTransferLock++    -- * ExtraParamName+    , ExtraParamName (..)++    -- * Nameserver+    , Nameserver+    , nameserver+    , nGlueIps+    , nName++    -- * OperationStatus+    , OperationStatus (..)++    -- * DomainAvailability+    , DomainAvailability (..)++    -- * OperationType+    , OperationType (..)++    -- * CountryCode+    , CountryCode (..)++    -- * ExtraParam+    , ExtraParam+    , extraParam+    , epName+    , epValue++    -- * ContactType+    , ContactType (..)++    -- * ContactDetail+    , ContactDetail+    , contactDetail+    , cdAddressLine1+    , cdAddressLine2+    , cdCity+    , cdContactType+    , cdCountryCode+    , cdEmail+    , cdExtraParams+    , cdFax+    , cdFirstName+    , cdLastName+    , cdOrganizationName+    , cdPhoneNumber+    , cdState+    , cdZipCode++    -- * OperationSummary+    , OperationSummary+    , operationSummary+    , osOperationId+    , osStatus+    , osSubmittedDate+    , osType+    ) where++import Data.Char (isUpper)+import Network.AWS.Error+import Network.AWS.Prelude+import Network.AWS.Signing.V4+import qualified GHC.Exts++-- | Version @2014-05-15@ of the Amazon Route 53 Domains service.+data Route53Domains++instance AWSService Route53Domains where+    type Sg Route53Domains = V4+    type Er Route53Domains = JSONError++    service = Service+        { _svcEndpoint     = regional+        , _svcAbbrev       = "Route53Domains"+        , _svcPrefix       = "route53domains"+        , _svcVersion      = "2014-05-15"+        , _svcTargetPrefix = Just "Route53Domains_v20140515"+        , _svcJSONVersion  = Just "1.1"+        }++    handle = jsonError statusSuccess++data DomainSummary = DomainSummary+    { _dsAutoRenew    :: Maybe Bool+    , _dsDomainName   :: Text+    , _dsExpiry       :: Maybe RFC822+    , _dsTransferLock :: Maybe Bool+    } deriving (Eq, Ord, Show)++-- | 'DomainSummary' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dsAutoRenew' @::@ 'Maybe' 'Bool'+--+-- * 'dsDomainName' @::@ 'Text'+--+-- * 'dsExpiry' @::@ 'Maybe' 'UTCTime'+--+-- * 'dsTransferLock' @::@ 'Maybe' 'Bool'+--+domainSummary :: Text -- ^ 'dsDomainName'+              -> DomainSummary+domainSummary p1 = DomainSummary+    { _dsDomainName   = p1+    , _dsAutoRenew    = Nothing+    , _dsTransferLock = Nothing+    , _dsExpiry       = Nothing+    }++-- | Indicates whether the domain is automatically renewed upon expiration.+-- Type: Boolean Valid values: True | False.+dsAutoRenew :: Lens' DomainSummary (Maybe Bool)+dsAutoRenew = lens _dsAutoRenew (\s a -> s { _dsAutoRenew = a })++-- | The name of a domain. Type: String.+dsDomainName :: Lens' DomainSummary Text+dsDomainName = lens _dsDomainName (\s a -> s { _dsDomainName = a })++-- | Expiration date of the domain in Coordinated Universal Time (UTC). Type:+-- Long.+dsExpiry :: Lens' DomainSummary (Maybe UTCTime)+dsExpiry = lens _dsExpiry (\s a -> s { _dsExpiry = a }) . mapping _Time++-- | Indicates whether a domain is locked from unauthorized transfer to+-- another party. Type: Boolean Valid values: True | False.+dsTransferLock :: Lens' DomainSummary (Maybe Bool)+dsTransferLock = lens _dsTransferLock (\s a -> s { _dsTransferLock = a })++instance FromJSON DomainSummary where+    parseJSON = withObject "DomainSummary" $ \o -> DomainSummary+        <$> o .:? "AutoRenew"+        <*> o .:  "DomainName"+        <*> o .:? "Expiry"+        <*> o .:? "TransferLock"++instance ToJSON DomainSummary where+    toJSON DomainSummary{..} = object+        [ "DomainName"   .= _dsDomainName+        , "AutoRenew"    .= _dsAutoRenew+        , "TransferLock" .= _dsTransferLock+        , "Expiry"       .= _dsExpiry+        ]++data ExtraParamName+    = AuIdNumber          -- ^ AU_ID_NUMBER+    | AuIdType            -- ^ AU_ID_TYPE+    | BirthCity           -- ^ BIRTH_CITY+    | BirthCountry        -- ^ BIRTH_COUNTRY+    | BirthDateInYyyyMmDd -- ^ BIRTH_DATE_IN_YYYY_MM_DD+    | BirthDepartment     -- ^ BIRTH_DEPARTMENT+    | BrandNumber         -- ^ BRAND_NUMBER+    | CaLegalType         -- ^ CA_LEGAL_TYPE+    | DocumentNumber      -- ^ DOCUMENT_NUMBER+    | DunsNumber          -- ^ DUNS_NUMBER+    | FiBusinessNumber    -- ^ FI_BUSINESS_NUMBER+    | FiIdNumber          -- ^ FI_ID_NUMBER+    | ItPin               -- ^ IT_PIN+    | RuPassportData      -- ^ RU_PASSPORT_DATA+    | SeIdNumber          -- ^ SE_ID_NUMBER+    | SgIdNumber          -- ^ SG_ID_NUMBER+    | VatNumber           -- ^ VAT_NUMBER+      deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable ExtraParamName++instance FromText ExtraParamName where+    parser = match "AU_ID_NUMBER"             AuIdNumber+         <|> match "AU_ID_TYPE"               AuIdType+         <|> match "BIRTH_CITY"               BirthCity+         <|> match "BIRTH_COUNTRY"            BirthCountry+         <|> match "BIRTH_DATE_IN_YYYY_MM_DD" BirthDateInYyyyMmDd+         <|> match "BIRTH_DEPARTMENT"         BirthDepartment+         <|> match "BRAND_NUMBER"             BrandNumber+         <|> match "CA_LEGAL_TYPE"            CaLegalType+         <|> match "DOCUMENT_NUMBER"          DocumentNumber+         <|> match "DUNS_NUMBER"              DunsNumber+         <|> match "FI_BUSINESS_NUMBER"       FiBusinessNumber+         <|> match "FI_ID_NUMBER"             FiIdNumber+         <|> match "IT_PIN"                   ItPin+         <|> match "RU_PASSPORT_DATA"         RuPassportData+         <|> match "SE_ID_NUMBER"             SeIdNumber+         <|> match "SG_ID_NUMBER"             SgIdNumber+         <|> match "VAT_NUMBER"               VatNumber++instance ToText ExtraParamName where+    toText = \case+        AuIdNumber          -> "AU_ID_NUMBER"+        AuIdType            -> "AU_ID_TYPE"+        BirthCity           -> "BIRTH_CITY"+        BirthCountry        -> "BIRTH_COUNTRY"+        BirthDateInYyyyMmDd -> "BIRTH_DATE_IN_YYYY_MM_DD"+        BirthDepartment     -> "BIRTH_DEPARTMENT"+        BrandNumber         -> "BRAND_NUMBER"+        CaLegalType         -> "CA_LEGAL_TYPE"+        DocumentNumber      -> "DOCUMENT_NUMBER"+        DunsNumber          -> "DUNS_NUMBER"+        FiBusinessNumber    -> "FI_BUSINESS_NUMBER"+        FiIdNumber          -> "FI_ID_NUMBER"+        ItPin               -> "IT_PIN"+        RuPassportData      -> "RU_PASSPORT_DATA"+        SeIdNumber          -> "SE_ID_NUMBER"+        SgIdNumber          -> "SG_ID_NUMBER"+        VatNumber           -> "VAT_NUMBER"++instance FromJSON ExtraParamName where+    parseJSON = parseJSONText "ExtraParamName"++instance ToJSON ExtraParamName where+    toJSON = toJSONText++data Nameserver = Nameserver+    { _nGlueIps :: List "GlueIps" Text+    , _nName    :: Text+    } deriving (Eq, Ord, Show)++-- | 'Nameserver' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'nGlueIps' @::@ ['Text']+--+-- * 'nName' @::@ 'Text'+--+nameserver :: Text -- ^ 'nName'+           -> Nameserver+nameserver p1 = Nameserver+    { _nName    = p1+    , _nGlueIps = mempty+    }++-- | Glue IP address of a name server entry. Glue IP addresses are required+-- only when the name of the name server is a subdomain of the domain. For+-- example, if your domain is example.com and the name server for the domain+-- is ns.example.com, you need to specify the IP address for ns.example.com.+-- Type: List of IP addresses. Constraints: The list can contain only one+-- IPv4 and one IPv6 address. Parent: Nameservers.+nGlueIps :: Lens' Nameserver [Text]+nGlueIps = lens _nGlueIps (\s a -> s { _nGlueIps = a }) . _List++-- | The fully qualified host name of the name server. Type: String+-- Constraint: Maximum 255 characterss Parent: Nameservers.+nName :: Lens' Nameserver Text+nName = lens _nName (\s a -> s { _nName = a })++instance FromJSON Nameserver where+    parseJSON = withObject "Nameserver" $ \o -> Nameserver+        <$> o .:  "GlueIps"+        <*> o .:  "Name"++instance ToJSON Nameserver where+    toJSON Nameserver{..} = object+        [ "Name"    .= _nName+        , "GlueIps" .= _nGlueIps+        ]++data OperationStatus+    = Error      -- ^ ERROR+    | Failed     -- ^ FAILED+    | InProgress -- ^ IN_PROGRESS+    | Submitted  -- ^ SUBMITTED+    | Successful -- ^ SUCCESSFUL+      deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable OperationStatus++instance FromText OperationStatus where+    parser = match "ERROR"       Error+         <|> match "FAILED"      Failed+         <|> match "IN_PROGRESS" InProgress+         <|> match "SUBMITTED"   Submitted+         <|> match "SUCCESSFUL"  Successful++instance ToText OperationStatus where+    toText = \case+        Error      -> "ERROR"+        Failed     -> "FAILED"+        InProgress -> "IN_PROGRESS"+        Submitted  -> "SUBMITTED"+        Successful -> "SUCCESSFUL"++instance FromJSON OperationStatus where+    parseJSON = parseJSONText "OperationStatus"++instance ToJSON OperationStatus where+    toJSON = toJSONText++data DomainAvailability+    = Available             -- ^ AVAILABLE+    | AvailablePreorder     -- ^ AVAILABLE_PREORDER+    | AvailableReserved     -- ^ AVAILABLE_RESERVED+    | Reserved              -- ^ RESERVED+    | Unavailable           -- ^ UNAVAILABLE+    | UnavailablePremium    -- ^ UNAVAILABLE_PREMIUM+    | UnavailableRestricted -- ^ UNAVAILABLE_RESTRICTED+      deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable DomainAvailability++instance FromText DomainAvailability where+    parser = match "AVAILABLE"              Available+         <|> match "AVAILABLE_PREORDER"     AvailablePreorder+         <|> match "AVAILABLE_RESERVED"     AvailableReserved+         <|> match "RESERVED"               Reserved+         <|> match "UNAVAILABLE"            Unavailable+         <|> match "UNAVAILABLE_PREMIUM"    UnavailablePremium+         <|> match "UNAVAILABLE_RESTRICTED" UnavailableRestricted++instance ToText DomainAvailability where+    toText = \case+        Available             -> "AVAILABLE"+        AvailablePreorder     -> "AVAILABLE_PREORDER"+        AvailableReserved     -> "AVAILABLE_RESERVED"+        Reserved              -> "RESERVED"+        Unavailable           -> "UNAVAILABLE"+        UnavailablePremium    -> "UNAVAILABLE_PREMIUM"+        UnavailableRestricted -> "UNAVAILABLE_RESTRICTED"++instance FromJSON DomainAvailability where+    parseJSON = parseJSONText "DomainAvailability"++instance ToJSON DomainAvailability where+    toJSON = toJSONText++data OperationType+    = OTChangePrivacyProtection -- ^ CHANGE_PRIVACY_PROTECTION+    | OTDeleteDomain            -- ^ DELETE_DOMAIN+    | OTDomainLock              -- ^ DOMAIN_LOCK+    | OTRegisterDomain          -- ^ REGISTER_DOMAIN+    | OTTransferInDomain        -- ^ TRANSFER_IN_DOMAIN+    | OTUpdateDomainContact     -- ^ UPDATE_DOMAIN_CONTACT+    | OTUpdateNameserver        -- ^ UPDATE_NAMESERVER+      deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable OperationType++instance FromText OperationType where+    parser = match "CHANGE_PRIVACY_PROTECTION" OTChangePrivacyProtection+         <|> match "DELETE_DOMAIN"             OTDeleteDomain+         <|> match "DOMAIN_LOCK"               OTDomainLock+         <|> match "REGISTER_DOMAIN"           OTRegisterDomain+         <|> match "TRANSFER_IN_DOMAIN"        OTTransferInDomain+         <|> match "UPDATE_DOMAIN_CONTACT"     OTUpdateDomainContact+         <|> match "UPDATE_NAMESERVER"         OTUpdateNameserver++instance ToText OperationType where+    toText = \case+        OTChangePrivacyProtection -> "CHANGE_PRIVACY_PROTECTION"+        OTDeleteDomain            -> "DELETE_DOMAIN"+        OTDomainLock              -> "DOMAIN_LOCK"+        OTRegisterDomain          -> "REGISTER_DOMAIN"+        OTTransferInDomain        -> "TRANSFER_IN_DOMAIN"+        OTUpdateDomainContact     -> "UPDATE_DOMAIN_CONTACT"+        OTUpdateNameserver        -> "UPDATE_NAMESERVER"++instance FromJSON OperationType where+    parseJSON = parseJSONText "OperationType"++instance ToJSON OperationType where+    toJSON = toJSONText++data CountryCode+    = Ad  -- ^ AD+    | Ae  -- ^ AE+    | Af  -- ^ AF+    | Ag  -- ^ AG+    | Ai  -- ^ AI+    | Al  -- ^ AL+    | Am  -- ^ AM+    | An  -- ^ AN+    | Ao  -- ^ AO+    | Aq  -- ^ AQ+    | Ar  -- ^ AR+    | As  -- ^ AS+    | At  -- ^ AT+    | Au  -- ^ AU+    | Aw  -- ^ AW+    | Az  -- ^ AZ+    | Ba  -- ^ BA+    | Bb  -- ^ BB+    | Bd  -- ^ BD+    | Be  -- ^ BE+    | Bf  -- ^ BF+    | Bg  -- ^ BG+    | Bh  -- ^ BH+    | Bi  -- ^ BI+    | Bj  -- ^ BJ+    | Bl  -- ^ BL+    | Bm  -- ^ BM+    | Bn  -- ^ BN+    | Bo  -- ^ BO+    | Br  -- ^ BR+    | Bs  -- ^ BS+    | Bt  -- ^ BT+    | Bw  -- ^ BW+    | By  -- ^ BY+    | Bz  -- ^ BZ+    | Ca  -- ^ CA+    | Cc  -- ^ CC+    | Cd  -- ^ CD+    | Cf  -- ^ CF+    | Cg  -- ^ CG+    | Ch  -- ^ CH+    | Ci  -- ^ CI+    | Ck  -- ^ CK+    | Cl  -- ^ CL+    | Cm  -- ^ CM+    | Cn  -- ^ CN+    | Co  -- ^ CO+    | Cr  -- ^ CR+    | Cu  -- ^ CU+    | Cv  -- ^ CV+    | Cx  -- ^ CX+    | Cy  -- ^ CY+    | Cz  -- ^ CZ+    | De  -- ^ DE+    | Dj  -- ^ DJ+    | Dk  -- ^ DK+    | Dm  -- ^ DM+    | Do' -- ^ DO+    | Dz  -- ^ DZ+    | Ec  -- ^ EC+    | Ee  -- ^ EE+    | Eg  -- ^ EG+    | Er  -- ^ ER+    | Es  -- ^ ES+    | Et  -- ^ ET+    | Fi  -- ^ FI+    | Fj  -- ^ FJ+    | Fk  -- ^ FK+    | Fm  -- ^ FM+    | Fo  -- ^ FO+    | Fr  -- ^ FR+    | Ga  -- ^ GA+    | Gb  -- ^ GB+    | Gd  -- ^ GD+    | Ge  -- ^ GE+    | Gh  -- ^ GH+    | Gi  -- ^ GI+    | Gl  -- ^ GL+    | Gm  -- ^ GM+    | Gn  -- ^ GN+    | Gq  -- ^ GQ+    | Gr  -- ^ GR+    | Gt  -- ^ GT+    | Gu  -- ^ GU+    | Gw  -- ^ GW+    | Gy  -- ^ GY+    | Hk  -- ^ HK+    | Hn  -- ^ HN+    | Hr  -- ^ HR+    | Ht  -- ^ HT+    | Hu  -- ^ HU+    | Id  -- ^ ID+    | Ie  -- ^ IE+    | Il  -- ^ IL+    | Im  -- ^ IM+    | In' -- ^ IN+    | Iq  -- ^ IQ+    | Ir  -- ^ IR+    | Is  -- ^ IS+    | It  -- ^ IT+    | Jm  -- ^ JM+    | Jo  -- ^ JO+    | Jp  -- ^ JP+    | Ke  -- ^ KE+    | Kg  -- ^ KG+    | Kh  -- ^ KH+    | Ki  -- ^ KI+    | Km  -- ^ KM+    | Kn  -- ^ KN+    | Kp  -- ^ KP+    | Kr  -- ^ KR+    | Kw  -- ^ KW+    | Ky  -- ^ KY+    | Kz  -- ^ KZ+    | La  -- ^ LA+    | Lb  -- ^ LB+    | Lc  -- ^ LC+    | Li  -- ^ LI+    | Lk  -- ^ LK+    | Lr  -- ^ LR+    | Ls  -- ^ LS+    | Lt  -- ^ LT+    | Lu  -- ^ LU+    | Lv  -- ^ LV+    | Ly  -- ^ LY+    | Ma  -- ^ MA+    | Mc  -- ^ MC+    | Md  -- ^ MD+    | Me  -- ^ ME+    | Mf  -- ^ MF+    | Mg  -- ^ MG+    | Mh  -- ^ MH+    | Mk  -- ^ MK+    | Ml  -- ^ ML+    | Mm  -- ^ MM+    | Mn  -- ^ MN+    | Mo  -- ^ MO+    | Mp  -- ^ MP+    | Mr  -- ^ MR+    | Ms  -- ^ MS+    | Mt  -- ^ MT+    | Mu  -- ^ MU+    | Mv  -- ^ MV+    | Mw  -- ^ MW+    | Mx  -- ^ MX+    | My  -- ^ MY+    | Mz  -- ^ MZ+    | Na  -- ^ NA+    | Nc  -- ^ NC+    | Ne  -- ^ NE+    | Ng  -- ^ NG+    | Ni  -- ^ NI+    | Nl  -- ^ NL+    | No  -- ^ NO+    | Np  -- ^ NP+    | Nr  -- ^ NR+    | Nu  -- ^ NU+    | Nz  -- ^ NZ+    | Om  -- ^ OM+    | Pa  -- ^ PA+    | Pe  -- ^ PE+    | Pf  -- ^ PF+    | Pg  -- ^ PG+    | Ph  -- ^ PH+    | Pk  -- ^ PK+    | Pl  -- ^ PL+    | Pm  -- ^ PM+    | Pn  -- ^ PN+    | Pr  -- ^ PR+    | Pt  -- ^ PT+    | Pw  -- ^ PW+    | Py  -- ^ PY+    | Qa  -- ^ QA+    | Ro  -- ^ RO+    | Rs  -- ^ RS+    | Ru  -- ^ RU+    | Rw  -- ^ RW+    | Sa  -- ^ SA+    | Sb  -- ^ SB+    | Sc  -- ^ SC+    | Sd  -- ^ SD+    | Se  -- ^ SE+    | Sg  -- ^ SG+    | Sh  -- ^ SH+    | Si  -- ^ SI+    | Sk  -- ^ SK+    | Sl  -- ^ SL+    | Sm  -- ^ SM+    | Sn  -- ^ SN+    | So  -- ^ SO+    | Sr  -- ^ SR+    | St  -- ^ ST+    | Sv  -- ^ SV+    | Sy  -- ^ SY+    | Sz  -- ^ SZ+    | Tc  -- ^ TC+    | Td  -- ^ TD+    | Tg  -- ^ TG+    | Th  -- ^ TH+    | Tj  -- ^ TJ+    | Tk  -- ^ TK+    | Tl  -- ^ TL+    | Tm  -- ^ TM+    | Tn  -- ^ TN+    | To  -- ^ TO+    | Tr  -- ^ TR+    | Tt  -- ^ TT+    | Tv  -- ^ TV+    | Tw  -- ^ TW+    | Tz  -- ^ TZ+    | Ua  -- ^ UA+    | Ug  -- ^ UG+    | Us  -- ^ US+    | Uy  -- ^ UY+    | Uz  -- ^ UZ+    | Va  -- ^ VA+    | Vc  -- ^ VC+    | Ve  -- ^ VE+    | Vg  -- ^ VG+    | Vi  -- ^ VI+    | Vn  -- ^ VN+    | Vu  -- ^ VU+    | Wf  -- ^ WF+    | Ws  -- ^ WS+    | Ye  -- ^ YE+    | Yt  -- ^ YT+    | Za  -- ^ ZA+    | Zm  -- ^ ZM+    | Zw  -- ^ ZW+      deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable CountryCode++instance FromText CountryCode where+    parser = match "AD" Ad+         <|> match "AE" Ae+         <|> match "AF" Af+         <|> match "AG" Ag+         <|> match "AI" Ai+         <|> match "AL" Al+         <|> match "AM" Am+         <|> match "AN" An+         <|> match "AO" Ao+         <|> match "AQ" Aq+         <|> match "AR" Ar+         <|> match "AS" As+         <|> match "AT" At+         <|> match "AU" Au+         <|> match "AW" Aw+         <|> match "AZ" Az+         <|> match "BA" Ba+         <|> match "BB" Bb+         <|> match "BD" Bd+         <|> match "BE" Be+         <|> match "BF" Bf+         <|> match "BG" Bg+         <|> match "BH" Bh+         <|> match "BI" Bi+         <|> match "BJ" Bj+         <|> match "BL" Bl+         <|> match "BM" Bm+         <|> match "BN" Bn+         <|> match "BO" Bo+         <|> match "BR" Br+         <|> match "BS" Bs+         <|> match "BT" Bt+         <|> match "BW" Bw+         <|> match "BY" By+         <|> match "BZ" Bz+         <|> match "CA" Ca+         <|> match "CC" Cc+         <|> match "CD" Cd+         <|> match "CF" Cf+         <|> match "CG" Cg+         <|> match "CH" Ch+         <|> match "CI" Ci+         <|> match "CK" Ck+         <|> match "CL" Cl+         <|> match "CM" Cm+         <|> match "CN" Cn+         <|> match "CO" Co+         <|> match "CR" Cr+         <|> match "CU" Cu+         <|> match "CV" Cv+         <|> match "CX" Cx+         <|> match "CY" Cy+         <|> match "CZ" Cz+         <|> match "DE" De+         <|> match "DJ" Dj+         <|> match "DK" Dk+         <|> match "DM" Dm+         <|> match "DO" Do'+         <|> match "DZ" Dz+         <|> match "EC" Ec+         <|> match "EE" Ee+         <|> match "EG" Eg+         <|> match "ER" Er+         <|> match "ES" Es+         <|> match "ET" Et+         <|> match "FI" Fi+         <|> match "FJ" Fj+         <|> match "FK" Fk+         <|> match "FM" Fm+         <|> match "FO" Fo+         <|> match "FR" Fr+         <|> match "GA" Ga+         <|> match "GB" Gb+         <|> match "GD" Gd+         <|> match "GE" Ge+         <|> match "GH" Gh+         <|> match "GI" Gi+         <|> match "GL" Gl+         <|> match "GM" Gm+         <|> match "GN" Gn+         <|> match "GQ" Gq+         <|> match "GR" Gr+         <|> match "GT" Gt+         <|> match "GU" Gu+         <|> match "GW" Gw+         <|> match "GY" Gy+         <|> match "HK" Hk+         <|> match "HN" Hn+         <|> match "HR" Hr+         <|> match "HT" Ht+         <|> match "HU" Hu+         <|> match "ID" Id+         <|> match "IE" Ie+         <|> match "IL" Il+         <|> match "IM" Im+         <|> match "IN" In'+         <|> match "IQ" Iq+         <|> match "IR" Ir+         <|> match "IS" Is+         <|> match "IT" It+         <|> match "JM" Jm+         <|> match "JO" Jo+         <|> match "JP" Jp+         <|> match "KE" Ke+         <|> match "KG" Kg+         <|> match "KH" Kh+         <|> match "KI" Ki+         <|> match "KM" Km+         <|> match "KN" Kn+         <|> match "KP" Kp+         <|> match "KR" Kr+         <|> match "KW" Kw+         <|> match "KY" Ky+         <|> match "KZ" Kz+         <|> match "LA" La+         <|> match "LB" Lb+         <|> match "LC" Lc+         <|> match "LI" Li+         <|> match "LK" Lk+         <|> match "LR" Lr+         <|> match "LS" Ls+         <|> match "LT" Lt+         <|> match "LU" Lu+         <|> match "LV" Lv+         <|> match "LY" Ly+         <|> match "MA" Ma+         <|> match "MC" Mc+         <|> match "MD" Md+         <|> match "ME" Me+         <|> match "MF" Mf+         <|> match "MG" Mg+         <|> match "MH" Mh+         <|> match "MK" Mk+         <|> match "ML" Ml+         <|> match "MM" Mm+         <|> match "MN" Mn+         <|> match "MO" Mo+         <|> match "MP" Mp+         <|> match "MR" Mr+         <|> match "MS" Ms+         <|> match "MT" Mt+         <|> match "MU" Mu+         <|> match "MV" Mv+         <|> match "MW" Mw+         <|> match "MX" Mx+         <|> match "MY" My+         <|> match "MZ" Mz+         <|> match "NA" Na+         <|> match "NC" Nc+         <|> match "NE" Ne+         <|> match "NG" Ng+         <|> match "NI" Ni+         <|> match "NL" Nl+         <|> match "NO" No+         <|> match "NP" Np+         <|> match "NR" Nr+         <|> match "NU" Nu+         <|> match "NZ" Nz+         <|> match "OM" Om+         <|> match "PA" Pa+         <|> match "PE" Pe+         <|> match "PF" Pf+         <|> match "PG" Pg+         <|> match "PH" Ph+         <|> match "PK" Pk+         <|> match "PL" Pl+         <|> match "PM" Pm+         <|> match "PN" Pn+         <|> match "PR" Pr+         <|> match "PT" Pt+         <|> match "PW" Pw+         <|> match "PY" Py+         <|> match "QA" Qa+         <|> match "RO" Ro+         <|> match "RS" Rs+         <|> match "RU" Ru+         <|> match "RW" Rw+         <|> match "SA" Sa+         <|> match "SB" Sb+         <|> match "SC" Sc+         <|> match "SD" Sd+         <|> match "SE" Se+         <|> match "SG" Sg+         <|> match "SH" Sh+         <|> match "SI" Si+         <|> match "SK" Sk+         <|> match "SL" Sl+         <|> match "SM" Sm+         <|> match "SN" Sn+         <|> match "SO" So+         <|> match "SR" Sr+         <|> match "ST" St+         <|> match "SV" Sv+         <|> match "SY" Sy+         <|> match "SZ" Sz+         <|> match "TC" Tc+         <|> match "TD" Td+         <|> match "TG" Tg+         <|> match "TH" Th+         <|> match "TJ" Tj+         <|> match "TK" Tk+         <|> match "TL" Tl+         <|> match "TM" Tm+         <|> match "TN" Tn+         <|> match "TO" To+         <|> match "TR" Tr+         <|> match "TT" Tt+         <|> match "TV" Tv+         <|> match "TW" Tw+         <|> match "TZ" Tz+         <|> match "UA" Ua+         <|> match "UG" Ug+         <|> match "US" Us+         <|> match "UY" Uy+         <|> match "UZ" Uz+         <|> match "VA" Va+         <|> match "VC" Vc+         <|> match "VE" Ve+         <|> match "VG" Vg+         <|> match "VI" Vi+         <|> match "VN" Vn+         <|> match "VU" Vu+         <|> match "WF" Wf+         <|> match "WS" Ws+         <|> match "YE" Ye+         <|> match "YT" Yt+         <|> match "ZA" Za+         <|> match "ZM" Zm+         <|> match "ZW" Zw++instance ToText CountryCode where+    toText = \case+        Ad  -> "AD"+        Ae  -> "AE"+        Af  -> "AF"+        Ag  -> "AG"+        Ai  -> "AI"+        Al  -> "AL"+        Am  -> "AM"+        An  -> "AN"+        Ao  -> "AO"+        Aq  -> "AQ"+        Ar  -> "AR"+        As  -> "AS"+        At  -> "AT"+        Au  -> "AU"+        Aw  -> "AW"+        Az  -> "AZ"+        Ba  -> "BA"+        Bb  -> "BB"+        Bd  -> "BD"+        Be  -> "BE"+        Bf  -> "BF"+        Bg  -> "BG"+        Bh  -> "BH"+        Bi  -> "BI"+        Bj  -> "BJ"+        Bl  -> "BL"+        Bm  -> "BM"+        Bn  -> "BN"+        Bo  -> "BO"+        Br  -> "BR"+        Bs  -> "BS"+        Bt  -> "BT"+        Bw  -> "BW"+        By  -> "BY"+        Bz  -> "BZ"+        Ca  -> "CA"+        Cc  -> "CC"+        Cd  -> "CD"+        Cf  -> "CF"+        Cg  -> "CG"+        Ch  -> "CH"+        Ci  -> "CI"+        Ck  -> "CK"+        Cl  -> "CL"+        Cm  -> "CM"+        Cn  -> "CN"+        Co  -> "CO"+        Cr  -> "CR"+        Cu  -> "CU"+        Cv  -> "CV"+        Cx  -> "CX"+        Cy  -> "CY"+        Cz  -> "CZ"+        De  -> "DE"+        Dj  -> "DJ"+        Dk  -> "DK"+        Dm  -> "DM"+        Do' -> "DO"+        Dz  -> "DZ"+        Ec  -> "EC"+        Ee  -> "EE"+        Eg  -> "EG"+        Er  -> "ER"+        Es  -> "ES"+        Et  -> "ET"+        Fi  -> "FI"+        Fj  -> "FJ"+        Fk  -> "FK"+        Fm  -> "FM"+        Fo  -> "FO"+        Fr  -> "FR"+        Ga  -> "GA"+        Gb  -> "GB"+        Gd  -> "GD"+        Ge  -> "GE"+        Gh  -> "GH"+        Gi  -> "GI"+        Gl  -> "GL"+        Gm  -> "GM"+        Gn  -> "GN"+        Gq  -> "GQ"+        Gr  -> "GR"+        Gt  -> "GT"+        Gu  -> "GU"+        Gw  -> "GW"+        Gy  -> "GY"+        Hk  -> "HK"+        Hn  -> "HN"+        Hr  -> "HR"+        Ht  -> "HT"+        Hu  -> "HU"+        Id  -> "ID"+        Ie  -> "IE"+        Il  -> "IL"+        Im  -> "IM"+        In' -> "IN"+        Iq  -> "IQ"+        Ir  -> "IR"+        Is  -> "IS"+        It  -> "IT"+        Jm  -> "JM"+        Jo  -> "JO"+        Jp  -> "JP"+        Ke  -> "KE"+        Kg  -> "KG"+        Kh  -> "KH"+        Ki  -> "KI"+        Km  -> "KM"+        Kn  -> "KN"+        Kp  -> "KP"+        Kr  -> "KR"+        Kw  -> "KW"+        Ky  -> "KY"+        Kz  -> "KZ"+        La  -> "LA"+        Lb  -> "LB"+        Lc  -> "LC"+        Li  -> "LI"+        Lk  -> "LK"+        Lr  -> "LR"+        Ls  -> "LS"+        Lt  -> "LT"+        Lu  -> "LU"+        Lv  -> "LV"+        Ly  -> "LY"+        Ma  -> "MA"+        Mc  -> "MC"+        Md  -> "MD"+        Me  -> "ME"+        Mf  -> "MF"+        Mg  -> "MG"+        Mh  -> "MH"+        Mk  -> "MK"+        Ml  -> "ML"+        Mm  -> "MM"+        Mn  -> "MN"+        Mo  -> "MO"+        Mp  -> "MP"+        Mr  -> "MR"+        Ms  -> "MS"+        Mt  -> "MT"+        Mu  -> "MU"+        Mv  -> "MV"+        Mw  -> "MW"+        Mx  -> "MX"+        My  -> "MY"+        Mz  -> "MZ"+        Na  -> "NA"+        Nc  -> "NC"+        Ne  -> "NE"+        Ng  -> "NG"+        Ni  -> "NI"+        Nl  -> "NL"+        No  -> "NO"+        Np  -> "NP"+        Nr  -> "NR"+        Nu  -> "NU"+        Nz  -> "NZ"+        Om  -> "OM"+        Pa  -> "PA"+        Pe  -> "PE"+        Pf  -> "PF"+        Pg  -> "PG"+        Ph  -> "PH"+        Pk  -> "PK"+        Pl  -> "PL"+        Pm  -> "PM"+        Pn  -> "PN"+        Pr  -> "PR"+        Pt  -> "PT"+        Pw  -> "PW"+        Py  -> "PY"+        Qa  -> "QA"+        Ro  -> "RO"+        Rs  -> "RS"+        Ru  -> "RU"+        Rw  -> "RW"+        Sa  -> "SA"+        Sb  -> "SB"+        Sc  -> "SC"+        Sd  -> "SD"+        Se  -> "SE"+        Sg  -> "SG"+        Sh  -> "SH"+        Si  -> "SI"+        Sk  -> "SK"+        Sl  -> "SL"+        Sm  -> "SM"+        Sn  -> "SN"+        So  -> "SO"+        Sr  -> "SR"+        St  -> "ST"+        Sv  -> "SV"+        Sy  -> "SY"+        Sz  -> "SZ"+        Tc  -> "TC"+        Td  -> "TD"+        Tg  -> "TG"+        Th  -> "TH"+        Tj  -> "TJ"+        Tk  -> "TK"+        Tl  -> "TL"+        Tm  -> "TM"+        Tn  -> "TN"+        To  -> "TO"+        Tr  -> "TR"+        Tt  -> "TT"+        Tv  -> "TV"+        Tw  -> "TW"+        Tz  -> "TZ"+        Ua  -> "UA"+        Ug  -> "UG"+        Us  -> "US"+        Uy  -> "UY"+        Uz  -> "UZ"+        Va  -> "VA"+        Vc  -> "VC"+        Ve  -> "VE"+        Vg  -> "VG"+        Vi  -> "VI"+        Vn  -> "VN"+        Vu  -> "VU"+        Wf  -> "WF"+        Ws  -> "WS"+        Ye  -> "YE"+        Yt  -> "YT"+        Za  -> "ZA"+        Zm  -> "ZM"+        Zw  -> "ZW"++instance FromJSON CountryCode where+    parseJSON = parseJSONText "CountryCode"++instance ToJSON CountryCode where+    toJSON = toJSONText++data ExtraParam = ExtraParam+    { _epName  :: Text+    , _epValue :: Text+    } deriving (Eq, Ord, Show)++-- | 'ExtraParam' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'epName' @::@ 'Text'+--+-- * 'epValue' @::@ 'Text'+--+extraParam :: Text -- ^ 'epName'+           -> Text -- ^ 'epValue'+           -> ExtraParam+extraParam p1 p2 = ExtraParam+    { _epName  = p1+    , _epValue = p2+    }++-- | Name of the additional parameter required by the top-level domain. Type:+-- String Default: None Valid values: DUNS_NUMBER | BRAND_NUMBER |+-- BIRTH_DEPARTMENT | BIRTH_DATE_IN_YYYY_MM_DD | BIRTH_COUNTRY | BIRTH_CITY+-- | DOCUMENT_NUMBER | AU_ID_NUMBER | AU_ID_TYPE | CA_LEGAL_TYPE |+-- FI_BUSINESS_NUMBER | FI_ID_NUMBER | IT_PIN | RU_PASSPORT_DATA |+-- SE_ID_NUMBER | SG_ID_NUMBER | VAT_NUMBER Parent: ExtraParams Required:+-- Yes.+epName :: Lens' ExtraParam Text+epName = lens _epName (\s a -> s { _epName = a })++-- | Values corresponding to the additional parameter names required by some+-- top-level domains. Type: String Default: None Constraints: Maximum 2048+-- characters. Parent: ExtraParams Required: Yes.+epValue :: Lens' ExtraParam Text+epValue = lens _epValue (\s a -> s { _epValue = a })++instance FromJSON ExtraParam where+    parseJSON = withObject "ExtraParam" $ \o -> ExtraParam+        <$> o .:  "Name"+        <*> o .:  "Value"++instance ToJSON ExtraParam where+    toJSON ExtraParam{..} = object+        [ "Name"  .= _epName+        , "Value" .= _epValue+        ]++data ContactType+    = CTAssociation -- ^ ASSOCIATION+    | CTCompany     -- ^ COMPANY+    | CTPerson      -- ^ PERSON+    | CTPublicBody  -- ^ PUBLIC_BODY+    | CTReseller    -- ^ RESELLER+      deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable ContactType++instance FromText ContactType where+    parser = match "ASSOCIATION" CTAssociation+         <|> match "COMPANY"     CTCompany+         <|> match "PERSON"      CTPerson+         <|> match "PUBLIC_BODY" CTPublicBody+         <|> match "RESELLER"    CTReseller++instance ToText ContactType where+    toText = \case+        CTAssociation -> "ASSOCIATION"+        CTCompany     -> "COMPANY"+        CTPerson      -> "PERSON"+        CTPublicBody  -> "PUBLIC_BODY"+        CTReseller    -> "RESELLER"++instance FromJSON ContactType where+    parseJSON = parseJSONText "ContactType"++instance ToJSON ContactType where+    toJSON = toJSONText++data ContactDetail = ContactDetail+    { _cdAddressLine1     :: Maybe Text+    , _cdAddressLine2     :: Maybe Text+    , _cdCity             :: Maybe Text+    , _cdContactType      :: Maybe Text+    , _cdCountryCode      :: Maybe Text+    , _cdEmail            :: Maybe Text+    , _cdExtraParams      :: List "ExtraParams" ExtraParam+    , _cdFax              :: Maybe Text+    , _cdFirstName        :: Maybe Text+    , _cdLastName         :: Maybe Text+    , _cdOrganizationName :: Maybe Text+    , _cdPhoneNumber      :: Maybe Text+    , _cdState            :: Maybe Text+    , _cdZipCode          :: Maybe Text+    } deriving (Eq, Show)++-- | 'ContactDetail' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'cdAddressLine1' @::@ 'Maybe' 'Text'+--+-- * 'cdAddressLine2' @::@ 'Maybe' 'Text'+--+-- * 'cdCity' @::@ 'Maybe' 'Text'+--+-- * 'cdContactType' @::@ 'Maybe' 'Text'+--+-- * 'cdCountryCode' @::@ 'Maybe' 'Text'+--+-- * 'cdEmail' @::@ 'Maybe' 'Text'+--+-- * 'cdExtraParams' @::@ ['ExtraParam']+--+-- * 'cdFax' @::@ 'Maybe' 'Text'+--+-- * 'cdFirstName' @::@ 'Maybe' 'Text'+--+-- * 'cdLastName' @::@ 'Maybe' 'Text'+--+-- * 'cdOrganizationName' @::@ 'Maybe' 'Text'+--+-- * 'cdPhoneNumber' @::@ 'Maybe' 'Text'+--+-- * 'cdState' @::@ 'Maybe' 'Text'+--+-- * 'cdZipCode' @::@ 'Maybe' 'Text'+--+contactDetail :: ContactDetail+contactDetail = ContactDetail+    { _cdFirstName        = Nothing+    , _cdLastName         = Nothing+    , _cdContactType      = Nothing+    , _cdOrganizationName = Nothing+    , _cdAddressLine1     = Nothing+    , _cdAddressLine2     = Nothing+    , _cdCity             = Nothing+    , _cdState            = Nothing+    , _cdCountryCode      = Nothing+    , _cdZipCode          = Nothing+    , _cdPhoneNumber      = Nothing+    , _cdEmail            = Nothing+    , _cdFax              = Nothing+    , _cdExtraParams      = mempty+    }++-- | First line of the contact's address. Type: String Default: None+-- Constraints: Maximum 255 characters. Parents: RegistrantContact,+-- AdminContact, TechContact Required: Yes.+cdAddressLine1 :: Lens' ContactDetail (Maybe Text)+cdAddressLine1 = lens _cdAddressLine1 (\s a -> s { _cdAddressLine1 = a })++-- | Second line of contact's address, if any. Type: String Default: None+-- Constraints: Maximum 255 characters. Parents: RegistrantContact,+-- AdminContact, TechContact Required: No.+cdAddressLine2 :: Lens' ContactDetail (Maybe Text)+cdAddressLine2 = lens _cdAddressLine2 (\s a -> s { _cdAddressLine2 = a })++-- | The city of the contact's address. Type: String Default: None+-- Constraints: Maximum 255 characters. Parents: RegistrantContact,+-- AdminContact, TechContact Required: Yes.+cdCity :: Lens' ContactDetail (Maybe Text)+cdCity = lens _cdCity (\s a -> s { _cdCity = a })++-- | Indicates whether the contact is a person, company, association, or+-- public organization. If you choose an option other than PERSON, you must+-- enter an organization name, and you can't enable privacy protection for+-- the contact. Type: String Default: None Constraints: Maximum 255+-- characters. Valid values: PERSON | COMPANY | ASSOCIATION | PUBLIC_BODY+-- Parents: RegistrantContact, AdminContact, TechContact Required: Yes.+cdContactType :: Lens' ContactDetail (Maybe Text)+cdContactType = lens _cdContactType (\s a -> s { _cdContactType = a })++-- | Code for the country of the contact's address. Type: String Default: None+-- Constraints: Maximum 255 characters. Parents: RegistrantContact,+-- AdminContact, TechContact Required: Yes.+cdCountryCode :: Lens' ContactDetail (Maybe Text)+cdCountryCode = lens _cdCountryCode (\s a -> s { _cdCountryCode = a })++-- | Email address of the contact. Type: String Default: None Constraints:+-- Maximum 254 characters. Parents: RegistrantContact, AdminContact,+-- TechContact Required: Yes.+cdEmail :: Lens' ContactDetail (Maybe Text)+cdEmail = lens _cdEmail (\s a -> s { _cdEmail = a })++-- | A list of name-value pairs for parameters required by certain top-level+-- domains. Type: Complex Default: None Parents: RegistrantContact,+-- AdminContact, TechContact Children: Name, Value Required: No.+cdExtraParams :: Lens' ContactDetail [ExtraParam]+cdExtraParams = lens _cdExtraParams (\s a -> s { _cdExtraParams = a }) . _List++-- | Fax number of the contact. Type: String Default: None Constraints: Phone+-- number must be specified in the format "+[country dialing code].[number+-- including any area code]". For example, a US phone number might appear as+-- "+1.1234567890". Parents: RegistrantContact, AdminContact, TechContact+-- Required: No.+cdFax :: Lens' ContactDetail (Maybe Text)+cdFax = lens _cdFax (\s a -> s { _cdFax = a })++-- | First name of contact. Type: String Default: None Constraints: Maximum+-- 255 characters. Parents: RegistrantContact, AdminContact, TechContact+-- Required: Yes.+cdFirstName :: Lens' ContactDetail (Maybe Text)+cdFirstName = lens _cdFirstName (\s a -> s { _cdFirstName = a })++-- | Last name of contact. Type: String Default: None Constraints: Maximum 255+-- characters. Parents: RegistrantContact, AdminContact, TechContact+-- Required: Yes.+cdLastName :: Lens' ContactDetail (Maybe Text)+cdLastName = lens _cdLastName (\s a -> s { _cdLastName = a })++-- | Name of the organization for contact types other than PERSON. Type:+-- String Default: None Constraints: Maximum 255 characters. Contact type+-- must not be PERSON. Parents: RegistrantContact, AdminContact, TechContact+-- Required: No.+cdOrganizationName :: Lens' ContactDetail (Maybe Text)+cdOrganizationName =+    lens _cdOrganizationName (\s a -> s { _cdOrganizationName = a })++-- | The phone number of the contact. Type: String Default: None Constraints:+-- Phone number must be specified in the format "+[country dialing+-- code].[number including any area code&gt;]". For example, a US phone+-- number might appear as "+1.1234567890". Parents: RegistrantContact,+-- AdminContact, TechContact Required: Yes.+cdPhoneNumber :: Lens' ContactDetail (Maybe Text)+cdPhoneNumber = lens _cdPhoneNumber (\s a -> s { _cdPhoneNumber = a })++-- | The state or province of the contact's city. Type: String Default: None+-- Constraints: Maximum 255 characters. Parents: RegistrantContact,+-- AdminContact, TechContact Required: No.+cdState :: Lens' ContactDetail (Maybe Text)+cdState = lens _cdState (\s a -> s { _cdState = a })++-- | The zip or postal code of the contact's address. Type: String Default:+-- None Constraints: Maximum 255 characters. Parents: RegistrantContact,+-- AdminContact, TechContact Required: No.+cdZipCode :: Lens' ContactDetail (Maybe Text)+cdZipCode = lens _cdZipCode (\s a -> s { _cdZipCode = a })++instance FromJSON ContactDetail where+    parseJSON = withObject "ContactDetail" $ \o -> ContactDetail+        <$> o .:? "AddressLine1"+        <*> o .:? "AddressLine2"+        <*> o .:? "City"+        <*> o .:? "ContactType"+        <*> o .:? "CountryCode"+        <*> o .:? "Email"+        <*> o .:  "ExtraParams"+        <*> o .:? "Fax"+        <*> o .:? "FirstName"+        <*> o .:? "LastName"+        <*> o .:? "OrganizationName"+        <*> o .:? "PhoneNumber"+        <*> o .:? "State"+        <*> o .:? "ZipCode"++instance ToJSON ContactDetail where+    toJSON ContactDetail{..} = object+        [ "FirstName"        .= _cdFirstName+        , "LastName"         .= _cdLastName+        , "ContactType"      .= _cdContactType+        , "OrganizationName" .= _cdOrganizationName+        , "AddressLine1"     .= _cdAddressLine1+        , "AddressLine2"     .= _cdAddressLine2+        , "City"             .= _cdCity+        , "State"            .= _cdState+        , "CountryCode"      .= _cdCountryCode+        , "ZipCode"          .= _cdZipCode+        , "PhoneNumber"      .= _cdPhoneNumber+        , "Email"            .= _cdEmail+        , "Fax"              .= _cdFax+        , "ExtraParams"      .= _cdExtraParams+        ]++data OperationSummary = OperationSummary+    { _osOperationId   :: Text+    , _osStatus        :: Text+    , _osSubmittedDate :: RFC822+    , _osType          :: Text+    } deriving (Eq, Ord, Show)++-- | 'OperationSummary' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'osOperationId' @::@ 'Text'+--+-- * 'osStatus' @::@ 'Text'+--+-- * 'osSubmittedDate' @::@ 'UTCTime'+--+-- * 'osType' @::@ 'Text'+--+operationSummary :: Text -- ^ 'osOperationId'+                 -> Text -- ^ 'osStatus'+                 -> Text -- ^ 'osType'+                 -> UTCTime -- ^ 'osSubmittedDate'+                 -> OperationSummary+operationSummary p1 p2 p3 p4 = OperationSummary+    { _osOperationId   = p1+    , _osStatus        = p2+    , _osType          = p3+    , _osSubmittedDate = withIso _Time (const id) p4+    }++-- | Identifier returned to track the requested action. Type: String.+osOperationId :: Lens' OperationSummary Text+osOperationId = lens _osOperationId (\s a -> s { _osOperationId = a })++-- | The current status of the requested operation in the system. Type:+-- String.+osStatus :: Lens' OperationSummary Text+osStatus = lens _osStatus (\s a -> s { _osStatus = a })++-- | The date when the request was submitted.+osSubmittedDate :: Lens' OperationSummary UTCTime+osSubmittedDate = lens _osSubmittedDate (\s a -> s { _osSubmittedDate = a }) . _Time++-- | Type of the action requested. Type: String Valid values: REGISTER_DOMAIN+-- | DELETE_DOMAIN | TRANSFER_IN_DOMAIN | UPDATE_DOMAIN_CONTACT |+-- UPDATE_NAMESERVER | CHANGE_PRIVACY_PROTECTION | DOMAIN_LOCK.+osType :: Lens' OperationSummary Text+osType = lens _osType (\s a -> s { _osType = a })++instance FromJSON OperationSummary where+    parseJSON = withObject "OperationSummary" $ \o -> OperationSummary+        <$> o .:  "OperationId"+        <*> o .:  "Status"+        <*> o .:  "SubmittedDate"+        <*> o .:  "Type"++instance ToJSON OperationSummary where+    toJSON OperationSummary{..} = object+        [ "OperationId"   .= _osOperationId+        , "Status"        .= _osStatus+        , "Type"          .= _osType+        , "SubmittedDate" .= _osSubmittedDate+        ]
+ gen/Network/AWS/Route53Domains/UpdateDomainContact.hs view
@@ -0,0 +1,160 @@+{-# 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.Route53Domains.UpdateDomainContact+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++-- | This operation updates the contact information for a particular domain.+-- Information for at least one contact (registrant, administrator, or+-- technical) must be supplied for update. If the update is successful, this+-- method returns an operation ID that you can use to track the progress and+-- completion of the action. If the request is not completed successfully, the+-- domain registrant will be notified by email.+--+-- <http://docs.aws.amazon.com/Route53/latest/APIReference/api-UpdateDomainContact.html>+module Network.AWS.Route53Domains.UpdateDomainContact+    (+    -- * Request+      UpdateDomainContact+    -- ** Request constructor+    , updateDomainContact+    -- ** Request lenses+    , udcAdminContact+    , udcDomainName+    , udcRegistrantContact+    , udcTechContact++    -- * Response+    , UpdateDomainContactResponse+    -- ** Response constructor+    , updateDomainContactResponse+    -- ** Response lenses+    , udcrOperationId+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.Route53Domains.Types+import qualified GHC.Exts++data UpdateDomainContact = UpdateDomainContact+    { _udcAdminContact      :: Maybe ContactDetail+    , _udcDomainName        :: Text+    , _udcRegistrantContact :: Maybe ContactDetail+    , _udcTechContact       :: Maybe ContactDetail+    } deriving (Eq, Show)++-- | 'UpdateDomainContact' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'udcAdminContact' @::@ 'Maybe' 'ContactDetail'+--+-- * 'udcDomainName' @::@ 'Text'+--+-- * 'udcRegistrantContact' @::@ 'Maybe' 'ContactDetail'+--+-- * 'udcTechContact' @::@ 'Maybe' 'ContactDetail'+--+updateDomainContact :: Text -- ^ 'udcDomainName'+                    -> UpdateDomainContact+updateDomainContact p1 = UpdateDomainContact+    { _udcDomainName        = p1+    , _udcAdminContact      = Nothing+    , _udcRegistrantContact = Nothing+    , _udcTechContact       = Nothing+    }++-- | Provides detailed contact information. Type: Complex Children: FirstName,+-- MiddleName, LastName, ContactType, OrganizationName, AddressLine1,+-- AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax,+-- ExtraParams Required: Yes.+udcAdminContact :: Lens' UpdateDomainContact (Maybe ContactDetail)+udcAdminContact = lens _udcAdminContact (\s a -> s { _udcAdminContact = a })++-- | The name of a domain. Type: String Default: None Constraints: The domain+-- name can contain only the letters a through z, the numbers 0 through 9,+-- and hyphen (-). Internationalized Domain Names are not supported.+-- Required: Yes.+udcDomainName :: Lens' UpdateDomainContact Text+udcDomainName = lens _udcDomainName (\s a -> s { _udcDomainName = a })++-- | Provides detailed contact information. Type: Complex Children: FirstName,+-- MiddleName, LastName, ContactType, OrganizationName, AddressLine1,+-- AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax,+-- ExtraParams Required: Yes.+udcRegistrantContact :: Lens' UpdateDomainContact (Maybe ContactDetail)+udcRegistrantContact =+    lens _udcRegistrantContact (\s a -> s { _udcRegistrantContact = a })++-- | Provides detailed contact information. Type: Complex Children: FirstName,+-- MiddleName, LastName, ContactType, OrganizationName, AddressLine1,+-- AddressLine2, City, State, CountryCode, ZipCode, PhoneNumber, Email, Fax,+-- ExtraParams Required: Yes.+udcTechContact :: Lens' UpdateDomainContact (Maybe ContactDetail)+udcTechContact = lens _udcTechContact (\s a -> s { _udcTechContact = a })++newtype UpdateDomainContactResponse = UpdateDomainContactResponse+    { _udcrOperationId :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'UpdateDomainContactResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'udcrOperationId' @::@ 'Text'+--+updateDomainContactResponse :: Text -- ^ 'udcrOperationId'+                            -> UpdateDomainContactResponse+updateDomainContactResponse p1 = UpdateDomainContactResponse+    { _udcrOperationId = p1+    }++-- | Identifier for tracking the progress of the request. To use this ID to+-- query the operation status, use GetOperationDetail. Type: String Default:+-- None Constraints: Maximum 255 characters.+udcrOperationId :: Lens' UpdateDomainContactResponse Text+udcrOperationId = lens _udcrOperationId (\s a -> s { _udcrOperationId = a })++instance ToPath UpdateDomainContact where+    toPath = const "/"++instance ToQuery UpdateDomainContact where+    toQuery = const mempty++instance ToHeaders UpdateDomainContact++instance ToJSON UpdateDomainContact where+    toJSON UpdateDomainContact{..} = object+        [ "DomainName"        .= _udcDomainName+        , "AdminContact"      .= _udcAdminContact+        , "RegistrantContact" .= _udcRegistrantContact+        , "TechContact"       .= _udcTechContact+        ]++instance AWSRequest UpdateDomainContact where+    type Sv UpdateDomainContact = Route53Domains+    type Rs UpdateDomainContact = UpdateDomainContactResponse++    request  = post "UpdateDomainContact"+    response = jsonResponse++instance FromJSON UpdateDomainContactResponse where+    parseJSON = withObject "UpdateDomainContactResponse" $ \o -> UpdateDomainContactResponse+        <$> o .:  "OperationId"
+ gen/Network/AWS/Route53Domains/UpdateDomainContactPrivacy.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.Route53Domains.UpdateDomainContactPrivacy+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++-- | This operation updates the specified domain contact's privacy setting. When+-- the privacy option is enabled, personal information such as postal or email+-- address is hidden from the results of a public WHOIS query. The privacy+-- services are provided by the AWS registrar, Gandi. For more information,+-- see the Gandi privacy features. This operation only affects the privacy of+-- the specified contact type (registrant, administrator, or tech). Successful+-- acceptance returns an operation ID that you can use with GetOperationDetail+-- to track the progress and completion of the action. If the request is not+-- completed successfully, the domain registrant will be notified by email.+--+-- <http://docs.aws.amazon.com/Route53/latest/APIReference/api-UpdateDomainContactPrivacy.html>+module Network.AWS.Route53Domains.UpdateDomainContactPrivacy+    (+    -- * Request+      UpdateDomainContactPrivacy+    -- ** Request constructor+    , updateDomainContactPrivacy+    -- ** Request lenses+    , udcpAdminPrivacy+    , udcpDomainName+    , udcpRegistrantPrivacy+    , udcpTechPrivacy++    -- * Response+    , UpdateDomainContactPrivacyResponse+    -- ** Response constructor+    , updateDomainContactPrivacyResponse+    -- ** Response lenses+    , udcprOperationId+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.Route53Domains.Types+import qualified GHC.Exts++data UpdateDomainContactPrivacy = UpdateDomainContactPrivacy+    { _udcpAdminPrivacy      :: Maybe Bool+    , _udcpDomainName        :: Text+    , _udcpRegistrantPrivacy :: Maybe Bool+    , _udcpTechPrivacy       :: Maybe Bool+    } deriving (Eq, Ord, Show)++-- | 'UpdateDomainContactPrivacy' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'udcpAdminPrivacy' @::@ 'Maybe' 'Bool'+--+-- * 'udcpDomainName' @::@ 'Text'+--+-- * 'udcpRegistrantPrivacy' @::@ 'Maybe' 'Bool'+--+-- * 'udcpTechPrivacy' @::@ 'Maybe' 'Bool'+--+updateDomainContactPrivacy :: Text -- ^ 'udcpDomainName'+                           -> UpdateDomainContactPrivacy+updateDomainContactPrivacy p1 = UpdateDomainContactPrivacy+    { _udcpDomainName        = p1+    , _udcpAdminPrivacy      = Nothing+    , _udcpRegistrantPrivacy = Nothing+    , _udcpTechPrivacy       = Nothing+    }++-- | Whether you want to conceal contact information from WHOIS queries. If+-- you specify true, WHOIS ("who is") queries will return contact+-- information for our registrar partner, Gandi, instead of the contact+-- information that you enter. Type: Boolean Default: None Valid values:+-- true | false Required: No.+udcpAdminPrivacy :: Lens' UpdateDomainContactPrivacy (Maybe Bool)+udcpAdminPrivacy = lens _udcpAdminPrivacy (\s a -> s { _udcpAdminPrivacy = a })++-- | The name of a domain. Type: String Default: None Constraints: The domain+-- name can contain only the letters a through z, the numbers 0 through 9,+-- and hyphen (-). Internationalized Domain Names are not supported.+-- Required: Yes.+udcpDomainName :: Lens' UpdateDomainContactPrivacy Text+udcpDomainName = lens _udcpDomainName (\s a -> s { _udcpDomainName = a })++-- | Whether you want to conceal contact information from WHOIS queries. If+-- you specify true, WHOIS ("who is") queries will return contact+-- information for our registrar partner, Gandi, instead of the contact+-- information that you enter. Type: Boolean Default: None Valid values:+-- true | false Required: No.+udcpRegistrantPrivacy :: Lens' UpdateDomainContactPrivacy (Maybe Bool)+udcpRegistrantPrivacy =+    lens _udcpRegistrantPrivacy (\s a -> s { _udcpRegistrantPrivacy = a })++-- | Whether you want to conceal contact information from WHOIS queries. If+-- you specify true, WHOIS ("who is") queries will return contact+-- information for our registrar partner, Gandi, instead of the contact+-- information that you enter. Type: Boolean Default: None Valid values:+-- true | false Required: No.+udcpTechPrivacy :: Lens' UpdateDomainContactPrivacy (Maybe Bool)+udcpTechPrivacy = lens _udcpTechPrivacy (\s a -> s { _udcpTechPrivacy = a })++newtype UpdateDomainContactPrivacyResponse = UpdateDomainContactPrivacyResponse+    { _udcprOperationId :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'UpdateDomainContactPrivacyResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'udcprOperationId' @::@ 'Text'+--+updateDomainContactPrivacyResponse :: Text -- ^ 'udcprOperationId'+                                   -> UpdateDomainContactPrivacyResponse+updateDomainContactPrivacyResponse p1 = UpdateDomainContactPrivacyResponse+    { _udcprOperationId = p1+    }++-- | Identifier for tracking the progress of the request. To use this ID to+-- query the operation status, use GetOperationDetail. Type: String Default:+-- None Constraints: Maximum 255 characters.+udcprOperationId :: Lens' UpdateDomainContactPrivacyResponse Text+udcprOperationId = lens _udcprOperationId (\s a -> s { _udcprOperationId = a })++instance ToPath UpdateDomainContactPrivacy where+    toPath = const "/"++instance ToQuery UpdateDomainContactPrivacy where+    toQuery = const mempty++instance ToHeaders UpdateDomainContactPrivacy++instance ToJSON UpdateDomainContactPrivacy where+    toJSON UpdateDomainContactPrivacy{..} = object+        [ "DomainName"        .= _udcpDomainName+        , "AdminPrivacy"      .= _udcpAdminPrivacy+        , "RegistrantPrivacy" .= _udcpRegistrantPrivacy+        , "TechPrivacy"       .= _udcpTechPrivacy+        ]++instance AWSRequest UpdateDomainContactPrivacy where+    type Sv UpdateDomainContactPrivacy = Route53Domains+    type Rs UpdateDomainContactPrivacy = UpdateDomainContactPrivacyResponse++    request  = post "UpdateDomainContactPrivacy"+    response = jsonResponse++instance FromJSON UpdateDomainContactPrivacyResponse where+    parseJSON = withObject "UpdateDomainContactPrivacyResponse" $ \o -> UpdateDomainContactPrivacyResponse+        <$> o .:  "OperationId"
+ gen/Network/AWS/Route53Domains/UpdateDomainNameservers.hs view
@@ -0,0 +1,132 @@+{-# 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.Route53Domains.UpdateDomainNameservers+-- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++-- | This operation replaces the current set of name servers for the domain with+-- the specified set of name servers. If you use Amazon Route 53 as your DNS+-- service, specify the four name servers in the delegation set for the hosted+-- zone for the domain. If successful, this operation returns an operation ID+-- that you can use to track the progress and completion of the action. If the+-- request is not completed successfully, the domain registrant will be+-- notified by email.+--+-- <http://docs.aws.amazon.com/Route53/latest/APIReference/api-UpdateDomainNameservers.html>+module Network.AWS.Route53Domains.UpdateDomainNameservers+    (+    -- * Request+      UpdateDomainNameservers+    -- ** Request constructor+    , updateDomainNameservers+    -- ** Request lenses+    , udnDomainName+    , udnNameservers++    -- * Response+    , UpdateDomainNameserversResponse+    -- ** Response constructor+    , updateDomainNameserversResponse+    -- ** Response lenses+    , udnrOperationId+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.JSON+import Network.AWS.Route53Domains.Types+import qualified GHC.Exts++data UpdateDomainNameservers = UpdateDomainNameservers+    { _udnDomainName  :: Text+    , _udnNameservers :: List "Nameservers" Nameserver+    } deriving (Eq, Show)++-- | 'UpdateDomainNameservers' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'udnDomainName' @::@ 'Text'+--+-- * 'udnNameservers' @::@ ['Nameserver']+--+updateDomainNameservers :: Text -- ^ 'udnDomainName'+                        -> UpdateDomainNameservers+updateDomainNameservers p1 = UpdateDomainNameservers+    { _udnDomainName  = p1+    , _udnNameservers = mempty+    }++-- | The name of a domain. Type: String Default: None Constraints: The domain+-- name can contain only the letters a through z, the numbers 0 through 9,+-- and hyphen (-). Internationalized Domain Names are not supported.+-- Required: Yes.+udnDomainName :: Lens' UpdateDomainNameservers Text+udnDomainName = lens _udnDomainName (\s a -> s { _udnDomainName = a })++-- | A list of new name servers for the domain. Type: Complex Children: Name,+-- GlueIps Required: Yes.+udnNameservers :: Lens' UpdateDomainNameservers [Nameserver]+udnNameservers = lens _udnNameservers (\s a -> s { _udnNameservers = a }) . _List++newtype UpdateDomainNameserversResponse = UpdateDomainNameserversResponse+    { _udnrOperationId :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'UpdateDomainNameserversResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'udnrOperationId' @::@ 'Text'+--+updateDomainNameserversResponse :: Text -- ^ 'udnrOperationId'+                                -> UpdateDomainNameserversResponse+updateDomainNameserversResponse p1 = UpdateDomainNameserversResponse+    { _udnrOperationId = p1+    }++-- | Identifier for tracking the progress of the request. To use this ID to+-- query the operation status, use GetOperationDetail. Type: String Default:+-- None Constraints: Maximum 255 characters.+udnrOperationId :: Lens' UpdateDomainNameserversResponse Text+udnrOperationId = lens _udnrOperationId (\s a -> s { _udnrOperationId = a })++instance ToPath UpdateDomainNameservers where+    toPath = const "/"++instance ToQuery UpdateDomainNameservers where+    toQuery = const mempty++instance ToHeaders UpdateDomainNameservers++instance ToJSON UpdateDomainNameservers where+    toJSON UpdateDomainNameservers{..} = object+        [ "DomainName"  .= _udnDomainName+        , "Nameservers" .= _udnNameservers+        ]++instance AWSRequest UpdateDomainNameservers where+    type Sv UpdateDomainNameservers = Route53Domains+    type Rs UpdateDomainNameservers = UpdateDomainNameserversResponse++    request  = post "UpdateDomainNameservers"+    response = jsonResponse++instance FromJSON UpdateDomainNameserversResponse where+    parseJSON = withObject "UpdateDomainNameserversResponse" $ \o -> UpdateDomainNameserversResponse+        <$> o .:  "OperationId"