packages feed

amazonka-route53-autonaming (empty) → 1.6.0

raw patch · 68 files changed

+6244/−0 lines, 68 filesdep +amazonka-coredep +amazonka-route53-autonamingdep +amazonka-testsetup-changed

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

Files

+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,45 @@+# Amazon Route 53 Auto Naming SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`1.6.0`+++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-route53-autonaming)+and the [AWS API Reference](https://aws.amazon.com/documentation/).++The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/amazonka),+which provides mechanisms for specifying AuthN/AuthZ information, sending requests,+and receiving responses.++Lenses are used for constructing and manipulating types,+due to the depth of nesting of AWS types and transparency regarding+de/serialisation into more palatable Haskell values.+The provided lenses should be compatible with any of the major lens libraries+[lens](http://hackage.haskell.org/package/lens) or [lens-family-core](http://hackage.haskell.org/package/lens-family-core).++See [Network.AWS.Route53AutoNaming](http://hackage.haskell.org/package/amazonka-route53-autonaming/docs/Network-AWS-Route53AutoNaming.html)+or [the AWS documentation](https://aws.amazon.com/documentation/) to get started.+++## 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-autonaming` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).++Parts of the code are derived from AWS service descriptions, licensed under Apache 2.0.+Source files subject to this contain an additional licensing clause in their header.
+ Setup.hs view
@@ -0,0 +1,2 @@+import           Distribution.Simple+main = defaultMain
+ amazonka-route53-autonaming.cabal view
@@ -0,0 +1,103 @@+name:                  amazonka-route53-autonaming+version:               1.6.0+synopsis:              Amazon Route 53 Auto Naming SDK.+homepage:              https://github.com/brendanhay/amazonka+bug-reports:           https://github.com/brendanhay/amazonka/issues+license:               MPL-2.0+license-file:          LICENSE+author:                Brendan Hay+maintainer:            Brendan Hay <brendan.g.hay+amazonka@gmail.com>+copyright:             Copyright (c) 2013-2018 Brendan Hay+category:              Network, AWS, Cloud, Distributed Computing+build-type:            Simple+cabal-version:         >= 1.10+extra-source-files:    README.md fixture/*.yaml fixture/*.proto src/.gitkeep+description:+    The types from this library are intended to be used with+    <http://hackage.haskell.org/package/amazonka amazonka>, which provides+    mechanisms for specifying AuthN/AuthZ information, sending requests,+    and receiving responses.+    .+    Lenses are used for constructing and manipulating types,+    due to the depth of nesting of AWS types and transparency regarding+    de/serialisation into more palatable Haskell values.+    The provided lenses should be compatible with any of the major lens libraries+    such as <http://hackage.haskell.org/package/lens lens> or+    <http://hackage.haskell.org/package/lens-family-core lens-family-core>.+    .+    See "Network.AWS.Route53AutoNaming" or <https://aws.amazon.com/documentation/ the AWS documentation>+    to get started.++source-repository head+    type:              git+    location:          git://github.com/brendanhay/amazonka.git+    subdir:            amazonka-route53-autonaming++library+    default-language:  Haskell2010+    hs-source-dirs:    src gen++    ghc-options:+        -Wall+        -fwarn-incomplete-uni-patterns+        -fwarn-incomplete-record-updates+        -funbox-strict-fields++    exposed-modules:+          Network.AWS.Route53AutoNaming+        , Network.AWS.Route53AutoNaming.CreatePrivateDNSNamespace+        , Network.AWS.Route53AutoNaming.CreatePublicDNSNamespace+        , Network.AWS.Route53AutoNaming.CreateService+        , Network.AWS.Route53AutoNaming.DeleteNamespace+        , Network.AWS.Route53AutoNaming.DeleteService+        , Network.AWS.Route53AutoNaming.DeregisterInstance+        , Network.AWS.Route53AutoNaming.GetInstance+        , Network.AWS.Route53AutoNaming.GetInstancesHealthStatus+        , Network.AWS.Route53AutoNaming.GetNamespace+        , Network.AWS.Route53AutoNaming.GetOperation+        , Network.AWS.Route53AutoNaming.GetService+        , Network.AWS.Route53AutoNaming.ListInstances+        , Network.AWS.Route53AutoNaming.ListNamespaces+        , Network.AWS.Route53AutoNaming.ListOperations+        , Network.AWS.Route53AutoNaming.ListServices+        , Network.AWS.Route53AutoNaming.RegisterInstance+        , Network.AWS.Route53AutoNaming.Types+        , Network.AWS.Route53AutoNaming.UpdateInstanceCustomHealthStatus+        , Network.AWS.Route53AutoNaming.UpdateService+        , Network.AWS.Route53AutoNaming.Waiters++    other-modules:+          Network.AWS.Route53AutoNaming.Types.Product+        , Network.AWS.Route53AutoNaming.Types.Sum++    build-depends:+          amazonka-core == 1.6.0.*+        , base          >= 4.7     && < 5++test-suite amazonka-route53-autonaming-test+    type:              exitcode-stdio-1.0+    default-language:  Haskell2010+    hs-source-dirs:    test+    main-is:           Main.hs++    ghc-options:       -Wall -threaded++    -- This section is encoded by the template and any modules added by+    -- hand outside these namespaces will not correctly be added to the+    -- distribution package.+    other-modules:+          Test.AWS.Route53AutoNaming+        , Test.AWS.Gen.Route53AutoNaming+        , Test.AWS.Route53AutoNaming.Internal++    build-depends:+          amazonka-core == 1.6.0.*+        , amazonka-test == 1.6.0.*+        , amazonka-route53-autonaming+        , base+        , bytestring+        , tasty+        , tasty-hunit+        , text+        , time+        , unordered-containers
+ fixture/CreatePrivateDNSNamespace.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/servicediscovery/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  servicediscovery.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreatePrivateDNSNamespaceResponse.proto view
+ fixture/CreatePublicDNSNamespace.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/servicediscovery/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  servicediscovery.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreatePublicDNSNamespaceResponse.proto view
+ fixture/CreateService.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/servicediscovery/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  servicediscovery.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateServiceResponse.proto view
+ fixture/DeleteNamespace.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/servicediscovery/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  servicediscovery.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteNamespaceResponse.proto view
+ fixture/DeleteService.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/servicediscovery/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  servicediscovery.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteServiceResponse.proto view
+ fixture/DeregisterInstance.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/servicediscovery/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  servicediscovery.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeregisterInstanceResponse.proto view
+ fixture/GetInstance.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/servicediscovery/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  servicediscovery.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetInstanceResponse.proto view
+ fixture/GetInstancesHealthStatus.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/servicediscovery/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  servicediscovery.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetInstancesHealthStatusResponse.proto view
+ fixture/GetNamespace.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/servicediscovery/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  servicediscovery.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetNamespaceResponse.proto view
+ fixture/GetOperation.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/servicediscovery/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  servicediscovery.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetOperationResponse.proto view
+ fixture/GetService.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/servicediscovery/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  servicediscovery.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/GetServiceResponse.proto view
+ fixture/ListInstances.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/servicediscovery/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  servicediscovery.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListInstancesResponse.proto view
+ fixture/ListNamespaces.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/servicediscovery/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  servicediscovery.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListNamespacesResponse.proto view
+ fixture/ListOperations.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/servicediscovery/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  servicediscovery.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListOperationsResponse.proto view
+ fixture/ListServices.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/servicediscovery/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  servicediscovery.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/ListServicesResponse.proto view
+ fixture/RegisterInstance.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/servicediscovery/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  servicediscovery.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/RegisterInstanceResponse.proto view
+ fixture/UpdateInstanceCustomHealthStatus.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/servicediscovery/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  servicediscovery.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateInstanceCustomHealthStatusResponse.proto view
+ fixture/UpdateService.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/servicediscovery/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  servicediscovery.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateServiceResponse.proto view
+ gen/Network/AWS/Route53AutoNaming.hs view
@@ -0,0 +1,352 @@+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Route53AutoNaming+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Amazon Route 53 auto naming lets you configure public or private namespaces that your microservice applications run in. When instances of the service become available, you can call the auto naming API to register the instance, and Route 53 automatically creates up to five DNS records and an optional health check. Clients that submit DNS queries for the service receive an answer that contains up to eight healthy records.+--+--+module Network.AWS.Route53AutoNaming+    (+    -- * Service Configuration+      route53AutoNaming++    -- * Errors+    -- $errors++    -- ** ResourceLimitExceeded+    , _ResourceLimitExceeded++    -- ** InvalidInput+    , _InvalidInput++    -- ** NamespaceAlreadyExists+    , _NamespaceAlreadyExists++    -- ** NamespaceNotFound+    , _NamespaceNotFound++    -- ** ServiceAlreadyExists+    , _ServiceAlreadyExists++    -- ** ResourceInUse+    , _ResourceInUse++    -- ** CustomHealthNotFound+    , _CustomHealthNotFound++    -- ** InstanceNotFound+    , _InstanceNotFound++    -- ** DuplicateRequest+    , _DuplicateRequest++    -- ** ServiceNotFound+    , _ServiceNotFound++    -- ** OperationNotFound+    , _OperationNotFound++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** ListServices (Paginated)+    , module Network.AWS.Route53AutoNaming.ListServices++    -- ** DeleteService+    , module Network.AWS.Route53AutoNaming.DeleteService++    -- ** UpdateService+    , module Network.AWS.Route53AutoNaming.UpdateService++    -- ** ListOperations (Paginated)+    , module Network.AWS.Route53AutoNaming.ListOperations++    -- ** CreatePublicDNSNamespace+    , module Network.AWS.Route53AutoNaming.CreatePublicDNSNamespace++    -- ** GetInstance+    , module Network.AWS.Route53AutoNaming.GetInstance++    -- ** ListNamespaces (Paginated)+    , module Network.AWS.Route53AutoNaming.ListNamespaces++    -- ** DeleteNamespace+    , module Network.AWS.Route53AutoNaming.DeleteNamespace++    -- ** GetInstancesHealthStatus+    , module Network.AWS.Route53AutoNaming.GetInstancesHealthStatus++    -- ** GetNamespace+    , module Network.AWS.Route53AutoNaming.GetNamespace++    -- ** RegisterInstance+    , module Network.AWS.Route53AutoNaming.RegisterInstance++    -- ** ListInstances (Paginated)+    , module Network.AWS.Route53AutoNaming.ListInstances++    -- ** GetOperation+    , module Network.AWS.Route53AutoNaming.GetOperation++    -- ** UpdateInstanceCustomHealthStatus+    , module Network.AWS.Route53AutoNaming.UpdateInstanceCustomHealthStatus++    -- ** GetService+    , module Network.AWS.Route53AutoNaming.GetService++    -- ** CreatePrivateDNSNamespace+    , module Network.AWS.Route53AutoNaming.CreatePrivateDNSNamespace++    -- ** CreateService+    , module Network.AWS.Route53AutoNaming.CreateService++    -- ** DeregisterInstance+    , module Network.AWS.Route53AutoNaming.DeregisterInstance++    -- * Types++    -- ** CustomHealthStatus+    , CustomHealthStatus (..)++    -- ** FilterCondition+    , FilterCondition (..)++    -- ** HealthCheckType+    , HealthCheckType (..)++    -- ** HealthStatus+    , HealthStatus (..)++    -- ** NamespaceFilterName+    , NamespaceFilterName (..)++    -- ** NamespaceType+    , NamespaceType (..)++    -- ** OperationFilterName+    , OperationFilterName (..)++    -- ** OperationStatus+    , OperationStatus (..)++    -- ** OperationTargetType+    , OperationTargetType (..)++    -- ** OperationType+    , OperationType (..)++    -- ** RecordType+    , RecordType (..)++    -- ** RoutingPolicy+    , RoutingPolicy (..)++    -- ** ServiceFilterName+    , ServiceFilterName (..)++    -- ** DNSConfig+    , DNSConfig+    , dnsConfig+    , dcRoutingPolicy+    , dcNamespaceId+    , dcDNSRecords++    -- ** DNSConfigChange+    , DNSConfigChange+    , dnsConfigChange+    , dccDNSRecords++    -- ** DNSProperties+    , DNSProperties+    , dnsProperties+    , dpHostedZoneId++    -- ** DNSRecord+    , DNSRecord+    , dnsRecord+    , drType+    , drTTL++    -- ** HealthCheckConfig+    , HealthCheckConfig+    , healthCheckConfig+    , hccFailureThreshold+    , hccResourcePath+    , hccType++    -- ** HealthCheckCustomConfig+    , HealthCheckCustomConfig+    , healthCheckCustomConfig+    , hcccFailureThreshold++    -- ** Instance+    , Instance+    , instance'+    , iCreatorRequestId+    , iAttributes+    , iId++    -- ** InstanceSummary+    , InstanceSummary+    , instanceSummary+    , isAttributes+    , isId++    -- ** Namespace+    , Namespace+    , namespace+    , nARN+    , nCreatorRequestId+    , nCreateDate+    , nServiceCount+    , nName+    , nId+    , nType+    , nDescription+    , nProperties++    -- ** NamespaceFilter+    , NamespaceFilter+    , namespaceFilter+    , nfCondition+    , nfName+    , nfValues++    -- ** NamespaceProperties+    , NamespaceProperties+    , namespaceProperties+    , npDNSProperties++    -- ** NamespaceSummary+    , NamespaceSummary+    , namespaceSummary+    , nsARN+    , nsName+    , nsId+    , nsType++    -- ** Operation+    , Operation+    , operation+    , oStatus+    , oUpdateDate+    , oCreateDate+    , oTargets+    , oErrorCode+    , oId+    , oType+    , oErrorMessage++    -- ** OperationFilter+    , OperationFilter+    , operationFilter+    , ofCondition+    , ofName+    , ofValues++    -- ** OperationSummary+    , OperationSummary+    , operationSummary+    , osStatus+    , osId++    -- ** ServiceChange+    , ServiceChange+    , serviceChange+    , scHealthCheckConfig+    , scDescription+    , scDNSConfig++    -- ** ServiceFilter+    , ServiceFilter+    , serviceFilter+    , sfCondition+    , sfName+    , sfValues++    -- ** ServiceInfo+    , ServiceInfo+    , serviceInfo+    , siInstanceCount+    , siARN+    , siHealthCheckConfig+    , siCreatorRequestId+    , siCreateDate+    , siHealthCheckCustomConfig+    , siName+    , siId+    , siDNSConfig+    , siDescription++    -- ** ServiceSummary+    , ServiceSummary+    , serviceSummary+    , ssInstanceCount+    , ssARN+    , ssName+    , ssId+    , ssDescription+    ) where++import Network.AWS.Route53AutoNaming.CreatePrivateDNSNamespace+import Network.AWS.Route53AutoNaming.CreatePublicDNSNamespace+import Network.AWS.Route53AutoNaming.CreateService+import Network.AWS.Route53AutoNaming.DeleteNamespace+import Network.AWS.Route53AutoNaming.DeleteService+import Network.AWS.Route53AutoNaming.DeregisterInstance+import Network.AWS.Route53AutoNaming.GetInstance+import Network.AWS.Route53AutoNaming.GetInstancesHealthStatus+import Network.AWS.Route53AutoNaming.GetNamespace+import Network.AWS.Route53AutoNaming.GetOperation+import Network.AWS.Route53AutoNaming.GetService+import Network.AWS.Route53AutoNaming.ListInstances+import Network.AWS.Route53AutoNaming.ListNamespaces+import Network.AWS.Route53AutoNaming.ListOperations+import Network.AWS.Route53AutoNaming.ListServices+import Network.AWS.Route53AutoNaming.RegisterInstance+import Network.AWS.Route53AutoNaming.Types+import Network.AWS.Route53AutoNaming.UpdateInstanceCustomHealthStatus+import Network.AWS.Route53AutoNaming.UpdateService+import Network.AWS.Route53AutoNaming.Waiters++{- $errors+Error matchers are designed for use with the functions provided by+<http://hackage.haskell.org/package/lens/docs/Control-Exception-Lens.html Control.Exception.Lens>.+This allows catching (and rethrowing) service specific errors returned+by 'Route53AutoNaming'.+-}++{- $operations+Some AWS operations return results that are incomplete and require subsequent+requests in order to obtain the entire result set. The process of sending+subsequent requests to continue where a previous request left off is called+pagination. For example, the 'ListObjects' operation of Amazon S3 returns up to+1000 objects at a time, and you must send subsequent requests with the+appropriate Marker in order to retrieve the next page of results.++Operations that have an 'AWSPager' instance can transparently perform subsequent+requests, correctly setting Markers and other request facets to iterate through+the entire result set of a truncated API operation. Operations which support+this have an additional note in the documentation.++Many operations have the ability to filter results on the server side. See the+individual operation parameters for details.+-}++{- $waiters+Waiters poll by repeatedly sending a request until some remote success condition+configured by the 'Wait' specification is fulfilled. The 'Wait' specification+determines how many attempts should be made, in addition to delay and retry strategies.+-}
+ gen/Network/AWS/Route53AutoNaming/CreatePrivateDNSNamespace.hs view
@@ -0,0 +1,169 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Route53AutoNaming.CreatePrivateDNSNamespace+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a private namespace based on DNS, which will be visible only inside a specified Amazon VPC. The namespace defines your service naming scheme. For example, if you name your namespace @example.com@ and name your service @backend@ , the resulting DNS name for the service will be @backend.example.com@ . For the current limit on the number of namespaces that you can create using the same AWS account, see <http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-entities-autonaming Limits on Auto Naming> in the /Route 53 Developer Guide/ .+--+--+module Network.AWS.Route53AutoNaming.CreatePrivateDNSNamespace+    (+    -- * Creating a Request+      createPrivateDNSNamespace+    , CreatePrivateDNSNamespace+    -- * Request Lenses+    , cpdnsnCreatorRequestId+    , cpdnsnDescription+    , cpdnsnName+    , cpdnsnVPC++    -- * Destructuring the Response+    , createPrivateDNSNamespaceResponse+    , CreatePrivateDNSNamespaceResponse+    -- * Response Lenses+    , cpdnsnrsOperationId+    , cpdnsnrsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.Route53AutoNaming.Types+import Network.AWS.Route53AutoNaming.Types.Product++-- | /See:/ 'createPrivateDNSNamespace' smart constructor.+data CreatePrivateDNSNamespace = CreatePrivateDNSNamespace'+  { _cpdnsnCreatorRequestId :: !(Maybe Text)+  , _cpdnsnDescription      :: !(Maybe Text)+  , _cpdnsnName             :: !Text+  , _cpdnsnVPC              :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreatePrivateDNSNamespace' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpdnsnCreatorRequestId' - A unique string that identifies the request and that allows failed @CreatePrivateDnsNamespace@ requests to be retried without the risk of executing the operation twice. @CreatorRequestId@ can be any unique string, for example, a date/time stamp.+--+-- * 'cpdnsnDescription' - A description for the namespace.+--+-- * 'cpdnsnName' - The name that you want to assign to this namespace. When you create a namespace, Amazon Route 53 automatically creates a hosted zone that has the same name as the namespace.+--+-- * 'cpdnsnVPC' - The ID of the Amazon VPC that you want to associate the namespace with.+createPrivateDNSNamespace+    :: Text -- ^ 'cpdnsnName'+    -> Text -- ^ 'cpdnsnVPC'+    -> CreatePrivateDNSNamespace+createPrivateDNSNamespace pName_ pVPC_ =+  CreatePrivateDNSNamespace'+    { _cpdnsnCreatorRequestId = Nothing+    , _cpdnsnDescription = Nothing+    , _cpdnsnName = pName_+    , _cpdnsnVPC = pVPC_+    }+++-- | A unique string that identifies the request and that allows failed @CreatePrivateDnsNamespace@ requests to be retried without the risk of executing the operation twice. @CreatorRequestId@ can be any unique string, for example, a date/time stamp.+cpdnsnCreatorRequestId :: Lens' CreatePrivateDNSNamespace (Maybe Text)+cpdnsnCreatorRequestId = lens _cpdnsnCreatorRequestId (\ s a -> s{_cpdnsnCreatorRequestId = a})++-- | A description for the namespace.+cpdnsnDescription :: Lens' CreatePrivateDNSNamespace (Maybe Text)+cpdnsnDescription = lens _cpdnsnDescription (\ s a -> s{_cpdnsnDescription = a})++-- | The name that you want to assign to this namespace. When you create a namespace, Amazon Route 53 automatically creates a hosted zone that has the same name as the namespace.+cpdnsnName :: Lens' CreatePrivateDNSNamespace Text+cpdnsnName = lens _cpdnsnName (\ s a -> s{_cpdnsnName = a})++-- | The ID of the Amazon VPC that you want to associate the namespace with.+cpdnsnVPC :: Lens' CreatePrivateDNSNamespace Text+cpdnsnVPC = lens _cpdnsnVPC (\ s a -> s{_cpdnsnVPC = a})++instance AWSRequest CreatePrivateDNSNamespace where+        type Rs CreatePrivateDNSNamespace =+             CreatePrivateDNSNamespaceResponse+        request = postJSON route53AutoNaming+        response+          = receiveJSON+              (\ s h x ->+                 CreatePrivateDNSNamespaceResponse' <$>+                   (x .?> "OperationId") <*> (pure (fromEnum s)))++instance Hashable CreatePrivateDNSNamespace where++instance NFData CreatePrivateDNSNamespace where++instance ToHeaders CreatePrivateDNSNamespace where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("Route53AutoNaming_v20170314.CreatePrivateDnsNamespace"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreatePrivateDNSNamespace where+        toJSON CreatePrivateDNSNamespace'{..}+          = object+              (catMaybes+                 [("CreatorRequestId" .=) <$> _cpdnsnCreatorRequestId,+                  ("Description" .=) <$> _cpdnsnDescription,+                  Just ("Name" .= _cpdnsnName),+                  Just ("Vpc" .= _cpdnsnVPC)])++instance ToPath CreatePrivateDNSNamespace where+        toPath = const "/"++instance ToQuery CreatePrivateDNSNamespace where+        toQuery = const mempty++-- | /See:/ 'createPrivateDNSNamespaceResponse' smart constructor.+data CreatePrivateDNSNamespaceResponse = CreatePrivateDNSNamespaceResponse'+  { _cpdnsnrsOperationId    :: !(Maybe Text)+  , _cpdnsnrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreatePrivateDNSNamespaceResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpdnsnrsOperationId' - A value that you can use to determine whether the request completed successfully. To get the status of the operation, see 'GetOperation' .+--+-- * 'cpdnsnrsResponseStatus' - -- | The response status code.+createPrivateDNSNamespaceResponse+    :: Int -- ^ 'cpdnsnrsResponseStatus'+    -> CreatePrivateDNSNamespaceResponse+createPrivateDNSNamespaceResponse pResponseStatus_ =+  CreatePrivateDNSNamespaceResponse'+    {_cpdnsnrsOperationId = Nothing, _cpdnsnrsResponseStatus = pResponseStatus_}+++-- | A value that you can use to determine whether the request completed successfully. To get the status of the operation, see 'GetOperation' .+cpdnsnrsOperationId :: Lens' CreatePrivateDNSNamespaceResponse (Maybe Text)+cpdnsnrsOperationId = lens _cpdnsnrsOperationId (\ s a -> s{_cpdnsnrsOperationId = a})++-- | -- | The response status code.+cpdnsnrsResponseStatus :: Lens' CreatePrivateDNSNamespaceResponse Int+cpdnsnrsResponseStatus = lens _cpdnsnrsResponseStatus (\ s a -> s{_cpdnsnrsResponseStatus = a})++instance NFData CreatePrivateDNSNamespaceResponse+         where
+ gen/Network/AWS/Route53AutoNaming/CreatePublicDNSNamespace.hs view
@@ -0,0 +1,158 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Route53AutoNaming.CreatePublicDNSNamespace+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a public namespace based on DNS, which will be visible on the internet. The namespace defines your service naming scheme. For example, if you name your namespace @example.com@ and name your service @backend@ , the resulting DNS name for the service will be @backend.example.com@ . For the current limit on the number of namespaces that you can create using the same AWS account, see <http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-entities-autonaming Limits on Auto Naming> in the /Route 53 Developer Guide/ .+--+--+module Network.AWS.Route53AutoNaming.CreatePublicDNSNamespace+    (+    -- * Creating a Request+      createPublicDNSNamespace+    , CreatePublicDNSNamespace+    -- * Request Lenses+    , cpdnCreatorRequestId+    , cpdnDescription+    , cpdnName++    -- * Destructuring the Response+    , createPublicDNSNamespaceResponse+    , CreatePublicDNSNamespaceResponse+    -- * Response Lenses+    , cpdnrsOperationId+    , cpdnrsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.Route53AutoNaming.Types+import Network.AWS.Route53AutoNaming.Types.Product++-- | /See:/ 'createPublicDNSNamespace' smart constructor.+data CreatePublicDNSNamespace = CreatePublicDNSNamespace'+  { _cpdnCreatorRequestId :: !(Maybe Text)+  , _cpdnDescription      :: !(Maybe Text)+  , _cpdnName             :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreatePublicDNSNamespace' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpdnCreatorRequestId' - A unique string that identifies the request and that allows failed @CreatePublicDnsNamespace@ requests to be retried without the risk of executing the operation twice. @CreatorRequestId@ can be any unique string, for example, a date/time stamp.+--+-- * 'cpdnDescription' - A description for the namespace.+--+-- * 'cpdnName' - The name that you want to assign to this namespace.+createPublicDNSNamespace+    :: Text -- ^ 'cpdnName'+    -> CreatePublicDNSNamespace+createPublicDNSNamespace pName_ =+  CreatePublicDNSNamespace'+    { _cpdnCreatorRequestId = Nothing+    , _cpdnDescription = Nothing+    , _cpdnName = pName_+    }+++-- | A unique string that identifies the request and that allows failed @CreatePublicDnsNamespace@ requests to be retried without the risk of executing the operation twice. @CreatorRequestId@ can be any unique string, for example, a date/time stamp.+cpdnCreatorRequestId :: Lens' CreatePublicDNSNamespace (Maybe Text)+cpdnCreatorRequestId = lens _cpdnCreatorRequestId (\ s a -> s{_cpdnCreatorRequestId = a})++-- | A description for the namespace.+cpdnDescription :: Lens' CreatePublicDNSNamespace (Maybe Text)+cpdnDescription = lens _cpdnDescription (\ s a -> s{_cpdnDescription = a})++-- | The name that you want to assign to this namespace.+cpdnName :: Lens' CreatePublicDNSNamespace Text+cpdnName = lens _cpdnName (\ s a -> s{_cpdnName = a})++instance AWSRequest CreatePublicDNSNamespace where+        type Rs CreatePublicDNSNamespace =+             CreatePublicDNSNamespaceResponse+        request = postJSON route53AutoNaming+        response+          = receiveJSON+              (\ s h x ->+                 CreatePublicDNSNamespaceResponse' <$>+                   (x .?> "OperationId") <*> (pure (fromEnum s)))++instance Hashable CreatePublicDNSNamespace where++instance NFData CreatePublicDNSNamespace where++instance ToHeaders CreatePublicDNSNamespace where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("Route53AutoNaming_v20170314.CreatePublicDnsNamespace"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreatePublicDNSNamespace where+        toJSON CreatePublicDNSNamespace'{..}+          = object+              (catMaybes+                 [("CreatorRequestId" .=) <$> _cpdnCreatorRequestId,+                  ("Description" .=) <$> _cpdnDescription,+                  Just ("Name" .= _cpdnName)])++instance ToPath CreatePublicDNSNamespace where+        toPath = const "/"++instance ToQuery CreatePublicDNSNamespace where+        toQuery = const mempty++-- | /See:/ 'createPublicDNSNamespaceResponse' smart constructor.+data CreatePublicDNSNamespaceResponse = CreatePublicDNSNamespaceResponse'+  { _cpdnrsOperationId    :: !(Maybe Text)+  , _cpdnrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreatePublicDNSNamespaceResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpdnrsOperationId' - A value that you can use to determine whether the request completed successfully. To get the status of the operation, see 'GetOperation' .+--+-- * 'cpdnrsResponseStatus' - -- | The response status code.+createPublicDNSNamespaceResponse+    :: Int -- ^ 'cpdnrsResponseStatus'+    -> CreatePublicDNSNamespaceResponse+createPublicDNSNamespaceResponse pResponseStatus_ =+  CreatePublicDNSNamespaceResponse'+    {_cpdnrsOperationId = Nothing, _cpdnrsResponseStatus = pResponseStatus_}+++-- | A value that you can use to determine whether the request completed successfully. To get the status of the operation, see 'GetOperation' .+cpdnrsOperationId :: Lens' CreatePublicDNSNamespaceResponse (Maybe Text)+cpdnrsOperationId = lens _cpdnrsOperationId (\ s a -> s{_cpdnrsOperationId = a})++-- | -- | The response status code.+cpdnrsResponseStatus :: Lens' CreatePublicDNSNamespaceResponse Int+cpdnrsResponseStatus = lens _cpdnrsResponseStatus (\ s a -> s{_cpdnrsResponseStatus = a})++instance NFData CreatePublicDNSNamespaceResponse+         where
+ gen/Network/AWS/Route53AutoNaming/CreateService.hs view
@@ -0,0 +1,198 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Route53AutoNaming.CreateService+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a service, which defines the configuration for the following entities:+--+--+--     * Up to three records (A, AAAA, and SRV) or one CNAME record+--+--     * Optionally, a health check+--+--+--+-- After you create the service, you can submit a 'RegisterInstance' request, and Amazon Route 53 uses the values in the configuration to create the specified entities.+--+-- For the current limit on the number of instances that you can register using the same namespace and using the same service, see <http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-entities-autonaming Limits on Auto Naming> in the /Route 53 Developer Guide/ .+--+module Network.AWS.Route53AutoNaming.CreateService+    (+    -- * Creating a Request+      createService+    , CreateService+    -- * Request Lenses+    , csHealthCheckConfig+    , csCreatorRequestId+    , csHealthCheckCustomConfig+    , csDescription+    , csName+    , csDNSConfig++    -- * Destructuring the Response+    , createServiceResponse+    , CreateServiceResponse+    -- * Response Lenses+    , csrsService+    , csrsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.Route53AutoNaming.Types+import Network.AWS.Route53AutoNaming.Types.Product++-- | /See:/ 'createService' smart constructor.+data CreateService = CreateService'+  { _csHealthCheckConfig       :: !(Maybe HealthCheckConfig)+  , _csCreatorRequestId        :: !(Maybe Text)+  , _csHealthCheckCustomConfig :: !(Maybe HealthCheckCustomConfig)+  , _csDescription             :: !(Maybe Text)+  , _csName                    :: !Text+  , _csDNSConfig               :: !DNSConfig+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateService' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csHealthCheckConfig' - /Public DNS namespaces only./ A complex type that contains settings for an optional health check. If you specify settings for a health check, Route 53 associates the health check with all the records that you specify in @DnsConfig@ . For information about the charges for health checks, see <http://aws.amazon.com/route53/pricing Route 53 Pricing> .+--+-- * 'csCreatorRequestId' - A unique string that identifies the request and that allows failed @CreateService@ requests to be retried without the risk of executing the operation twice. @CreatorRequestId@ can be any unique string, for example, a date/time stamp.+--+-- * 'csHealthCheckCustomConfig' - Undocumented member.+--+-- * 'csDescription' - A description for the service.+--+-- * 'csName' - The name that you want to assign to the service.+--+-- * 'csDNSConfig' - A complex type that contains information about the records that you want Route 53 to create when you register an instance.+createService+    :: Text -- ^ 'csName'+    -> DNSConfig -- ^ 'csDNSConfig'+    -> CreateService+createService pName_ pDNSConfig_ =+  CreateService'+    { _csHealthCheckConfig = Nothing+    , _csCreatorRequestId = Nothing+    , _csHealthCheckCustomConfig = Nothing+    , _csDescription = Nothing+    , _csName = pName_+    , _csDNSConfig = pDNSConfig_+    }+++-- | /Public DNS namespaces only./ A complex type that contains settings for an optional health check. If you specify settings for a health check, Route 53 associates the health check with all the records that you specify in @DnsConfig@ . For information about the charges for health checks, see <http://aws.amazon.com/route53/pricing Route 53 Pricing> .+csHealthCheckConfig :: Lens' CreateService (Maybe HealthCheckConfig)+csHealthCheckConfig = lens _csHealthCheckConfig (\ s a -> s{_csHealthCheckConfig = a})++-- | A unique string that identifies the request and that allows failed @CreateService@ requests to be retried without the risk of executing the operation twice. @CreatorRequestId@ can be any unique string, for example, a date/time stamp.+csCreatorRequestId :: Lens' CreateService (Maybe Text)+csCreatorRequestId = lens _csCreatorRequestId (\ s a -> s{_csCreatorRequestId = a})++-- | Undocumented member.+csHealthCheckCustomConfig :: Lens' CreateService (Maybe HealthCheckCustomConfig)+csHealthCheckCustomConfig = lens _csHealthCheckCustomConfig (\ s a -> s{_csHealthCheckCustomConfig = a})++-- | A description for the service.+csDescription :: Lens' CreateService (Maybe Text)+csDescription = lens _csDescription (\ s a -> s{_csDescription = a})++-- | The name that you want to assign to the service.+csName :: Lens' CreateService Text+csName = lens _csName (\ s a -> s{_csName = a})++-- | A complex type that contains information about the records that you want Route 53 to create when you register an instance.+csDNSConfig :: Lens' CreateService DNSConfig+csDNSConfig = lens _csDNSConfig (\ s a -> s{_csDNSConfig = a})++instance AWSRequest CreateService where+        type Rs CreateService = CreateServiceResponse+        request = postJSON route53AutoNaming+        response+          = receiveJSON+              (\ s h x ->+                 CreateServiceResponse' <$>+                   (x .?> "Service") <*> (pure (fromEnum s)))++instance Hashable CreateService where++instance NFData CreateService where++instance ToHeaders CreateService where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("Route53AutoNaming_v20170314.CreateService" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateService where+        toJSON CreateService'{..}+          = object+              (catMaybes+                 [("HealthCheckConfig" .=) <$> _csHealthCheckConfig,+                  ("CreatorRequestId" .=) <$> _csCreatorRequestId,+                  ("HealthCheckCustomConfig" .=) <$>+                    _csHealthCheckCustomConfig,+                  ("Description" .=) <$> _csDescription,+                  Just ("Name" .= _csName),+                  Just ("DnsConfig" .= _csDNSConfig)])++instance ToPath CreateService where+        toPath = const "/"++instance ToQuery CreateService where+        toQuery = const mempty++-- | /See:/ 'createServiceResponse' smart constructor.+data CreateServiceResponse = CreateServiceResponse'+  { _csrsService        :: !(Maybe ServiceInfo)+  , _csrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateServiceResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csrsService' - A complex type that contains information about the new service.+--+-- * 'csrsResponseStatus' - -- | The response status code.+createServiceResponse+    :: Int -- ^ 'csrsResponseStatus'+    -> CreateServiceResponse+createServiceResponse pResponseStatus_ =+  CreateServiceResponse'+    {_csrsService = Nothing, _csrsResponseStatus = pResponseStatus_}+++-- | A complex type that contains information about the new service.+csrsService :: Lens' CreateServiceResponse (Maybe ServiceInfo)+csrsService = lens _csrsService (\ s a -> s{_csrsService = a})++-- | -- | The response status code.+csrsResponseStatus :: Lens' CreateServiceResponse Int+csrsResponseStatus = lens _csrsResponseStatus (\ s a -> s{_csrsResponseStatus = a})++instance NFData CreateServiceResponse where
+ gen/Network/AWS/Route53AutoNaming/DeleteNamespace.hs view
@@ -0,0 +1,131 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Route53AutoNaming.DeleteNamespace+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a namespace from the current account. If the namespace still contains one or more services, the request fails.+--+--+module Network.AWS.Route53AutoNaming.DeleteNamespace+    (+    -- * Creating a Request+      deleteNamespace+    , DeleteNamespace+    -- * Request Lenses+    , dnId++    -- * Destructuring the Response+    , deleteNamespaceResponse+    , DeleteNamespaceResponse+    -- * Response Lenses+    , dnrsOperationId+    , dnrsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.Route53AutoNaming.Types+import Network.AWS.Route53AutoNaming.Types.Product++-- | /See:/ 'deleteNamespace' smart constructor.+newtype DeleteNamespace = DeleteNamespace'+  { _dnId :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteNamespace' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dnId' - The ID of the namespace that you want to delete.+deleteNamespace+    :: Text -- ^ 'dnId'+    -> DeleteNamespace+deleteNamespace pId_ = DeleteNamespace' {_dnId = pId_}+++-- | The ID of the namespace that you want to delete.+dnId :: Lens' DeleteNamespace Text+dnId = lens _dnId (\ s a -> s{_dnId = a})++instance AWSRequest DeleteNamespace where+        type Rs DeleteNamespace = DeleteNamespaceResponse+        request = postJSON route53AutoNaming+        response+          = receiveJSON+              (\ s h x ->+                 DeleteNamespaceResponse' <$>+                   (x .?> "OperationId") <*> (pure (fromEnum s)))++instance Hashable DeleteNamespace where++instance NFData DeleteNamespace where++instance ToHeaders DeleteNamespace where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("Route53AutoNaming_v20170314.DeleteNamespace" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeleteNamespace where+        toJSON DeleteNamespace'{..}+          = object (catMaybes [Just ("Id" .= _dnId)])++instance ToPath DeleteNamespace where+        toPath = const "/"++instance ToQuery DeleteNamespace where+        toQuery = const mempty++-- | /See:/ 'deleteNamespaceResponse' smart constructor.+data DeleteNamespaceResponse = DeleteNamespaceResponse'+  { _dnrsOperationId    :: !(Maybe Text)+  , _dnrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteNamespaceResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dnrsOperationId' - A value that you can use to determine whether the request completed successfully. To get the status of the operation, see 'GetOperation' .+--+-- * 'dnrsResponseStatus' - -- | The response status code.+deleteNamespaceResponse+    :: Int -- ^ 'dnrsResponseStatus'+    -> DeleteNamespaceResponse+deleteNamespaceResponse pResponseStatus_ =+  DeleteNamespaceResponse'+    {_dnrsOperationId = Nothing, _dnrsResponseStatus = pResponseStatus_}+++-- | A value that you can use to determine whether the request completed successfully. To get the status of the operation, see 'GetOperation' .+dnrsOperationId :: Lens' DeleteNamespaceResponse (Maybe Text)+dnrsOperationId = lens _dnrsOperationId (\ s a -> s{_dnrsOperationId = a})++-- | -- | The response status code.+dnrsResponseStatus :: Lens' DeleteNamespaceResponse Int+dnrsResponseStatus = lens _dnrsResponseStatus (\ s a -> s{_dnrsResponseStatus = a})++instance NFData DeleteNamespaceResponse where
+ gen/Network/AWS/Route53AutoNaming/DeleteService.hs view
@@ -0,0 +1,121 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Route53AutoNaming.DeleteService+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes a specified service. If the service still contains one or more registered instances, the request fails.+--+--+module Network.AWS.Route53AutoNaming.DeleteService+    (+    -- * Creating a Request+      deleteService+    , DeleteService+    -- * Request Lenses+    , dsId++    -- * Destructuring the Response+    , deleteServiceResponse+    , DeleteServiceResponse+    -- * Response Lenses+    , dsrsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.Route53AutoNaming.Types+import Network.AWS.Route53AutoNaming.Types.Product++-- | /See:/ 'deleteService' smart constructor.+newtype DeleteService = DeleteService'+  { _dsId :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteService' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsId' - The ID of the service that you want to delete.+deleteService+    :: Text -- ^ 'dsId'+    -> DeleteService+deleteService pId_ = DeleteService' {_dsId = pId_}+++-- | The ID of the service that you want to delete.+dsId :: Lens' DeleteService Text+dsId = lens _dsId (\ s a -> s{_dsId = a})++instance AWSRequest DeleteService where+        type Rs DeleteService = DeleteServiceResponse+        request = postJSON route53AutoNaming+        response+          = receiveEmpty+              (\ s h x ->+                 DeleteServiceResponse' <$> (pure (fromEnum s)))++instance Hashable DeleteService where++instance NFData DeleteService where++instance ToHeaders DeleteService where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("Route53AutoNaming_v20170314.DeleteService" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeleteService where+        toJSON DeleteService'{..}+          = object (catMaybes [Just ("Id" .= _dsId)])++instance ToPath DeleteService where+        toPath = const "/"++instance ToQuery DeleteService where+        toQuery = const mempty++-- | /See:/ 'deleteServiceResponse' smart constructor.+newtype DeleteServiceResponse = DeleteServiceResponse'+  { _dsrsResponseStatus :: Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteServiceResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsrsResponseStatus' - -- | The response status code.+deleteServiceResponse+    :: Int -- ^ 'dsrsResponseStatus'+    -> DeleteServiceResponse+deleteServiceResponse pResponseStatus_ =+  DeleteServiceResponse' {_dsrsResponseStatus = pResponseStatus_}+++-- | -- | The response status code.+dsrsResponseStatus :: Lens' DeleteServiceResponse Int+dsrsResponseStatus = lens _dsrsResponseStatus (\ s a -> s{_dsrsResponseStatus = a})++instance NFData DeleteServiceResponse where
+ gen/Network/AWS/Route53AutoNaming/DeregisterInstance.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Route53AutoNaming.DeregisterInstance+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the records and the health check, if any, that Amazon Route 53 created for the specified instance.+--+--+module Network.AWS.Route53AutoNaming.DeregisterInstance+    (+    -- * Creating a Request+      deregisterInstance+    , DeregisterInstance+    -- * Request Lenses+    , diServiceId+    , diInstanceId++    -- * Destructuring the Response+    , deregisterInstanceResponse+    , DeregisterInstanceResponse+    -- * Response Lenses+    , dirsOperationId+    , dirsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.Route53AutoNaming.Types+import Network.AWS.Route53AutoNaming.Types.Product++-- | /See:/ 'deregisterInstance' smart constructor.+data DeregisterInstance = DeregisterInstance'+  { _diServiceId  :: !Text+  , _diInstanceId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeregisterInstance' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'diServiceId' - The ID of the service that the instance is associated with.+--+-- * 'diInstanceId' - The value that you specified for @Id@ in the 'RegisterInstance' request.+deregisterInstance+    :: Text -- ^ 'diServiceId'+    -> Text -- ^ 'diInstanceId'+    -> DeregisterInstance+deregisterInstance pServiceId_ pInstanceId_ =+  DeregisterInstance' {_diServiceId = pServiceId_, _diInstanceId = pInstanceId_}+++-- | The ID of the service that the instance is associated with.+diServiceId :: Lens' DeregisterInstance Text+diServiceId = lens _diServiceId (\ s a -> s{_diServiceId = a})++-- | The value that you specified for @Id@ in the 'RegisterInstance' request.+diInstanceId :: Lens' DeregisterInstance Text+diInstanceId = lens _diInstanceId (\ s a -> s{_diInstanceId = a})++instance AWSRequest DeregisterInstance where+        type Rs DeregisterInstance =+             DeregisterInstanceResponse+        request = postJSON route53AutoNaming+        response+          = receiveJSON+              (\ s h x ->+                 DeregisterInstanceResponse' <$>+                   (x .?> "OperationId") <*> (pure (fromEnum s)))++instance Hashable DeregisterInstance where++instance NFData DeregisterInstance where++instance ToHeaders DeregisterInstance where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("Route53AutoNaming_v20170314.DeregisterInstance" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeregisterInstance where+        toJSON DeregisterInstance'{..}+          = object+              (catMaybes+                 [Just ("ServiceId" .= _diServiceId),+                  Just ("InstanceId" .= _diInstanceId)])++instance ToPath DeregisterInstance where+        toPath = const "/"++instance ToQuery DeregisterInstance where+        toQuery = const mempty++-- | /See:/ 'deregisterInstanceResponse' smart constructor.+data DeregisterInstanceResponse = DeregisterInstanceResponse'+  { _dirsOperationId    :: !(Maybe Text)+  , _dirsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeregisterInstanceResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dirsOperationId' - A value that you can use to determine whether the request completed successfully. For more information, see 'GetOperation' .+--+-- * 'dirsResponseStatus' - -- | The response status code.+deregisterInstanceResponse+    :: Int -- ^ 'dirsResponseStatus'+    -> DeregisterInstanceResponse+deregisterInstanceResponse pResponseStatus_ =+  DeregisterInstanceResponse'+    {_dirsOperationId = Nothing, _dirsResponseStatus = pResponseStatus_}+++-- | A value that you can use to determine whether the request completed successfully. For more information, see 'GetOperation' .+dirsOperationId :: Lens' DeregisterInstanceResponse (Maybe Text)+dirsOperationId = lens _dirsOperationId (\ s a -> s{_dirsOperationId = a})++-- | -- | The response status code.+dirsResponseStatus :: Lens' DeregisterInstanceResponse Int+dirsResponseStatus = lens _dirsResponseStatus (\ s a -> s{_dirsResponseStatus = a})++instance NFData DeregisterInstanceResponse where
+ gen/Network/AWS/Route53AutoNaming/GetInstance.hs view
@@ -0,0 +1,144 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Route53AutoNaming.GetInstance+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets information about a specified instance.+--+--+module Network.AWS.Route53AutoNaming.GetInstance+    (+    -- * Creating a Request+      getInstance+    , GetInstance+    -- * Request Lenses+    , giServiceId+    , giInstanceId++    -- * Destructuring the Response+    , getInstanceResponse+    , GetInstanceResponse+    -- * Response Lenses+    , girsInstance+    , girsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.Route53AutoNaming.Types+import Network.AWS.Route53AutoNaming.Types.Product++-- | /See:/ 'getInstance' smart constructor.+data GetInstance = GetInstance'+  { _giServiceId  :: !Text+  , _giInstanceId :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetInstance' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'giServiceId' - The ID of the service that the instance is associated with.+--+-- * 'giInstanceId' - The ID of the instance that you want to get information about.+getInstance+    :: Text -- ^ 'giServiceId'+    -> Text -- ^ 'giInstanceId'+    -> GetInstance+getInstance pServiceId_ pInstanceId_ =+  GetInstance' {_giServiceId = pServiceId_, _giInstanceId = pInstanceId_}+++-- | The ID of the service that the instance is associated with.+giServiceId :: Lens' GetInstance Text+giServiceId = lens _giServiceId (\ s a -> s{_giServiceId = a})++-- | The ID of the instance that you want to get information about.+giInstanceId :: Lens' GetInstance Text+giInstanceId = lens _giInstanceId (\ s a -> s{_giInstanceId = a})++instance AWSRequest GetInstance where+        type Rs GetInstance = GetInstanceResponse+        request = postJSON route53AutoNaming+        response+          = receiveJSON+              (\ s h x ->+                 GetInstanceResponse' <$>+                   (x .?> "Instance") <*> (pure (fromEnum s)))++instance Hashable GetInstance where++instance NFData GetInstance where++instance ToHeaders GetInstance where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("Route53AutoNaming_v20170314.GetInstance" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetInstance where+        toJSON GetInstance'{..}+          = object+              (catMaybes+                 [Just ("ServiceId" .= _giServiceId),+                  Just ("InstanceId" .= _giInstanceId)])++instance ToPath GetInstance where+        toPath = const "/"++instance ToQuery GetInstance where+        toQuery = const mempty++-- | /See:/ 'getInstanceResponse' smart constructor.+data GetInstanceResponse = GetInstanceResponse'+  { _girsInstance       :: !(Maybe Instance)+  , _girsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetInstanceResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'girsInstance' - A complex type that contains information about a specified instance.+--+-- * 'girsResponseStatus' - -- | The response status code.+getInstanceResponse+    :: Int -- ^ 'girsResponseStatus'+    -> GetInstanceResponse+getInstanceResponse pResponseStatus_ =+  GetInstanceResponse'+    {_girsInstance = Nothing, _girsResponseStatus = pResponseStatus_}+++-- | A complex type that contains information about a specified instance.+girsInstance :: Lens' GetInstanceResponse (Maybe Instance)+girsInstance = lens _girsInstance (\ s a -> s{_girsInstance = a})++-- | -- | The response status code.+girsResponseStatus :: Lens' GetInstanceResponse Int+girsResponseStatus = lens _girsResponseStatus (\ s a -> s{_girsResponseStatus = a})++instance NFData GetInstanceResponse where
+ gen/Network/AWS/Route53AutoNaming/GetInstancesHealthStatus.hs view
@@ -0,0 +1,180 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Route53AutoNaming.GetInstancesHealthStatus+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the current health status (@Healthy@ , @Unhealthy@ , or @Unknown@ ) of one or more instances that are associated with a specified service.+--+--+module Network.AWS.Route53AutoNaming.GetInstancesHealthStatus+    (+    -- * Creating a Request+      getInstancesHealthStatus+    , GetInstancesHealthStatus+    -- * Request Lenses+    , gihsNextToken+    , gihsInstances+    , gihsMaxResults+    , gihsServiceId++    -- * Destructuring the Response+    , getInstancesHealthStatusResponse+    , GetInstancesHealthStatusResponse+    -- * Response Lenses+    , gihsrsStatus+    , gihsrsNextToken+    , gihsrsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.Route53AutoNaming.Types+import Network.AWS.Route53AutoNaming.Types.Product++-- | /See:/ 'getInstancesHealthStatus' smart constructor.+data GetInstancesHealthStatus = GetInstancesHealthStatus'+  { _gihsNextToken  :: !(Maybe Text)+  , _gihsInstances  :: !(Maybe (List1 Text))+  , _gihsMaxResults :: !(Maybe Nat)+  , _gihsServiceId  :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetInstancesHealthStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gihsNextToken' - For the first @GetInstancesHealthStatus@ request, omit this value. If more than @MaxResults@ instances match the specified criteria, you can submit another @GetInstancesHealthStatus@ request to get the next group of results. Specify the value of @NextToken@ from the previous response in the next request.+--+-- * 'gihsInstances' - An array that contains the IDs of all the instances that you want to get the health status for. If you omit @Instances@ , Amazon Route 53 returns the health status for all the instances that are associated with the specified service.+--+-- * 'gihsMaxResults' - The maximum number of instances that you want Route 53 to return in the response to a @GetInstancesHealthStatus@ request. If you don't specify a value for @MaxResults@ , Route 53 returns up to 100 instances.+--+-- * 'gihsServiceId' - The ID of the service that the instance is associated with.+getInstancesHealthStatus+    :: Text -- ^ 'gihsServiceId'+    -> GetInstancesHealthStatus+getInstancesHealthStatus pServiceId_ =+  GetInstancesHealthStatus'+    { _gihsNextToken = Nothing+    , _gihsInstances = Nothing+    , _gihsMaxResults = Nothing+    , _gihsServiceId = pServiceId_+    }+++-- | For the first @GetInstancesHealthStatus@ request, omit this value. If more than @MaxResults@ instances match the specified criteria, you can submit another @GetInstancesHealthStatus@ request to get the next group of results. Specify the value of @NextToken@ from the previous response in the next request.+gihsNextToken :: Lens' GetInstancesHealthStatus (Maybe Text)+gihsNextToken = lens _gihsNextToken (\ s a -> s{_gihsNextToken = a})++-- | An array that contains the IDs of all the instances that you want to get the health status for. If you omit @Instances@ , Amazon Route 53 returns the health status for all the instances that are associated with the specified service.+gihsInstances :: Lens' GetInstancesHealthStatus (Maybe (NonEmpty Text))+gihsInstances = lens _gihsInstances (\ s a -> s{_gihsInstances = a}) . mapping _List1++-- | The maximum number of instances that you want Route 53 to return in the response to a @GetInstancesHealthStatus@ request. If you don't specify a value for @MaxResults@ , Route 53 returns up to 100 instances.+gihsMaxResults :: Lens' GetInstancesHealthStatus (Maybe Natural)+gihsMaxResults = lens _gihsMaxResults (\ s a -> s{_gihsMaxResults = a}) . mapping _Nat++-- | The ID of the service that the instance is associated with.+gihsServiceId :: Lens' GetInstancesHealthStatus Text+gihsServiceId = lens _gihsServiceId (\ s a -> s{_gihsServiceId = a})++instance AWSRequest GetInstancesHealthStatus where+        type Rs GetInstancesHealthStatus =+             GetInstancesHealthStatusResponse+        request = postJSON route53AutoNaming+        response+          = receiveJSON+              (\ s h x ->+                 GetInstancesHealthStatusResponse' <$>+                   (x .?> "Status" .!@ mempty) <*> (x .?> "NextToken")+                     <*> (pure (fromEnum s)))++instance Hashable GetInstancesHealthStatus where++instance NFData GetInstancesHealthStatus where++instance ToHeaders GetInstancesHealthStatus where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("Route53AutoNaming_v20170314.GetInstancesHealthStatus"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetInstancesHealthStatus where+        toJSON GetInstancesHealthStatus'{..}+          = object+              (catMaybes+                 [("NextToken" .=) <$> _gihsNextToken,+                  ("Instances" .=) <$> _gihsInstances,+                  ("MaxResults" .=) <$> _gihsMaxResults,+                  Just ("ServiceId" .= _gihsServiceId)])++instance ToPath GetInstancesHealthStatus where+        toPath = const "/"++instance ToQuery GetInstancesHealthStatus where+        toQuery = const mempty++-- | /See:/ 'getInstancesHealthStatusResponse' smart constructor.+data GetInstancesHealthStatusResponse = GetInstancesHealthStatusResponse'+  { _gihsrsStatus         :: !(Maybe (Map Text HealthStatus))+  , _gihsrsNextToken      :: !(Maybe Text)+  , _gihsrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetInstancesHealthStatusResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gihsrsStatus' - A complex type that contains the IDs and the health status of the instances that you specified in the @GetInstancesHealthStatus@ request.+--+-- * 'gihsrsNextToken' - If more than @MaxResults@ instances match the specified criteria, you can submit another @GetInstancesHealthStatus@ request to get the next group of results. Specify the value of @NextToken@ from the previous response in the next request.+--+-- * 'gihsrsResponseStatus' - -- | The response status code.+getInstancesHealthStatusResponse+    :: Int -- ^ 'gihsrsResponseStatus'+    -> GetInstancesHealthStatusResponse+getInstancesHealthStatusResponse pResponseStatus_ =+  GetInstancesHealthStatusResponse'+    { _gihsrsStatus = Nothing+    , _gihsrsNextToken = Nothing+    , _gihsrsResponseStatus = pResponseStatus_+    }+++-- | A complex type that contains the IDs and the health status of the instances that you specified in the @GetInstancesHealthStatus@ request.+gihsrsStatus :: Lens' GetInstancesHealthStatusResponse (HashMap Text HealthStatus)+gihsrsStatus = lens _gihsrsStatus (\ s a -> s{_gihsrsStatus = a}) . _Default . _Map++-- | If more than @MaxResults@ instances match the specified criteria, you can submit another @GetInstancesHealthStatus@ request to get the next group of results. Specify the value of @NextToken@ from the previous response in the next request.+gihsrsNextToken :: Lens' GetInstancesHealthStatusResponse (Maybe Text)+gihsrsNextToken = lens _gihsrsNextToken (\ s a -> s{_gihsrsNextToken = a})++-- | -- | The response status code.+gihsrsResponseStatus :: Lens' GetInstancesHealthStatusResponse Int+gihsrsResponseStatus = lens _gihsrsResponseStatus (\ s a -> s{_gihsrsResponseStatus = a})++instance NFData GetInstancesHealthStatusResponse+         where
+ gen/Network/AWS/Route53AutoNaming/GetNamespace.hs view
@@ -0,0 +1,131 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Route53AutoNaming.GetNamespace+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets information about a namespace.+--+--+module Network.AWS.Route53AutoNaming.GetNamespace+    (+    -- * Creating a Request+      getNamespace+    , GetNamespace+    -- * Request Lenses+    , gnId++    -- * Destructuring the Response+    , getNamespaceResponse+    , GetNamespaceResponse+    -- * Response Lenses+    , gnrsNamespace+    , gnrsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.Route53AutoNaming.Types+import Network.AWS.Route53AutoNaming.Types.Product++-- | /See:/ 'getNamespace' smart constructor.+newtype GetNamespace = GetNamespace'+  { _gnId :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetNamespace' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gnId' - The ID of the namespace that you want to get information about.+getNamespace+    :: Text -- ^ 'gnId'+    -> GetNamespace+getNamespace pId_ = GetNamespace' {_gnId = pId_}+++-- | The ID of the namespace that you want to get information about.+gnId :: Lens' GetNamespace Text+gnId = lens _gnId (\ s a -> s{_gnId = a})++instance AWSRequest GetNamespace where+        type Rs GetNamespace = GetNamespaceResponse+        request = postJSON route53AutoNaming+        response+          = receiveJSON+              (\ s h x ->+                 GetNamespaceResponse' <$>+                   (x .?> "Namespace") <*> (pure (fromEnum s)))++instance Hashable GetNamespace where++instance NFData GetNamespace where++instance ToHeaders GetNamespace where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("Route53AutoNaming_v20170314.GetNamespace" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetNamespace where+        toJSON GetNamespace'{..}+          = object (catMaybes [Just ("Id" .= _gnId)])++instance ToPath GetNamespace where+        toPath = const "/"++instance ToQuery GetNamespace where+        toQuery = const mempty++-- | /See:/ 'getNamespaceResponse' smart constructor.+data GetNamespaceResponse = GetNamespaceResponse'+  { _gnrsNamespace      :: !(Maybe Namespace)+  , _gnrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetNamespaceResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gnrsNamespace' - A complex type that contains information about the specified namespace.+--+-- * 'gnrsResponseStatus' - -- | The response status code.+getNamespaceResponse+    :: Int -- ^ 'gnrsResponseStatus'+    -> GetNamespaceResponse+getNamespaceResponse pResponseStatus_ =+  GetNamespaceResponse'+    {_gnrsNamespace = Nothing, _gnrsResponseStatus = pResponseStatus_}+++-- | A complex type that contains information about the specified namespace.+gnrsNamespace :: Lens' GetNamespaceResponse (Maybe Namespace)+gnrsNamespace = lens _gnrsNamespace (\ s a -> s{_gnrsNamespace = a})++-- | -- | The response status code.+gnrsResponseStatus :: Lens' GetNamespaceResponse Int+gnrsResponseStatus = lens _gnrsResponseStatus (\ s a -> s{_gnrsResponseStatus = a})++instance NFData GetNamespaceResponse where
+ gen/Network/AWS/Route53AutoNaming/GetOperation.hs view
@@ -0,0 +1,132 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Route53AutoNaming.GetOperation+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets information about any operation that returns an operation ID in the response, such as a @CreateService@ request.+--+--+module Network.AWS.Route53AutoNaming.GetOperation+    (+    -- * Creating a Request+      getOperation+    , GetOperation+    -- * Request Lenses+    , goOperationId++    -- * Destructuring the Response+    , getOperationResponse+    , GetOperationResponse+    -- * Response Lenses+    , gorsOperation+    , gorsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.Route53AutoNaming.Types+import Network.AWS.Route53AutoNaming.Types.Product++-- | /See:/ 'getOperation' smart constructor.+newtype GetOperation = GetOperation'+  { _goOperationId :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetOperation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'goOperationId' - The ID of the operation that you want to get more information about.+getOperation+    :: Text -- ^ 'goOperationId'+    -> GetOperation+getOperation pOperationId_ = GetOperation' {_goOperationId = pOperationId_}+++-- | The ID of the operation that you want to get more information about.+goOperationId :: Lens' GetOperation Text+goOperationId = lens _goOperationId (\ s a -> s{_goOperationId = a})++instance AWSRequest GetOperation where+        type Rs GetOperation = GetOperationResponse+        request = postJSON route53AutoNaming+        response+          = receiveJSON+              (\ s h x ->+                 GetOperationResponse' <$>+                   (x .?> "Operation") <*> (pure (fromEnum s)))++instance Hashable GetOperation where++instance NFData GetOperation where++instance ToHeaders GetOperation where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("Route53AutoNaming_v20170314.GetOperation" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetOperation where+        toJSON GetOperation'{..}+          = object+              (catMaybes [Just ("OperationId" .= _goOperationId)])++instance ToPath GetOperation where+        toPath = const "/"++instance ToQuery GetOperation where+        toQuery = const mempty++-- | /See:/ 'getOperationResponse' smart constructor.+data GetOperationResponse = GetOperationResponse'+  { _gorsOperation      :: !(Maybe Operation)+  , _gorsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetOperationResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gorsOperation' - A complex type that contains information about the operation.+--+-- * 'gorsResponseStatus' - -- | The response status code.+getOperationResponse+    :: Int -- ^ 'gorsResponseStatus'+    -> GetOperationResponse+getOperationResponse pResponseStatus_ =+  GetOperationResponse'+    {_gorsOperation = Nothing, _gorsResponseStatus = pResponseStatus_}+++-- | A complex type that contains information about the operation.+gorsOperation :: Lens' GetOperationResponse (Maybe Operation)+gorsOperation = lens _gorsOperation (\ s a -> s{_gorsOperation = a})++-- | -- | The response status code.+gorsResponseStatus :: Lens' GetOperationResponse Int+gorsResponseStatus = lens _gorsResponseStatus (\ s a -> s{_gorsResponseStatus = a})++instance NFData GetOperationResponse where
+ gen/Network/AWS/Route53AutoNaming/GetService.hs view
@@ -0,0 +1,131 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Route53AutoNaming.GetService+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Gets the settings for a specified service.+--+--+module Network.AWS.Route53AutoNaming.GetService+    (+    -- * Creating a Request+      getService+    , GetService+    -- * Request Lenses+    , gsId++    -- * Destructuring the Response+    , getServiceResponse+    , GetServiceResponse+    -- * Response Lenses+    , gsrsService+    , gsrsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.Route53AutoNaming.Types+import Network.AWS.Route53AutoNaming.Types.Product++-- | /See:/ 'getService' smart constructor.+newtype GetService = GetService'+  { _gsId :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetService' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gsId' - The ID of the service that you want to get settings for.+getService+    :: Text -- ^ 'gsId'+    -> GetService+getService pId_ = GetService' {_gsId = pId_}+++-- | The ID of the service that you want to get settings for.+gsId :: Lens' GetService Text+gsId = lens _gsId (\ s a -> s{_gsId = a})++instance AWSRequest GetService where+        type Rs GetService = GetServiceResponse+        request = postJSON route53AutoNaming+        response+          = receiveJSON+              (\ s h x ->+                 GetServiceResponse' <$>+                   (x .?> "Service") <*> (pure (fromEnum s)))++instance Hashable GetService where++instance NFData GetService where++instance ToHeaders GetService where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("Route53AutoNaming_v20170314.GetService" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetService where+        toJSON GetService'{..}+          = object (catMaybes [Just ("Id" .= _gsId)])++instance ToPath GetService where+        toPath = const "/"++instance ToQuery GetService where+        toQuery = const mempty++-- | /See:/ 'getServiceResponse' smart constructor.+data GetServiceResponse = GetServiceResponse'+  { _gsrsService        :: !(Maybe ServiceInfo)+  , _gsrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'GetServiceResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'gsrsService' - A complex type that contains information about the service.+--+-- * 'gsrsResponseStatus' - -- | The response status code.+getServiceResponse+    :: Int -- ^ 'gsrsResponseStatus'+    -> GetServiceResponse+getServiceResponse pResponseStatus_ =+  GetServiceResponse'+    {_gsrsService = Nothing, _gsrsResponseStatus = pResponseStatus_}+++-- | A complex type that contains information about the service.+gsrsService :: Lens' GetServiceResponse (Maybe ServiceInfo)+gsrsService = lens _gsrsService (\ s a -> s{_gsrsService = a})++-- | -- | The response status code.+gsrsResponseStatus :: Lens' GetServiceResponse Int+gsrsResponseStatus = lens _gsrsResponseStatus (\ s a -> s{_gsrsResponseStatus = a})++instance NFData GetServiceResponse where
+ gen/Network/AWS/Route53AutoNaming/ListInstances.hs view
@@ -0,0 +1,179 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Route53AutoNaming.ListInstances+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists summary information about the instances that you registered by using a specified service.+--+--+--+-- This operation returns paginated results.+module Network.AWS.Route53AutoNaming.ListInstances+    (+    -- * Creating a Request+      listInstances+    , ListInstances+    -- * Request Lenses+    , liNextToken+    , liMaxResults+    , liServiceId++    -- * Destructuring the Response+    , listInstancesResponse+    , ListInstancesResponse+    -- * Response Lenses+    , lirsNextToken+    , lirsInstances+    , lirsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.Route53AutoNaming.Types+import Network.AWS.Route53AutoNaming.Types.Product++-- | /See:/ 'listInstances' smart constructor.+data ListInstances = ListInstances'+  { _liNextToken  :: !(Maybe Text)+  , _liMaxResults :: !(Maybe Nat)+  , _liServiceId  :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListInstances' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'liNextToken' - For the first @ListInstances@ request, omit this value. If more than @MaxResults@ instances match the specified criteria, you can submit another @ListInstances@ request to get the next group of results. Specify the value of @NextToken@ from the previous response in the next request.+--+-- * 'liMaxResults' - The maximum number of instances that you want Amazon Route 53 to return in the response to a @ListInstances@ request. If you don't specify a value for @MaxResults@ , Route 53 returns up to 100 instances.+--+-- * 'liServiceId' - The ID of the service that you want to list instances for.+listInstances+    :: Text -- ^ 'liServiceId'+    -> ListInstances+listInstances pServiceId_ =+  ListInstances'+    { _liNextToken = Nothing+    , _liMaxResults = Nothing+    , _liServiceId = pServiceId_+    }+++-- | For the first @ListInstances@ request, omit this value. If more than @MaxResults@ instances match the specified criteria, you can submit another @ListInstances@ request to get the next group of results. Specify the value of @NextToken@ from the previous response in the next request.+liNextToken :: Lens' ListInstances (Maybe Text)+liNextToken = lens _liNextToken (\ s a -> s{_liNextToken = a})++-- | The maximum number of instances that you want Amazon Route 53 to return in the response to a @ListInstances@ request. If you don't specify a value for @MaxResults@ , Route 53 returns up to 100 instances.+liMaxResults :: Lens' ListInstances (Maybe Natural)+liMaxResults = lens _liMaxResults (\ s a -> s{_liMaxResults = a}) . mapping _Nat++-- | The ID of the service that you want to list instances for.+liServiceId :: Lens' ListInstances Text+liServiceId = lens _liServiceId (\ s a -> s{_liServiceId = a})++instance AWSPager ListInstances where+        page rq rs+          | stop (rs ^. lirsNextToken) = Nothing+          | stop (rs ^. lirsInstances) = Nothing+          | otherwise =+            Just $ rq & liNextToken .~ rs ^. lirsNextToken++instance AWSRequest ListInstances where+        type Rs ListInstances = ListInstancesResponse+        request = postJSON route53AutoNaming+        response+          = receiveJSON+              (\ s h x ->+                 ListInstancesResponse' <$>+                   (x .?> "NextToken") <*>+                     (x .?> "Instances" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance Hashable ListInstances where++instance NFData ListInstances where++instance ToHeaders ListInstances where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("Route53AutoNaming_v20170314.ListInstances" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListInstances where+        toJSON ListInstances'{..}+          = object+              (catMaybes+                 [("NextToken" .=) <$> _liNextToken,+                  ("MaxResults" .=) <$> _liMaxResults,+                  Just ("ServiceId" .= _liServiceId)])++instance ToPath ListInstances where+        toPath = const "/"++instance ToQuery ListInstances where+        toQuery = const mempty++-- | /See:/ 'listInstancesResponse' smart constructor.+data ListInstancesResponse = ListInstancesResponse'+  { _lirsNextToken      :: !(Maybe Text)+  , _lirsInstances      :: !(Maybe [InstanceSummary])+  , _lirsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListInstancesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lirsNextToken' - If more than @MaxResults@ instances match the specified criteria, you can submit another @ListInstances@ request to get the next group of results. Specify the value of @NextToken@ from the previous response in the next request.+--+-- * 'lirsInstances' - Summary information about the instances that are associated with the specified service.+--+-- * 'lirsResponseStatus' - -- | The response status code.+listInstancesResponse+    :: Int -- ^ 'lirsResponseStatus'+    -> ListInstancesResponse+listInstancesResponse pResponseStatus_ =+  ListInstancesResponse'+    { _lirsNextToken = Nothing+    , _lirsInstances = Nothing+    , _lirsResponseStatus = pResponseStatus_+    }+++-- | If more than @MaxResults@ instances match the specified criteria, you can submit another @ListInstances@ request to get the next group of results. Specify the value of @NextToken@ from the previous response in the next request.+lirsNextToken :: Lens' ListInstancesResponse (Maybe Text)+lirsNextToken = lens _lirsNextToken (\ s a -> s{_lirsNextToken = a})++-- | Summary information about the instances that are associated with the specified service.+lirsInstances :: Lens' ListInstancesResponse [InstanceSummary]+lirsInstances = lens _lirsInstances (\ s a -> s{_lirsInstances = a}) . _Default . _Coerce++-- | -- | The response status code.+lirsResponseStatus :: Lens' ListInstancesResponse Int+lirsResponseStatus = lens _lirsResponseStatus (\ s a -> s{_lirsResponseStatus = a})++instance NFData ListInstancesResponse where
+ gen/Network/AWS/Route53AutoNaming/ListNamespaces.hs view
@@ -0,0 +1,175 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Route53AutoNaming.ListNamespaces+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists summary information about the namespaces that were created by the current AWS account.+--+--+--+-- This operation returns paginated results.+module Network.AWS.Route53AutoNaming.ListNamespaces+    (+    -- * Creating a Request+      listNamespaces+    , ListNamespaces+    -- * Request Lenses+    , lnFilters+    , lnNextToken+    , lnMaxResults++    -- * Destructuring the Response+    , listNamespacesResponse+    , ListNamespacesResponse+    -- * Response Lenses+    , lnrsNamespaces+    , lnrsNextToken+    , lnrsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.Route53AutoNaming.Types+import Network.AWS.Route53AutoNaming.Types.Product++-- | /See:/ 'listNamespaces' smart constructor.+data ListNamespaces = ListNamespaces'+  { _lnFilters    :: !(Maybe [NamespaceFilter])+  , _lnNextToken  :: !(Maybe Text)+  , _lnMaxResults :: !(Maybe Nat)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListNamespaces' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lnFilters' - A complex type that contains specifications for the namespaces that you want to list. If you specify more than one filter, a namespace must match all filters to be returned by @ListNamespaces@ .+--+-- * 'lnNextToken' - For the first @ListNamespaces@ request, omit this value. If the response contains @NextToken@ , submit another @ListNamespaces@ request to get the next group of results. Specify the value of @NextToken@ from the previous response in the next request.+--+-- * 'lnMaxResults' - The maximum number of namespaces that you want Amazon Route 53 to return in the response to a @ListNamespaces@ request. If you don't specify a value for @MaxResults@ , Route 53 returns up to 100 namespaces.+listNamespaces+    :: ListNamespaces+listNamespaces =+  ListNamespaces'+    {_lnFilters = Nothing, _lnNextToken = Nothing, _lnMaxResults = Nothing}+++-- | A complex type that contains specifications for the namespaces that you want to list. If you specify more than one filter, a namespace must match all filters to be returned by @ListNamespaces@ .+lnFilters :: Lens' ListNamespaces [NamespaceFilter]+lnFilters = lens _lnFilters (\ s a -> s{_lnFilters = a}) . _Default . _Coerce++-- | For the first @ListNamespaces@ request, omit this value. If the response contains @NextToken@ , submit another @ListNamespaces@ request to get the next group of results. Specify the value of @NextToken@ from the previous response in the next request.+lnNextToken :: Lens' ListNamespaces (Maybe Text)+lnNextToken = lens _lnNextToken (\ s a -> s{_lnNextToken = a})++-- | The maximum number of namespaces that you want Amazon Route 53 to return in the response to a @ListNamespaces@ request. If you don't specify a value for @MaxResults@ , Route 53 returns up to 100 namespaces.+lnMaxResults :: Lens' ListNamespaces (Maybe Natural)+lnMaxResults = lens _lnMaxResults (\ s a -> s{_lnMaxResults = a}) . mapping _Nat++instance AWSPager ListNamespaces where+        page rq rs+          | stop (rs ^. lnrsNextToken) = Nothing+          | stop (rs ^. lnrsNamespaces) = Nothing+          | otherwise =+            Just $ rq & lnNextToken .~ rs ^. lnrsNextToken++instance AWSRequest ListNamespaces where+        type Rs ListNamespaces = ListNamespacesResponse+        request = postJSON route53AutoNaming+        response+          = receiveJSON+              (\ s h x ->+                 ListNamespacesResponse' <$>+                   (x .?> "Namespaces" .!@ mempty) <*>+                     (x .?> "NextToken")+                     <*> (pure (fromEnum s)))++instance Hashable ListNamespaces where++instance NFData ListNamespaces where++instance ToHeaders ListNamespaces where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("Route53AutoNaming_v20170314.ListNamespaces" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListNamespaces where+        toJSON ListNamespaces'{..}+          = object+              (catMaybes+                 [("Filters" .=) <$> _lnFilters,+                  ("NextToken" .=) <$> _lnNextToken,+                  ("MaxResults" .=) <$> _lnMaxResults])++instance ToPath ListNamespaces where+        toPath = const "/"++instance ToQuery ListNamespaces where+        toQuery = const mempty++-- | /See:/ 'listNamespacesResponse' smart constructor.+data ListNamespacesResponse = ListNamespacesResponse'+  { _lnrsNamespaces     :: !(Maybe [NamespaceSummary])+  , _lnrsNextToken      :: !(Maybe Text)+  , _lnrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListNamespacesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lnrsNamespaces' - An array that contains one @NamespaceSummary@ object for each namespace that matches the specified filter criteria.+--+-- * 'lnrsNextToken' - If the response contains @NextToken@ , submit another @ListNamespaces@ request to get the next group of results. Specify the value of @NextToken@ from the previous response in the next request.+--+-- * 'lnrsResponseStatus' - -- | The response status code.+listNamespacesResponse+    :: Int -- ^ 'lnrsResponseStatus'+    -> ListNamespacesResponse+listNamespacesResponse pResponseStatus_ =+  ListNamespacesResponse'+    { _lnrsNamespaces = Nothing+    , _lnrsNextToken = Nothing+    , _lnrsResponseStatus = pResponseStatus_+    }+++-- | An array that contains one @NamespaceSummary@ object for each namespace that matches the specified filter criteria.+lnrsNamespaces :: Lens' ListNamespacesResponse [NamespaceSummary]+lnrsNamespaces = lens _lnrsNamespaces (\ s a -> s{_lnrsNamespaces = a}) . _Default . _Coerce++-- | If the response contains @NextToken@ , submit another @ListNamespaces@ request to get the next group of results. Specify the value of @NextToken@ from the previous response in the next request.+lnrsNextToken :: Lens' ListNamespacesResponse (Maybe Text)+lnrsNextToken = lens _lnrsNextToken (\ s a -> s{_lnrsNextToken = a})++-- | -- | The response status code.+lnrsResponseStatus :: Lens' ListNamespacesResponse Int+lnrsResponseStatus = lens _lnrsResponseStatus (\ s a -> s{_lnrsResponseStatus = a})++instance NFData ListNamespacesResponse where
+ gen/Network/AWS/Route53AutoNaming/ListOperations.hs view
@@ -0,0 +1,175 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Route53AutoNaming.ListOperations+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists operations that match the criteria that you specify.+--+--+--+-- This operation returns paginated results.+module Network.AWS.Route53AutoNaming.ListOperations+    (+    -- * Creating a Request+      listOperations+    , ListOperations+    -- * Request Lenses+    , loFilters+    , loNextToken+    , loMaxResults++    -- * Destructuring the Response+    , listOperationsResponse+    , ListOperationsResponse+    -- * Response Lenses+    , lorsNextToken+    , lorsOperations+    , lorsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.Route53AutoNaming.Types+import Network.AWS.Route53AutoNaming.Types.Product++-- | /See:/ 'listOperations' smart constructor.+data ListOperations = ListOperations'+  { _loFilters    :: !(Maybe [OperationFilter])+  , _loNextToken  :: !(Maybe Text)+  , _loMaxResults :: !(Maybe Nat)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListOperations' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'loFilters' - A complex type that contains specifications for the operations that you want to list, for example, operations that you started between a specified start date and end date. If you specify more than one filter, an operation must match all filters to be returned by @ListOperations@ .+--+-- * 'loNextToken' - For the first @ListOperations@ request, omit this value. If the response contains @NextToken@ , submit another @ListOperations@ request to get the next group of results. Specify the value of @NextToken@ from the previous response in the next request.+--+-- * 'loMaxResults' - The maximum number of items that you want Amazon Route 53 to return in the response to a @ListOperations@ request. If you don't specify a value for @MaxResults@ , Route 53 returns up to 100 operations.+listOperations+    :: ListOperations+listOperations =+  ListOperations'+    {_loFilters = Nothing, _loNextToken = Nothing, _loMaxResults = Nothing}+++-- | A complex type that contains specifications for the operations that you want to list, for example, operations that you started between a specified start date and end date. If you specify more than one filter, an operation must match all filters to be returned by @ListOperations@ .+loFilters :: Lens' ListOperations [OperationFilter]+loFilters = lens _loFilters (\ s a -> s{_loFilters = a}) . _Default . _Coerce++-- | For the first @ListOperations@ request, omit this value. If the response contains @NextToken@ , submit another @ListOperations@ request to get the next group of results. Specify the value of @NextToken@ from the previous response in the next request.+loNextToken :: Lens' ListOperations (Maybe Text)+loNextToken = lens _loNextToken (\ s a -> s{_loNextToken = a})++-- | The maximum number of items that you want Amazon Route 53 to return in the response to a @ListOperations@ request. If you don't specify a value for @MaxResults@ , Route 53 returns up to 100 operations.+loMaxResults :: Lens' ListOperations (Maybe Natural)+loMaxResults = lens _loMaxResults (\ s a -> s{_loMaxResults = a}) . mapping _Nat++instance AWSPager ListOperations where+        page rq rs+          | stop (rs ^. lorsNextToken) = Nothing+          | stop (rs ^. lorsOperations) = Nothing+          | otherwise =+            Just $ rq & loNextToken .~ rs ^. lorsNextToken++instance AWSRequest ListOperations where+        type Rs ListOperations = ListOperationsResponse+        request = postJSON route53AutoNaming+        response+          = receiveJSON+              (\ s h x ->+                 ListOperationsResponse' <$>+                   (x .?> "NextToken") <*>+                     (x .?> "Operations" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance Hashable ListOperations where++instance NFData ListOperations where++instance ToHeaders ListOperations where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("Route53AutoNaming_v20170314.ListOperations" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListOperations where+        toJSON ListOperations'{..}+          = object+              (catMaybes+                 [("Filters" .=) <$> _loFilters,+                  ("NextToken" .=) <$> _loNextToken,+                  ("MaxResults" .=) <$> _loMaxResults])++instance ToPath ListOperations where+        toPath = const "/"++instance ToQuery ListOperations where+        toQuery = const mempty++-- | /See:/ 'listOperationsResponse' smart constructor.+data ListOperationsResponse = ListOperationsResponse'+  { _lorsNextToken      :: !(Maybe Text)+  , _lorsOperations     :: !(Maybe [OperationSummary])+  , _lorsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListOperationsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lorsNextToken' - If the response contains @NextToken@ , submit another @ListOperations@ request to get the next group of results. Specify the value of @NextToken@ from the previous response in the next request.+--+-- * 'lorsOperations' - Summary information about the operations that match the specified criteria.+--+-- * 'lorsResponseStatus' - -- | The response status code.+listOperationsResponse+    :: Int -- ^ 'lorsResponseStatus'+    -> ListOperationsResponse+listOperationsResponse pResponseStatus_ =+  ListOperationsResponse'+    { _lorsNextToken = Nothing+    , _lorsOperations = Nothing+    , _lorsResponseStatus = pResponseStatus_+    }+++-- | If the response contains @NextToken@ , submit another @ListOperations@ request to get the next group of results. Specify the value of @NextToken@ from the previous response in the next request.+lorsNextToken :: Lens' ListOperationsResponse (Maybe Text)+lorsNextToken = lens _lorsNextToken (\ s a -> s{_lorsNextToken = a})++-- | Summary information about the operations that match the specified criteria.+lorsOperations :: Lens' ListOperationsResponse [OperationSummary]+lorsOperations = lens _lorsOperations (\ s a -> s{_lorsOperations = a}) . _Default . _Coerce++-- | -- | The response status code.+lorsResponseStatus :: Lens' ListOperationsResponse Int+lorsResponseStatus = lens _lorsResponseStatus (\ s a -> s{_lorsResponseStatus = a})++instance NFData ListOperationsResponse where
+ gen/Network/AWS/Route53AutoNaming/ListServices.hs view
@@ -0,0 +1,174 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Route53AutoNaming.ListServices+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Lists summary information for all the services that are associated with one or more specified namespaces.+--+--+--+-- This operation returns paginated results.+module Network.AWS.Route53AutoNaming.ListServices+    (+    -- * Creating a Request+      listServices+    , ListServices+    -- * Request Lenses+    , lsFilters+    , lsNextToken+    , lsMaxResults++    -- * Destructuring the Response+    , listServicesResponse+    , ListServicesResponse+    -- * Response Lenses+    , lsrsNextToken+    , lsrsServices+    , lsrsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.Pager+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.Route53AutoNaming.Types+import Network.AWS.Route53AutoNaming.Types.Product++-- | /See:/ 'listServices' smart constructor.+data ListServices = ListServices'+  { _lsFilters    :: !(Maybe [ServiceFilter])+  , _lsNextToken  :: !(Maybe Text)+  , _lsMaxResults :: !(Maybe Nat)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListServices' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lsFilters' - A complex type that contains specifications for the namespaces that you want to list services for.  If you specify more than one filter, an operation must match all filters to be returned by @ListServices@ .+--+-- * 'lsNextToken' - For the first @ListServices@ request, omit this value. If the response contains @NextToken@ , submit another @ListServices@ request to get the next group of results. Specify the value of @NextToken@ from the previous response in the next request.+--+-- * 'lsMaxResults' - The maximum number of services that you want Amazon Route 53 to return in the response to a @ListServices@ request. If you don't specify a value for @MaxResults@ , Route 53 returns up to 100 services.+listServices+    :: ListServices+listServices =+  ListServices'+    {_lsFilters = Nothing, _lsNextToken = Nothing, _lsMaxResults = Nothing}+++-- | A complex type that contains specifications for the namespaces that you want to list services for.  If you specify more than one filter, an operation must match all filters to be returned by @ListServices@ .+lsFilters :: Lens' ListServices [ServiceFilter]+lsFilters = lens _lsFilters (\ s a -> s{_lsFilters = a}) . _Default . _Coerce++-- | For the first @ListServices@ request, omit this value. If the response contains @NextToken@ , submit another @ListServices@ request to get the next group of results. Specify the value of @NextToken@ from the previous response in the next request.+lsNextToken :: Lens' ListServices (Maybe Text)+lsNextToken = lens _lsNextToken (\ s a -> s{_lsNextToken = a})++-- | The maximum number of services that you want Amazon Route 53 to return in the response to a @ListServices@ request. If you don't specify a value for @MaxResults@ , Route 53 returns up to 100 services.+lsMaxResults :: Lens' ListServices (Maybe Natural)+lsMaxResults = lens _lsMaxResults (\ s a -> s{_lsMaxResults = a}) . mapping _Nat++instance AWSPager ListServices where+        page rq rs+          | stop (rs ^. lsrsNextToken) = Nothing+          | stop (rs ^. lsrsServices) = Nothing+          | otherwise =+            Just $ rq & lsNextToken .~ rs ^. lsrsNextToken++instance AWSRequest ListServices where+        type Rs ListServices = ListServicesResponse+        request = postJSON route53AutoNaming+        response+          = receiveJSON+              (\ s h x ->+                 ListServicesResponse' <$>+                   (x .?> "NextToken") <*> (x .?> "Services" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance Hashable ListServices where++instance NFData ListServices where++instance ToHeaders ListServices where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("Route53AutoNaming_v20170314.ListServices" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListServices where+        toJSON ListServices'{..}+          = object+              (catMaybes+                 [("Filters" .=) <$> _lsFilters,+                  ("NextToken" .=) <$> _lsNextToken,+                  ("MaxResults" .=) <$> _lsMaxResults])++instance ToPath ListServices where+        toPath = const "/"++instance ToQuery ListServices where+        toQuery = const mempty++-- | /See:/ 'listServicesResponse' smart constructor.+data ListServicesResponse = ListServicesResponse'+  { _lsrsNextToken      :: !(Maybe Text)+  , _lsrsServices       :: !(Maybe [ServiceSummary])+  , _lsrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListServicesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lsrsNextToken' - If the response contains @NextToken@ , submit another @ListServices@ request to get the next group of results. Specify the value of @NextToken@ from the previous response in the next request.+--+-- * 'lsrsServices' - An array that contains one @ServiceSummary@ object for each service that matches the specified filter criteria.+--+-- * 'lsrsResponseStatus' - -- | The response status code.+listServicesResponse+    :: Int -- ^ 'lsrsResponseStatus'+    -> ListServicesResponse+listServicesResponse pResponseStatus_ =+  ListServicesResponse'+    { _lsrsNextToken = Nothing+    , _lsrsServices = Nothing+    , _lsrsResponseStatus = pResponseStatus_+    }+++-- | If the response contains @NextToken@ , submit another @ListServices@ request to get the next group of results. Specify the value of @NextToken@ from the previous response in the next request.+lsrsNextToken :: Lens' ListServicesResponse (Maybe Text)+lsrsNextToken = lens _lsrsNextToken (\ s a -> s{_lsrsNextToken = a})++-- | An array that contains one @ServiceSummary@ object for each service that matches the specified filter criteria.+lsrsServices :: Lens' ListServicesResponse [ServiceSummary]+lsrsServices = lens _lsrsServices (\ s a -> s{_lsrsServices = a}) . _Default . _Coerce++-- | -- | The response status code.+lsrsResponseStatus :: Lens' ListServicesResponse Int+lsrsResponseStatus = lens _lsrsResponseStatus (\ s a -> s{_lsrsResponseStatus = a})++instance NFData ListServicesResponse where
+ gen/Network/AWS/Route53AutoNaming/RegisterInstance.hs view
@@ -0,0 +1,191 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Route53AutoNaming.RegisterInstance+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates or updates one or more records and optionally a health check based on the settings in a specified service. When you submit a @RegisterInstance@ request, Amazon Route 53 does the following:+--+--+--     * For each DNS record that you define in the service specified by @ServiceId@ , creates or updates a record in the hosted zone that is associated with the corresponding namespace+--+--     * If the service includes @HealthCheckConfig@ , creates or updates a health check based on the settings in the health check configuration+--+--     * Associates the health check, if any, with each of the records+--+--+--+-- /Important:/ One @RegisterInstance@ request must complete before you can submit another request and specify the same service ID and instance ID.+--+-- For more information, see 'CreateService' .+--+-- When Route 53 receives a DNS query for the specified DNS name, it returns the applicable value:+--+--     * __If the health check is healthy__ : returns all the records+--+--     * __If the health check is unhealthy__ : returns the applicable value for the last healthy instance+--+--     * __If you didn't specify a health check configuration__ : returns all the records+--+--+--+-- For the current limit on the number of instances that you can register using the same namespace and using the same service, see <http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/DNSLimitations.html#limits-api-entities-autonaming Limits on Auto Naming> in the /Route 53 Developer Guide/ .+--+module Network.AWS.Route53AutoNaming.RegisterInstance+    (+    -- * Creating a Request+      registerInstance+    , RegisterInstance+    -- * Request Lenses+    , riCreatorRequestId+    , riServiceId+    , riInstanceId+    , riAttributes++    -- * Destructuring the Response+    , registerInstanceResponse+    , RegisterInstanceResponse+    -- * Response Lenses+    , rirsOperationId+    , rirsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.Route53AutoNaming.Types+import Network.AWS.Route53AutoNaming.Types.Product++-- | /See:/ 'registerInstance' smart constructor.+data RegisterInstance = RegisterInstance'+  { _riCreatorRequestId :: !(Maybe Text)+  , _riServiceId        :: !Text+  , _riInstanceId       :: !Text+  , _riAttributes       :: !(Map Text Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RegisterInstance' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'riCreatorRequestId' - A unique string that identifies the request and that allows failed @RegisterInstance@ requests to be retried without the risk of executing the operation twice. You must use a unique @CreatorRequestId@ string every time you submit a @RegisterInstance@ request if you're registering additional instances for the same namespace and service. @CreatorRequestId@ can be any unique string, for example, a date/time stamp.+--+-- * 'riServiceId' - The ID of the service that you want to use for settings for the records and health check that Route 53 will create.+--+-- * 'riInstanceId' - An identifier that you want to associate with the instance. Note the following:     * If the service that is specified by @ServiceId@ includes settings for an SRV record, the value of @InstanceId@ is automatically included as part of the value for the SRV record. For more information, see 'DnsRecord$Type' .     * You can use this value to update an existing instance.     * To register a new instance, you must specify a value that is unique among instances that you register by using the same service.      * If you specify an existing @InstanceId@ and @ServiceId@ , Route 53 updates the existing records. If there's also an existing health check, Route 53 deletes the old health check and creates a new one.+--+-- * 'riAttributes' - A string map that contains the following information for the service that you specify in @ServiceId@ :     * The attributes that apply to the records that are defined in the service.      * For each attribute, the applicable value. Supported attribute keys include the following: __AWS_ALIAS_DNS_NAME__  ____  If you want Route 53 to create an alias record that routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that is associated with the load balancer. For information about how to get the DNS name, see "DNSName" in the topic <http://docs.aws.amazon.com/http:/docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html AliasTarget> . Note the following:     * The configuration for the service that is specified by @ServiceId@ must include settings for an A record, an AAAA record, or both.     * In the service that is specified by @ServiceId@ , the value of @RoutingPolicy@ must be @WEIGHTED@ .     * If the service that is specified by @ServiceId@ includes @HealthCheckConfig@ settings, Route 53 will create the health check, but it won't associate the health check with the alias record.     * Auto naming currently doesn't support creating alias records that route traffic to AWS resources other than ELB load balancers.     * If you specify a value for @AWS_ALIAS_DNS_NAME@ , don't specify values for any of the @AWS_INSTANCE@ attributes. __AWS_INSTANCE_CNAME__  If the service configuration includes a CNAME record, the domain name that you want Route 53 to return in response to DNS queries, for example, @example.com@ . This value is required if the service specified by @ServiceId@ includes settings for an CNAME record. __AWS_INSTANCE_IPV4__  If the service configuration includes an A record, the IPv4 address that you want Route 53 to return in response to DNS queries, for example, @192.0.2.44@ . This value is required if the service specified by @ServiceId@ includes settings for an A record. If the service includes settings for an SRV record, you must specify a value for @AWS_INSTANCE_IPV4@ , @AWS_INSTANCE_IPV6@ , or both. __AWS_INSTANCE_IPV6__  If the service configuration includes an AAAA record, the IPv6 address that you want Route 53 to return in response to DNS queries, for example, @2001:0db8:85a3:0000:0000:abcd:0001:2345@ . This value is required if the service specified by @ServiceId@ includes settings for an AAAA record. If the service includes settings for an SRV record, you must specify a value for @AWS_INSTANCE_IPV4@ , @AWS_INSTANCE_IPV6@ , or both. __AWS_INSTANCE_PORT__  If the service includes an SRV record, the value that you want Route 53 to return for the port. If the service includes @HealthCheckConfig@ , the port on the endpoint that you want Route 53 to send requests to.  This value is required if you specified settings for an SRV record when you created the service.+registerInstance+    :: Text -- ^ 'riServiceId'+    -> Text -- ^ 'riInstanceId'+    -> RegisterInstance+registerInstance pServiceId_ pInstanceId_ =+  RegisterInstance'+    { _riCreatorRequestId = Nothing+    , _riServiceId = pServiceId_+    , _riInstanceId = pInstanceId_+    , _riAttributes = mempty+    }+++-- | A unique string that identifies the request and that allows failed @RegisterInstance@ requests to be retried without the risk of executing the operation twice. You must use a unique @CreatorRequestId@ string every time you submit a @RegisterInstance@ request if you're registering additional instances for the same namespace and service. @CreatorRequestId@ can be any unique string, for example, a date/time stamp.+riCreatorRequestId :: Lens' RegisterInstance (Maybe Text)+riCreatorRequestId = lens _riCreatorRequestId (\ s a -> s{_riCreatorRequestId = a})++-- | The ID of the service that you want to use for settings for the records and health check that Route 53 will create.+riServiceId :: Lens' RegisterInstance Text+riServiceId = lens _riServiceId (\ s a -> s{_riServiceId = a})++-- | An identifier that you want to associate with the instance. Note the following:     * If the service that is specified by @ServiceId@ includes settings for an SRV record, the value of @InstanceId@ is automatically included as part of the value for the SRV record. For more information, see 'DnsRecord$Type' .     * You can use this value to update an existing instance.     * To register a new instance, you must specify a value that is unique among instances that you register by using the same service.      * If you specify an existing @InstanceId@ and @ServiceId@ , Route 53 updates the existing records. If there's also an existing health check, Route 53 deletes the old health check and creates a new one.+riInstanceId :: Lens' RegisterInstance Text+riInstanceId = lens _riInstanceId (\ s a -> s{_riInstanceId = a})++-- | A string map that contains the following information for the service that you specify in @ServiceId@ :     * The attributes that apply to the records that are defined in the service.      * For each attribute, the applicable value. Supported attribute keys include the following: __AWS_ALIAS_DNS_NAME__  ____  If you want Route 53 to create an alias record that routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that is associated with the load balancer. For information about how to get the DNS name, see "DNSName" in the topic <http://docs.aws.amazon.com/http:/docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html AliasTarget> . Note the following:     * The configuration for the service that is specified by @ServiceId@ must include settings for an A record, an AAAA record, or both.     * In the service that is specified by @ServiceId@ , the value of @RoutingPolicy@ must be @WEIGHTED@ .     * If the service that is specified by @ServiceId@ includes @HealthCheckConfig@ settings, Route 53 will create the health check, but it won't associate the health check with the alias record.     * Auto naming currently doesn't support creating alias records that route traffic to AWS resources other than ELB load balancers.     * If you specify a value for @AWS_ALIAS_DNS_NAME@ , don't specify values for any of the @AWS_INSTANCE@ attributes. __AWS_INSTANCE_CNAME__  If the service configuration includes a CNAME record, the domain name that you want Route 53 to return in response to DNS queries, for example, @example.com@ . This value is required if the service specified by @ServiceId@ includes settings for an CNAME record. __AWS_INSTANCE_IPV4__  If the service configuration includes an A record, the IPv4 address that you want Route 53 to return in response to DNS queries, for example, @192.0.2.44@ . This value is required if the service specified by @ServiceId@ includes settings for an A record. If the service includes settings for an SRV record, you must specify a value for @AWS_INSTANCE_IPV4@ , @AWS_INSTANCE_IPV6@ , or both. __AWS_INSTANCE_IPV6__  If the service configuration includes an AAAA record, the IPv6 address that you want Route 53 to return in response to DNS queries, for example, @2001:0db8:85a3:0000:0000:abcd:0001:2345@ . This value is required if the service specified by @ServiceId@ includes settings for an AAAA record. If the service includes settings for an SRV record, you must specify a value for @AWS_INSTANCE_IPV4@ , @AWS_INSTANCE_IPV6@ , or both. __AWS_INSTANCE_PORT__  If the service includes an SRV record, the value that you want Route 53 to return for the port. If the service includes @HealthCheckConfig@ , the port on the endpoint that you want Route 53 to send requests to.  This value is required if you specified settings for an SRV record when you created the service.+riAttributes :: Lens' RegisterInstance (HashMap Text Text)+riAttributes = lens _riAttributes (\ s a -> s{_riAttributes = a}) . _Map++instance AWSRequest RegisterInstance where+        type Rs RegisterInstance = RegisterInstanceResponse+        request = postJSON route53AutoNaming+        response+          = receiveJSON+              (\ s h x ->+                 RegisterInstanceResponse' <$>+                   (x .?> "OperationId") <*> (pure (fromEnum s)))++instance Hashable RegisterInstance where++instance NFData RegisterInstance where++instance ToHeaders RegisterInstance where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("Route53AutoNaming_v20170314.RegisterInstance" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON RegisterInstance where+        toJSON RegisterInstance'{..}+          = object+              (catMaybes+                 [("CreatorRequestId" .=) <$> _riCreatorRequestId,+                  Just ("ServiceId" .= _riServiceId),+                  Just ("InstanceId" .= _riInstanceId),+                  Just ("Attributes" .= _riAttributes)])++instance ToPath RegisterInstance where+        toPath = const "/"++instance ToQuery RegisterInstance where+        toQuery = const mempty++-- | /See:/ 'registerInstanceResponse' smart constructor.+data RegisterInstanceResponse = RegisterInstanceResponse'+  { _rirsOperationId    :: !(Maybe Text)+  , _rirsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RegisterInstanceResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rirsOperationId' - A value that you can use to determine whether the request completed successfully. To get the status of the operation, see 'GetOperation' .+--+-- * 'rirsResponseStatus' - -- | The response status code.+registerInstanceResponse+    :: Int -- ^ 'rirsResponseStatus'+    -> RegisterInstanceResponse+registerInstanceResponse pResponseStatus_ =+  RegisterInstanceResponse'+    {_rirsOperationId = Nothing, _rirsResponseStatus = pResponseStatus_}+++-- | A value that you can use to determine whether the request completed successfully. To get the status of the operation, see 'GetOperation' .+rirsOperationId :: Lens' RegisterInstanceResponse (Maybe Text)+rirsOperationId = lens _rirsOperationId (\ s a -> s{_rirsOperationId = a})++-- | -- | The response status code.+rirsResponseStatus :: Lens' RegisterInstanceResponse Int+rirsResponseStatus = lens _rirsResponseStatus (\ s a -> s{_rirsResponseStatus = a})++instance NFData RegisterInstanceResponse where
+ gen/Network/AWS/Route53AutoNaming/Types.hs view
@@ -0,0 +1,336 @@+{-# LANGUAGE OverloadedStrings #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Route53AutoNaming.Types+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.Route53AutoNaming.Types+    (+    -- * Service Configuration+      route53AutoNaming++    -- * Errors+    , _ResourceLimitExceeded+    , _InvalidInput+    , _NamespaceAlreadyExists+    , _NamespaceNotFound+    , _ServiceAlreadyExists+    , _ResourceInUse+    , _CustomHealthNotFound+    , _InstanceNotFound+    , _DuplicateRequest+    , _ServiceNotFound+    , _OperationNotFound++    -- * CustomHealthStatus+    , CustomHealthStatus (..)++    -- * FilterCondition+    , FilterCondition (..)++    -- * HealthCheckType+    , HealthCheckType (..)++    -- * HealthStatus+    , HealthStatus (..)++    -- * NamespaceFilterName+    , NamespaceFilterName (..)++    -- * NamespaceType+    , NamespaceType (..)++    -- * OperationFilterName+    , OperationFilterName (..)++    -- * OperationStatus+    , OperationStatus (..)++    -- * OperationTargetType+    , OperationTargetType (..)++    -- * OperationType+    , OperationType (..)++    -- * RecordType+    , RecordType (..)++    -- * RoutingPolicy+    , RoutingPolicy (..)++    -- * ServiceFilterName+    , ServiceFilterName (..)++    -- * DNSConfig+    , DNSConfig+    , dnsConfig+    , dcRoutingPolicy+    , dcNamespaceId+    , dcDNSRecords++    -- * DNSConfigChange+    , DNSConfigChange+    , dnsConfigChange+    , dccDNSRecords++    -- * DNSProperties+    , DNSProperties+    , dnsProperties+    , dpHostedZoneId++    -- * DNSRecord+    , DNSRecord+    , dnsRecord+    , drType+    , drTTL++    -- * HealthCheckConfig+    , HealthCheckConfig+    , healthCheckConfig+    , hccFailureThreshold+    , hccResourcePath+    , hccType++    -- * HealthCheckCustomConfig+    , HealthCheckCustomConfig+    , healthCheckCustomConfig+    , hcccFailureThreshold++    -- * Instance+    , Instance+    , instance'+    , iCreatorRequestId+    , iAttributes+    , iId++    -- * InstanceSummary+    , InstanceSummary+    , instanceSummary+    , isAttributes+    , isId++    -- * Namespace+    , Namespace+    , namespace+    , nARN+    , nCreatorRequestId+    , nCreateDate+    , nServiceCount+    , nName+    , nId+    , nType+    , nDescription+    , nProperties++    -- * NamespaceFilter+    , NamespaceFilter+    , namespaceFilter+    , nfCondition+    , nfName+    , nfValues++    -- * NamespaceProperties+    , NamespaceProperties+    , namespaceProperties+    , npDNSProperties++    -- * NamespaceSummary+    , NamespaceSummary+    , namespaceSummary+    , nsARN+    , nsName+    , nsId+    , nsType++    -- * Operation+    , Operation+    , operation+    , oStatus+    , oUpdateDate+    , oCreateDate+    , oTargets+    , oErrorCode+    , oId+    , oType+    , oErrorMessage++    -- * OperationFilter+    , OperationFilter+    , operationFilter+    , ofCondition+    , ofName+    , ofValues++    -- * OperationSummary+    , OperationSummary+    , operationSummary+    , osStatus+    , osId++    -- * ServiceChange+    , ServiceChange+    , serviceChange+    , scHealthCheckConfig+    , scDescription+    , scDNSConfig++    -- * ServiceFilter+    , ServiceFilter+    , serviceFilter+    , sfCondition+    , sfName+    , sfValues++    -- * ServiceInfo+    , ServiceInfo+    , serviceInfo+    , siInstanceCount+    , siARN+    , siHealthCheckConfig+    , siCreatorRequestId+    , siCreateDate+    , siHealthCheckCustomConfig+    , siName+    , siId+    , siDNSConfig+    , siDescription++    -- * ServiceSummary+    , ServiceSummary+    , serviceSummary+    , ssInstanceCount+    , ssARN+    , ssName+    , ssId+    , ssDescription+    ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Route53AutoNaming.Types.Product+import Network.AWS.Route53AutoNaming.Types.Sum+import Network.AWS.Sign.V4++-- | API version @2017-03-14@ of the Amazon Route 53 Auto Naming SDK configuration.+route53AutoNaming :: Service+route53AutoNaming =+  Service+    { _svcAbbrev = "Route53AutoNaming"+    , _svcSigner = v4+    , _svcPrefix = "servicediscovery"+    , _svcVersion = "2017-03-14"+    , _svcEndpoint = defaultEndpoint route53AutoNaming+    , _svcTimeout = Just 70+    , _svcCheck = statusSuccess+    , _svcError = parseJSONError "Route53AutoNaming"+    , _svcRetry = retry+    }+  where+    retry =+      Exponential+        { _retryBase = 5.0e-2+        , _retryGrowth = 2+        , _retryAttempts = 5+        , _retryCheck = check+        }+    check e+      | has (hasCode "ThrottledException" . hasStatus 400) e =+        Just "throttled_exception"+      | has (hasStatus 429) e = Just "too_many_requests"+      | has (hasCode "ThrottlingException" . hasStatus 400) e =+        Just "throttling_exception"+      | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"+      | has (hasStatus 504) e = Just "gateway_timeout"+      | has (hasCode "RequestThrottledException" . hasStatus 400) e =+        Just "request_throttled_exception"+      | has (hasStatus 502) e = Just "bad_gateway"+      | has (hasStatus 503) e = Just "service_unavailable"+      | has (hasStatus 500) e = Just "general_server_error"+      | has (hasStatus 509) e = Just "limit_exceeded"+      | otherwise = Nothing+++-- | The resource can't be created because you've reached the limit on the number of resources.+--+--+_ResourceLimitExceeded :: AsError a => Getting (First ServiceError) a ServiceError+_ResourceLimitExceeded =+  _MatchServiceError route53AutoNaming "ResourceLimitExceeded"+++-- | One or more specified values aren't valid. For example, when you're creating a namespace, the value of @Name@ might not be a valid DNS name.+--+--+_InvalidInput :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidInput = _MatchServiceError route53AutoNaming "InvalidInput"+++-- | The namespace that you're trying to create already exists.+--+--+_NamespaceAlreadyExists :: AsError a => Getting (First ServiceError) a ServiceError+_NamespaceAlreadyExists =+  _MatchServiceError route53AutoNaming "NamespaceAlreadyExists"+++-- | No namespace exists with the specified ID.+--+--+_NamespaceNotFound :: AsError a => Getting (First ServiceError) a ServiceError+_NamespaceNotFound = _MatchServiceError route53AutoNaming "NamespaceNotFound"+++-- | The service can't be created because a service with the same name already exists.+--+--+_ServiceAlreadyExists :: AsError a => Getting (First ServiceError) a ServiceError+_ServiceAlreadyExists =+  _MatchServiceError route53AutoNaming "ServiceAlreadyExists"+++-- | The specified resource can't be deleted because it contains other resources. For example, you can't delete a service that contains any instances.+--+--+_ResourceInUse :: AsError a => Getting (First ServiceError) a ServiceError+_ResourceInUse = _MatchServiceError route53AutoNaming "ResourceInUse"+++-- | Prism for CustomHealthNotFound' errors.+_CustomHealthNotFound :: AsError a => Getting (First ServiceError) a ServiceError+_CustomHealthNotFound =+  _MatchServiceError route53AutoNaming "CustomHealthNotFound"+++-- | No instance exists with the specified ID, or the instance was recently registered, and information about the instance hasn't propagated yet.+--+--+_InstanceNotFound :: AsError a => Getting (First ServiceError) a ServiceError+_InstanceNotFound = _MatchServiceError route53AutoNaming "InstanceNotFound"+++-- | The operation is already in progress.+--+--+_DuplicateRequest :: AsError a => Getting (First ServiceError) a ServiceError+_DuplicateRequest = _MatchServiceError route53AutoNaming "DuplicateRequest"+++-- | No service exists with the specified ID.+--+--+_ServiceNotFound :: AsError a => Getting (First ServiceError) a ServiceError+_ServiceNotFound = _MatchServiceError route53AutoNaming "ServiceNotFound"+++-- | No operation exists with the specified ID.+--+--+_OperationNotFound :: AsError a => Getting (First ServiceError) a ServiceError+_OperationNotFound = _MatchServiceError route53AutoNaming "OperationNotFound"+
+ gen/Network/AWS/Route53AutoNaming/Types/Product.hs view
@@ -0,0 +1,1174 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Route53AutoNaming.Types.Product+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.Route53AutoNaming.Types.Product where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Route53AutoNaming.Types.Sum++-- | A complex type that contains information about the records that you want Amazon Route 53 to create when you register an instance.+--+--+--+-- /See:/ 'dnsConfig' smart constructor.+data DNSConfig = DNSConfig'+  { _dcRoutingPolicy :: !(Maybe RoutingPolicy)+  , _dcNamespaceId   :: !Text+  , _dcDNSRecords    :: ![DNSRecord]+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DNSConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dcRoutingPolicy' - The routing policy that you want to apply to all records that Route 53 creates when you register an instance and specify this service. You can specify the following values: __MULTIVALUE__  If you define a health check for the service and the health check is healthy, Route 53 returns the applicable value for up to eight instances. For example, suppose the service includes configurations for one A record and a health check, and you use the service to register 10 instances. Route 53 responds to DNS queries with IP addresses for up to eight healthy instances. If fewer than eight instances are healthy, Route 53 responds to every DNS query with the IP addresses for all of the healthy instances. If you don't define a health check for the service, Route 53 assumes that all instances are healthy and returns the values for up to eight instances. For more information about the multivalue routing policy, see <http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-multivalue Multivalue Answer Routing> in the /Route 53 Developer Guide/ . __WEIGHTED__  Route 53 returns the applicable value from one randomly selected instance from among the instances that you registered using the same service. Currently, all records have the same weight, so you can't route more or less traffic to any instances. For example, suppose the service includes configurations for one A record and a health check, and you use the service to register 10 instances. Route 53 responds to DNS queries with the IP address for one randomly selected instance from among the healthy instances. If no instances are healthy, Route 53 responds to DNS queries as if all of the instances were healthy. If you don't define a health check for the service, Route 53 assumes that all instances are healthy and returns the applicable value for one randomly selected instance. For more information about the weighted routing policy, see <http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-weighted Weighted Routing> in the /Route 53 Developer Guide/ .+--+-- * 'dcNamespaceId' - The ID of the namespace to use for DNS configuration.+--+-- * 'dcDNSRecords' - An array that contains one @DnsRecord@ object for each record that you want Route 53 to create when you register an instance.+dnsConfig+    :: Text -- ^ 'dcNamespaceId'+    -> DNSConfig+dnsConfig pNamespaceId_ =+  DNSConfig'+    { _dcRoutingPolicy = Nothing+    , _dcNamespaceId = pNamespaceId_+    , _dcDNSRecords = mempty+    }+++-- | The routing policy that you want to apply to all records that Route 53 creates when you register an instance and specify this service. You can specify the following values: __MULTIVALUE__  If you define a health check for the service and the health check is healthy, Route 53 returns the applicable value for up to eight instances. For example, suppose the service includes configurations for one A record and a health check, and you use the service to register 10 instances. Route 53 responds to DNS queries with IP addresses for up to eight healthy instances. If fewer than eight instances are healthy, Route 53 responds to every DNS query with the IP addresses for all of the healthy instances. If you don't define a health check for the service, Route 53 assumes that all instances are healthy and returns the values for up to eight instances. For more information about the multivalue routing policy, see <http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-multivalue Multivalue Answer Routing> in the /Route 53 Developer Guide/ . __WEIGHTED__  Route 53 returns the applicable value from one randomly selected instance from among the instances that you registered using the same service. Currently, all records have the same weight, so you can't route more or less traffic to any instances. For example, suppose the service includes configurations for one A record and a health check, and you use the service to register 10 instances. Route 53 responds to DNS queries with the IP address for one randomly selected instance from among the healthy instances. If no instances are healthy, Route 53 responds to DNS queries as if all of the instances were healthy. If you don't define a health check for the service, Route 53 assumes that all instances are healthy and returns the applicable value for one randomly selected instance. For more information about the weighted routing policy, see <http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-weighted Weighted Routing> in the /Route 53 Developer Guide/ .+dcRoutingPolicy :: Lens' DNSConfig (Maybe RoutingPolicy)+dcRoutingPolicy = lens _dcRoutingPolicy (\ s a -> s{_dcRoutingPolicy = a})++-- | The ID of the namespace to use for DNS configuration.+dcNamespaceId :: Lens' DNSConfig Text+dcNamespaceId = lens _dcNamespaceId (\ s a -> s{_dcNamespaceId = a})++-- | An array that contains one @DnsRecord@ object for each record that you want Route 53 to create when you register an instance.+dcDNSRecords :: Lens' DNSConfig [DNSRecord]+dcDNSRecords = lens _dcDNSRecords (\ s a -> s{_dcDNSRecords = a}) . _Coerce++instance FromJSON DNSConfig where+        parseJSON+          = withObject "DNSConfig"+              (\ x ->+                 DNSConfig' <$>+                   (x .:? "RoutingPolicy") <*> (x .: "NamespaceId") <*>+                     (x .:? "DnsRecords" .!= mempty))++instance Hashable DNSConfig where++instance NFData DNSConfig where++instance ToJSON DNSConfig where+        toJSON DNSConfig'{..}+          = object+              (catMaybes+                 [("RoutingPolicy" .=) <$> _dcRoutingPolicy,+                  Just ("NamespaceId" .= _dcNamespaceId),+                  Just ("DnsRecords" .= _dcDNSRecords)])++-- | A complex type that contains information about changes to the records that Route 53 creates when you register an instance.+--+--+--+-- /See:/ 'dnsConfigChange' smart constructor.+newtype DNSConfigChange = DNSConfigChange'+  { _dccDNSRecords :: [DNSRecord]+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DNSConfigChange' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dccDNSRecords' - An array that contains one @DnsRecord@ object for each record that you want Route 53 to create when you register an instance.+dnsConfigChange+    :: DNSConfigChange+dnsConfigChange = DNSConfigChange' {_dccDNSRecords = mempty}+++-- | An array that contains one @DnsRecord@ object for each record that you want Route 53 to create when you register an instance.+dccDNSRecords :: Lens' DNSConfigChange [DNSRecord]+dccDNSRecords = lens _dccDNSRecords (\ s a -> s{_dccDNSRecords = a}) . _Coerce++instance Hashable DNSConfigChange where++instance NFData DNSConfigChange where++instance ToJSON DNSConfigChange where+        toJSON DNSConfigChange'{..}+          = object+              (catMaybes [Just ("DnsRecords" .= _dccDNSRecords)])++-- | A complex type that contains the ID for the hosted zone that Route 53 creates when you create a namespace.+--+--+--+-- /See:/ 'dnsProperties' smart constructor.+newtype DNSProperties = DNSProperties'+  { _dpHostedZoneId :: Maybe Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DNSProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dpHostedZoneId' - The ID for the hosted zone that Route 53 creates when you create a namespace.+dnsProperties+    :: DNSProperties+dnsProperties = DNSProperties' {_dpHostedZoneId = Nothing}+++-- | The ID for the hosted zone that Route 53 creates when you create a namespace.+dpHostedZoneId :: Lens' DNSProperties (Maybe Text)+dpHostedZoneId = lens _dpHostedZoneId (\ s a -> s{_dpHostedZoneId = a})++instance FromJSON DNSProperties where+        parseJSON+          = withObject "DNSProperties"+              (\ x -> DNSProperties' <$> (x .:? "HostedZoneId"))++instance Hashable DNSProperties where++instance NFData DNSProperties where++-- | A complex type that contains information about the records that you want Route 53 to create when you register an instance.+--+--+--+-- /See:/ 'dnsRecord' smart constructor.+data DNSRecord = DNSRecord'+  { _drType :: !RecordType+  , _drTTL  :: !Nat+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DNSRecord' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drType' - The type of the resource, which indicates the type of value that Route 53 returns in response to DNS queries. Note the following:     * __A, AAAA, and SRV records: You can specify settings for a maximum of one A, one AAAA, and one SRV record. You can specify them in any combination.__      * __CNAME records:__ If you specify @CNAME@ for @Type@ , you can't define any other records. This is a limitation of DNS—you can't create a CNAME record and any other type of record that has the same name as a CNAME record.     * __Alias records:__ If you want Route 53 to create an alias record when you register an instance, specify @A@ or @AAAA@ for @Type@ .     * __All records:__ You specify settings other than @TTL@ and @Type@ when you register an instance. The following values are supported: __A__  Route 53 returns the IP address of the resource in IPv4 format, such as 192.0.2.44. __AAAA__  Route 53 returns the IP address of the resource in IPv6 format, such as 2001:0db8:85a3:0000:0000:abcd:0001:2345. __CNAME__  Route 53 returns the domain name of the resource, such as www.example.com. Note the following:     * You specify the domain name that you want to route traffic to when you register an instance. For more information, see 'RegisterInstanceRequest$Attributes' .     * You must specify @WEIGHTED@ for the value of @RoutingPolicy@ .     * You can't specify both @CNAME@ for @Type@ and settings for @HealthCheckConfig@ . If you do, the request will fail with an @InvalidInput@ error. __SRV__  Route 53 returns the value for an SRV record. The value for an SRV record uses the following values: @priority weight port service-hostname@  Note the following about the values:     * The values of @priority@ and @weight@ are both set to @1@ and can't be changed.      * The value of @port@ comes from the value that you specify for the @AWS_INSTANCE_PORT@ attribute when you submit a 'RegisterInstance' request.      * The value of @service-hostname@ is a concatenation of the following values:     * The value that you specify for @InstanceId@ when you register an instance.     * The name of the service.     * The name of the namespace.  For example, if the value of @InstanceId@ is @test@ , the name of the service is @backend@ , and the name of the namespace is @example.com@ , the value of @service-hostname@ is: @test.backend.example.com@  If you specify settings for an SRV record and if you specify values for @AWS_INSTANCE_IPV4@ , @AWS_INSTANCE_IPV6@ , or both in the @RegisterInstance@ request, Route 53 automatically creates @A@ and/or @AAAA@ records that have the same name as the value of @service-hostname@ in the SRV record. You can ignore these records.+--+-- * 'drTTL' - The amount of time, in seconds, that you want DNS resolvers to cache the settings for this record.+dnsRecord+    :: RecordType -- ^ 'drType'+    -> Natural -- ^ 'drTTL'+    -> DNSRecord+dnsRecord pType_ pTTL_ = DNSRecord' {_drType = pType_, _drTTL = _Nat # pTTL_}+++-- | The type of the resource, which indicates the type of value that Route 53 returns in response to DNS queries. Note the following:     * __A, AAAA, and SRV records: You can specify settings for a maximum of one A, one AAAA, and one SRV record. You can specify them in any combination.__      * __CNAME records:__ If you specify @CNAME@ for @Type@ , you can't define any other records. This is a limitation of DNS—you can't create a CNAME record and any other type of record that has the same name as a CNAME record.     * __Alias records:__ If you want Route 53 to create an alias record when you register an instance, specify @A@ or @AAAA@ for @Type@ .     * __All records:__ You specify settings other than @TTL@ and @Type@ when you register an instance. The following values are supported: __A__  Route 53 returns the IP address of the resource in IPv4 format, such as 192.0.2.44. __AAAA__  Route 53 returns the IP address of the resource in IPv6 format, such as 2001:0db8:85a3:0000:0000:abcd:0001:2345. __CNAME__  Route 53 returns the domain name of the resource, such as www.example.com. Note the following:     * You specify the domain name that you want to route traffic to when you register an instance. For more information, see 'RegisterInstanceRequest$Attributes' .     * You must specify @WEIGHTED@ for the value of @RoutingPolicy@ .     * You can't specify both @CNAME@ for @Type@ and settings for @HealthCheckConfig@ . If you do, the request will fail with an @InvalidInput@ error. __SRV__  Route 53 returns the value for an SRV record. The value for an SRV record uses the following values: @priority weight port service-hostname@  Note the following about the values:     * The values of @priority@ and @weight@ are both set to @1@ and can't be changed.      * The value of @port@ comes from the value that you specify for the @AWS_INSTANCE_PORT@ attribute when you submit a 'RegisterInstance' request.      * The value of @service-hostname@ is a concatenation of the following values:     * The value that you specify for @InstanceId@ when you register an instance.     * The name of the service.     * The name of the namespace.  For example, if the value of @InstanceId@ is @test@ , the name of the service is @backend@ , and the name of the namespace is @example.com@ , the value of @service-hostname@ is: @test.backend.example.com@  If you specify settings for an SRV record and if you specify values for @AWS_INSTANCE_IPV4@ , @AWS_INSTANCE_IPV6@ , or both in the @RegisterInstance@ request, Route 53 automatically creates @A@ and/or @AAAA@ records that have the same name as the value of @service-hostname@ in the SRV record. You can ignore these records.+drType :: Lens' DNSRecord RecordType+drType = lens _drType (\ s a -> s{_drType = a})++-- | The amount of time, in seconds, that you want DNS resolvers to cache the settings for this record.+drTTL :: Lens' DNSRecord Natural+drTTL = lens _drTTL (\ s a -> s{_drTTL = a}) . _Nat++instance FromJSON DNSRecord where+        parseJSON+          = withObject "DNSRecord"+              (\ x ->+                 DNSRecord' <$> (x .: "Type") <*> (x .: "TTL"))++instance Hashable DNSRecord where++instance NFData DNSRecord where++instance ToJSON DNSRecord where+        toJSON DNSRecord'{..}+          = object+              (catMaybes+                 [Just ("Type" .= _drType), Just ("TTL" .= _drTTL)])++-- | /Public DNS namespaces only./ A complex type that contains settings for an optional health check. If you specify settings for a health check, Amazon Route 53 associates the health check with all the records that you specify in @DnsConfig@ .+--+--+-- __A and AAAA records__+--+-- If @DnsConfig@ includes configurations for both A and AAAA records, Route 53 creates a health check that uses the IPv4 address to check the health of the resource. If the endpoint that is specified by the IPv4 address is unhealthy, Route 53 considers both the A and AAAA records to be unhealthy.+--+-- __CNAME records__+--+-- You can't specify settings for @HealthCheckConfig@ when the @DNSConfig@ includes @CNAME@ for the value of @Type@ . If you do, the @CreateService@ request will fail with an @InvalidInput@ error.+--+-- __Request interval__+--+-- The health check uses 30 seconds as the request interval. This is the number of seconds between the time that each Route 53 health checker gets a response from your endpoint and the time that it sends the next health check request. A health checker in each data center around the world sends your endpoint a health check request every 30 seconds. On average, your endpoint receives a health check request about every two seconds. Health checkers in different data centers don't coordinate with one another, so you'll sometimes see several requests per second followed by a few seconds with no health checks at all.+--+-- __Health checking regions__+--+-- Health checkers perform checks from all Route 53 health-checking regions. For a list of the current regions, see <http://docs.aws.amazon.com/Route53/latest/APIReference/API_HealthCheckConfig.html#Route53-Type-HealthCheckConfig-Regions Regions> .+--+-- __Alias records__+--+-- When you register an instance, if you include the @AWS_ALIAS_DNS_NAME@ attribute, Route 53 creates an alias record. Note the following:+--+--     * Route 53 automatically sets @EvaluateTargetHealth@ to true for alias records. When @EvaluateTargetHealth@ is true, the alias record inherits the health of the referenced AWS resource. such as an ELB load balancer. For more information, see <http://docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html#Route53-Type-AliasTarget-EvaluateTargetHealth EvaluateTargetHealth> .+--+--     * If you include @HealthCheckConfig@ and then use the service to register an instance that creates an alias record, Route 53 doesn't create the health check.+--+--+--+-- For information about the charges for health checks, see <http://aws.amazon.com/route53/pricing Route 53 Pricing> .+--+--+-- /See:/ 'healthCheckConfig' smart constructor.+data HealthCheckConfig = HealthCheckConfig'+  { _hccFailureThreshold :: !(Maybe Nat)+  , _hccResourcePath     :: !(Maybe Text)+  , _hccType             :: !(Maybe HealthCheckType)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'HealthCheckConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hccFailureThreshold' - The number of consecutive health checks that an endpoint must pass or fail for Route 53 to change the current status of the endpoint from unhealthy to healthy or vice versa. For more information, see <http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html How Route 53 Determines Whether an Endpoint Is Healthy> in the /Route 53 Developer Guide/ .+--+-- * 'hccResourcePath' - The path that you want Route 53 to request when performing health checks. The path can be any value for which your endpoint will return an HTTP status code of 2xx or 3xx when the endpoint is healthy, such as the file @/docs/route53-health-check.html@ . Route 53 automatically adds the DNS name for the service and a leading forward slash (@/@ ) character.+--+-- * 'hccType' - The type of health check that you want to create, which indicates how Route 53 determines whether an endpoint is healthy. /Important:/ You can't change the value of @Type@ after you create a health check. You can create the following types of health checks:     * __HTTP__ : Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTP request and waits for an HTTP status code of 200 or greater and less than 400.     * __HTTPS__ : Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTPS request and waits for an HTTP status code of 200 or greater and less than 400. /Important:/ If you specify HTTPS for the value of @Type@ , the endpoint must support TLS v1.0 or later.     * __TCP__ : Route 53 tries to establish a TCP connection. For more information, see <http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html How Route 53 Determines Whether an Endpoint Is Healthy> in the /Route 53 Developer Guide/ .+healthCheckConfig+    :: HealthCheckConfig+healthCheckConfig =+  HealthCheckConfig'+    { _hccFailureThreshold = Nothing+    , _hccResourcePath = Nothing+    , _hccType = Nothing+    }+++-- | The number of consecutive health checks that an endpoint must pass or fail for Route 53 to change the current status of the endpoint from unhealthy to healthy or vice versa. For more information, see <http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html How Route 53 Determines Whether an Endpoint Is Healthy> in the /Route 53 Developer Guide/ .+hccFailureThreshold :: Lens' HealthCheckConfig (Maybe Natural)+hccFailureThreshold = lens _hccFailureThreshold (\ s a -> s{_hccFailureThreshold = a}) . mapping _Nat++-- | The path that you want Route 53 to request when performing health checks. The path can be any value for which your endpoint will return an HTTP status code of 2xx or 3xx when the endpoint is healthy, such as the file @/docs/route53-health-check.html@ . Route 53 automatically adds the DNS name for the service and a leading forward slash (@/@ ) character.+hccResourcePath :: Lens' HealthCheckConfig (Maybe Text)+hccResourcePath = lens _hccResourcePath (\ s a -> s{_hccResourcePath = a})++-- | The type of health check that you want to create, which indicates how Route 53 determines whether an endpoint is healthy. /Important:/ You can't change the value of @Type@ after you create a health check. You can create the following types of health checks:     * __HTTP__ : Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTP request and waits for an HTTP status code of 200 or greater and less than 400.     * __HTTPS__ : Route 53 tries to establish a TCP connection. If successful, Route 53 submits an HTTPS request and waits for an HTTP status code of 200 or greater and less than 400. /Important:/ If you specify HTTPS for the value of @Type@ , the endpoint must support TLS v1.0 or later.     * __TCP__ : Route 53 tries to establish a TCP connection. For more information, see <http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html How Route 53 Determines Whether an Endpoint Is Healthy> in the /Route 53 Developer Guide/ .+hccType :: Lens' HealthCheckConfig (Maybe HealthCheckType)+hccType = lens _hccType (\ s a -> s{_hccType = a})++instance FromJSON HealthCheckConfig where+        parseJSON+          = withObject "HealthCheckConfig"+              (\ x ->+                 HealthCheckConfig' <$>+                   (x .:? "FailureThreshold") <*> (x .:? "ResourcePath")+                     <*> (x .:? "Type"))++instance Hashable HealthCheckConfig where++instance NFData HealthCheckConfig where++instance ToJSON HealthCheckConfig where+        toJSON HealthCheckConfig'{..}+          = object+              (catMaybes+                 [("FailureThreshold" .=) <$> _hccFailureThreshold,+                  ("ResourcePath" .=) <$> _hccResourcePath,+                  ("Type" .=) <$> _hccType])++-- | /See:/ 'healthCheckCustomConfig' smart constructor.+newtype HealthCheckCustomConfig = HealthCheckCustomConfig'+  { _hcccFailureThreshold :: Maybe Nat+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'HealthCheckCustomConfig' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'hcccFailureThreshold' - Undocumented member.+healthCheckCustomConfig+    :: HealthCheckCustomConfig+healthCheckCustomConfig =+  HealthCheckCustomConfig' {_hcccFailureThreshold = Nothing}+++-- | Undocumented member.+hcccFailureThreshold :: Lens' HealthCheckCustomConfig (Maybe Natural)+hcccFailureThreshold = lens _hcccFailureThreshold (\ s a -> s{_hcccFailureThreshold = a}) . mapping _Nat++instance FromJSON HealthCheckCustomConfig where+        parseJSON+          = withObject "HealthCheckCustomConfig"+              (\ x ->+                 HealthCheckCustomConfig' <$>+                   (x .:? "FailureThreshold"))++instance Hashable HealthCheckCustomConfig where++instance NFData HealthCheckCustomConfig where++instance ToJSON HealthCheckCustomConfig where+        toJSON HealthCheckCustomConfig'{..}+          = object+              (catMaybes+                 [("FailureThreshold" .=) <$> _hcccFailureThreshold])++-- | A complex type that contains information about an instance that Amazon Route 53 creates when you submit a @RegisterInstance@ request.+--+--+--+-- /See:/ 'instance'' smart constructor.+data Instance = Instance'+  { _iCreatorRequestId :: !(Maybe Text)+  , _iAttributes       :: !(Maybe (Map Text Text))+  , _iId               :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Instance' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'iCreatorRequestId' - A unique string that identifies the request and that allows failed @RegisterInstance@ requests to be retried without the risk of executing the operation twice. You must use a unique @CreatorRequestId@ string every time you submit a @RegisterInstance@ request if you're registering additional instances for the same namespace and service. @CreatorRequestId@ can be any unique string, for example, a date/time stamp.+--+-- * 'iAttributes' - A string map that contains the following information for the service that you specify in @ServiceId@ :     * The attributes that apply to the records that are defined in the service.      * For each attribute, the applicable value. Supported attribute keys include the following: __AWS_ALIAS_DNS_NAME__  ____  If you want Route 53 to create an alias record that routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that is associated with the load balancer. For information about how to get the DNS name, see "DNSName" in the topic <http://docs.aws.amazon.com/http:/docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html AliasTarget> . Note the following:     * The configuration for the service that is specified by @ServiceId@ must include settings for an A record, an AAAA record, or both.     * In the service that is specified by @ServiceId@ , the value of @RoutingPolicy@ must be @WEIGHTED@ .     * If the service that is specified by @ServiceId@ includes @HealthCheckConfig@ settings, Route 53 will create the health check, but it won't associate the health check with the alias record.     * Auto naming currently doesn't support creating alias records that route traffic to AWS resources other than ELB load balancers.     * If you specify a value for @AWS_ALIAS_DNS_NAME@ , don't specify values for any of the @AWS_INSTANCE@ attributes. __AWS_INSTANCE_CNAME__  If the service configuration includes a CNAME record, the domain name that you want Route 53 to return in response to DNS queries, for example, @example.com@ . This value is required if the service specified by @ServiceId@ includes settings for an CNAME record. __AWS_INSTANCE_IPV4__  If the service configuration includes an A record, the IPv4 address that you want Route 53 to return in response to DNS queries, for example, @192.0.2.44@ . This value is required if the service specified by @ServiceId@ includes settings for an A record. If the service includes settings for an SRV record, you must specify a value for @AWS_INSTANCE_IPV4@ , @AWS_INSTANCE_IPV6@ , or both. __AWS_INSTANCE_IPV6__  If the service configuration includes an AAAA record, the IPv6 address that you want Route 53 to return in response to DNS queries, for example, @2001:0db8:85a3:0000:0000:abcd:0001:2345@ . This value is required if the service specified by @ServiceId@ includes settings for an AAAA record. If the service includes settings for an SRV record, you must specify a value for @AWS_INSTANCE_IPV4@ , @AWS_INSTANCE_IPV6@ , or both. __AWS_INSTANCE_PORT__  If the service includes an SRV record, the value that you want Route 53 to return for the port. If the service includes @HealthCheckConfig@ , the port on the endpoint that you want Route 53 to send requests to.  This value is required if you specified settings for an SRV record when you created the service.+--+-- * 'iId' - An identifier that you want to associate with the instance. Note the following:     * If the service that is specified by @ServiceId@ includes settings for an SRV record, the value of @InstanceId@ is automatically included as part of the value for the SRV record. For more information, see 'DnsRecord$Type' .     * You can use this value to update an existing instance.     * To register a new instance, you must specify a value that is unique among instances that you register by using the same service.      * If you specify an existing @InstanceId@ and @ServiceId@ , Route 53 updates the existing records. If there's also an existing health check, Route 53 deletes the old health check and creates a new one.+instance'+    :: Text -- ^ 'iId'+    -> Instance+instance' pId_ =+  Instance' {_iCreatorRequestId = Nothing, _iAttributes = Nothing, _iId = pId_}+++-- | A unique string that identifies the request and that allows failed @RegisterInstance@ requests to be retried without the risk of executing the operation twice. You must use a unique @CreatorRequestId@ string every time you submit a @RegisterInstance@ request if you're registering additional instances for the same namespace and service. @CreatorRequestId@ can be any unique string, for example, a date/time stamp.+iCreatorRequestId :: Lens' Instance (Maybe Text)+iCreatorRequestId = lens _iCreatorRequestId (\ s a -> s{_iCreatorRequestId = a})++-- | A string map that contains the following information for the service that you specify in @ServiceId@ :     * The attributes that apply to the records that are defined in the service.      * For each attribute, the applicable value. Supported attribute keys include the following: __AWS_ALIAS_DNS_NAME__  ____  If you want Route 53 to create an alias record that routes traffic to an Elastic Load Balancing load balancer, specify the DNS name that is associated with the load balancer. For information about how to get the DNS name, see "DNSName" in the topic <http://docs.aws.amazon.com/http:/docs.aws.amazon.com/Route53/latest/APIReference/API_AliasTarget.html AliasTarget> . Note the following:     * The configuration for the service that is specified by @ServiceId@ must include settings for an A record, an AAAA record, or both.     * In the service that is specified by @ServiceId@ , the value of @RoutingPolicy@ must be @WEIGHTED@ .     * If the service that is specified by @ServiceId@ includes @HealthCheckConfig@ settings, Route 53 will create the health check, but it won't associate the health check with the alias record.     * Auto naming currently doesn't support creating alias records that route traffic to AWS resources other than ELB load balancers.     * If you specify a value for @AWS_ALIAS_DNS_NAME@ , don't specify values for any of the @AWS_INSTANCE@ attributes. __AWS_INSTANCE_CNAME__  If the service configuration includes a CNAME record, the domain name that you want Route 53 to return in response to DNS queries, for example, @example.com@ . This value is required if the service specified by @ServiceId@ includes settings for an CNAME record. __AWS_INSTANCE_IPV4__  If the service configuration includes an A record, the IPv4 address that you want Route 53 to return in response to DNS queries, for example, @192.0.2.44@ . This value is required if the service specified by @ServiceId@ includes settings for an A record. If the service includes settings for an SRV record, you must specify a value for @AWS_INSTANCE_IPV4@ , @AWS_INSTANCE_IPV6@ , or both. __AWS_INSTANCE_IPV6__  If the service configuration includes an AAAA record, the IPv6 address that you want Route 53 to return in response to DNS queries, for example, @2001:0db8:85a3:0000:0000:abcd:0001:2345@ . This value is required if the service specified by @ServiceId@ includes settings for an AAAA record. If the service includes settings for an SRV record, you must specify a value for @AWS_INSTANCE_IPV4@ , @AWS_INSTANCE_IPV6@ , or both. __AWS_INSTANCE_PORT__  If the service includes an SRV record, the value that you want Route 53 to return for the port. If the service includes @HealthCheckConfig@ , the port on the endpoint that you want Route 53 to send requests to.  This value is required if you specified settings for an SRV record when you created the service.+iAttributes :: Lens' Instance (HashMap Text Text)+iAttributes = lens _iAttributes (\ s a -> s{_iAttributes = a}) . _Default . _Map++-- | An identifier that you want to associate with the instance. Note the following:     * If the service that is specified by @ServiceId@ includes settings for an SRV record, the value of @InstanceId@ is automatically included as part of the value for the SRV record. For more information, see 'DnsRecord$Type' .     * You can use this value to update an existing instance.     * To register a new instance, you must specify a value that is unique among instances that you register by using the same service.      * If you specify an existing @InstanceId@ and @ServiceId@ , Route 53 updates the existing records. If there's also an existing health check, Route 53 deletes the old health check and creates a new one.+iId :: Lens' Instance Text+iId = lens _iId (\ s a -> s{_iId = a})++instance FromJSON Instance where+        parseJSON+          = withObject "Instance"+              (\ x ->+                 Instance' <$>+                   (x .:? "CreatorRequestId") <*>+                     (x .:? "Attributes" .!= mempty)+                     <*> (x .: "Id"))++instance Hashable Instance where++instance NFData Instance where++-- | A complex type that contains information about the instances that you registered by using a specified service.+--+--+--+-- /See:/ 'instanceSummary' smart constructor.+data InstanceSummary = InstanceSummary'+  { _isAttributes :: !(Maybe (Map Text Text))+  , _isId         :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'InstanceSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'isAttributes' - A string map that contains the following information:     * The attributes that are associate with the instance.      * For each attribute, the applicable value. Supported attribute keys include the following:     * @AWS_ALIAS_DNS_NAME@ : For an alias record that routes traffic to an Elastic Load Balancing load balancer, the DNS name that is associated with the load balancer.      * @AWS_INSTANCE_CNAME@ : For a CNAME record, the domain name that Route 53 returns in response to DNS queries, for example, @example.com@ .     * @AWS_INSTANCE_IPV4@ : For an A record, the IPv4 address that Route 53 returns in response to DNS queries, for example, @192.0.2.44@ .     * @AWS_INSTANCE_IPV6@ : For an AAAA record, the IPv6 address that Route 53 returns in response to DNS queries, for example, @2001:0db8:85a3:0000:0000:abcd:0001:2345@ .     * @AWS_INSTANCE_PORT@ : For an SRV record, the value that Route 53 returns for the port. In addition, if the service includes @HealthCheckConfig@ , the port on the endpoint that Route 53 sends requests to.+--+-- * 'isId' - The ID for an instance that you created by using a specified service.+instanceSummary+    :: InstanceSummary+instanceSummary = InstanceSummary' {_isAttributes = Nothing, _isId = Nothing}+++-- | A string map that contains the following information:     * The attributes that are associate with the instance.      * For each attribute, the applicable value. Supported attribute keys include the following:     * @AWS_ALIAS_DNS_NAME@ : For an alias record that routes traffic to an Elastic Load Balancing load balancer, the DNS name that is associated with the load balancer.      * @AWS_INSTANCE_CNAME@ : For a CNAME record, the domain name that Route 53 returns in response to DNS queries, for example, @example.com@ .     * @AWS_INSTANCE_IPV4@ : For an A record, the IPv4 address that Route 53 returns in response to DNS queries, for example, @192.0.2.44@ .     * @AWS_INSTANCE_IPV6@ : For an AAAA record, the IPv6 address that Route 53 returns in response to DNS queries, for example, @2001:0db8:85a3:0000:0000:abcd:0001:2345@ .     * @AWS_INSTANCE_PORT@ : For an SRV record, the value that Route 53 returns for the port. In addition, if the service includes @HealthCheckConfig@ , the port on the endpoint that Route 53 sends requests to.+isAttributes :: Lens' InstanceSummary (HashMap Text Text)+isAttributes = lens _isAttributes (\ s a -> s{_isAttributes = a}) . _Default . _Map++-- | The ID for an instance that you created by using a specified service.+isId :: Lens' InstanceSummary (Maybe Text)+isId = lens _isId (\ s a -> s{_isId = a})++instance FromJSON InstanceSummary where+        parseJSON+          = withObject "InstanceSummary"+              (\ x ->+                 InstanceSummary' <$>+                   (x .:? "Attributes" .!= mempty) <*> (x .:? "Id"))++instance Hashable InstanceSummary where++instance NFData InstanceSummary where++-- | A complex type that contains information about a specified namespace.+--+--+--+-- /See:/ 'namespace' smart constructor.+data Namespace = Namespace'+  { _nARN              :: !(Maybe Text)+  , _nCreatorRequestId :: !(Maybe Text)+  , _nCreateDate       :: !(Maybe POSIX)+  , _nServiceCount     :: !(Maybe Int)+  , _nName             :: !(Maybe Text)+  , _nId               :: !(Maybe Text)+  , _nType             :: !(Maybe NamespaceType)+  , _nDescription      :: !(Maybe Text)+  , _nProperties       :: !(Maybe NamespaceProperties)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Namespace' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nARN' - The Amazon Resource Name (ARN) that Route 53 assigns to the namespace when you create it.+--+-- * 'nCreatorRequestId' - A unique string that identifies the request and that allows failed requests to be retried without the risk of executing an operation twice.+--+-- * 'nCreateDate' - The date that the namespace was created, in Unix date/time format and Coordinated Universal Time (UTC). The value of @CreateDate@ is accurate to milliseconds. For example, the value @1516925490.087@ represents Friday, January 26, 2018 12:11:30.087 AM.+--+-- * 'nServiceCount' - The number of services that are associated with the namespace.+--+-- * 'nName' - The name of the namespace, such as @example.com@ .+--+-- * 'nId' - The ID of a namespace.+--+-- * 'nType' - The type of the namespace. Valid values are @DNS_PUBLIC@ and @DNS_PRIVATE@ .+--+-- * 'nDescription' - The description that you specify for the namespace when you create it.+--+-- * 'nProperties' - A complex type that contains information that's specific to the type of the namespace.+namespace+    :: Namespace+namespace =+  Namespace'+    { _nARN = Nothing+    , _nCreatorRequestId = Nothing+    , _nCreateDate = Nothing+    , _nServiceCount = Nothing+    , _nName = Nothing+    , _nId = Nothing+    , _nType = Nothing+    , _nDescription = Nothing+    , _nProperties = Nothing+    }+++-- | The Amazon Resource Name (ARN) that Route 53 assigns to the namespace when you create it.+nARN :: Lens' Namespace (Maybe Text)+nARN = lens _nARN (\ s a -> s{_nARN = a})++-- | A unique string that identifies the request and that allows failed requests to be retried without the risk of executing an operation twice.+nCreatorRequestId :: Lens' Namespace (Maybe Text)+nCreatorRequestId = lens _nCreatorRequestId (\ s a -> s{_nCreatorRequestId = a})++-- | The date that the namespace was created, in Unix date/time format and Coordinated Universal Time (UTC). The value of @CreateDate@ is accurate to milliseconds. For example, the value @1516925490.087@ represents Friday, January 26, 2018 12:11:30.087 AM.+nCreateDate :: Lens' Namespace (Maybe UTCTime)+nCreateDate = lens _nCreateDate (\ s a -> s{_nCreateDate = a}) . mapping _Time++-- | The number of services that are associated with the namespace.+nServiceCount :: Lens' Namespace (Maybe Int)+nServiceCount = lens _nServiceCount (\ s a -> s{_nServiceCount = a})++-- | The name of the namespace, such as @example.com@ .+nName :: Lens' Namespace (Maybe Text)+nName = lens _nName (\ s a -> s{_nName = a})++-- | The ID of a namespace.+nId :: Lens' Namespace (Maybe Text)+nId = lens _nId (\ s a -> s{_nId = a})++-- | The type of the namespace. Valid values are @DNS_PUBLIC@ and @DNS_PRIVATE@ .+nType :: Lens' Namespace (Maybe NamespaceType)+nType = lens _nType (\ s a -> s{_nType = a})++-- | The description that you specify for the namespace when you create it.+nDescription :: Lens' Namespace (Maybe Text)+nDescription = lens _nDescription (\ s a -> s{_nDescription = a})++-- | A complex type that contains information that's specific to the type of the namespace.+nProperties :: Lens' Namespace (Maybe NamespaceProperties)+nProperties = lens _nProperties (\ s a -> s{_nProperties = a})++instance FromJSON Namespace where+        parseJSON+          = withObject "Namespace"+              (\ x ->+                 Namespace' <$>+                   (x .:? "Arn") <*> (x .:? "CreatorRequestId") <*>+                     (x .:? "CreateDate")+                     <*> (x .:? "ServiceCount")+                     <*> (x .:? "Name")+                     <*> (x .:? "Id")+                     <*> (x .:? "Type")+                     <*> (x .:? "Description")+                     <*> (x .:? "Properties"))++instance Hashable Namespace where++instance NFData Namespace where++-- | A complex type that identifies the namespaces that you want to list. You can choose to list public or private namespaces.+--+--+--+-- /See:/ 'namespaceFilter' smart constructor.+data NamespaceFilter = NamespaceFilter'+  { _nfCondition :: !(Maybe FilterCondition)+  , _nfName      :: !NamespaceFilterName+  , _nfValues    :: ![Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NamespaceFilter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nfCondition' - The operator that you want to use to determine whether @ListNamespaces@ returns a namespace. Valid values for @condition@ include:     * @EQ@ : When you specify @EQ@ for the condition, you can choose to list only public namespaces or private namespaces, but not both. @EQ@ is the default condition and can be omitted.     * @IN@ : When you specify @IN@ for the condition, you can choose to list public namespaces, private namespaces, or both.      * @BETWEEN@ : Not applicable+--+-- * 'nfName' - Specify @TYPE@ .+--+-- * 'nfValues' - If you specify @EQ@ for @Condition@ , specify either @DNS_PUBLIC@ or @DNS_PRIVATE@ . If you specify @IN@ for @Condition@ , you can specify @DNS_PUBLIC@ , @DNS_PRIVATE@ , or both.+namespaceFilter+    :: NamespaceFilterName -- ^ 'nfName'+    -> NamespaceFilter+namespaceFilter pName_ =+  NamespaceFilter'+    {_nfCondition = Nothing, _nfName = pName_, _nfValues = mempty}+++-- | The operator that you want to use to determine whether @ListNamespaces@ returns a namespace. Valid values for @condition@ include:     * @EQ@ : When you specify @EQ@ for the condition, you can choose to list only public namespaces or private namespaces, but not both. @EQ@ is the default condition and can be omitted.     * @IN@ : When you specify @IN@ for the condition, you can choose to list public namespaces, private namespaces, or both.      * @BETWEEN@ : Not applicable+nfCondition :: Lens' NamespaceFilter (Maybe FilterCondition)+nfCondition = lens _nfCondition (\ s a -> s{_nfCondition = a})++-- | Specify @TYPE@ .+nfName :: Lens' NamespaceFilter NamespaceFilterName+nfName = lens _nfName (\ s a -> s{_nfName = a})++-- | If you specify @EQ@ for @Condition@ , specify either @DNS_PUBLIC@ or @DNS_PRIVATE@ . If you specify @IN@ for @Condition@ , you can specify @DNS_PUBLIC@ , @DNS_PRIVATE@ , or both.+nfValues :: Lens' NamespaceFilter [Text]+nfValues = lens _nfValues (\ s a -> s{_nfValues = a}) . _Coerce++instance Hashable NamespaceFilter where++instance NFData NamespaceFilter where++instance ToJSON NamespaceFilter where+        toJSON NamespaceFilter'{..}+          = object+              (catMaybes+                 [("Condition" .=) <$> _nfCondition,+                  Just ("Name" .= _nfName),+                  Just ("Values" .= _nfValues)])++-- | A complex type that contains information that is specific to the namespace type.+--+--+--+-- /See:/ 'namespaceProperties' smart constructor.+newtype NamespaceProperties = NamespaceProperties'+  { _npDNSProperties :: Maybe DNSProperties+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NamespaceProperties' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'npDNSProperties' - A complex type that contains the ID for the hosted zone that Route 53 creates when you create a namespace.+namespaceProperties+    :: NamespaceProperties+namespaceProperties = NamespaceProperties' {_npDNSProperties = Nothing}+++-- | A complex type that contains the ID for the hosted zone that Route 53 creates when you create a namespace.+npDNSProperties :: Lens' NamespaceProperties (Maybe DNSProperties)+npDNSProperties = lens _npDNSProperties (\ s a -> s{_npDNSProperties = a})++instance FromJSON NamespaceProperties where+        parseJSON+          = withObject "NamespaceProperties"+              (\ x ->+                 NamespaceProperties' <$> (x .:? "DnsProperties"))++instance Hashable NamespaceProperties where++instance NFData NamespaceProperties where++-- | A complex type that contains information about a namespace.+--+--+--+-- /See:/ 'namespaceSummary' smart constructor.+data NamespaceSummary = NamespaceSummary'+  { _nsARN  :: !(Maybe Text)+  , _nsName :: !(Maybe Text)+  , _nsId   :: !(Maybe Text)+  , _nsType :: !(Maybe NamespaceType)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NamespaceSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nsARN' - The Amazon Resource Name (ARN) that Route 53 assigns to the namespace when you create it.+--+-- * 'nsName' - The name of the namespace. When you create a namespace, Route 53 automatically creates a hosted zone that has the same name as the namespace.+--+-- * 'nsId' - The ID of the namespace.+--+-- * 'nsType' - The type of the namespace, either public or private.+namespaceSummary+    :: NamespaceSummary+namespaceSummary =+  NamespaceSummary'+    {_nsARN = Nothing, _nsName = Nothing, _nsId = Nothing, _nsType = Nothing}+++-- | The Amazon Resource Name (ARN) that Route 53 assigns to the namespace when you create it.+nsARN :: Lens' NamespaceSummary (Maybe Text)+nsARN = lens _nsARN (\ s a -> s{_nsARN = a})++-- | The name of the namespace. When you create a namespace, Route 53 automatically creates a hosted zone that has the same name as the namespace.+nsName :: Lens' NamespaceSummary (Maybe Text)+nsName = lens _nsName (\ s a -> s{_nsName = a})++-- | The ID of the namespace.+nsId :: Lens' NamespaceSummary (Maybe Text)+nsId = lens _nsId (\ s a -> s{_nsId = a})++-- | The type of the namespace, either public or private.+nsType :: Lens' NamespaceSummary (Maybe NamespaceType)+nsType = lens _nsType (\ s a -> s{_nsType = a})++instance FromJSON NamespaceSummary where+        parseJSON+          = withObject "NamespaceSummary"+              (\ x ->+                 NamespaceSummary' <$>+                   (x .:? "Arn") <*> (x .:? "Name") <*> (x .:? "Id") <*>+                     (x .:? "Type"))++instance Hashable NamespaceSummary where++instance NFData NamespaceSummary where++-- | A complex type that contains information about a specified operation.+--+--+--+-- /See:/ 'operation' smart constructor.+data Operation = Operation'+  { _oStatus       :: !(Maybe OperationStatus)+  , _oUpdateDate   :: !(Maybe POSIX)+  , _oCreateDate   :: !(Maybe POSIX)+  , _oTargets      :: !(Maybe (Map OperationTargetType Text))+  , _oErrorCode    :: !(Maybe Text)+  , _oId           :: !(Maybe Text)+  , _oType         :: !(Maybe OperationType)+  , _oErrorMessage :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Operation' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'oStatus' - The status of the operation. Values include the following:     * __SUBMITTED__ : This is the initial state immediately after you submit a request.     * __PENDING__ : Route 53 is performing the operation.     * __SUCCESS__ : The operation succeeded.     * __FAIL__ : The operation failed. For the failure reason, see @ErrorMessage@ .+--+-- * 'oUpdateDate' - The date and time that the value of @Status@ changed to the current value, in Unix date/time format and Coordinated Universal Time (UTC). The value of @UpdateDate@ is accurate to milliseconds. For example, the value @1516925490.087@ represents Friday, January 26, 2018 12:11:30.087 AM.+--+-- * 'oCreateDate' - The date and time that the request was submitted, in Unix date/time format and Coordinated Universal Time (UTC). The value of @CreateDate@ is accurate to milliseconds. For example, the value @1516925490.087@ represents Friday, January 26, 2018 12:11:30.087 AM.+--+-- * 'oTargets' - The name of the target entity that is associated with the operation:     * __NAMESPACE__ : The namespace ID is returned in the @ResourceId@ property.     * __SERVICE__ : The service ID is returned in the @ResourceId@ property.     * __INSTANCE__ : The instance ID is returned in the @ResourceId@ property.+--+-- * 'oErrorCode' - The code associated with @ErrorMessage@ . Values for @ErrorCode@ include the following:     * @ACCESS_DENIED@      * @CANNOT_CREATE_HOSTED_ZONE@      * @EXPIRED_TOKEN@      * @HOSTED_ZONE_NOT_FOUND@      * @INTERNAL_FAILURE@      * @INVALID_CHANGE_BATCH@      * @THROTTLED_REQUEST@+--+-- * 'oId' - The ID of the operation that you want to get information about.+--+-- * 'oType' - The name of the operation that is associated with the specified ID.+--+-- * 'oErrorMessage' - If the value of @Status@ is @FAIL@ , the reason that the operation failed.+operation+    :: Operation+operation =+  Operation'+    { _oStatus = Nothing+    , _oUpdateDate = Nothing+    , _oCreateDate = Nothing+    , _oTargets = Nothing+    , _oErrorCode = Nothing+    , _oId = Nothing+    , _oType = Nothing+    , _oErrorMessage = Nothing+    }+++-- | The status of the operation. Values include the following:     * __SUBMITTED__ : This is the initial state immediately after you submit a request.     * __PENDING__ : Route 53 is performing the operation.     * __SUCCESS__ : The operation succeeded.     * __FAIL__ : The operation failed. For the failure reason, see @ErrorMessage@ .+oStatus :: Lens' Operation (Maybe OperationStatus)+oStatus = lens _oStatus (\ s a -> s{_oStatus = a})++-- | The date and time that the value of @Status@ changed to the current value, in Unix date/time format and Coordinated Universal Time (UTC). The value of @UpdateDate@ is accurate to milliseconds. For example, the value @1516925490.087@ represents Friday, January 26, 2018 12:11:30.087 AM.+oUpdateDate :: Lens' Operation (Maybe UTCTime)+oUpdateDate = lens _oUpdateDate (\ s a -> s{_oUpdateDate = a}) . mapping _Time++-- | The date and time that the request was submitted, in Unix date/time format and Coordinated Universal Time (UTC). The value of @CreateDate@ is accurate to milliseconds. For example, the value @1516925490.087@ represents Friday, January 26, 2018 12:11:30.087 AM.+oCreateDate :: Lens' Operation (Maybe UTCTime)+oCreateDate = lens _oCreateDate (\ s a -> s{_oCreateDate = a}) . mapping _Time++-- | The name of the target entity that is associated with the operation:     * __NAMESPACE__ : The namespace ID is returned in the @ResourceId@ property.     * __SERVICE__ : The service ID is returned in the @ResourceId@ property.     * __INSTANCE__ : The instance ID is returned in the @ResourceId@ property.+oTargets :: Lens' Operation (HashMap OperationTargetType Text)+oTargets = lens _oTargets (\ s a -> s{_oTargets = a}) . _Default . _Map++-- | The code associated with @ErrorMessage@ . Values for @ErrorCode@ include the following:     * @ACCESS_DENIED@      * @CANNOT_CREATE_HOSTED_ZONE@      * @EXPIRED_TOKEN@      * @HOSTED_ZONE_NOT_FOUND@      * @INTERNAL_FAILURE@      * @INVALID_CHANGE_BATCH@      * @THROTTLED_REQUEST@+oErrorCode :: Lens' Operation (Maybe Text)+oErrorCode = lens _oErrorCode (\ s a -> s{_oErrorCode = a})++-- | The ID of the operation that you want to get information about.+oId :: Lens' Operation (Maybe Text)+oId = lens _oId (\ s a -> s{_oId = a})++-- | The name of the operation that is associated with the specified ID.+oType :: Lens' Operation (Maybe OperationType)+oType = lens _oType (\ s a -> s{_oType = a})++-- | If the value of @Status@ is @FAIL@ , the reason that the operation failed.+oErrorMessage :: Lens' Operation (Maybe Text)+oErrorMessage = lens _oErrorMessage (\ s a -> s{_oErrorMessage = a})++instance FromJSON Operation where+        parseJSON+          = withObject "Operation"+              (\ x ->+                 Operation' <$>+                   (x .:? "Status") <*> (x .:? "UpdateDate") <*>+                     (x .:? "CreateDate")+                     <*> (x .:? "Targets" .!= mempty)+                     <*> (x .:? "ErrorCode")+                     <*> (x .:? "Id")+                     <*> (x .:? "Type")+                     <*> (x .:? "ErrorMessage"))++instance Hashable Operation where++instance NFData Operation where++-- | A complex type that lets you select the operations that you want to list.+--+--+--+-- /See:/ 'operationFilter' smart constructor.+data OperationFilter = OperationFilter'+  { _ofCondition :: !(Maybe FilterCondition)+  , _ofName      :: !OperationFilterName+  , _ofValues    :: ![Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'OperationFilter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ofCondition' - The operator that you want to use to determine whether an operation matches the specified value. Valid values for condition include:     * @EQ@ : When you specify @EQ@ for the condition, you can specify only one value. @EQ@ is supported for @NAMESPACE_ID@ , @SERVICE_ID@ , @STATUS@ , and @TYPE@ . @EQ@ is the default condition and can be omitted.     * @IN@ : When you specify @IN@ for the condition, you can specify a list of one or more values. @IN@ is supported for @STATUS@ and @TYPE@ . An operation must match one of the specified values to be returned in the response.     * @BETWEEN@ : Specify a start date and an end date in Unix date/time format and Coordinated Universal Time (UTC). The start date must be the first value. @BETWEEN@ is supported for @UPDATE_DATE@ .+--+-- * 'ofName' - Specify the operations that you want to get:     * __NAMESPACE_ID__ : Gets operations related to specified namespaces.     * __SERVICE_ID__ : Gets operations related to specified services.     * __STATUS__ : Gets operations based on the status of the operations: @SUBMITTED@ , @PENDING@ , @SUCCEED@ , or @FAIL@ .     * __TYPE__ : Gets specified types of operation.     * __UPDATE_DATE__ : Gets operations that changed status during a specified date/time range.+--+-- * 'ofValues' - Specify values that are applicable to the value that you specify for @Name@ :      * __NAMESPACE_ID__ : Specify one namespace ID.     * __SERVICE_ID__ : Specify one service ID.     * __STATUS__ : Specify one or more statuses: @SUBMITTED@ , @PENDING@ , @SUCCEED@ , or @FAIL@ .     * __TYPE__ : Specify one or more of the following types: @CREATE_NAMESPACE@ , @DELETE_NAMESPACE@ , @UPDATE_SERVICE@ , @REGISTER_INSTANCE@ , or @DEREGISTER_INSTANCE@ .     * __UPDATE_DATE__ : Specify a start date and an end date in Unix date/time format and Coordinated Universal Time (UTC). The start date must be the first value.+operationFilter+    :: OperationFilterName -- ^ 'ofName'+    -> OperationFilter+operationFilter pName_ =+  OperationFilter'+    {_ofCondition = Nothing, _ofName = pName_, _ofValues = mempty}+++-- | The operator that you want to use to determine whether an operation matches the specified value. Valid values for condition include:     * @EQ@ : When you specify @EQ@ for the condition, you can specify only one value. @EQ@ is supported for @NAMESPACE_ID@ , @SERVICE_ID@ , @STATUS@ , and @TYPE@ . @EQ@ is the default condition and can be omitted.     * @IN@ : When you specify @IN@ for the condition, you can specify a list of one or more values. @IN@ is supported for @STATUS@ and @TYPE@ . An operation must match one of the specified values to be returned in the response.     * @BETWEEN@ : Specify a start date and an end date in Unix date/time format and Coordinated Universal Time (UTC). The start date must be the first value. @BETWEEN@ is supported for @UPDATE_DATE@ .+ofCondition :: Lens' OperationFilter (Maybe FilterCondition)+ofCondition = lens _ofCondition (\ s a -> s{_ofCondition = a})++-- | Specify the operations that you want to get:     * __NAMESPACE_ID__ : Gets operations related to specified namespaces.     * __SERVICE_ID__ : Gets operations related to specified services.     * __STATUS__ : Gets operations based on the status of the operations: @SUBMITTED@ , @PENDING@ , @SUCCEED@ , or @FAIL@ .     * __TYPE__ : Gets specified types of operation.     * __UPDATE_DATE__ : Gets operations that changed status during a specified date/time range.+ofName :: Lens' OperationFilter OperationFilterName+ofName = lens _ofName (\ s a -> s{_ofName = a})++-- | Specify values that are applicable to the value that you specify for @Name@ :      * __NAMESPACE_ID__ : Specify one namespace ID.     * __SERVICE_ID__ : Specify one service ID.     * __STATUS__ : Specify one or more statuses: @SUBMITTED@ , @PENDING@ , @SUCCEED@ , or @FAIL@ .     * __TYPE__ : Specify one or more of the following types: @CREATE_NAMESPACE@ , @DELETE_NAMESPACE@ , @UPDATE_SERVICE@ , @REGISTER_INSTANCE@ , or @DEREGISTER_INSTANCE@ .     * __UPDATE_DATE__ : Specify a start date and an end date in Unix date/time format and Coordinated Universal Time (UTC). The start date must be the first value.+ofValues :: Lens' OperationFilter [Text]+ofValues = lens _ofValues (\ s a -> s{_ofValues = a}) . _Coerce++instance Hashable OperationFilter where++instance NFData OperationFilter where++instance ToJSON OperationFilter where+        toJSON OperationFilter'{..}+          = object+              (catMaybes+                 [("Condition" .=) <$> _ofCondition,+                  Just ("Name" .= _ofName),+                  Just ("Values" .= _ofValues)])++-- | A complex type that contains information about an operation that matches the criteria that you specified in a 'ListOperations' request.+--+--+--+-- /See:/ 'operationSummary' smart constructor.+data OperationSummary = OperationSummary'+  { _osStatus :: !(Maybe OperationStatus)+  , _osId     :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'OperationSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'osStatus' - The status of the operation. Values include the following:     * __SUBMITTED__ : This is the initial state immediately after you submit a request.     * __PENDING__ : Route 53 is performing the operation.     * __SUCCESS__ : The operation succeeded.     * __FAIL__ : The operation failed. For the failure reason, see @ErrorMessage@ .+--+-- * 'osId' - The ID for an operation.+operationSummary+    :: OperationSummary+operationSummary = OperationSummary' {_osStatus = Nothing, _osId = Nothing}+++-- | The status of the operation. Values include the following:     * __SUBMITTED__ : This is the initial state immediately after you submit a request.     * __PENDING__ : Route 53 is performing the operation.     * __SUCCESS__ : The operation succeeded.     * __FAIL__ : The operation failed. For the failure reason, see @ErrorMessage@ .+osStatus :: Lens' OperationSummary (Maybe OperationStatus)+osStatus = lens _osStatus (\ s a -> s{_osStatus = a})++-- | The ID for an operation.+osId :: Lens' OperationSummary (Maybe Text)+osId = lens _osId (\ s a -> s{_osId = a})++instance FromJSON OperationSummary where+        parseJSON+          = withObject "OperationSummary"+              (\ x ->+                 OperationSummary' <$>+                   (x .:? "Status") <*> (x .:? "Id"))++instance Hashable OperationSummary where++instance NFData OperationSummary where++-- | A complex type that contains changes to an existing service.+--+--+--+-- /See:/ 'serviceChange' smart constructor.+data ServiceChange = ServiceChange'+  { _scHealthCheckConfig :: !(Maybe HealthCheckConfig)+  , _scDescription       :: !(Maybe Text)+  , _scDNSConfig         :: !DNSConfigChange+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ServiceChange' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'scHealthCheckConfig' - Undocumented member.+--+-- * 'scDescription' - A description for the service.+--+-- * 'scDNSConfig' - A complex type that contains information about the records that you want Route 53 to create when you register an instance.+serviceChange+    :: DNSConfigChange -- ^ 'scDNSConfig'+    -> ServiceChange+serviceChange pDNSConfig_ =+  ServiceChange'+    { _scHealthCheckConfig = Nothing+    , _scDescription = Nothing+    , _scDNSConfig = pDNSConfig_+    }+++-- | Undocumented member.+scHealthCheckConfig :: Lens' ServiceChange (Maybe HealthCheckConfig)+scHealthCheckConfig = lens _scHealthCheckConfig (\ s a -> s{_scHealthCheckConfig = a})++-- | A description for the service.+scDescription :: Lens' ServiceChange (Maybe Text)+scDescription = lens _scDescription (\ s a -> s{_scDescription = a})++-- | A complex type that contains information about the records that you want Route 53 to create when you register an instance.+scDNSConfig :: Lens' ServiceChange DNSConfigChange+scDNSConfig = lens _scDNSConfig (\ s a -> s{_scDNSConfig = a})++instance Hashable ServiceChange where++instance NFData ServiceChange where++instance ToJSON ServiceChange where+        toJSON ServiceChange'{..}+          = object+              (catMaybes+                 [("HealthCheckConfig" .=) <$> _scHealthCheckConfig,+                  ("Description" .=) <$> _scDescription,+                  Just ("DnsConfig" .= _scDNSConfig)])++-- | A complex type that lets you specify the namespaces that you want to list services for.+--+--+--+-- /See:/ 'serviceFilter' smart constructor.+data ServiceFilter = ServiceFilter'+  { _sfCondition :: !(Maybe FilterCondition)+  , _sfName      :: !ServiceFilterName+  , _sfValues    :: ![Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ServiceFilter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sfCondition' - The operator that you want to use to determine whether a service is returned by @ListServices@ . Valid values for @Condition@ include the following:     * @EQ@ : When you specify @EQ@ , specify one namespace ID for @Values@ . @EQ@ is the default condition and can be omitted.     * @IN@ : When you specify @IN@ , specify a list of the IDs for the namespaces that you want @ListServices@ to return a list of services for.     * @BETWEEN@ : Not applicable.+--+-- * 'sfName' - Specify @NAMESPACE_ID@ .+--+-- * 'sfValues' - The values that are applicable to the value that you specify for @Condition@ to filter the list of services.+serviceFilter+    :: ServiceFilterName -- ^ 'sfName'+    -> ServiceFilter+serviceFilter pName_ =+  ServiceFilter' {_sfCondition = Nothing, _sfName = pName_, _sfValues = mempty}+++-- | The operator that you want to use to determine whether a service is returned by @ListServices@ . Valid values for @Condition@ include the following:     * @EQ@ : When you specify @EQ@ , specify one namespace ID for @Values@ . @EQ@ is the default condition and can be omitted.     * @IN@ : When you specify @IN@ , specify a list of the IDs for the namespaces that you want @ListServices@ to return a list of services for.     * @BETWEEN@ : Not applicable.+sfCondition :: Lens' ServiceFilter (Maybe FilterCondition)+sfCondition = lens _sfCondition (\ s a -> s{_sfCondition = a})++-- | Specify @NAMESPACE_ID@ .+sfName :: Lens' ServiceFilter ServiceFilterName+sfName = lens _sfName (\ s a -> s{_sfName = a})++-- | The values that are applicable to the value that you specify for @Condition@ to filter the list of services.+sfValues :: Lens' ServiceFilter [Text]+sfValues = lens _sfValues (\ s a -> s{_sfValues = a}) . _Coerce++instance Hashable ServiceFilter where++instance NFData ServiceFilter where++instance ToJSON ServiceFilter where+        toJSON ServiceFilter'{..}+          = object+              (catMaybes+                 [("Condition" .=) <$> _sfCondition,+                  Just ("Name" .= _sfName),+                  Just ("Values" .= _sfValues)])++-- | A complex type that contains information about the specified service.+--+--+--+-- /See:/ 'serviceInfo' smart constructor.+data ServiceInfo = ServiceInfo'+  { _siInstanceCount           :: !(Maybe Int)+  , _siARN                     :: !(Maybe Text)+  , _siHealthCheckConfig       :: !(Maybe HealthCheckConfig)+  , _siCreatorRequestId        :: !(Maybe Text)+  , _siCreateDate              :: !(Maybe POSIX)+  , _siHealthCheckCustomConfig :: !(Maybe HealthCheckCustomConfig)+  , _siName                    :: !(Maybe Text)+  , _siId                      :: !(Maybe Text)+  , _siDNSConfig               :: !(Maybe DNSConfig)+  , _siDescription             :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ServiceInfo' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'siInstanceCount' - The number of instances that are currently associated with the service. Instances that were previously associated with the service but that have been deleted are not included in the count.+--+-- * 'siARN' - The Amazon Resource Name (ARN) that Route 53 assigns to the service when you create it.+--+-- * 'siHealthCheckConfig' - /Public DNS namespaces only./ A complex type that contains settings for an optional health check. If you specify settings for a health check, Route 53 associates the health check with all the records that you specify in @DnsConfig@ . For information about the charges for health checks, see <http://aws.amazon.com/route53/pricing Route 53 Pricing> .+--+-- * 'siCreatorRequestId' - A unique string that identifies the request and that allows failed requests to be retried without the risk of executing the operation twice. @CreatorRequestId@ can be any unique string, for example, a date/time stamp.+--+-- * 'siCreateDate' - The date and time that the service was created, in Unix format and Coordinated Universal Time (UTC). The value of @CreateDate@ is accurate to milliseconds. For example, the value @1516925490.087@ represents Friday, January 26, 2018 12:11:30.087 AM.+--+-- * 'siHealthCheckCustomConfig' - Undocumented member.+--+-- * 'siName' - The name of the service.+--+-- * 'siId' - The ID that Route 53 assigned to the service when you created it.+--+-- * 'siDNSConfig' - A complex type that contains information about the records that you want Route 53 to create when you register an instance.+--+-- * 'siDescription' - The description of the service.+serviceInfo+    :: ServiceInfo+serviceInfo =+  ServiceInfo'+    { _siInstanceCount = Nothing+    , _siARN = Nothing+    , _siHealthCheckConfig = Nothing+    , _siCreatorRequestId = Nothing+    , _siCreateDate = Nothing+    , _siHealthCheckCustomConfig = Nothing+    , _siName = Nothing+    , _siId = Nothing+    , _siDNSConfig = Nothing+    , _siDescription = Nothing+    }+++-- | The number of instances that are currently associated with the service. Instances that were previously associated with the service but that have been deleted are not included in the count.+siInstanceCount :: Lens' ServiceInfo (Maybe Int)+siInstanceCount = lens _siInstanceCount (\ s a -> s{_siInstanceCount = a})++-- | The Amazon Resource Name (ARN) that Route 53 assigns to the service when you create it.+siARN :: Lens' ServiceInfo (Maybe Text)+siARN = lens _siARN (\ s a -> s{_siARN = a})++-- | /Public DNS namespaces only./ A complex type that contains settings for an optional health check. If you specify settings for a health check, Route 53 associates the health check with all the records that you specify in @DnsConfig@ . For information about the charges for health checks, see <http://aws.amazon.com/route53/pricing Route 53 Pricing> .+siHealthCheckConfig :: Lens' ServiceInfo (Maybe HealthCheckConfig)+siHealthCheckConfig = lens _siHealthCheckConfig (\ s a -> s{_siHealthCheckConfig = a})++-- | A unique string that identifies the request and that allows failed requests to be retried without the risk of executing the operation twice. @CreatorRequestId@ can be any unique string, for example, a date/time stamp.+siCreatorRequestId :: Lens' ServiceInfo (Maybe Text)+siCreatorRequestId = lens _siCreatorRequestId (\ s a -> s{_siCreatorRequestId = a})++-- | The date and time that the service was created, in Unix format and Coordinated Universal Time (UTC). The value of @CreateDate@ is accurate to milliseconds. For example, the value @1516925490.087@ represents Friday, January 26, 2018 12:11:30.087 AM.+siCreateDate :: Lens' ServiceInfo (Maybe UTCTime)+siCreateDate = lens _siCreateDate (\ s a -> s{_siCreateDate = a}) . mapping _Time++-- | Undocumented member.+siHealthCheckCustomConfig :: Lens' ServiceInfo (Maybe HealthCheckCustomConfig)+siHealthCheckCustomConfig = lens _siHealthCheckCustomConfig (\ s a -> s{_siHealthCheckCustomConfig = a})++-- | The name of the service.+siName :: Lens' ServiceInfo (Maybe Text)+siName = lens _siName (\ s a -> s{_siName = a})++-- | The ID that Route 53 assigned to the service when you created it.+siId :: Lens' ServiceInfo (Maybe Text)+siId = lens _siId (\ s a -> s{_siId = a})++-- | A complex type that contains information about the records that you want Route 53 to create when you register an instance.+siDNSConfig :: Lens' ServiceInfo (Maybe DNSConfig)+siDNSConfig = lens _siDNSConfig (\ s a -> s{_siDNSConfig = a})++-- | The description of the service.+siDescription :: Lens' ServiceInfo (Maybe Text)+siDescription = lens _siDescription (\ s a -> s{_siDescription = a})++instance FromJSON ServiceInfo where+        parseJSON+          = withObject "ServiceInfo"+              (\ x ->+                 ServiceInfo' <$>+                   (x .:? "InstanceCount") <*> (x .:? "Arn") <*>+                     (x .:? "HealthCheckConfig")+                     <*> (x .:? "CreatorRequestId")+                     <*> (x .:? "CreateDate")+                     <*> (x .:? "HealthCheckCustomConfig")+                     <*> (x .:? "Name")+                     <*> (x .:? "Id")+                     <*> (x .:? "DnsConfig")+                     <*> (x .:? "Description"))++instance Hashable ServiceInfo where++instance NFData ServiceInfo where++-- | A complex type that contains information about a specified service.+--+--+--+-- /See:/ 'serviceSummary' smart constructor.+data ServiceSummary = ServiceSummary'+  { _ssInstanceCount :: !(Maybe Int)+  , _ssARN           :: !(Maybe Text)+  , _ssName          :: !(Maybe Text)+  , _ssId            :: !(Maybe Text)+  , _ssDescription   :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ServiceSummary' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ssInstanceCount' - The number of instances that are currently associated with the service. Instances that were previously associated with the service but that have been deleted are not included in the count.+--+-- * 'ssARN' - The Amazon Resource Name (ARN) that Route 53 assigns to the service when you create it.+--+-- * 'ssName' - The name of the service.+--+-- * 'ssId' - The ID that Route 53 assigned to the service when you created it.+--+-- * 'ssDescription' - The description that you specify when you create the service.+serviceSummary+    :: ServiceSummary+serviceSummary =+  ServiceSummary'+    { _ssInstanceCount = Nothing+    , _ssARN = Nothing+    , _ssName = Nothing+    , _ssId = Nothing+    , _ssDescription = Nothing+    }+++-- | The number of instances that are currently associated with the service. Instances that were previously associated with the service but that have been deleted are not included in the count.+ssInstanceCount :: Lens' ServiceSummary (Maybe Int)+ssInstanceCount = lens _ssInstanceCount (\ s a -> s{_ssInstanceCount = a})++-- | The Amazon Resource Name (ARN) that Route 53 assigns to the service when you create it.+ssARN :: Lens' ServiceSummary (Maybe Text)+ssARN = lens _ssARN (\ s a -> s{_ssARN = a})++-- | The name of the service.+ssName :: Lens' ServiceSummary (Maybe Text)+ssName = lens _ssName (\ s a -> s{_ssName = a})++-- | The ID that Route 53 assigned to the service when you created it.+ssId :: Lens' ServiceSummary (Maybe Text)+ssId = lens _ssId (\ s a -> s{_ssId = a})++-- | The description that you specify when you create the service.+ssDescription :: Lens' ServiceSummary (Maybe Text)+ssDescription = lens _ssDescription (\ s a -> s{_ssDescription = a})++instance FromJSON ServiceSummary where+        parseJSON+          = withObject "ServiceSummary"+              (\ x ->+                 ServiceSummary' <$>+                   (x .:? "InstanceCount") <*> (x .:? "Arn") <*>+                     (x .:? "Name")+                     <*> (x .:? "Id")+                     <*> (x .:? "Description"))++instance Hashable ServiceSummary where++instance NFData ServiceSummary where
+ gen/Network/AWS/Route53AutoNaming/Types/Sum.hs view
@@ -0,0 +1,416 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Route53AutoNaming.Types.Sum+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.Route53AutoNaming.Types.Sum where++import Network.AWS.Prelude++data CustomHealthStatus+  = CHSHealthy+  | CHSUnhealthy+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText CustomHealthStatus where+    parser = takeLowerText >>= \case+        "healthy" -> pure CHSHealthy+        "unhealthy" -> pure CHSUnhealthy+        e -> fromTextError $ "Failure parsing CustomHealthStatus from value: '" <> e+           <> "'. Accepted values: healthy, unhealthy"++instance ToText CustomHealthStatus where+    toText = \case+        CHSHealthy -> "HEALTHY"+        CHSUnhealthy -> "UNHEALTHY"++instance Hashable     CustomHealthStatus+instance NFData       CustomHealthStatus+instance ToByteString CustomHealthStatus+instance ToQuery      CustomHealthStatus+instance ToHeader     CustomHealthStatus++instance ToJSON CustomHealthStatus where+    toJSON = toJSONText++data FilterCondition+  = Between+  | EQ'+  | IN+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText FilterCondition where+    parser = takeLowerText >>= \case+        "between" -> pure Between+        "eq" -> pure EQ'+        "in" -> pure IN+        e -> fromTextError $ "Failure parsing FilterCondition from value: '" <> e+           <> "'. Accepted values: between, eq, in"++instance ToText FilterCondition where+    toText = \case+        Between -> "BETWEEN"+        EQ' -> "EQ"+        IN -> "IN"++instance Hashable     FilterCondition+instance NFData       FilterCondition+instance ToByteString FilterCondition+instance ToQuery      FilterCondition+instance ToHeader     FilterCondition++instance ToJSON FilterCondition where+    toJSON = toJSONText++data HealthCheckType+  = HTTP+  | HTTPS+  | TCP+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText HealthCheckType where+    parser = takeLowerText >>= \case+        "http" -> pure HTTP+        "https" -> pure HTTPS+        "tcp" -> pure TCP+        e -> fromTextError $ "Failure parsing HealthCheckType from value: '" <> e+           <> "'. Accepted values: http, https, tcp"++instance ToText HealthCheckType where+    toText = \case+        HTTP -> "HTTP"+        HTTPS -> "HTTPS"+        TCP -> "TCP"++instance Hashable     HealthCheckType+instance NFData       HealthCheckType+instance ToByteString HealthCheckType+instance ToQuery      HealthCheckType+instance ToHeader     HealthCheckType++instance ToJSON HealthCheckType where+    toJSON = toJSONText++instance FromJSON HealthCheckType where+    parseJSON = parseJSONText "HealthCheckType"++data HealthStatus+  = Healthy+  | Unhealthy+  | Unknown+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText HealthStatus where+    parser = takeLowerText >>= \case+        "healthy" -> pure Healthy+        "unhealthy" -> pure Unhealthy+        "unknown" -> pure Unknown+        e -> fromTextError $ "Failure parsing HealthStatus from value: '" <> e+           <> "'. Accepted values: healthy, unhealthy, unknown"++instance ToText HealthStatus where+    toText = \case+        Healthy -> "HEALTHY"+        Unhealthy -> "UNHEALTHY"+        Unknown -> "UNKNOWN"++instance Hashable     HealthStatus+instance NFData       HealthStatus+instance ToByteString HealthStatus+instance ToQuery      HealthStatus+instance ToHeader     HealthStatus++instance FromJSON HealthStatus where+    parseJSON = parseJSONText "HealthStatus"++data NamespaceFilterName =+  Type+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText NamespaceFilterName where+    parser = takeLowerText >>= \case+        "type" -> pure Type+        e -> fromTextError $ "Failure parsing NamespaceFilterName from value: '" <> e+           <> "'. Accepted values: type"++instance ToText NamespaceFilterName where+    toText = \case+        Type -> "TYPE"++instance Hashable     NamespaceFilterName+instance NFData       NamespaceFilterName+instance ToByteString NamespaceFilterName+instance ToQuery      NamespaceFilterName+instance ToHeader     NamespaceFilterName++instance ToJSON NamespaceFilterName where+    toJSON = toJSONText++data NamespaceType+  = DNSPrivate+  | DNSPublic+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText NamespaceType where+    parser = takeLowerText >>= \case+        "dns_private" -> pure DNSPrivate+        "dns_public" -> pure DNSPublic+        e -> fromTextError $ "Failure parsing NamespaceType from value: '" <> e+           <> "'. Accepted values: dns_private, dns_public"++instance ToText NamespaceType where+    toText = \case+        DNSPrivate -> "DNS_PRIVATE"+        DNSPublic -> "DNS_PUBLIC"++instance Hashable     NamespaceType+instance NFData       NamespaceType+instance ToByteString NamespaceType+instance ToQuery      NamespaceType+instance ToHeader     NamespaceType++instance FromJSON NamespaceType where+    parseJSON = parseJSONText "NamespaceType"++data OperationFilterName+  = OFNNamespaceId+  | OFNServiceId+  | OFNStatus+  | OFNType+  | OFNUpdateDate+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText OperationFilterName where+    parser = takeLowerText >>= \case+        "namespace_id" -> pure OFNNamespaceId+        "service_id" -> pure OFNServiceId+        "status" -> pure OFNStatus+        "type" -> pure OFNType+        "update_date" -> pure OFNUpdateDate+        e -> fromTextError $ "Failure parsing OperationFilterName from value: '" <> e+           <> "'. Accepted values: namespace_id, service_id, status, type, update_date"++instance ToText OperationFilterName where+    toText = \case+        OFNNamespaceId -> "NAMESPACE_ID"+        OFNServiceId -> "SERVICE_ID"+        OFNStatus -> "STATUS"+        OFNType -> "TYPE"+        OFNUpdateDate -> "UPDATE_DATE"++instance Hashable     OperationFilterName+instance NFData       OperationFilterName+instance ToByteString OperationFilterName+instance ToQuery      OperationFilterName+instance ToHeader     OperationFilterName++instance ToJSON OperationFilterName where+    toJSON = toJSONText++data OperationStatus+  = Fail+  | Pending+  | Submitted+  | Success+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText OperationStatus where+    parser = takeLowerText >>= \case+        "fail" -> pure Fail+        "pending" -> pure Pending+        "submitted" -> pure Submitted+        "success" -> pure Success+        e -> fromTextError $ "Failure parsing OperationStatus from value: '" <> e+           <> "'. Accepted values: fail, pending, submitted, success"++instance ToText OperationStatus where+    toText = \case+        Fail -> "FAIL"+        Pending -> "PENDING"+        Submitted -> "SUBMITTED"+        Success -> "SUCCESS"++instance Hashable     OperationStatus+instance NFData       OperationStatus+instance ToByteString OperationStatus+instance ToQuery      OperationStatus+instance ToHeader     OperationStatus++instance FromJSON OperationStatus where+    parseJSON = parseJSONText "OperationStatus"++data OperationTargetType+  = OTTInstance+  | OTTNamespace+  | OTTService+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText OperationTargetType where+    parser = takeLowerText >>= \case+        "instance" -> pure OTTInstance+        "namespace" -> pure OTTNamespace+        "service" -> pure OTTService+        e -> fromTextError $ "Failure parsing OperationTargetType from value: '" <> e+           <> "'. Accepted values: instance, namespace, service"++instance ToText OperationTargetType where+    toText = \case+        OTTInstance -> "INSTANCE"+        OTTNamespace -> "NAMESPACE"+        OTTService -> "SERVICE"++instance Hashable     OperationTargetType+instance NFData       OperationTargetType+instance ToByteString OperationTargetType+instance ToQuery      OperationTargetType+instance ToHeader     OperationTargetType++instance FromJSON OperationTargetType where+    parseJSON = parseJSONText "OperationTargetType"++data OperationType+  = CreateNamespace+  | DeleteNamespace+  | DeregisterInstance+  | RegisterInstance+  | UpdateService+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText OperationType where+    parser = takeLowerText >>= \case+        "create_namespace" -> pure CreateNamespace+        "delete_namespace" -> pure DeleteNamespace+        "deregister_instance" -> pure DeregisterInstance+        "register_instance" -> pure RegisterInstance+        "update_service" -> pure UpdateService+        e -> fromTextError $ "Failure parsing OperationType from value: '" <> e+           <> "'. Accepted values: create_namespace, delete_namespace, deregister_instance, register_instance, update_service"++instance ToText OperationType where+    toText = \case+        CreateNamespace -> "CREATE_NAMESPACE"+        DeleteNamespace -> "DELETE_NAMESPACE"+        DeregisterInstance -> "DEREGISTER_INSTANCE"+        RegisterInstance -> "REGISTER_INSTANCE"+        UpdateService -> "UPDATE_SERVICE"++instance Hashable     OperationType+instance NFData       OperationType+instance ToByteString OperationType+instance ToQuery      OperationType+instance ToHeader     OperationType++instance FromJSON OperationType where+    parseJSON = parseJSONText "OperationType"++data RecordType+  = A+  | Aaaa+  | Cname+  | Srv+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText RecordType where+    parser = takeLowerText >>= \case+        "a" -> pure A+        "aaaa" -> pure Aaaa+        "cname" -> pure Cname+        "srv" -> pure Srv+        e -> fromTextError $ "Failure parsing RecordType from value: '" <> e+           <> "'. Accepted values: a, aaaa, cname, srv"++instance ToText RecordType where+    toText = \case+        A -> "A"+        Aaaa -> "AAAA"+        Cname -> "CNAME"+        Srv -> "SRV"++instance Hashable     RecordType+instance NFData       RecordType+instance ToByteString RecordType+instance ToQuery      RecordType+instance ToHeader     RecordType++instance ToJSON RecordType where+    toJSON = toJSONText++instance FromJSON RecordType where+    parseJSON = parseJSONText "RecordType"++data RoutingPolicy+  = Multivalue+  | Weighted+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText RoutingPolicy where+    parser = takeLowerText >>= \case+        "multivalue" -> pure Multivalue+        "weighted" -> pure Weighted+        e -> fromTextError $ "Failure parsing RoutingPolicy from value: '" <> e+           <> "'. Accepted values: multivalue, weighted"++instance ToText RoutingPolicy where+    toText = \case+        Multivalue -> "MULTIVALUE"+        Weighted -> "WEIGHTED"++instance Hashable     RoutingPolicy+instance NFData       RoutingPolicy+instance ToByteString RoutingPolicy+instance ToQuery      RoutingPolicy+instance ToHeader     RoutingPolicy++instance ToJSON RoutingPolicy where+    toJSON = toJSONText++instance FromJSON RoutingPolicy where+    parseJSON = parseJSONText "RoutingPolicy"++data ServiceFilterName =+  NamespaceId+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ServiceFilterName where+    parser = takeLowerText >>= \case+        "namespace_id" -> pure NamespaceId+        e -> fromTextError $ "Failure parsing ServiceFilterName from value: '" <> e+           <> "'. Accepted values: namespace_id"++instance ToText ServiceFilterName where+    toText = \case+        NamespaceId -> "NAMESPACE_ID"++instance Hashable     ServiceFilterName+instance NFData       ServiceFilterName+instance ToByteString ServiceFilterName+instance ToQuery      ServiceFilterName+instance ToHeader     ServiceFilterName++instance ToJSON ServiceFilterName where+    toJSON = toJSONText
+ gen/Network/AWS/Route53AutoNaming/UpdateInstanceCustomHealthStatus.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Route53AutoNaming.UpdateInstanceCustomHealthStatus+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Undocumented operation.+module Network.AWS.Route53AutoNaming.UpdateInstanceCustomHealthStatus+    (+    -- * Creating a Request+      updateInstanceCustomHealthStatus+    , UpdateInstanceCustomHealthStatus+    -- * Request Lenses+    , uichsServiceId+    , uichsInstanceId+    , uichsStatus++    -- * Destructuring the Response+    , updateInstanceCustomHealthStatusResponse+    , UpdateInstanceCustomHealthStatusResponse+    ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.Route53AutoNaming.Types+import Network.AWS.Route53AutoNaming.Types.Product++-- | /See:/ 'updateInstanceCustomHealthStatus' smart constructor.+data UpdateInstanceCustomHealthStatus = UpdateInstanceCustomHealthStatus'+  { _uichsServiceId  :: !Text+  , _uichsInstanceId :: !Text+  , _uichsStatus     :: !CustomHealthStatus+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateInstanceCustomHealthStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'uichsServiceId' - Undocumented member.+--+-- * 'uichsInstanceId' - Undocumented member.+--+-- * 'uichsStatus' - Undocumented member.+updateInstanceCustomHealthStatus+    :: Text -- ^ 'uichsServiceId'+    -> Text -- ^ 'uichsInstanceId'+    -> CustomHealthStatus -- ^ 'uichsStatus'+    -> UpdateInstanceCustomHealthStatus+updateInstanceCustomHealthStatus pServiceId_ pInstanceId_ pStatus_ =+  UpdateInstanceCustomHealthStatus'+    { _uichsServiceId = pServiceId_+    , _uichsInstanceId = pInstanceId_+    , _uichsStatus = pStatus_+    }+++-- | Undocumented member.+uichsServiceId :: Lens' UpdateInstanceCustomHealthStatus Text+uichsServiceId = lens _uichsServiceId (\ s a -> s{_uichsServiceId = a})++-- | Undocumented member.+uichsInstanceId :: Lens' UpdateInstanceCustomHealthStatus Text+uichsInstanceId = lens _uichsInstanceId (\ s a -> s{_uichsInstanceId = a})++-- | Undocumented member.+uichsStatus :: Lens' UpdateInstanceCustomHealthStatus CustomHealthStatus+uichsStatus = lens _uichsStatus (\ s a -> s{_uichsStatus = a})++instance AWSRequest UpdateInstanceCustomHealthStatus+         where+        type Rs UpdateInstanceCustomHealthStatus =+             UpdateInstanceCustomHealthStatusResponse+        request = postJSON route53AutoNaming+        response+          = receiveNull+              UpdateInstanceCustomHealthStatusResponse'++instance Hashable UpdateInstanceCustomHealthStatus+         where++instance NFData UpdateInstanceCustomHealthStatus+         where++instance ToHeaders UpdateInstanceCustomHealthStatus+         where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("Route53AutoNaming_v20170314.UpdateInstanceCustomHealthStatus"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdateInstanceCustomHealthStatus+         where+        toJSON UpdateInstanceCustomHealthStatus'{..}+          = object+              (catMaybes+                 [Just ("ServiceId" .= _uichsServiceId),+                  Just ("InstanceId" .= _uichsInstanceId),+                  Just ("Status" .= _uichsStatus)])++instance ToPath UpdateInstanceCustomHealthStatus+         where+        toPath = const "/"++instance ToQuery UpdateInstanceCustomHealthStatus+         where+        toQuery = const mempty++-- | /See:/ 'updateInstanceCustomHealthStatusResponse' smart constructor.+data UpdateInstanceCustomHealthStatusResponse =+  UpdateInstanceCustomHealthStatusResponse'+  deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateInstanceCustomHealthStatusResponse' with the minimum fields required to make a request.+--+updateInstanceCustomHealthStatusResponse+    :: UpdateInstanceCustomHealthStatusResponse+updateInstanceCustomHealthStatusResponse =+  UpdateInstanceCustomHealthStatusResponse'+++instance NFData+           UpdateInstanceCustomHealthStatusResponse+         where
+ gen/Network/AWS/Route53AutoNaming/UpdateService.hs view
@@ -0,0 +1,156 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Route53AutoNaming.UpdateService+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Submits a request to perform the following operations:+--+--+--     * Add or delete @DnsRecords@ configurations+--+--     * Update the TTL setting for existing @DnsRecords@ configurations+--+--     * Add, update, or delete @HealthCheckConfig@ for a specified service+--+--+--+-- You must specify all @DnsRecords@ configurations (and, optionally, @HealthCheckConfig@ ) that you want to appear in the updated service. Any current configurations that don't appear in an @UpdateService@ request are deleted.+--+-- When you update the TTL setting for a service, Amazon Route 53 also updates the corresponding settings in all the records and health checks that were created by using the specified service.+--+module Network.AWS.Route53AutoNaming.UpdateService+    (+    -- * Creating a Request+      updateService+    , UpdateService+    -- * Request Lenses+    , usId+    , usService++    -- * Destructuring the Response+    , updateServiceResponse+    , UpdateServiceResponse+    -- * Response Lenses+    , usrsOperationId+    , usrsResponseStatus+    ) where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response+import Network.AWS.Route53AutoNaming.Types+import Network.AWS.Route53AutoNaming.Types.Product++-- | /See:/ 'updateService' smart constructor.+data UpdateService = UpdateService'+  { _usId      :: !Text+  , _usService :: !ServiceChange+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateService' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'usId' - The ID of the service that you want to update.+--+-- * 'usService' - A complex type that contains the new settings for the service.+updateService+    :: Text -- ^ 'usId'+    -> ServiceChange -- ^ 'usService'+    -> UpdateService+updateService pId_ pService_ =+  UpdateService' {_usId = pId_, _usService = pService_}+++-- | The ID of the service that you want to update.+usId :: Lens' UpdateService Text+usId = lens _usId (\ s a -> s{_usId = a})++-- | A complex type that contains the new settings for the service.+usService :: Lens' UpdateService ServiceChange+usService = lens _usService (\ s a -> s{_usService = a})++instance AWSRequest UpdateService where+        type Rs UpdateService = UpdateServiceResponse+        request = postJSON route53AutoNaming+        response+          = receiveJSON+              (\ s h x ->+                 UpdateServiceResponse' <$>+                   (x .?> "OperationId") <*> (pure (fromEnum s)))++instance Hashable UpdateService where++instance NFData UpdateService where++instance ToHeaders UpdateService where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("Route53AutoNaming_v20170314.UpdateService" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdateService where+        toJSON UpdateService'{..}+          = object+              (catMaybes+                 [Just ("Id" .= _usId),+                  Just ("Service" .= _usService)])++instance ToPath UpdateService where+        toPath = const "/"++instance ToQuery UpdateService where+        toQuery = const mempty++-- | /See:/ 'updateServiceResponse' smart constructor.+data UpdateServiceResponse = UpdateServiceResponse'+  { _usrsOperationId    :: !(Maybe Text)+  , _usrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateServiceResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'usrsOperationId' - A value that you can use to determine whether the request completed successfully. To get the status of the operation, see 'GetOperation' .+--+-- * 'usrsResponseStatus' - -- | The response status code.+updateServiceResponse+    :: Int -- ^ 'usrsResponseStatus'+    -> UpdateServiceResponse+updateServiceResponse pResponseStatus_ =+  UpdateServiceResponse'+    {_usrsOperationId = Nothing, _usrsResponseStatus = pResponseStatus_}+++-- | A value that you can use to determine whether the request completed successfully. To get the status of the operation, see 'GetOperation' .+usrsOperationId :: Lens' UpdateServiceResponse (Maybe Text)+usrsOperationId = lens _usrsOperationId (\ s a -> s{_usrsOperationId = a})++-- | -- | The response status code.+usrsResponseStatus :: Lens' UpdateServiceResponse Int+usrsResponseStatus = lens _usrsResponseStatus (\ s a -> s{_usrsResponseStatus = a})++instance NFData UpdateServiceResponse where
+ gen/Network/AWS/Route53AutoNaming/Waiters.hs view
@@ -0,0 +1,21 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TypeFamilies      #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Route53AutoNaming.Waiters+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.Route53AutoNaming.Waiters where++import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Route53AutoNaming.Types+import Network.AWS.Waiter
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,21 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Main+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Main (main) where++import Test.Tasty+import Test.AWS.Route53AutoNaming+import Test.AWS.Route53AutoNaming.Internal++main :: IO ()+main = defaultMain $ testGroup "Route53AutoNaming"+    [ testGroup "tests"    tests+    , testGroup "fixtures" fixtures+    ]
+ test/Test/AWS/Gen/Route53AutoNaming.hs view
@@ -0,0 +1,363 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-orphans        #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Test.AWS.Gen.Route53AutoNaming+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Test.AWS.Gen.Route53AutoNaming where++import Data.Proxy+import Network.AWS.Route53AutoNaming+import Test.AWS.Fixture+import Test.AWS.Prelude+import Test.AWS.Route53AutoNaming.Internal+import Test.Tasty++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+--     [ testGroup "request"+--         [ requestListServices $+--             listServices+--+--         , requestDeleteService $+--             deleteService+--+--         , requestUpdateService $+--             updateService+--+--         , requestListOperations $+--             listOperations+--+--         , requestCreatePublicDNSNamespace $+--             createPublicDNSNamespace+--+--         , requestGetInstance $+--             getInstance+--+--         , requestListNamespaces $+--             listNamespaces+--+--         , requestDeleteNamespace $+--             deleteNamespace+--+--         , requestGetInstancesHealthStatus $+--             getInstancesHealthStatus+--+--         , requestGetNamespace $+--             getNamespace+--+--         , requestRegisterInstance $+--             registerInstance+--+--         , requestListInstances $+--             listInstances+--+--         , requestGetOperation $+--             getOperation+--+--         , requestUpdateInstanceCustomHealthStatus $+--             updateInstanceCustomHealthStatus+--+--         , requestGetService $+--             getService+--+--         , requestCreatePrivateDNSNamespace $+--             createPrivateDNSNamespace+--+--         , requestCreateService $+--             createService+--+--         , requestDeregisterInstance $+--             deregisterInstance+--+--           ]++--     , testGroup "response"+--         [ responseListServices $+--             listServicesResponse+--+--         , responseDeleteService $+--             deleteServiceResponse+--+--         , responseUpdateService $+--             updateServiceResponse+--+--         , responseListOperations $+--             listOperationsResponse+--+--         , responseCreatePublicDNSNamespace $+--             createPublicDNSNamespaceResponse+--+--         , responseGetInstance $+--             getInstanceResponse+--+--         , responseListNamespaces $+--             listNamespacesResponse+--+--         , responseDeleteNamespace $+--             deleteNamespaceResponse+--+--         , responseGetInstancesHealthStatus $+--             getInstancesHealthStatusResponse+--+--         , responseGetNamespace $+--             getNamespaceResponse+--+--         , responseRegisterInstance $+--             registerInstanceResponse+--+--         , responseListInstances $+--             listInstancesResponse+--+--         , responseGetOperation $+--             getOperationResponse+--+--         , responseUpdateInstanceCustomHealthStatus $+--             updateInstanceCustomHealthStatusResponse+--+--         , responseGetService $+--             getServiceResponse+--+--         , responseCreatePrivateDNSNamespace $+--             createPrivateDNSNamespaceResponse+--+--         , responseCreateService $+--             createServiceResponse+--+--         , responseDeregisterInstance $+--             deregisterInstanceResponse+--+--           ]+--     ]++-- Requests++requestListServices :: ListServices -> TestTree+requestListServices = req+    "ListServices"+    "fixture/ListServices.yaml"++requestDeleteService :: DeleteService -> TestTree+requestDeleteService = req+    "DeleteService"+    "fixture/DeleteService.yaml"++requestUpdateService :: UpdateService -> TestTree+requestUpdateService = req+    "UpdateService"+    "fixture/UpdateService.yaml"++requestListOperations :: ListOperations -> TestTree+requestListOperations = req+    "ListOperations"+    "fixture/ListOperations.yaml"++requestCreatePublicDNSNamespace :: CreatePublicDNSNamespace -> TestTree+requestCreatePublicDNSNamespace = req+    "CreatePublicDNSNamespace"+    "fixture/CreatePublicDNSNamespace.yaml"++requestGetInstance :: GetInstance -> TestTree+requestGetInstance = req+    "GetInstance"+    "fixture/GetInstance.yaml"++requestListNamespaces :: ListNamespaces -> TestTree+requestListNamespaces = req+    "ListNamespaces"+    "fixture/ListNamespaces.yaml"++requestDeleteNamespace :: DeleteNamespace -> TestTree+requestDeleteNamespace = req+    "DeleteNamespace"+    "fixture/DeleteNamespace.yaml"++requestGetInstancesHealthStatus :: GetInstancesHealthStatus -> TestTree+requestGetInstancesHealthStatus = req+    "GetInstancesHealthStatus"+    "fixture/GetInstancesHealthStatus.yaml"++requestGetNamespace :: GetNamespace -> TestTree+requestGetNamespace = req+    "GetNamespace"+    "fixture/GetNamespace.yaml"++requestRegisterInstance :: RegisterInstance -> TestTree+requestRegisterInstance = req+    "RegisterInstance"+    "fixture/RegisterInstance.yaml"++requestListInstances :: ListInstances -> TestTree+requestListInstances = req+    "ListInstances"+    "fixture/ListInstances.yaml"++requestGetOperation :: GetOperation -> TestTree+requestGetOperation = req+    "GetOperation"+    "fixture/GetOperation.yaml"++requestUpdateInstanceCustomHealthStatus :: UpdateInstanceCustomHealthStatus -> TestTree+requestUpdateInstanceCustomHealthStatus = req+    "UpdateInstanceCustomHealthStatus"+    "fixture/UpdateInstanceCustomHealthStatus.yaml"++requestGetService :: GetService -> TestTree+requestGetService = req+    "GetService"+    "fixture/GetService.yaml"++requestCreatePrivateDNSNamespace :: CreatePrivateDNSNamespace -> TestTree+requestCreatePrivateDNSNamespace = req+    "CreatePrivateDNSNamespace"+    "fixture/CreatePrivateDNSNamespace.yaml"++requestCreateService :: CreateService -> TestTree+requestCreateService = req+    "CreateService"+    "fixture/CreateService.yaml"++requestDeregisterInstance :: DeregisterInstance -> TestTree+requestDeregisterInstance = req+    "DeregisterInstance"+    "fixture/DeregisterInstance.yaml"++-- Responses++responseListServices :: ListServicesResponse -> TestTree+responseListServices = res+    "ListServicesResponse"+    "fixture/ListServicesResponse.proto"+    route53AutoNaming+    (Proxy :: Proxy ListServices)++responseDeleteService :: DeleteServiceResponse -> TestTree+responseDeleteService = res+    "DeleteServiceResponse"+    "fixture/DeleteServiceResponse.proto"+    route53AutoNaming+    (Proxy :: Proxy DeleteService)++responseUpdateService :: UpdateServiceResponse -> TestTree+responseUpdateService = res+    "UpdateServiceResponse"+    "fixture/UpdateServiceResponse.proto"+    route53AutoNaming+    (Proxy :: Proxy UpdateService)++responseListOperations :: ListOperationsResponse -> TestTree+responseListOperations = res+    "ListOperationsResponse"+    "fixture/ListOperationsResponse.proto"+    route53AutoNaming+    (Proxy :: Proxy ListOperations)++responseCreatePublicDNSNamespace :: CreatePublicDNSNamespaceResponse -> TestTree+responseCreatePublicDNSNamespace = res+    "CreatePublicDNSNamespaceResponse"+    "fixture/CreatePublicDNSNamespaceResponse.proto"+    route53AutoNaming+    (Proxy :: Proxy CreatePublicDNSNamespace)++responseGetInstance :: GetInstanceResponse -> TestTree+responseGetInstance = res+    "GetInstanceResponse"+    "fixture/GetInstanceResponse.proto"+    route53AutoNaming+    (Proxy :: Proxy GetInstance)++responseListNamespaces :: ListNamespacesResponse -> TestTree+responseListNamespaces = res+    "ListNamespacesResponse"+    "fixture/ListNamespacesResponse.proto"+    route53AutoNaming+    (Proxy :: Proxy ListNamespaces)++responseDeleteNamespace :: DeleteNamespaceResponse -> TestTree+responseDeleteNamespace = res+    "DeleteNamespaceResponse"+    "fixture/DeleteNamespaceResponse.proto"+    route53AutoNaming+    (Proxy :: Proxy DeleteNamespace)++responseGetInstancesHealthStatus :: GetInstancesHealthStatusResponse -> TestTree+responseGetInstancesHealthStatus = res+    "GetInstancesHealthStatusResponse"+    "fixture/GetInstancesHealthStatusResponse.proto"+    route53AutoNaming+    (Proxy :: Proxy GetInstancesHealthStatus)++responseGetNamespace :: GetNamespaceResponse -> TestTree+responseGetNamespace = res+    "GetNamespaceResponse"+    "fixture/GetNamespaceResponse.proto"+    route53AutoNaming+    (Proxy :: Proxy GetNamespace)++responseRegisterInstance :: RegisterInstanceResponse -> TestTree+responseRegisterInstance = res+    "RegisterInstanceResponse"+    "fixture/RegisterInstanceResponse.proto"+    route53AutoNaming+    (Proxy :: Proxy RegisterInstance)++responseListInstances :: ListInstancesResponse -> TestTree+responseListInstances = res+    "ListInstancesResponse"+    "fixture/ListInstancesResponse.proto"+    route53AutoNaming+    (Proxy :: Proxy ListInstances)++responseGetOperation :: GetOperationResponse -> TestTree+responseGetOperation = res+    "GetOperationResponse"+    "fixture/GetOperationResponse.proto"+    route53AutoNaming+    (Proxy :: Proxy GetOperation)++responseUpdateInstanceCustomHealthStatus :: UpdateInstanceCustomHealthStatusResponse -> TestTree+responseUpdateInstanceCustomHealthStatus = res+    "UpdateInstanceCustomHealthStatusResponse"+    "fixture/UpdateInstanceCustomHealthStatusResponse.proto"+    route53AutoNaming+    (Proxy :: Proxy UpdateInstanceCustomHealthStatus)++responseGetService :: GetServiceResponse -> TestTree+responseGetService = res+    "GetServiceResponse"+    "fixture/GetServiceResponse.proto"+    route53AutoNaming+    (Proxy :: Proxy GetService)++responseCreatePrivateDNSNamespace :: CreatePrivateDNSNamespaceResponse -> TestTree+responseCreatePrivateDNSNamespace = res+    "CreatePrivateDNSNamespaceResponse"+    "fixture/CreatePrivateDNSNamespaceResponse.proto"+    route53AutoNaming+    (Proxy :: Proxy CreatePrivateDNSNamespace)++responseCreateService :: CreateServiceResponse -> TestTree+responseCreateService = res+    "CreateServiceResponse"+    "fixture/CreateServiceResponse.proto"+    route53AutoNaming+    (Proxy :: Proxy CreateService)++responseDeregisterInstance :: DeregisterInstanceResponse -> TestTree+responseDeregisterInstance = res+    "DeregisterInstanceResponse"+    "fixture/DeregisterInstanceResponse.proto"+    route53AutoNaming+    (Proxy :: Proxy DeregisterInstance)
+ test/Test/AWS/Route53AutoNaming.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.AWS.Route53AutoNaming+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Test.AWS.Route53AutoNaming+    ( tests+    , fixtures+    ) where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/AWS/Route53AutoNaming/Internal.hs view
@@ -0,0 +1,9 @@+-- |+-- Module      : Test.AWS.Route53AutoNaming.Internal+-- Copyright   : (c) 2013-2018 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Test.AWS.Route53AutoNaming.Internal where