packages feed

amazonka-dynamodb-dax (empty) → 1.5.0

raw patch · 77 files changed

+6465/−0 lines, 77 filesdep +amazonka-coredep +amazonka-dynamodb-daxdep +amazonka-testsetup-changed

Dependencies added: amazonka-core, amazonka-dynamodb-dax, 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 DynamoDB Accelerator (DAX) SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`1.5.0`+++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-dynamodb-dax)+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.DAX](http://hackage.haskell.org/package/amazonka-dynamodb-dax/docs/Network-AWS-DAX.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-dynamodb-dax` 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-dynamodb-dax.cabal view
@@ -0,0 +1,106 @@+name:                  amazonka-dynamodb-dax+version:               1.5.0+synopsis:              Amazon DynamoDB Accelerator (DAX) 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-2017 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.DAX" 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-dynamodb-dax++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.DAX+        , Network.AWS.DAX.CreateCluster+        , Network.AWS.DAX.CreateParameterGroup+        , Network.AWS.DAX.CreateSubnetGroup+        , Network.AWS.DAX.DecreaseReplicationFactor+        , Network.AWS.DAX.DeleteCluster+        , Network.AWS.DAX.DeleteParameterGroup+        , Network.AWS.DAX.DeleteSubnetGroup+        , Network.AWS.DAX.DescribeClusters+        , Network.AWS.DAX.DescribeDefaultParameters+        , Network.AWS.DAX.DescribeEvents+        , Network.AWS.DAX.DescribeParameterGroups+        , Network.AWS.DAX.DescribeParameters+        , Network.AWS.DAX.DescribeSubnetGroups+        , Network.AWS.DAX.IncreaseReplicationFactor+        , Network.AWS.DAX.ListTags+        , Network.AWS.DAX.RebootNode+        , Network.AWS.DAX.TagResource+        , Network.AWS.DAX.Types+        , Network.AWS.DAX.UntagResource+        , Network.AWS.DAX.UpdateCluster+        , Network.AWS.DAX.UpdateParameterGroup+        , Network.AWS.DAX.UpdateSubnetGroup+        , Network.AWS.DAX.Waiters++    other-modules:+          Network.AWS.DAX.Types.Product+        , Network.AWS.DAX.Types.Sum++    build-depends:+          amazonka-core == 1.5.0.*+        , base          >= 4.7     && < 5++test-suite amazonka-dynamodb-dax-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.DAX+        , Test.AWS.Gen.DAX+        , Test.AWS.DAX.Internal++    build-depends:+          amazonka-core == 1.5.0.*+        , amazonka-test == 1.5.0.*+        , amazonka-dynamodb-dax+        , base+        , bytestring+        , tasty+        , tasty-hunit+        , text+        , time+        , unordered-containers
+ fixture/CreateCluster.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dax/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dax.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/CreateClusterResponse.proto view
+ fixture/CreateParameterGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dax/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dax.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/CreateParameterGroupResponse.proto view
+ fixture/CreateSubnetGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dax/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dax.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/CreateSubnetGroupResponse.proto view
+ fixture/DecreaseReplicationFactor.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dax/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dax.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/DecreaseReplicationFactorResponse.proto view
+ fixture/DeleteCluster.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dax/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dax.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/DeleteClusterResponse.proto view
+ fixture/DeleteParameterGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dax/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dax.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/DeleteParameterGroupResponse.proto view
+ fixture/DeleteSubnetGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dax/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dax.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/DeleteSubnetGroupResponse.proto view
+ fixture/DescribeClusters.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dax/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dax.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/DescribeClustersResponse.proto view
+ fixture/DescribeDefaultParameters.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dax/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dax.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/DescribeDefaultParametersResponse.proto view
+ fixture/DescribeEvents.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dax/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dax.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/DescribeEventsResponse.proto view
+ fixture/DescribeParameterGroups.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dax/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dax.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/DescribeParameterGroupsResponse.proto view
+ fixture/DescribeParameters.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dax/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dax.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/DescribeParametersResponse.proto view
+ fixture/DescribeSubnetGroups.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dax/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dax.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/DescribeSubnetGroupsResponse.proto view
+ fixture/IncreaseReplicationFactor.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dax/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dax.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/IncreaseReplicationFactorResponse.proto view
+ fixture/ListTags.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dax/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dax.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/ListTagsResponse.proto view
+ fixture/RebootNode.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dax/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dax.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/RebootNodeResponse.proto view
+ fixture/TagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dax/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dax.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/TagResourceResponse.proto view
+ fixture/UntagResource.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dax/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dax.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/UntagResourceResponse.proto view
+ fixture/UpdateCluster.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dax/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dax.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/UpdateClusterResponse.proto view
+ fixture/UpdateParameterGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dax/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dax.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/UpdateParameterGroupResponse.proto view
+ fixture/UpdateSubnetGroup.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/dax/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  dax.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/UpdateSubnetGroupResponse.proto view
+ gen/Network/AWS/DAX.hs view
@@ -0,0 +1,351 @@+{-# 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.DAX+-- Copyright   : (c) 2013-2017 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)+--+-- DAX is a managed caching service engineered for Amazon DynamoDB. DAX dramatically speeds up database reads by caching frequently-accessed data from DynamoDB, so applications can access that data with sub-millisecond latency. You can create a DAX cluster easily, using the AWS Management Console. With a few simple modifications to your code, your application can begin taking advantage of the DAX cluster and realize significant improvements in read performance.+--+--+module Network.AWS.DAX+    (+    -- * Service Configuration+      dax++    -- * Errors+    -- $errors++    -- ** SubnetQuotaExceededFault+    , _SubnetQuotaExceededFault++    -- ** ParameterGroupNotFoundFault+    , _ParameterGroupNotFoundFault++    -- ** InvalidParameterGroupStateFault+    , _InvalidParameterGroupStateFault++    -- ** SubnetGroupInUseFault+    , _SubnetGroupInUseFault++    -- ** ParameterGroupAlreadyExistsFault+    , _ParameterGroupAlreadyExistsFault++    -- ** InvalidSubnet+    , _InvalidSubnet++    -- ** TagQuotaPerResourceExceeded+    , _TagQuotaPerResourceExceeded++    -- ** ClusterNotFoundFault+    , _ClusterNotFoundFault++    -- ** TagNotFoundFault+    , _TagNotFoundFault++    -- ** NodeQuotaForClusterExceededFault+    , _NodeQuotaForClusterExceededFault++    -- ** InvalidClusterStateFault+    , _InvalidClusterStateFault++    -- ** InsufficientClusterCapacityFault+    , _InsufficientClusterCapacityFault++    -- ** NodeNotFoundFault+    , _NodeNotFoundFault++    -- ** ParameterGroupQuotaExceededFault+    , _ParameterGroupQuotaExceededFault++    -- ** InvalidParameterValueException+    , _InvalidParameterValueException++    -- ** InvalidVPCNetworkStateFault+    , _InvalidVPCNetworkStateFault++    -- ** SubnetInUse+    , _SubnetInUse++    -- ** ClusterQuotaForCustomerExceededFault+    , _ClusterQuotaForCustomerExceededFault++    -- ** SubnetGroupNotFoundFault+    , _SubnetGroupNotFoundFault++    -- ** SubnetGroupAlreadyExistsFault+    , _SubnetGroupAlreadyExistsFault++    -- ** NodeQuotaForCustomerExceededFault+    , _NodeQuotaForCustomerExceededFault++    -- ** SubnetGroupQuotaExceededFault+    , _SubnetGroupQuotaExceededFault++    -- ** ClusterAlreadyExistsFault+    , _ClusterAlreadyExistsFault++    -- ** InvalidARNFault+    , _InvalidARNFault++    -- ** InvalidParameterCombinationException+    , _InvalidParameterCombinationException++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** DescribeClusters+    , module Network.AWS.DAX.DescribeClusters++    -- ** DescribeParameters+    , module Network.AWS.DAX.DescribeParameters++    -- ** DescribeEvents+    , module Network.AWS.DAX.DescribeEvents++    -- ** IncreaseReplicationFactor+    , module Network.AWS.DAX.IncreaseReplicationFactor++    -- ** CreateSubnetGroup+    , module Network.AWS.DAX.CreateSubnetGroup++    -- ** DeleteCluster+    , module Network.AWS.DAX.DeleteCluster++    -- ** UpdateCluster+    , module Network.AWS.DAX.UpdateCluster++    -- ** CreateCluster+    , module Network.AWS.DAX.CreateCluster++    -- ** DescribeDefaultParameters+    , module Network.AWS.DAX.DescribeDefaultParameters++    -- ** DeleteParameterGroup+    , module Network.AWS.DAX.DeleteParameterGroup++    -- ** UpdateParameterGroup+    , module Network.AWS.DAX.UpdateParameterGroup++    -- ** DescribeSubnetGroups+    , module Network.AWS.DAX.DescribeSubnetGroups++    -- ** CreateParameterGroup+    , module Network.AWS.DAX.CreateParameterGroup++    -- ** UpdateSubnetGroup+    , module Network.AWS.DAX.UpdateSubnetGroup++    -- ** DeleteSubnetGroup+    , module Network.AWS.DAX.DeleteSubnetGroup++    -- ** DescribeParameterGroups+    , module Network.AWS.DAX.DescribeParameterGroups++    -- ** TagResource+    , module Network.AWS.DAX.TagResource++    -- ** ListTags+    , module Network.AWS.DAX.ListTags++    -- ** DecreaseReplicationFactor+    , module Network.AWS.DAX.DecreaseReplicationFactor++    -- ** UntagResource+    , module Network.AWS.DAX.UntagResource++    -- ** RebootNode+    , module Network.AWS.DAX.RebootNode++    -- * Types++    -- ** ChangeType+    , ChangeType (..)++    -- ** IsModifiable+    , IsModifiable (..)++    -- ** ParameterType+    , ParameterType (..)++    -- ** SourceType+    , SourceType (..)++    -- ** Cluster+    , Cluster+    , cluster+    , cStatus+    , cIAMRoleARN+    , cClusterARN+    , cActiveNodes+    , cSecurityGroups+    , cNotificationConfiguration+    , cNodeIdsToRemove+    , cTotalNodes+    , cPreferredMaintenanceWindow+    , cSubnetGroup+    , cClusterName+    , cNodeType+    , cNodes+    , cClusterDiscoveryEndpoint+    , cDescription+    , cParameterGroup++    -- ** Endpoint+    , Endpoint+    , endpoint+    , eAddress+    , ePort++    -- ** Event+    , Event+    , event+    , eSourceName+    , eSourceType+    , eDate+    , eMessage++    -- ** Node+    , Node+    , node+    , nNodeStatus+    , nParameterGroupStatus+    , nAvailabilityZone+    , nNodeId+    , nEndpoint+    , nNodeCreateTime++    -- ** NodeTypeSpecificValue+    , NodeTypeSpecificValue+    , nodeTypeSpecificValue+    , ntsvValue+    , ntsvNodeType++    -- ** NotificationConfiguration+    , NotificationConfiguration+    , notificationConfiguration+    , ncTopicStatus+    , ncTopicARN++    -- ** Parameter+    , Parameter+    , parameter+    , pParameterValue+    , pParameterType+    , pSource+    , pIsModifiable+    , pDataType+    , pNodeTypeSpecificValues+    , pAllowedValues+    , pParameterName+    , pDescription+    , pChangeType++    -- ** ParameterGroup+    , ParameterGroup+    , parameterGroup+    , pgDescription+    , pgParameterGroupName++    -- ** ParameterGroupStatus+    , ParameterGroupStatus+    , parameterGroupStatus+    , pgsNodeIdsToReboot+    , pgsParameterApplyStatus+    , pgsParameterGroupName++    -- ** ParameterNameValue+    , ParameterNameValue+    , parameterNameValue+    , pnvParameterValue+    , pnvParameterName++    -- ** SecurityGroupMembership+    , SecurityGroupMembership+    , securityGroupMembership+    , sgmStatus+    , sgmSecurityGroupIdentifier++    -- ** Subnet+    , Subnet+    , subnet+    , sSubnetIdentifier+    , sSubnetAvailabilityZone++    -- ** SubnetGroup+    , SubnetGroup+    , subnetGroup+    , sgVPCId+    , sgSubnets+    , sgSubnetGroupName+    , sgDescription++    -- ** Tag+    , Tag+    , tag+    , tagValue+    , tagKey+    ) where++import Network.AWS.DAX.CreateCluster+import Network.AWS.DAX.CreateParameterGroup+import Network.AWS.DAX.CreateSubnetGroup+import Network.AWS.DAX.DecreaseReplicationFactor+import Network.AWS.DAX.DeleteCluster+import Network.AWS.DAX.DeleteParameterGroup+import Network.AWS.DAX.DeleteSubnetGroup+import Network.AWS.DAX.DescribeClusters+import Network.AWS.DAX.DescribeDefaultParameters+import Network.AWS.DAX.DescribeEvents+import Network.AWS.DAX.DescribeParameterGroups+import Network.AWS.DAX.DescribeParameters+import Network.AWS.DAX.DescribeSubnetGroups+import Network.AWS.DAX.IncreaseReplicationFactor+import Network.AWS.DAX.ListTags+import Network.AWS.DAX.RebootNode+import Network.AWS.DAX.TagResource+import Network.AWS.DAX.Types+import Network.AWS.DAX.UntagResource+import Network.AWS.DAX.UpdateCluster+import Network.AWS.DAX.UpdateParameterGroup+import Network.AWS.DAX.UpdateSubnetGroup+import Network.AWS.DAX.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 'DAX'.+-}++{- $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/DAX/CreateCluster.hs view
@@ -0,0 +1,250 @@+{-# 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.DAX.CreateCluster+-- Copyright   : (c) 2013-2017 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 DAX cluster. All nodes in the cluster run the same DAX caching software.+--+--+module Network.AWS.DAX.CreateCluster+    (+    -- * Creating a Request+      createCluster+    , CreateCluster+    -- * Request Lenses+    , ccSecurityGroupIds+    , ccSubnetGroupName+    , ccPreferredMaintenanceWindow+    , ccAvailabilityZones+    , ccDescription+    , ccNotificationTopicARN+    , ccTags+    , ccParameterGroupName+    , ccClusterName+    , ccNodeType+    , ccReplicationFactor+    , ccIAMRoleARN++    -- * Destructuring the Response+    , createClusterResponse+    , CreateClusterResponse+    -- * Response Lenses+    , ccrsCluster+    , ccrsResponseStatus+    ) where++import Network.AWS.DAX.Types+import Network.AWS.DAX.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'createCluster' smart constructor.+data CreateCluster = CreateCluster'+  { _ccSecurityGroupIds           :: !(Maybe [Text])+  , _ccSubnetGroupName            :: !(Maybe Text)+  , _ccPreferredMaintenanceWindow :: !(Maybe Text)+  , _ccAvailabilityZones          :: !(Maybe [Text])+  , _ccDescription                :: !(Maybe Text)+  , _ccNotificationTopicARN       :: !(Maybe Text)+  , _ccTags                       :: !(Maybe [Tag])+  , _ccParameterGroupName         :: !(Maybe Text)+  , _ccClusterName                :: !Text+  , _ccNodeType                   :: !Text+  , _ccReplicationFactor          :: !Int+  , _ccIAMRoleARN                 :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateCluster' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ccSecurityGroupIds' - A list of security group IDs to be assigned to each node in the DAX cluster. (Each of the security group ID is system-generated.) If this parameter is not specified, DAX assigns the default VPC security group to each node.+--+-- * 'ccSubnetGroupName' - The name of the subnet group to be used for the replication group. /Important:/ DAX clusters can only run in an Amazon VPC environment. All of the subnets that you specify in a subnet group must exist in the same VPC.+--+-- * 'ccPreferredMaintenanceWindow' - Specifies the weekly time range during which maintenance on the DAX cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are:     * @sun@      * @mon@      * @tue@      * @wed@      * @thu@      * @fri@      * @sat@  Example: @sun:05:00-sun:09:00@+--+-- * 'ccAvailabilityZones' - The Availability Zones (AZs) in which the cluster nodes will be created. All nodes belonging to the cluster are placed in these Availability Zones. Use this parameter if you want to distribute the nodes across multiple AZs.+--+-- * 'ccDescription' - A description of the cluster.+--+-- * 'ccNotificationTopicARN' - The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications will be sent.+--+-- * 'ccTags' - A set of tags to associate with the DAX cluster.+--+-- * 'ccParameterGroupName' - The parameter group to be associated with the DAX cluster.+--+-- * 'ccClusterName' - The cluster identifier. This parameter is stored as a lowercase string. __Constraints:__      * A name must contain from 1 to 20 alphanumeric characters or hyphens.     * The first character must be a letter.     * A name cannot end with a hyphen or contain two consecutive hyphens.+--+-- * 'ccNodeType' - The compute and memory capacity of the nodes in the cluster.+--+-- * 'ccReplicationFactor' - The number of nodes in the DAX cluster. A replication factor of 1 will create a single-node cluster, without any read replicas. For additional fault tolerance, you can create a multiple node cluster with one or more read replicas. To do this, set /ReplicationFactor/ to 2 or more.+--+-- * 'ccIAMRoleARN' - A valid Amazon Resource Name (ARN) that identifies an IAM role. At runtime, DAX will assume this role and use the role's permissions to access DynamoDB on your behalf.+createCluster+    :: Text -- ^ 'ccClusterName'+    -> Text -- ^ 'ccNodeType'+    -> Int -- ^ 'ccReplicationFactor'+    -> Text -- ^ 'ccIAMRoleARN'+    -> CreateCluster+createCluster pClusterName_ pNodeType_ pReplicationFactor_ pIAMRoleARN_ =+  CreateCluster'+  { _ccSecurityGroupIds = Nothing+  , _ccSubnetGroupName = Nothing+  , _ccPreferredMaintenanceWindow = Nothing+  , _ccAvailabilityZones = Nothing+  , _ccDescription = Nothing+  , _ccNotificationTopicARN = Nothing+  , _ccTags = Nothing+  , _ccParameterGroupName = Nothing+  , _ccClusterName = pClusterName_+  , _ccNodeType = pNodeType_+  , _ccReplicationFactor = pReplicationFactor_+  , _ccIAMRoleARN = pIAMRoleARN_+  }+++-- | A list of security group IDs to be assigned to each node in the DAX cluster. (Each of the security group ID is system-generated.) If this parameter is not specified, DAX assigns the default VPC security group to each node.+ccSecurityGroupIds :: Lens' CreateCluster [Text]+ccSecurityGroupIds = lens _ccSecurityGroupIds (\ s a -> s{_ccSecurityGroupIds = a}) . _Default . _Coerce;++-- | The name of the subnet group to be used for the replication group. /Important:/ DAX clusters can only run in an Amazon VPC environment. All of the subnets that you specify in a subnet group must exist in the same VPC.+ccSubnetGroupName :: Lens' CreateCluster (Maybe Text)+ccSubnetGroupName = lens _ccSubnetGroupName (\ s a -> s{_ccSubnetGroupName = a});++-- | Specifies the weekly time range during which maintenance on the DAX cluster is performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window is a 60 minute period. Valid values for @ddd@ are:     * @sun@      * @mon@      * @tue@      * @wed@      * @thu@      * @fri@      * @sat@  Example: @sun:05:00-sun:09:00@+ccPreferredMaintenanceWindow :: Lens' CreateCluster (Maybe Text)+ccPreferredMaintenanceWindow = lens _ccPreferredMaintenanceWindow (\ s a -> s{_ccPreferredMaintenanceWindow = a});++-- | The Availability Zones (AZs) in which the cluster nodes will be created. All nodes belonging to the cluster are placed in these Availability Zones. Use this parameter if you want to distribute the nodes across multiple AZs.+ccAvailabilityZones :: Lens' CreateCluster [Text]+ccAvailabilityZones = lens _ccAvailabilityZones (\ s a -> s{_ccAvailabilityZones = a}) . _Default . _Coerce;++-- | A description of the cluster.+ccDescription :: Lens' CreateCluster (Maybe Text)+ccDescription = lens _ccDescription (\ s a -> s{_ccDescription = a});++-- | The Amazon Resource Name (ARN) of the Amazon SNS topic to which notifications will be sent.+ccNotificationTopicARN :: Lens' CreateCluster (Maybe Text)+ccNotificationTopicARN = lens _ccNotificationTopicARN (\ s a -> s{_ccNotificationTopicARN = a});++-- | A set of tags to associate with the DAX cluster.+ccTags :: Lens' CreateCluster [Tag]+ccTags = lens _ccTags (\ s a -> s{_ccTags = a}) . _Default . _Coerce;++-- | The parameter group to be associated with the DAX cluster.+ccParameterGroupName :: Lens' CreateCluster (Maybe Text)+ccParameterGroupName = lens _ccParameterGroupName (\ s a -> s{_ccParameterGroupName = a});++-- | The cluster identifier. This parameter is stored as a lowercase string. __Constraints:__      * A name must contain from 1 to 20 alphanumeric characters or hyphens.     * The first character must be a letter.     * A name cannot end with a hyphen or contain two consecutive hyphens.+ccClusterName :: Lens' CreateCluster Text+ccClusterName = lens _ccClusterName (\ s a -> s{_ccClusterName = a});++-- | The compute and memory capacity of the nodes in the cluster.+ccNodeType :: Lens' CreateCluster Text+ccNodeType = lens _ccNodeType (\ s a -> s{_ccNodeType = a});++-- | The number of nodes in the DAX cluster. A replication factor of 1 will create a single-node cluster, without any read replicas. For additional fault tolerance, you can create a multiple node cluster with one or more read replicas. To do this, set /ReplicationFactor/ to 2 or more.+ccReplicationFactor :: Lens' CreateCluster Int+ccReplicationFactor = lens _ccReplicationFactor (\ s a -> s{_ccReplicationFactor = a});++-- | A valid Amazon Resource Name (ARN) that identifies an IAM role. At runtime, DAX will assume this role and use the role's permissions to access DynamoDB on your behalf.+ccIAMRoleARN :: Lens' CreateCluster Text+ccIAMRoleARN = lens _ccIAMRoleARN (\ s a -> s{_ccIAMRoleARN = a});++instance AWSRequest CreateCluster where+        type Rs CreateCluster = CreateClusterResponse+        request = postJSON dax+        response+          = receiveJSON+              (\ s h x ->+                 CreateClusterResponse' <$>+                   (x .?> "Cluster") <*> (pure (fromEnum s)))++instance Hashable CreateCluster where++instance NFData CreateCluster where++instance ToHeaders CreateCluster where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AmazonDAXV3.CreateCluster" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateCluster where+        toJSON CreateCluster'{..}+          = object+              (catMaybes+                 [("SecurityGroupIds" .=) <$> _ccSecurityGroupIds,+                  ("SubnetGroupName" .=) <$> _ccSubnetGroupName,+                  ("PreferredMaintenanceWindow" .=) <$>+                    _ccPreferredMaintenanceWindow,+                  ("AvailabilityZones" .=) <$> _ccAvailabilityZones,+                  ("Description" .=) <$> _ccDescription,+                  ("NotificationTopicArn" .=) <$>+                    _ccNotificationTopicARN,+                  ("Tags" .=) <$> _ccTags,+                  ("ParameterGroupName" .=) <$> _ccParameterGroupName,+                  Just ("ClusterName" .= _ccClusterName),+                  Just ("NodeType" .= _ccNodeType),+                  Just ("ReplicationFactor" .= _ccReplicationFactor),+                  Just ("IamRoleArn" .= _ccIAMRoleARN)])++instance ToPath CreateCluster where+        toPath = const "/"++instance ToQuery CreateCluster where+        toQuery = const mempty++-- | /See:/ 'createClusterResponse' smart constructor.+data CreateClusterResponse = CreateClusterResponse'+  { _ccrsCluster        :: !(Maybe Cluster)+  , _ccrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateClusterResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ccrsCluster' - A description of the DAX cluster that you have created.+--+-- * 'ccrsResponseStatus' - -- | The response status code.+createClusterResponse+    :: Int -- ^ 'ccrsResponseStatus'+    -> CreateClusterResponse+createClusterResponse pResponseStatus_ =+  CreateClusterResponse'+  {_ccrsCluster = Nothing, _ccrsResponseStatus = pResponseStatus_}+++-- | A description of the DAX cluster that you have created.+ccrsCluster :: Lens' CreateClusterResponse (Maybe Cluster)+ccrsCluster = lens _ccrsCluster (\ s a -> s{_ccrsCluster = a});++-- | -- | The response status code.+ccrsResponseStatus :: Lens' CreateClusterResponse Int+ccrsResponseStatus = lens _ccrsResponseStatus (\ s a -> s{_ccrsResponseStatus = a});++instance NFData CreateClusterResponse where
+ gen/Network/AWS/DAX/CreateParameterGroup.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.DAX.CreateParameterGroup+-- Copyright   : (c) 2013-2017 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 new parameter group. A parameter group is a collection of parameters that you apply to all of the nodes in a DAX cluster.+--+--+module Network.AWS.DAX.CreateParameterGroup+    (+    -- * Creating a Request+      createParameterGroup+    , CreateParameterGroup+    -- * Request Lenses+    , cpgDescription+    , cpgParameterGroupName++    -- * Destructuring the Response+    , createParameterGroupResponse+    , CreateParameterGroupResponse+    -- * Response Lenses+    , cpgrsParameterGroup+    , cpgrsResponseStatus+    ) where++import Network.AWS.DAX.Types+import Network.AWS.DAX.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'createParameterGroup' smart constructor.+data CreateParameterGroup = CreateParameterGroup'+  { _cpgDescription        :: !(Maybe Text)+  , _cpgParameterGroupName :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateParameterGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpgDescription' - A description of the parameter group.+--+-- * 'cpgParameterGroupName' - The name of the parameter group to apply to all of the clusters in this replication group.+createParameterGroup+    :: Text -- ^ 'cpgParameterGroupName'+    -> CreateParameterGroup+createParameterGroup pParameterGroupName_ =+  CreateParameterGroup'+  {_cpgDescription = Nothing, _cpgParameterGroupName = pParameterGroupName_}+++-- | A description of the parameter group.+cpgDescription :: Lens' CreateParameterGroup (Maybe Text)+cpgDescription = lens _cpgDescription (\ s a -> s{_cpgDescription = a});++-- | The name of the parameter group to apply to all of the clusters in this replication group.+cpgParameterGroupName :: Lens' CreateParameterGroup Text+cpgParameterGroupName = lens _cpgParameterGroupName (\ s a -> s{_cpgParameterGroupName = a});++instance AWSRequest CreateParameterGroup where+        type Rs CreateParameterGroup =+             CreateParameterGroupResponse+        request = postJSON dax+        response+          = receiveJSON+              (\ s h x ->+                 CreateParameterGroupResponse' <$>+                   (x .?> "ParameterGroup") <*> (pure (fromEnum s)))++instance Hashable CreateParameterGroup where++instance NFData CreateParameterGroup where++instance ToHeaders CreateParameterGroup where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AmazonDAXV3.CreateParameterGroup" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateParameterGroup where+        toJSON CreateParameterGroup'{..}+          = object+              (catMaybes+                 [("Description" .=) <$> _cpgDescription,+                  Just+                    ("ParameterGroupName" .= _cpgParameterGroupName)])++instance ToPath CreateParameterGroup where+        toPath = const "/"++instance ToQuery CreateParameterGroup where+        toQuery = const mempty++-- | /See:/ 'createParameterGroupResponse' smart constructor.+data CreateParameterGroupResponse = CreateParameterGroupResponse'+  { _cpgrsParameterGroup :: !(Maybe ParameterGroup)+  , _cpgrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateParameterGroupResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cpgrsParameterGroup' - Represents the output of a /CreateParameterGroup/ action.+--+-- * 'cpgrsResponseStatus' - -- | The response status code.+createParameterGroupResponse+    :: Int -- ^ 'cpgrsResponseStatus'+    -> CreateParameterGroupResponse+createParameterGroupResponse pResponseStatus_ =+  CreateParameterGroupResponse'+  {_cpgrsParameterGroup = Nothing, _cpgrsResponseStatus = pResponseStatus_}+++-- | Represents the output of a /CreateParameterGroup/ action.+cpgrsParameterGroup :: Lens' CreateParameterGroupResponse (Maybe ParameterGroup)+cpgrsParameterGroup = lens _cpgrsParameterGroup (\ s a -> s{_cpgrsParameterGroup = a});++-- | -- | The response status code.+cpgrsResponseStatus :: Lens' CreateParameterGroupResponse Int+cpgrsResponseStatus = lens _cpgrsResponseStatus (\ s a -> s{_cpgrsResponseStatus = a});++instance NFData CreateParameterGroupResponse where
+ gen/Network/AWS/DAX/CreateSubnetGroup.hs view
@@ -0,0 +1,155 @@+{-# 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.DAX.CreateSubnetGroup+-- Copyright   : (c) 2013-2017 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 new subnet group.+--+--+module Network.AWS.DAX.CreateSubnetGroup+    (+    -- * Creating a Request+      createSubnetGroup+    , CreateSubnetGroup+    -- * Request Lenses+    , csgDescription+    , csgSubnetGroupName+    , csgSubnetIds++    -- * Destructuring the Response+    , createSubnetGroupResponse+    , CreateSubnetGroupResponse+    -- * Response Lenses+    , csgrsSubnetGroup+    , csgrsResponseStatus+    ) where++import Network.AWS.DAX.Types+import Network.AWS.DAX.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'createSubnetGroup' smart constructor.+data CreateSubnetGroup = CreateSubnetGroup'+  { _csgDescription     :: !(Maybe Text)+  , _csgSubnetGroupName :: !Text+  , _csgSubnetIds       :: ![Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateSubnetGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csgDescription' - A description for the subnet group+--+-- * 'csgSubnetGroupName' - A name for the subnet group. This value is stored as a lowercase string.+--+-- * 'csgSubnetIds' - A list of VPC subnet IDs for the subnet group.+createSubnetGroup+    :: Text -- ^ 'csgSubnetGroupName'+    -> CreateSubnetGroup+createSubnetGroup pSubnetGroupName_ =+  CreateSubnetGroup'+  { _csgDescription = Nothing+  , _csgSubnetGroupName = pSubnetGroupName_+  , _csgSubnetIds = mempty+  }+++-- | A description for the subnet group+csgDescription :: Lens' CreateSubnetGroup (Maybe Text)+csgDescription = lens _csgDescription (\ s a -> s{_csgDescription = a});++-- | A name for the subnet group. This value is stored as a lowercase string.+csgSubnetGroupName :: Lens' CreateSubnetGroup Text+csgSubnetGroupName = lens _csgSubnetGroupName (\ s a -> s{_csgSubnetGroupName = a});++-- | A list of VPC subnet IDs for the subnet group.+csgSubnetIds :: Lens' CreateSubnetGroup [Text]+csgSubnetIds = lens _csgSubnetIds (\ s a -> s{_csgSubnetIds = a}) . _Coerce;++instance AWSRequest CreateSubnetGroup where+        type Rs CreateSubnetGroup = CreateSubnetGroupResponse+        request = postJSON dax+        response+          = receiveJSON+              (\ s h x ->+                 CreateSubnetGroupResponse' <$>+                   (x .?> "SubnetGroup") <*> (pure (fromEnum s)))++instance Hashable CreateSubnetGroup where++instance NFData CreateSubnetGroup where++instance ToHeaders CreateSubnetGroup where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AmazonDAXV3.CreateSubnetGroup" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateSubnetGroup where+        toJSON CreateSubnetGroup'{..}+          = object+              (catMaybes+                 [("Description" .=) <$> _csgDescription,+                  Just ("SubnetGroupName" .= _csgSubnetGroupName),+                  Just ("SubnetIds" .= _csgSubnetIds)])++instance ToPath CreateSubnetGroup where+        toPath = const "/"++instance ToQuery CreateSubnetGroup where+        toQuery = const mempty++-- | /See:/ 'createSubnetGroupResponse' smart constructor.+data CreateSubnetGroupResponse = CreateSubnetGroupResponse'+  { _csgrsSubnetGroup    :: !(Maybe SubnetGroup)+  , _csgrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'CreateSubnetGroupResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csgrsSubnetGroup' - Represents the output of a /CreateSubnetGroup/ operation.+--+-- * 'csgrsResponseStatus' - -- | The response status code.+createSubnetGroupResponse+    :: Int -- ^ 'csgrsResponseStatus'+    -> CreateSubnetGroupResponse+createSubnetGroupResponse pResponseStatus_ =+  CreateSubnetGroupResponse'+  {_csgrsSubnetGroup = Nothing, _csgrsResponseStatus = pResponseStatus_}+++-- | Represents the output of a /CreateSubnetGroup/ operation.+csgrsSubnetGroup :: Lens' CreateSubnetGroupResponse (Maybe SubnetGroup)+csgrsSubnetGroup = lens _csgrsSubnetGroup (\ s a -> s{_csgrsSubnetGroup = a});++-- | -- | The response status code.+csgrsResponseStatus :: Lens' CreateSubnetGroupResponse Int+csgrsResponseStatus = lens _csgrsResponseStatus (\ s a -> s{_csgrsResponseStatus = a});++instance NFData CreateSubnetGroupResponse where
+ gen/Network/AWS/DAX/DecreaseReplicationFactor.hs view
@@ -0,0 +1,171 @@+{-# 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.DAX.DecreaseReplicationFactor+-- Copyright   : (c) 2013-2017 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)+--+-- Removes one or more nodes from a DAX cluster.+--+--+module Network.AWS.DAX.DecreaseReplicationFactor+    (+    -- * Creating a Request+      decreaseReplicationFactor+    , DecreaseReplicationFactor+    -- * Request Lenses+    , drfNodeIdsToRemove+    , drfAvailabilityZones+    , drfClusterName+    , drfNewReplicationFactor++    -- * Destructuring the Response+    , decreaseReplicationFactorResponse+    , DecreaseReplicationFactorResponse+    -- * Response Lenses+    , drfrsCluster+    , drfrsResponseStatus+    ) where++import Network.AWS.DAX.Types+import Network.AWS.DAX.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'decreaseReplicationFactor' smart constructor.+data DecreaseReplicationFactor = DecreaseReplicationFactor'+  { _drfNodeIdsToRemove      :: !(Maybe [Text])+  , _drfAvailabilityZones    :: !(Maybe [Text])+  , _drfClusterName          :: !Text+  , _drfNewReplicationFactor :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DecreaseReplicationFactor' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drfNodeIdsToRemove' - The unique identifiers of the nodes to be removed from the cluster.+--+-- * 'drfAvailabilityZones' - The Availability Zone(s) from which to remove nodes.+--+-- * 'drfClusterName' - The name of the DAX cluster from which you want to remove nodes.+--+-- * 'drfNewReplicationFactor' - The new number of nodes for the DAX cluster.+decreaseReplicationFactor+    :: Text -- ^ 'drfClusterName'+    -> Int -- ^ 'drfNewReplicationFactor'+    -> DecreaseReplicationFactor+decreaseReplicationFactor pClusterName_ pNewReplicationFactor_ =+  DecreaseReplicationFactor'+  { _drfNodeIdsToRemove = Nothing+  , _drfAvailabilityZones = Nothing+  , _drfClusterName = pClusterName_+  , _drfNewReplicationFactor = pNewReplicationFactor_+  }+++-- | The unique identifiers of the nodes to be removed from the cluster.+drfNodeIdsToRemove :: Lens' DecreaseReplicationFactor [Text]+drfNodeIdsToRemove = lens _drfNodeIdsToRemove (\ s a -> s{_drfNodeIdsToRemove = a}) . _Default . _Coerce;++-- | The Availability Zone(s) from which to remove nodes.+drfAvailabilityZones :: Lens' DecreaseReplicationFactor [Text]+drfAvailabilityZones = lens _drfAvailabilityZones (\ s a -> s{_drfAvailabilityZones = a}) . _Default . _Coerce;++-- | The name of the DAX cluster from which you want to remove nodes.+drfClusterName :: Lens' DecreaseReplicationFactor Text+drfClusterName = lens _drfClusterName (\ s a -> s{_drfClusterName = a});++-- | The new number of nodes for the DAX cluster.+drfNewReplicationFactor :: Lens' DecreaseReplicationFactor Int+drfNewReplicationFactor = lens _drfNewReplicationFactor (\ s a -> s{_drfNewReplicationFactor = a});++instance AWSRequest DecreaseReplicationFactor where+        type Rs DecreaseReplicationFactor =+             DecreaseReplicationFactorResponse+        request = postJSON dax+        response+          = receiveJSON+              (\ s h x ->+                 DecreaseReplicationFactorResponse' <$>+                   (x .?> "Cluster") <*> (pure (fromEnum s)))++instance Hashable DecreaseReplicationFactor where++instance NFData DecreaseReplicationFactor where++instance ToHeaders DecreaseReplicationFactor where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AmazonDAXV3.DecreaseReplicationFactor" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DecreaseReplicationFactor where+        toJSON DecreaseReplicationFactor'{..}+          = object+              (catMaybes+                 [("NodeIdsToRemove" .=) <$> _drfNodeIdsToRemove,+                  ("AvailabilityZones" .=) <$> _drfAvailabilityZones,+                  Just ("ClusterName" .= _drfClusterName),+                  Just+                    ("NewReplicationFactor" .=+                       _drfNewReplicationFactor)])++instance ToPath DecreaseReplicationFactor where+        toPath = const "/"++instance ToQuery DecreaseReplicationFactor where+        toQuery = const mempty++-- | /See:/ 'decreaseReplicationFactorResponse' smart constructor.+data DecreaseReplicationFactorResponse = DecreaseReplicationFactorResponse'+  { _drfrsCluster        :: !(Maybe Cluster)+  , _drfrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DecreaseReplicationFactorResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drfrsCluster' - A description of the DAX cluster, after you have decreased its replication factor.+--+-- * 'drfrsResponseStatus' - -- | The response status code.+decreaseReplicationFactorResponse+    :: Int -- ^ 'drfrsResponseStatus'+    -> DecreaseReplicationFactorResponse+decreaseReplicationFactorResponse pResponseStatus_ =+  DecreaseReplicationFactorResponse'+  {_drfrsCluster = Nothing, _drfrsResponseStatus = pResponseStatus_}+++-- | A description of the DAX cluster, after you have decreased its replication factor.+drfrsCluster :: Lens' DecreaseReplicationFactorResponse (Maybe Cluster)+drfrsCluster = lens _drfrsCluster (\ s a -> s{_drfrsCluster = a});++-- | -- | The response status code.+drfrsResponseStatus :: Lens' DecreaseReplicationFactorResponse Int+drfrsResponseStatus = lens _drfrsResponseStatus (\ s a -> s{_drfrsResponseStatus = a});++instance NFData DecreaseReplicationFactorResponse+         where
+ gen/Network/AWS/DAX/DeleteCluster.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.DAX.DeleteCluster+-- Copyright   : (c) 2013-2017 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 previously provisioned DAX cluster. /DeleteCluster/ deletes all associated nodes, node endpoints and the DAX cluster itself. When you receive a successful response from this action, DAX immediately begins deleting the cluster; you cannot cancel or revert this action.+--+--+module Network.AWS.DAX.DeleteCluster+    (+    -- * Creating a Request+      deleteCluster+    , DeleteCluster+    -- * Request Lenses+    , dcClusterName++    -- * Destructuring the Response+    , deleteClusterResponse+    , DeleteClusterResponse+    -- * Response Lenses+    , drsCluster+    , drsResponseStatus+    ) where++import Network.AWS.DAX.Types+import Network.AWS.DAX.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'deleteCluster' smart constructor.+newtype DeleteCluster = DeleteCluster'+  { _dcClusterName :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteCluster' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dcClusterName' - The name of the cluster to be deleted.+deleteCluster+    :: Text -- ^ 'dcClusterName'+    -> DeleteCluster+deleteCluster pClusterName_ = DeleteCluster' {_dcClusterName = pClusterName_}+++-- | The name of the cluster to be deleted.+dcClusterName :: Lens' DeleteCluster Text+dcClusterName = lens _dcClusterName (\ s a -> s{_dcClusterName = a});++instance AWSRequest DeleteCluster where+        type Rs DeleteCluster = DeleteClusterResponse+        request = postJSON dax+        response+          = receiveJSON+              (\ s h x ->+                 DeleteClusterResponse' <$>+                   (x .?> "Cluster") <*> (pure (fromEnum s)))++instance Hashable DeleteCluster where++instance NFData DeleteCluster where++instance ToHeaders DeleteCluster where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AmazonDAXV3.DeleteCluster" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeleteCluster where+        toJSON DeleteCluster'{..}+          = object+              (catMaybes [Just ("ClusterName" .= _dcClusterName)])++instance ToPath DeleteCluster where+        toPath = const "/"++instance ToQuery DeleteCluster where+        toQuery = const mempty++-- | /See:/ 'deleteClusterResponse' smart constructor.+data DeleteClusterResponse = DeleteClusterResponse'+  { _drsCluster        :: !(Maybe Cluster)+  , _drsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteClusterResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drsCluster' - A description of the DAX cluster that is being deleted.+--+-- * 'drsResponseStatus' - -- | The response status code.+deleteClusterResponse+    :: Int -- ^ 'drsResponseStatus'+    -> DeleteClusterResponse+deleteClusterResponse pResponseStatus_ =+  DeleteClusterResponse'+  {_drsCluster = Nothing, _drsResponseStatus = pResponseStatus_}+++-- | A description of the DAX cluster that is being deleted.+drsCluster :: Lens' DeleteClusterResponse (Maybe Cluster)+drsCluster = lens _drsCluster (\ s a -> s{_drsCluster = a});++-- | -- | The response status code.+drsResponseStatus :: Lens' DeleteClusterResponse Int+drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a});++instance NFData DeleteClusterResponse where
+ gen/Network/AWS/DAX/DeleteParameterGroup.hs view
@@ -0,0 +1,135 @@+{-# 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.DAX.DeleteParameterGroup+-- Copyright   : (c) 2013-2017 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 specified parameter group. You cannot delete a parameter group if it is associated with any DAX clusters.+--+--+module Network.AWS.DAX.DeleteParameterGroup+    (+    -- * Creating a Request+      deleteParameterGroup+    , DeleteParameterGroup+    -- * Request Lenses+    , dpgParameterGroupName++    -- * Destructuring the Response+    , deleteParameterGroupResponse+    , DeleteParameterGroupResponse+    -- * Response Lenses+    , dpgrsDeletionMessage+    , dpgrsResponseStatus+    ) where++import Network.AWS.DAX.Types+import Network.AWS.DAX.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'deleteParameterGroup' smart constructor.+newtype DeleteParameterGroup = DeleteParameterGroup'+  { _dpgParameterGroupName :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteParameterGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dpgParameterGroupName' - The name of the parameter group to delete.+deleteParameterGroup+    :: Text -- ^ 'dpgParameterGroupName'+    -> DeleteParameterGroup+deleteParameterGroup pParameterGroupName_ =+  DeleteParameterGroup' {_dpgParameterGroupName = pParameterGroupName_}+++-- | The name of the parameter group to delete.+dpgParameterGroupName :: Lens' DeleteParameterGroup Text+dpgParameterGroupName = lens _dpgParameterGroupName (\ s a -> s{_dpgParameterGroupName = a});++instance AWSRequest DeleteParameterGroup where+        type Rs DeleteParameterGroup =+             DeleteParameterGroupResponse+        request = postJSON dax+        response+          = receiveJSON+              (\ s h x ->+                 DeleteParameterGroupResponse' <$>+                   (x .?> "DeletionMessage") <*> (pure (fromEnum s)))++instance Hashable DeleteParameterGroup where++instance NFData DeleteParameterGroup where++instance ToHeaders DeleteParameterGroup where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AmazonDAXV3.DeleteParameterGroup" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeleteParameterGroup where+        toJSON DeleteParameterGroup'{..}+          = object+              (catMaybes+                 [Just+                    ("ParameterGroupName" .= _dpgParameterGroupName)])++instance ToPath DeleteParameterGroup where+        toPath = const "/"++instance ToQuery DeleteParameterGroup where+        toQuery = const mempty++-- | /See:/ 'deleteParameterGroupResponse' smart constructor.+data DeleteParameterGroupResponse = DeleteParameterGroupResponse'+  { _dpgrsDeletionMessage :: !(Maybe Text)+  , _dpgrsResponseStatus  :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteParameterGroupResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dpgrsDeletionMessage' - A user-specified message for this action (i.e., a reason for deleting the parameter group).+--+-- * 'dpgrsResponseStatus' - -- | The response status code.+deleteParameterGroupResponse+    :: Int -- ^ 'dpgrsResponseStatus'+    -> DeleteParameterGroupResponse+deleteParameterGroupResponse pResponseStatus_ =+  DeleteParameterGroupResponse'+  {_dpgrsDeletionMessage = Nothing, _dpgrsResponseStatus = pResponseStatus_}+++-- | A user-specified message for this action (i.e., a reason for deleting the parameter group).+dpgrsDeletionMessage :: Lens' DeleteParameterGroupResponse (Maybe Text)+dpgrsDeletionMessage = lens _dpgrsDeletionMessage (\ s a -> s{_dpgrsDeletionMessage = a});++-- | -- | The response status code.+dpgrsResponseStatus :: Lens' DeleteParameterGroupResponse Int+dpgrsResponseStatus = lens _dpgrsResponseStatus (\ s a -> s{_dpgrsResponseStatus = a});++instance NFData DeleteParameterGroupResponse where
+ gen/Network/AWS/DAX/DeleteSubnetGroup.hs view
@@ -0,0 +1,133 @@+{-# 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.DAX.DeleteSubnetGroup+-- Copyright   : (c) 2013-2017 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 subnet group.+--+--+module Network.AWS.DAX.DeleteSubnetGroup+    (+    -- * Creating a Request+      deleteSubnetGroup+    , DeleteSubnetGroup+    -- * Request Lenses+    , dsgSubnetGroupName++    -- * Destructuring the Response+    , deleteSubnetGroupResponse+    , DeleteSubnetGroupResponse+    -- * Response Lenses+    , dsgrsDeletionMessage+    , dsgrsResponseStatus+    ) where++import Network.AWS.DAX.Types+import Network.AWS.DAX.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'deleteSubnetGroup' smart constructor.+newtype DeleteSubnetGroup = DeleteSubnetGroup'+  { _dsgSubnetGroupName :: Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteSubnetGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsgSubnetGroupName' - The name of the subnet group to delete.+deleteSubnetGroup+    :: Text -- ^ 'dsgSubnetGroupName'+    -> DeleteSubnetGroup+deleteSubnetGroup pSubnetGroupName_ =+  DeleteSubnetGroup' {_dsgSubnetGroupName = pSubnetGroupName_}+++-- | The name of the subnet group to delete.+dsgSubnetGroupName :: Lens' DeleteSubnetGroup Text+dsgSubnetGroupName = lens _dsgSubnetGroupName (\ s a -> s{_dsgSubnetGroupName = a});++instance AWSRequest DeleteSubnetGroup where+        type Rs DeleteSubnetGroup = DeleteSubnetGroupResponse+        request = postJSON dax+        response+          = receiveJSON+              (\ s h x ->+                 DeleteSubnetGroupResponse' <$>+                   (x .?> "DeletionMessage") <*> (pure (fromEnum s)))++instance Hashable DeleteSubnetGroup where++instance NFData DeleteSubnetGroup where++instance ToHeaders DeleteSubnetGroup where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AmazonDAXV3.DeleteSubnetGroup" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeleteSubnetGroup where+        toJSON DeleteSubnetGroup'{..}+          = object+              (catMaybes+                 [Just ("SubnetGroupName" .= _dsgSubnetGroupName)])++instance ToPath DeleteSubnetGroup where+        toPath = const "/"++instance ToQuery DeleteSubnetGroup where+        toQuery = const mempty++-- | /See:/ 'deleteSubnetGroupResponse' smart constructor.+data DeleteSubnetGroupResponse = DeleteSubnetGroupResponse'+  { _dsgrsDeletionMessage :: !(Maybe Text)+  , _dsgrsResponseStatus  :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DeleteSubnetGroupResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsgrsDeletionMessage' - A user-specified message for this action (i.e., a reason for deleting the subnet group).+--+-- * 'dsgrsResponseStatus' - -- | The response status code.+deleteSubnetGroupResponse+    :: Int -- ^ 'dsgrsResponseStatus'+    -> DeleteSubnetGroupResponse+deleteSubnetGroupResponse pResponseStatus_ =+  DeleteSubnetGroupResponse'+  {_dsgrsDeletionMessage = Nothing, _dsgrsResponseStatus = pResponseStatus_}+++-- | A user-specified message for this action (i.e., a reason for deleting the subnet group).+dsgrsDeletionMessage :: Lens' DeleteSubnetGroupResponse (Maybe Text)+dsgrsDeletionMessage = lens _dsgrsDeletionMessage (\ s a -> s{_dsgrsDeletionMessage = a});++-- | -- | The response status code.+dsgrsResponseStatus :: Lens' DeleteSubnetGroupResponse Int+dsgrsResponseStatus = lens _dsgrsResponseStatus (\ s a -> s{_dsgrsResponseStatus = a});++instance NFData DeleteSubnetGroupResponse where
+ gen/Network/AWS/DAX/DescribeClusters.hs view
@@ -0,0 +1,171 @@+{-# 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.DAX.DescribeClusters+-- Copyright   : (c) 2013-2017 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)+--+-- Returns information about all provisioned DAX clusters if no cluster identifier is specified, or about a specific DAX cluster if a cluster identifier is supplied.+--+--+-- If the cluster is in the CREATING state, only cluster level information will be displayed until all of the nodes are successfully provisioned.+--+-- If the cluster is in the DELETING state, only cluster level information will be displayed.+--+-- If nodes are currently being added to the DAX cluster, node endpoint information and creation time for the additional nodes will not be displayed until they are completely provisioned. When the DAX cluster state is /available/ , the cluster is ready for use.+--+-- If nodes are currently being removed from the DAX cluster, no endpoint information for the removed nodes is displayed.+--+module Network.AWS.DAX.DescribeClusters+    (+    -- * Creating a Request+      describeClusters+    , DescribeClusters+    -- * Request Lenses+    , dcClusterNames+    , dcNextToken+    , dcMaxResults++    -- * Destructuring the Response+    , describeClustersResponse+    , DescribeClustersResponse+    -- * Response Lenses+    , dcrsNextToken+    , dcrsClusters+    , dcrsResponseStatus+    ) where++import Network.AWS.DAX.Types+import Network.AWS.DAX.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'describeClusters' smart constructor.+data DescribeClusters = DescribeClusters'+  { _dcClusterNames :: !(Maybe [Text])+  , _dcNextToken    :: !(Maybe Text)+  , _dcMaxResults   :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeClusters' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dcClusterNames' - The names of the DAX clusters being described.+--+-- * 'dcNextToken' - An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by @MaxResults@ .+--+-- * 'dcMaxResults' - The maximum number of results to include in the response. If more results exist than the specified @MaxResults@ value, a token is included in the response so that the remaining results can be retrieved. The value for @MaxResults@ must be between 20 and 100.+describeClusters+    :: DescribeClusters+describeClusters =+  DescribeClusters'+  {_dcClusterNames = Nothing, _dcNextToken = Nothing, _dcMaxResults = Nothing}+++-- | The names of the DAX clusters being described.+dcClusterNames :: Lens' DescribeClusters [Text]+dcClusterNames = lens _dcClusterNames (\ s a -> s{_dcClusterNames = a}) . _Default . _Coerce;++-- | An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by @MaxResults@ .+dcNextToken :: Lens' DescribeClusters (Maybe Text)+dcNextToken = lens _dcNextToken (\ s a -> s{_dcNextToken = a});++-- | The maximum number of results to include in the response. If more results exist than the specified @MaxResults@ value, a token is included in the response so that the remaining results can be retrieved. The value for @MaxResults@ must be between 20 and 100.+dcMaxResults :: Lens' DescribeClusters (Maybe Int)+dcMaxResults = lens _dcMaxResults (\ s a -> s{_dcMaxResults = a});++instance AWSRequest DescribeClusters where+        type Rs DescribeClusters = DescribeClustersResponse+        request = postJSON dax+        response+          = receiveJSON+              (\ s h x ->+                 DescribeClustersResponse' <$>+                   (x .?> "NextToken") <*> (x .?> "Clusters" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance Hashable DescribeClusters where++instance NFData DescribeClusters where++instance ToHeaders DescribeClusters where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AmazonDAXV3.DescribeClusters" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DescribeClusters where+        toJSON DescribeClusters'{..}+          = object+              (catMaybes+                 [("ClusterNames" .=) <$> _dcClusterNames,+                  ("NextToken" .=) <$> _dcNextToken,+                  ("MaxResults" .=) <$> _dcMaxResults])++instance ToPath DescribeClusters where+        toPath = const "/"++instance ToQuery DescribeClusters where+        toQuery = const mempty++-- | /See:/ 'describeClustersResponse' smart constructor.+data DescribeClustersResponse = DescribeClustersResponse'+  { _dcrsNextToken      :: !(Maybe Text)+  , _dcrsClusters       :: !(Maybe [Cluster])+  , _dcrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeClustersResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dcrsNextToken' - Provides an identifier to allow retrieval of paginated results.+--+-- * 'dcrsClusters' - The descriptions of your DAX clusters, in response to a /DescribeClusters/ request.+--+-- * 'dcrsResponseStatus' - -- | The response status code.+describeClustersResponse+    :: Int -- ^ 'dcrsResponseStatus'+    -> DescribeClustersResponse+describeClustersResponse pResponseStatus_ =+  DescribeClustersResponse'+  { _dcrsNextToken = Nothing+  , _dcrsClusters = Nothing+  , _dcrsResponseStatus = pResponseStatus_+  }+++-- | Provides an identifier to allow retrieval of paginated results.+dcrsNextToken :: Lens' DescribeClustersResponse (Maybe Text)+dcrsNextToken = lens _dcrsNextToken (\ s a -> s{_dcrsNextToken = a});++-- | The descriptions of your DAX clusters, in response to a /DescribeClusters/ request.+dcrsClusters :: Lens' DescribeClustersResponse [Cluster]+dcrsClusters = lens _dcrsClusters (\ s a -> s{_dcrsClusters = a}) . _Default . _Coerce;++-- | -- | The response status code.+dcrsResponseStatus :: Lens' DescribeClustersResponse Int+dcrsResponseStatus = lens _dcrsResponseStatus (\ s a -> s{_dcrsResponseStatus = a});++instance NFData DescribeClustersResponse where
+ gen/Network/AWS/DAX/DescribeDefaultParameters.hs view
@@ -0,0 +1,157 @@+{-# 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.DAX.DescribeDefaultParameters+-- Copyright   : (c) 2013-2017 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)+--+-- Returns the default system parameter information for the DAX caching software.+--+--+module Network.AWS.DAX.DescribeDefaultParameters+    (+    -- * Creating a Request+      describeDefaultParameters+    , DescribeDefaultParameters+    -- * Request Lenses+    , ddpNextToken+    , ddpMaxResults++    -- * Destructuring the Response+    , describeDefaultParametersResponse+    , DescribeDefaultParametersResponse+    -- * Response Lenses+    , ddprsNextToken+    , ddprsParameters+    , ddprsResponseStatus+    ) where++import Network.AWS.DAX.Types+import Network.AWS.DAX.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'describeDefaultParameters' smart constructor.+data DescribeDefaultParameters = DescribeDefaultParameters'+  { _ddpNextToken  :: !(Maybe Text)+  , _ddpMaxResults :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeDefaultParameters' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ddpNextToken' - An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by @MaxResults@ .+--+-- * 'ddpMaxResults' - The maximum number of results to include in the response. If more results exist than the specified @MaxResults@ value, a token is included in the response so that the remaining results can be retrieved. The value for @MaxResults@ must be between 20 and 100.+describeDefaultParameters+    :: DescribeDefaultParameters+describeDefaultParameters =+  DescribeDefaultParameters' {_ddpNextToken = Nothing, _ddpMaxResults = Nothing}+++-- | An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by @MaxResults@ .+ddpNextToken :: Lens' DescribeDefaultParameters (Maybe Text)+ddpNextToken = lens _ddpNextToken (\ s a -> s{_ddpNextToken = a});++-- | The maximum number of results to include in the response. If more results exist than the specified @MaxResults@ value, a token is included in the response so that the remaining results can be retrieved. The value for @MaxResults@ must be between 20 and 100.+ddpMaxResults :: Lens' DescribeDefaultParameters (Maybe Int)+ddpMaxResults = lens _ddpMaxResults (\ s a -> s{_ddpMaxResults = a});++instance AWSRequest DescribeDefaultParameters where+        type Rs DescribeDefaultParameters =+             DescribeDefaultParametersResponse+        request = postJSON dax+        response+          = receiveJSON+              (\ s h x ->+                 DescribeDefaultParametersResponse' <$>+                   (x .?> "NextToken") <*>+                     (x .?> "Parameters" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance Hashable DescribeDefaultParameters where++instance NFData DescribeDefaultParameters where++instance ToHeaders DescribeDefaultParameters where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AmazonDAXV3.DescribeDefaultParameters" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DescribeDefaultParameters where+        toJSON DescribeDefaultParameters'{..}+          = object+              (catMaybes+                 [("NextToken" .=) <$> _ddpNextToken,+                  ("MaxResults" .=) <$> _ddpMaxResults])++instance ToPath DescribeDefaultParameters where+        toPath = const "/"++instance ToQuery DescribeDefaultParameters where+        toQuery = const mempty++-- | /See:/ 'describeDefaultParametersResponse' smart constructor.+data DescribeDefaultParametersResponse = DescribeDefaultParametersResponse'+  { _ddprsNextToken      :: !(Maybe Text)+  , _ddprsParameters     :: !(Maybe [Parameter])+  , _ddprsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeDefaultParametersResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ddprsNextToken' - Provides an identifier to allow retrieval of paginated results.+--+-- * 'ddprsParameters' - A list of parameters. Each element in the list represents one parameter.+--+-- * 'ddprsResponseStatus' - -- | The response status code.+describeDefaultParametersResponse+    :: Int -- ^ 'ddprsResponseStatus'+    -> DescribeDefaultParametersResponse+describeDefaultParametersResponse pResponseStatus_ =+  DescribeDefaultParametersResponse'+  { _ddprsNextToken = Nothing+  , _ddprsParameters = Nothing+  , _ddprsResponseStatus = pResponseStatus_+  }+++-- | Provides an identifier to allow retrieval of paginated results.+ddprsNextToken :: Lens' DescribeDefaultParametersResponse (Maybe Text)+ddprsNextToken = lens _ddprsNextToken (\ s a -> s{_ddprsNextToken = a});++-- | A list of parameters. Each element in the list represents one parameter.+ddprsParameters :: Lens' DescribeDefaultParametersResponse [Parameter]+ddprsParameters = lens _ddprsParameters (\ s a -> s{_ddprsParameters = a}) . _Default . _Coerce;++-- | -- | The response status code.+ddprsResponseStatus :: Lens' DescribeDefaultParametersResponse Int+ddprsResponseStatus = lens _ddprsResponseStatus (\ s a -> s{_ddprsResponseStatus = a});++instance NFData DescribeDefaultParametersResponse+         where
+ gen/Network/AWS/DAX/DescribeEvents.hs view
@@ -0,0 +1,208 @@+{-# 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.DAX.DescribeEvents+-- Copyright   : (c) 2013-2017 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)+--+-- Returns events related to DAX clusters and parameter groups. You can obtain events specific to a particular DAX cluster or parameter group by providing the name as a parameter.+--+--+-- By default, only the events occurring within the last hour are returned; however, you can retrieve up to 14 days' worth of events if necessary.+--+module Network.AWS.DAX.DescribeEvents+    (+    -- * Creating a Request+      describeEvents+    , DescribeEvents+    -- * Request Lenses+    , deSourceName+    , deStartTime+    , deSourceType+    , deNextToken+    , deEndTime+    , deDuration+    , deMaxResults++    -- * Destructuring the Response+    , describeEventsResponse+    , DescribeEventsResponse+    -- * Response Lenses+    , dersNextToken+    , dersEvents+    , dersResponseStatus+    ) where++import Network.AWS.DAX.Types+import Network.AWS.DAX.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'describeEvents' smart constructor.+data DescribeEvents = DescribeEvents'+  { _deSourceName :: !(Maybe Text)+  , _deStartTime  :: !(Maybe POSIX)+  , _deSourceType :: !(Maybe SourceType)+  , _deNextToken  :: !(Maybe Text)+  , _deEndTime    :: !(Maybe POSIX)+  , _deDuration   :: !(Maybe Int)+  , _deMaxResults :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeEvents' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'deSourceName' - The identifier of the event source for which events will be returned. If not specified, then all sources are included in the response.+--+-- * 'deStartTime' - The beginning of the time interval to retrieve events for, specified in ISO 8601 format.+--+-- * 'deSourceType' - The event source to retrieve events for. If no value is specified, all events are returned.+--+-- * 'deNextToken' - An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by @MaxResults@ .+--+-- * 'deEndTime' - The end of the time interval for which to retrieve events, specified in ISO 8601 format.+--+-- * 'deDuration' - The number of minutes' worth of events to retrieve.+--+-- * 'deMaxResults' - The maximum number of results to include in the response. If more results exist than the specified @MaxResults@ value, a token is included in the response so that the remaining results can be retrieved. The value for @MaxResults@ must be between 20 and 100.+describeEvents+    :: DescribeEvents+describeEvents =+  DescribeEvents'+  { _deSourceName = Nothing+  , _deStartTime = Nothing+  , _deSourceType = Nothing+  , _deNextToken = Nothing+  , _deEndTime = Nothing+  , _deDuration = Nothing+  , _deMaxResults = Nothing+  }+++-- | The identifier of the event source for which events will be returned. If not specified, then all sources are included in the response.+deSourceName :: Lens' DescribeEvents (Maybe Text)+deSourceName = lens _deSourceName (\ s a -> s{_deSourceName = a});++-- | The beginning of the time interval to retrieve events for, specified in ISO 8601 format.+deStartTime :: Lens' DescribeEvents (Maybe UTCTime)+deStartTime = lens _deStartTime (\ s a -> s{_deStartTime = a}) . mapping _Time;++-- | The event source to retrieve events for. If no value is specified, all events are returned.+deSourceType :: Lens' DescribeEvents (Maybe SourceType)+deSourceType = lens _deSourceType (\ s a -> s{_deSourceType = a});++-- | An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by @MaxResults@ .+deNextToken :: Lens' DescribeEvents (Maybe Text)+deNextToken = lens _deNextToken (\ s a -> s{_deNextToken = a});++-- | The end of the time interval for which to retrieve events, specified in ISO 8601 format.+deEndTime :: Lens' DescribeEvents (Maybe UTCTime)+deEndTime = lens _deEndTime (\ s a -> s{_deEndTime = a}) . mapping _Time;++-- | The number of minutes' worth of events to retrieve.+deDuration :: Lens' DescribeEvents (Maybe Int)+deDuration = lens _deDuration (\ s a -> s{_deDuration = a});++-- | The maximum number of results to include in the response. If more results exist than the specified @MaxResults@ value, a token is included in the response so that the remaining results can be retrieved. The value for @MaxResults@ must be between 20 and 100.+deMaxResults :: Lens' DescribeEvents (Maybe Int)+deMaxResults = lens _deMaxResults (\ s a -> s{_deMaxResults = a});++instance AWSRequest DescribeEvents where+        type Rs DescribeEvents = DescribeEventsResponse+        request = postJSON dax+        response+          = receiveJSON+              (\ s h x ->+                 DescribeEventsResponse' <$>+                   (x .?> "NextToken") <*> (x .?> "Events" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance Hashable DescribeEvents where++instance NFData DescribeEvents where++instance ToHeaders DescribeEvents where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AmazonDAXV3.DescribeEvents" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DescribeEvents where+        toJSON DescribeEvents'{..}+          = object+              (catMaybes+                 [("SourceName" .=) <$> _deSourceName,+                  ("StartTime" .=) <$> _deStartTime,+                  ("SourceType" .=) <$> _deSourceType,+                  ("NextToken" .=) <$> _deNextToken,+                  ("EndTime" .=) <$> _deEndTime,+                  ("Duration" .=) <$> _deDuration,+                  ("MaxResults" .=) <$> _deMaxResults])++instance ToPath DescribeEvents where+        toPath = const "/"++instance ToQuery DescribeEvents where+        toQuery = const mempty++-- | /See:/ 'describeEventsResponse' smart constructor.+data DescribeEventsResponse = DescribeEventsResponse'+  { _dersNextToken      :: !(Maybe Text)+  , _dersEvents         :: !(Maybe [Event])+  , _dersResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeEventsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dersNextToken' - Provides an identifier to allow retrieval of paginated results.+--+-- * 'dersEvents' - An array of events. Each element in the array represents one event.+--+-- * 'dersResponseStatus' - -- | The response status code.+describeEventsResponse+    :: Int -- ^ 'dersResponseStatus'+    -> DescribeEventsResponse+describeEventsResponse pResponseStatus_ =+  DescribeEventsResponse'+  { _dersNextToken = Nothing+  , _dersEvents = Nothing+  , _dersResponseStatus = pResponseStatus_+  }+++-- | Provides an identifier to allow retrieval of paginated results.+dersNextToken :: Lens' DescribeEventsResponse (Maybe Text)+dersNextToken = lens _dersNextToken (\ s a -> s{_dersNextToken = a});++-- | An array of events. Each element in the array represents one event.+dersEvents :: Lens' DescribeEventsResponse [Event]+dersEvents = lens _dersEvents (\ s a -> s{_dersEvents = a}) . _Default . _Coerce;++-- | -- | The response status code.+dersResponseStatus :: Lens' DescribeEventsResponse Int+dersResponseStatus = lens _dersResponseStatus (\ s a -> s{_dersResponseStatus = a});++instance NFData DescribeEventsResponse where
+ gen/Network/AWS/DAX/DescribeParameterGroups.hs view
@@ -0,0 +1,170 @@+{-# 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.DAX.DescribeParameterGroups+-- Copyright   : (c) 2013-2017 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)+--+-- Returns a list of parameter group descriptions. If a parameter group name is specified, the list will contain only the descriptions for that group.+--+--+module Network.AWS.DAX.DescribeParameterGroups+    (+    -- * Creating a Request+      describeParameterGroups+    , DescribeParameterGroups+    -- * Request Lenses+    , dpgNextToken+    , dpgParameterGroupNames+    , dpgMaxResults++    -- * Destructuring the Response+    , describeParameterGroupsResponse+    , DescribeParameterGroupsResponse+    -- * Response Lenses+    , dpgsrsNextToken+    , dpgsrsParameterGroups+    , dpgsrsResponseStatus+    ) where++import Network.AWS.DAX.Types+import Network.AWS.DAX.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'describeParameterGroups' smart constructor.+data DescribeParameterGroups = DescribeParameterGroups'+  { _dpgNextToken           :: !(Maybe Text)+  , _dpgParameterGroupNames :: !(Maybe [Text])+  , _dpgMaxResults          :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeParameterGroups' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dpgNextToken' - An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by @MaxResults@ .+--+-- * 'dpgParameterGroupNames' - The names of the parameter groups.+--+-- * 'dpgMaxResults' - The maximum number of results to include in the response. If more results exist than the specified @MaxResults@ value, a token is included in the response so that the remaining results can be retrieved. The value for @MaxResults@ must be between 20 and 100.+describeParameterGroups+    :: DescribeParameterGroups+describeParameterGroups =+  DescribeParameterGroups'+  { _dpgNextToken = Nothing+  , _dpgParameterGroupNames = Nothing+  , _dpgMaxResults = Nothing+  }+++-- | An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by @MaxResults@ .+dpgNextToken :: Lens' DescribeParameterGroups (Maybe Text)+dpgNextToken = lens _dpgNextToken (\ s a -> s{_dpgNextToken = a});++-- | The names of the parameter groups.+dpgParameterGroupNames :: Lens' DescribeParameterGroups [Text]+dpgParameterGroupNames = lens _dpgParameterGroupNames (\ s a -> s{_dpgParameterGroupNames = a}) . _Default . _Coerce;++-- | The maximum number of results to include in the response. If more results exist than the specified @MaxResults@ value, a token is included in the response so that the remaining results can be retrieved. The value for @MaxResults@ must be between 20 and 100.+dpgMaxResults :: Lens' DescribeParameterGroups (Maybe Int)+dpgMaxResults = lens _dpgMaxResults (\ s a -> s{_dpgMaxResults = a});++instance AWSRequest DescribeParameterGroups where+        type Rs DescribeParameterGroups =+             DescribeParameterGroupsResponse+        request = postJSON dax+        response+          = receiveJSON+              (\ s h x ->+                 DescribeParameterGroupsResponse' <$>+                   (x .?> "NextToken") <*>+                     (x .?> "ParameterGroups" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance Hashable DescribeParameterGroups where++instance NFData DescribeParameterGroups where++instance ToHeaders DescribeParameterGroups where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AmazonDAXV3.DescribeParameterGroups" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DescribeParameterGroups where+        toJSON DescribeParameterGroups'{..}+          = object+              (catMaybes+                 [("NextToken" .=) <$> _dpgNextToken,+                  ("ParameterGroupNames" .=) <$>+                    _dpgParameterGroupNames,+                  ("MaxResults" .=) <$> _dpgMaxResults])++instance ToPath DescribeParameterGroups where+        toPath = const "/"++instance ToQuery DescribeParameterGroups where+        toQuery = const mempty++-- | /See:/ 'describeParameterGroupsResponse' smart constructor.+data DescribeParameterGroupsResponse = DescribeParameterGroupsResponse'+  { _dpgsrsNextToken       :: !(Maybe Text)+  , _dpgsrsParameterGroups :: !(Maybe [ParameterGroup])+  , _dpgsrsResponseStatus  :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeParameterGroupsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dpgsrsNextToken' - Provides an identifier to allow retrieval of paginated results.+--+-- * 'dpgsrsParameterGroups' - An array of parameter groups. Each element in the array represents one parameter group.+--+-- * 'dpgsrsResponseStatus' - -- | The response status code.+describeParameterGroupsResponse+    :: Int -- ^ 'dpgsrsResponseStatus'+    -> DescribeParameterGroupsResponse+describeParameterGroupsResponse pResponseStatus_ =+  DescribeParameterGroupsResponse'+  { _dpgsrsNextToken = Nothing+  , _dpgsrsParameterGroups = Nothing+  , _dpgsrsResponseStatus = pResponseStatus_+  }+++-- | Provides an identifier to allow retrieval of paginated results.+dpgsrsNextToken :: Lens' DescribeParameterGroupsResponse (Maybe Text)+dpgsrsNextToken = lens _dpgsrsNextToken (\ s a -> s{_dpgsrsNextToken = a});++-- | An array of parameter groups. Each element in the array represents one parameter group.+dpgsrsParameterGroups :: Lens' DescribeParameterGroupsResponse [ParameterGroup]+dpgsrsParameterGroups = lens _dpgsrsParameterGroups (\ s a -> s{_dpgsrsParameterGroups = a}) . _Default . _Coerce;++-- | -- | The response status code.+dpgsrsResponseStatus :: Lens' DescribeParameterGroupsResponse Int+dpgsrsResponseStatus = lens _dpgsrsResponseStatus (\ s a -> s{_dpgsrsResponseStatus = a});++instance NFData DescribeParameterGroupsResponse where
+ gen/Network/AWS/DAX/DescribeParameters.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.DAX.DescribeParameters+-- Copyright   : (c) 2013-2017 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)+--+-- Returns the detailed parameter list for a particular parameter group.+--+--+module Network.AWS.DAX.DescribeParameters+    (+    -- * Creating a Request+      describeParameters+    , DescribeParameters+    -- * Request Lenses+    , dpNextToken+    , dpSource+    , dpMaxResults+    , dpParameterGroupName++    -- * Destructuring the Response+    , describeParametersResponse+    , DescribeParametersResponse+    -- * Response Lenses+    , dprsNextToken+    , dprsParameters+    , dprsResponseStatus+    ) where++import Network.AWS.DAX.Types+import Network.AWS.DAX.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'describeParameters' smart constructor.+data DescribeParameters = DescribeParameters'+  { _dpNextToken          :: !(Maybe Text)+  , _dpSource             :: !(Maybe Text)+  , _dpMaxResults         :: !(Maybe Int)+  , _dpParameterGroupName :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeParameters' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dpNextToken' - An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by @MaxResults@ .+--+-- * 'dpSource' - How the parameter is defined. For example, @system@ denotes a system-defined parameter.+--+-- * 'dpMaxResults' - The maximum number of results to include in the response. If more results exist than the specified @MaxResults@ value, a token is included in the response so that the remaining results can be retrieved. The value for @MaxResults@ must be between 20 and 100.+--+-- * 'dpParameterGroupName' - The name of the parameter group.+describeParameters+    :: Text -- ^ 'dpParameterGroupName'+    -> DescribeParameters+describeParameters pParameterGroupName_ =+  DescribeParameters'+  { _dpNextToken = Nothing+  , _dpSource = Nothing+  , _dpMaxResults = Nothing+  , _dpParameterGroupName = pParameterGroupName_+  }+++-- | An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by @MaxResults@ .+dpNextToken :: Lens' DescribeParameters (Maybe Text)+dpNextToken = lens _dpNextToken (\ s a -> s{_dpNextToken = a});++-- | How the parameter is defined. For example, @system@ denotes a system-defined parameter.+dpSource :: Lens' DescribeParameters (Maybe Text)+dpSource = lens _dpSource (\ s a -> s{_dpSource = a});++-- | The maximum number of results to include in the response. If more results exist than the specified @MaxResults@ value, a token is included in the response so that the remaining results can be retrieved. The value for @MaxResults@ must be between 20 and 100.+dpMaxResults :: Lens' DescribeParameters (Maybe Int)+dpMaxResults = lens _dpMaxResults (\ s a -> s{_dpMaxResults = a});++-- | The name of the parameter group.+dpParameterGroupName :: Lens' DescribeParameters Text+dpParameterGroupName = lens _dpParameterGroupName (\ s a -> s{_dpParameterGroupName = a});++instance AWSRequest DescribeParameters where+        type Rs DescribeParameters =+             DescribeParametersResponse+        request = postJSON dax+        response+          = receiveJSON+              (\ s h x ->+                 DescribeParametersResponse' <$>+                   (x .?> "NextToken") <*>+                     (x .?> "Parameters" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance Hashable DescribeParameters where++instance NFData DescribeParameters where++instance ToHeaders DescribeParameters where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AmazonDAXV3.DescribeParameters" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DescribeParameters where+        toJSON DescribeParameters'{..}+          = object+              (catMaybes+                 [("NextToken" .=) <$> _dpNextToken,+                  ("Source" .=) <$> _dpSource,+                  ("MaxResults" .=) <$> _dpMaxResults,+                  Just+                    ("ParameterGroupName" .= _dpParameterGroupName)])++instance ToPath DescribeParameters where+        toPath = const "/"++instance ToQuery DescribeParameters where+        toQuery = const mempty++-- | /See:/ 'describeParametersResponse' smart constructor.+data DescribeParametersResponse = DescribeParametersResponse'+  { _dprsNextToken      :: !(Maybe Text)+  , _dprsParameters     :: !(Maybe [Parameter])+  , _dprsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeParametersResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dprsNextToken' - Provides an identifier to allow retrieval of paginated results.+--+-- * 'dprsParameters' - A list of parameters within a parameter group. Each element in the list represents one parameter.+--+-- * 'dprsResponseStatus' - -- | The response status code.+describeParametersResponse+    :: Int -- ^ 'dprsResponseStatus'+    -> DescribeParametersResponse+describeParametersResponse pResponseStatus_ =+  DescribeParametersResponse'+  { _dprsNextToken = Nothing+  , _dprsParameters = Nothing+  , _dprsResponseStatus = pResponseStatus_+  }+++-- | Provides an identifier to allow retrieval of paginated results.+dprsNextToken :: Lens' DescribeParametersResponse (Maybe Text)+dprsNextToken = lens _dprsNextToken (\ s a -> s{_dprsNextToken = a});++-- | A list of parameters within a parameter group. Each element in the list represents one parameter.+dprsParameters :: Lens' DescribeParametersResponse [Parameter]+dprsParameters = lens _dprsParameters (\ s a -> s{_dprsParameters = a}) . _Default . _Coerce;++-- | -- | The response status code.+dprsResponseStatus :: Lens' DescribeParametersResponse Int+dprsResponseStatus = lens _dprsResponseStatus (\ s a -> s{_dprsResponseStatus = a});++instance NFData DescribeParametersResponse where
+ gen/Network/AWS/DAX/DescribeSubnetGroups.hs view
@@ -0,0 +1,168 @@+{-# 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.DAX.DescribeSubnetGroups+-- Copyright   : (c) 2013-2017 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)+--+-- Returns a list of subnet group descriptions. If a subnet group name is specified, the list will contain only the description of that group.+--+--+module Network.AWS.DAX.DescribeSubnetGroups+    (+    -- * Creating a Request+      describeSubnetGroups+    , DescribeSubnetGroups+    -- * Request Lenses+    , dsgSubnetGroupNames+    , dsgNextToken+    , dsgMaxResults++    -- * Destructuring the Response+    , describeSubnetGroupsResponse+    , DescribeSubnetGroupsResponse+    -- * Response Lenses+    , dsgsrsSubnetGroups+    , dsgsrsNextToken+    , dsgsrsResponseStatus+    ) where++import Network.AWS.DAX.Types+import Network.AWS.DAX.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'describeSubnetGroups' smart constructor.+data DescribeSubnetGroups = DescribeSubnetGroups'+  { _dsgSubnetGroupNames :: !(Maybe [Text])+  , _dsgNextToken        :: !(Maybe Text)+  , _dsgMaxResults       :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeSubnetGroups' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsgSubnetGroupNames' - The name of the subnet group.+--+-- * 'dsgNextToken' - An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by @MaxResults@ .+--+-- * 'dsgMaxResults' - The maximum number of results to include in the response. If more results exist than the specified @MaxResults@ value, a token is included in the response so that the remaining results can be retrieved. The value for @MaxResults@ must be between 20 and 100.+describeSubnetGroups+    :: DescribeSubnetGroups+describeSubnetGroups =+  DescribeSubnetGroups'+  { _dsgSubnetGroupNames = Nothing+  , _dsgNextToken = Nothing+  , _dsgMaxResults = Nothing+  }+++-- | The name of the subnet group.+dsgSubnetGroupNames :: Lens' DescribeSubnetGroups [Text]+dsgSubnetGroupNames = lens _dsgSubnetGroupNames (\ s a -> s{_dsgSubnetGroupNames = a}) . _Default . _Coerce;++-- | An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token, up to the value specified by @MaxResults@ .+dsgNextToken :: Lens' DescribeSubnetGroups (Maybe Text)+dsgNextToken = lens _dsgNextToken (\ s a -> s{_dsgNextToken = a});++-- | The maximum number of results to include in the response. If more results exist than the specified @MaxResults@ value, a token is included in the response so that the remaining results can be retrieved. The value for @MaxResults@ must be between 20 and 100.+dsgMaxResults :: Lens' DescribeSubnetGroups (Maybe Int)+dsgMaxResults = lens _dsgMaxResults (\ s a -> s{_dsgMaxResults = a});++instance AWSRequest DescribeSubnetGroups where+        type Rs DescribeSubnetGroups =+             DescribeSubnetGroupsResponse+        request = postJSON dax+        response+          = receiveJSON+              (\ s h x ->+                 DescribeSubnetGroupsResponse' <$>+                   (x .?> "SubnetGroups" .!@ mempty) <*>+                     (x .?> "NextToken")+                     <*> (pure (fromEnum s)))++instance Hashable DescribeSubnetGroups where++instance NFData DescribeSubnetGroups where++instance ToHeaders DescribeSubnetGroups where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AmazonDAXV3.DescribeSubnetGroups" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DescribeSubnetGroups where+        toJSON DescribeSubnetGroups'{..}+          = object+              (catMaybes+                 [("SubnetGroupNames" .=) <$> _dsgSubnetGroupNames,+                  ("NextToken" .=) <$> _dsgNextToken,+                  ("MaxResults" .=) <$> _dsgMaxResults])++instance ToPath DescribeSubnetGroups where+        toPath = const "/"++instance ToQuery DescribeSubnetGroups where+        toQuery = const mempty++-- | /See:/ 'describeSubnetGroupsResponse' smart constructor.+data DescribeSubnetGroupsResponse = DescribeSubnetGroupsResponse'+  { _dsgsrsSubnetGroups   :: !(Maybe [SubnetGroup])+  , _dsgsrsNextToken      :: !(Maybe Text)+  , _dsgsrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'DescribeSubnetGroupsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsgsrsSubnetGroups' - An array of subnet groups. Each element in the array represents a single subnet group.+--+-- * 'dsgsrsNextToken' - Provides an identifier to allow retrieval of paginated results.+--+-- * 'dsgsrsResponseStatus' - -- | The response status code.+describeSubnetGroupsResponse+    :: Int -- ^ 'dsgsrsResponseStatus'+    -> DescribeSubnetGroupsResponse+describeSubnetGroupsResponse pResponseStatus_ =+  DescribeSubnetGroupsResponse'+  { _dsgsrsSubnetGroups = Nothing+  , _dsgsrsNextToken = Nothing+  , _dsgsrsResponseStatus = pResponseStatus_+  }+++-- | An array of subnet groups. Each element in the array represents a single subnet group.+dsgsrsSubnetGroups :: Lens' DescribeSubnetGroupsResponse [SubnetGroup]+dsgsrsSubnetGroups = lens _dsgsrsSubnetGroups (\ s a -> s{_dsgsrsSubnetGroups = a}) . _Default . _Coerce;++-- | Provides an identifier to allow retrieval of paginated results.+dsgsrsNextToken :: Lens' DescribeSubnetGroupsResponse (Maybe Text)+dsgsrsNextToken = lens _dsgsrsNextToken (\ s a -> s{_dsgsrsNextToken = a});++-- | -- | The response status code.+dsgsrsResponseStatus :: Lens' DescribeSubnetGroupsResponse Int+dsgsrsResponseStatus = lens _dsgsrsResponseStatus (\ s a -> s{_dsgsrsResponseStatus = a});++instance NFData DescribeSubnetGroupsResponse where
+ gen/Network/AWS/DAX/IncreaseReplicationFactor.hs view
@@ -0,0 +1,161 @@+{-# 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.DAX.IncreaseReplicationFactor+-- Copyright   : (c) 2013-2017 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)+--+-- Adds one or more nodes to a DAX cluster.+--+--+module Network.AWS.DAX.IncreaseReplicationFactor+    (+    -- * Creating a Request+      increaseReplicationFactor+    , IncreaseReplicationFactor+    -- * Request Lenses+    , irfAvailabilityZones+    , irfClusterName+    , irfNewReplicationFactor++    -- * Destructuring the Response+    , increaseReplicationFactorResponse+    , IncreaseReplicationFactorResponse+    -- * Response Lenses+    , irfrsCluster+    , irfrsResponseStatus+    ) where++import Network.AWS.DAX.Types+import Network.AWS.DAX.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'increaseReplicationFactor' smart constructor.+data IncreaseReplicationFactor = IncreaseReplicationFactor'+  { _irfAvailabilityZones    :: !(Maybe [Text])+  , _irfClusterName          :: !Text+  , _irfNewReplicationFactor :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'IncreaseReplicationFactor' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'irfAvailabilityZones' - The Availability Zones (AZs) in which the cluster nodes will be created. All nodes belonging to the cluster are placed in these Availability Zones. Use this parameter if you want to distribute the nodes across multiple AZs.+--+-- * 'irfClusterName' - The name of the DAX cluster that will receive additional nodes.+--+-- * 'irfNewReplicationFactor' - The new number of nodes for the DAX cluster.+increaseReplicationFactor+    :: Text -- ^ 'irfClusterName'+    -> Int -- ^ 'irfNewReplicationFactor'+    -> IncreaseReplicationFactor+increaseReplicationFactor pClusterName_ pNewReplicationFactor_ =+  IncreaseReplicationFactor'+  { _irfAvailabilityZones = Nothing+  , _irfClusterName = pClusterName_+  , _irfNewReplicationFactor = pNewReplicationFactor_+  }+++-- | The Availability Zones (AZs) in which the cluster nodes will be created. All nodes belonging to the cluster are placed in these Availability Zones. Use this parameter if you want to distribute the nodes across multiple AZs.+irfAvailabilityZones :: Lens' IncreaseReplicationFactor [Text]+irfAvailabilityZones = lens _irfAvailabilityZones (\ s a -> s{_irfAvailabilityZones = a}) . _Default . _Coerce;++-- | The name of the DAX cluster that will receive additional nodes.+irfClusterName :: Lens' IncreaseReplicationFactor Text+irfClusterName = lens _irfClusterName (\ s a -> s{_irfClusterName = a});++-- | The new number of nodes for the DAX cluster.+irfNewReplicationFactor :: Lens' IncreaseReplicationFactor Int+irfNewReplicationFactor = lens _irfNewReplicationFactor (\ s a -> s{_irfNewReplicationFactor = a});++instance AWSRequest IncreaseReplicationFactor where+        type Rs IncreaseReplicationFactor =+             IncreaseReplicationFactorResponse+        request = postJSON dax+        response+          = receiveJSON+              (\ s h x ->+                 IncreaseReplicationFactorResponse' <$>+                   (x .?> "Cluster") <*> (pure (fromEnum s)))++instance Hashable IncreaseReplicationFactor where++instance NFData IncreaseReplicationFactor where++instance ToHeaders IncreaseReplicationFactor where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AmazonDAXV3.IncreaseReplicationFactor" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON IncreaseReplicationFactor where+        toJSON IncreaseReplicationFactor'{..}+          = object+              (catMaybes+                 [("AvailabilityZones" .=) <$> _irfAvailabilityZones,+                  Just ("ClusterName" .= _irfClusterName),+                  Just+                    ("NewReplicationFactor" .=+                       _irfNewReplicationFactor)])++instance ToPath IncreaseReplicationFactor where+        toPath = const "/"++instance ToQuery IncreaseReplicationFactor where+        toQuery = const mempty++-- | /See:/ 'increaseReplicationFactorResponse' smart constructor.+data IncreaseReplicationFactorResponse = IncreaseReplicationFactorResponse'+  { _irfrsCluster        :: !(Maybe Cluster)+  , _irfrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'IncreaseReplicationFactorResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'irfrsCluster' - A description of the DAX cluster. with its new replication factor.+--+-- * 'irfrsResponseStatus' - -- | The response status code.+increaseReplicationFactorResponse+    :: Int -- ^ 'irfrsResponseStatus'+    -> IncreaseReplicationFactorResponse+increaseReplicationFactorResponse pResponseStatus_ =+  IncreaseReplicationFactorResponse'+  {_irfrsCluster = Nothing, _irfrsResponseStatus = pResponseStatus_}+++-- | A description of the DAX cluster. with its new replication factor.+irfrsCluster :: Lens' IncreaseReplicationFactorResponse (Maybe Cluster)+irfrsCluster = lens _irfrsCluster (\ s a -> s{_irfrsCluster = a});++-- | -- | The response status code.+irfrsResponseStatus :: Lens' IncreaseReplicationFactorResponse Int+irfrsResponseStatus = lens _irfrsResponseStatus (\ s a -> s{_irfrsResponseStatus = a});++instance NFData IncreaseReplicationFactorResponse+         where
+ gen/Network/AWS/DAX/ListTags.hs view
@@ -0,0 +1,154 @@+{-# 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.DAX.ListTags+-- Copyright   : (c) 2013-2017 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)+--+-- List all of the tags for a DAX cluster. You can call @ListTags@ up to 10 times per second, per account.+--+--+module Network.AWS.DAX.ListTags+    (+    -- * Creating a Request+      listTags+    , ListTags+    -- * Request Lenses+    , ltNextToken+    , ltResourceName++    -- * Destructuring the Response+    , listTagsResponse+    , ListTagsResponse+    -- * Response Lenses+    , ltrsNextToken+    , ltrsTags+    , ltrsResponseStatus+    ) where++import Network.AWS.DAX.Types+import Network.AWS.DAX.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'listTags' smart constructor.+data ListTags = ListTags'+  { _ltNextToken    :: !(Maybe Text)+  , _ltResourceName :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListTags' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ltNextToken' - An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token.+--+-- * 'ltResourceName' - The name of the DAX resource to which the tags belong.+listTags+    :: Text -- ^ 'ltResourceName'+    -> ListTags+listTags pResourceName_ =+  ListTags' {_ltNextToken = Nothing, _ltResourceName = pResourceName_}+++-- | An optional token returned from a prior request. Use this token for pagination of results from this action. If this parameter is specified, the response includes only results beyond the token.+ltNextToken :: Lens' ListTags (Maybe Text)+ltNextToken = lens _ltNextToken (\ s a -> s{_ltNextToken = a});++-- | The name of the DAX resource to which the tags belong.+ltResourceName :: Lens' ListTags Text+ltResourceName = lens _ltResourceName (\ s a -> s{_ltResourceName = a});++instance AWSRequest ListTags where+        type Rs ListTags = ListTagsResponse+        request = postJSON dax+        response+          = receiveJSON+              (\ s h x ->+                 ListTagsResponse' <$>+                   (x .?> "NextToken") <*> (x .?> "Tags" .!@ mempty) <*>+                     (pure (fromEnum s)))++instance Hashable ListTags where++instance NFData ListTags where++instance ToHeaders ListTags where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AmazonDAXV3.ListTags" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListTags where+        toJSON ListTags'{..}+          = object+              (catMaybes+                 [("NextToken" .=) <$> _ltNextToken,+                  Just ("ResourceName" .= _ltResourceName)])++instance ToPath ListTags where+        toPath = const "/"++instance ToQuery ListTags where+        toQuery = const mempty++-- | /See:/ 'listTagsResponse' smart constructor.+data ListTagsResponse = ListTagsResponse'+  { _ltrsNextToken      :: !(Maybe Text)+  , _ltrsTags           :: !(Maybe [Tag])+  , _ltrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ListTagsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ltrsNextToken' - If this value is present, there are additional results to be displayed. To retrieve them, call @ListTags@ again, with @NextToken@ set to this value.+--+-- * 'ltrsTags' - A list of tags currently associated with the DAX cluster.+--+-- * 'ltrsResponseStatus' - -- | The response status code.+listTagsResponse+    :: Int -- ^ 'ltrsResponseStatus'+    -> ListTagsResponse+listTagsResponse pResponseStatus_ =+  ListTagsResponse'+  { _ltrsNextToken = Nothing+  , _ltrsTags = Nothing+  , _ltrsResponseStatus = pResponseStatus_+  }+++-- | If this value is present, there are additional results to be displayed. To retrieve them, call @ListTags@ again, with @NextToken@ set to this value.+ltrsNextToken :: Lens' ListTagsResponse (Maybe Text)+ltrsNextToken = lens _ltrsNextToken (\ s a -> s{_ltrsNextToken = a});++-- | A list of tags currently associated with the DAX cluster.+ltrsTags :: Lens' ListTagsResponse [Tag]+ltrsTags = lens _ltrsTags (\ s a -> s{_ltrsTags = a}) . _Default . _Coerce;++-- | -- | The response status code.+ltrsResponseStatus :: Lens' ListTagsResponse Int+ltrsResponseStatus = lens _ltrsResponseStatus (\ s a -> s{_ltrsResponseStatus = a});++instance NFData ListTagsResponse where
+ gen/Network/AWS/DAX/RebootNode.hs view
@@ -0,0 +1,143 @@+{-# 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.DAX.RebootNode+-- Copyright   : (c) 2013-2017 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)+--+-- Reboots a single node of a DAX cluster. The reboot action takes place as soon as possible. During the reboot, the node status is set to REBOOTING.+--+--+module Network.AWS.DAX.RebootNode+    (+    -- * Creating a Request+      rebootNode+    , RebootNode+    -- * Request Lenses+    , rnClusterName+    , rnNodeId++    -- * Destructuring the Response+    , rebootNodeResponse+    , RebootNodeResponse+    -- * Response Lenses+    , rnrsCluster+    , rnrsResponseStatus+    ) where++import Network.AWS.DAX.Types+import Network.AWS.DAX.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'rebootNode' smart constructor.+data RebootNode = RebootNode'+  { _rnClusterName :: !Text+  , _rnNodeId      :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RebootNode' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rnClusterName' - The name of the DAX cluster containing the node to be rebooted.+--+-- * 'rnNodeId' - The system-assigned ID of the node to be rebooted.+rebootNode+    :: Text -- ^ 'rnClusterName'+    -> Text -- ^ 'rnNodeId'+    -> RebootNode+rebootNode pClusterName_ pNodeId_ =+  RebootNode' {_rnClusterName = pClusterName_, _rnNodeId = pNodeId_}+++-- | The name of the DAX cluster containing the node to be rebooted.+rnClusterName :: Lens' RebootNode Text+rnClusterName = lens _rnClusterName (\ s a -> s{_rnClusterName = a});++-- | The system-assigned ID of the node to be rebooted.+rnNodeId :: Lens' RebootNode Text+rnNodeId = lens _rnNodeId (\ s a -> s{_rnNodeId = a});++instance AWSRequest RebootNode where+        type Rs RebootNode = RebootNodeResponse+        request = postJSON dax+        response+          = receiveJSON+              (\ s h x ->+                 RebootNodeResponse' <$>+                   (x .?> "Cluster") <*> (pure (fromEnum s)))++instance Hashable RebootNode where++instance NFData RebootNode where++instance ToHeaders RebootNode where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AmazonDAXV3.RebootNode" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON RebootNode where+        toJSON RebootNode'{..}+          = object+              (catMaybes+                 [Just ("ClusterName" .= _rnClusterName),+                  Just ("NodeId" .= _rnNodeId)])++instance ToPath RebootNode where+        toPath = const "/"++instance ToQuery RebootNode where+        toQuery = const mempty++-- | /See:/ 'rebootNodeResponse' smart constructor.+data RebootNodeResponse = RebootNodeResponse'+  { _rnrsCluster        :: !(Maybe Cluster)+  , _rnrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'RebootNodeResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rnrsCluster' - A description of the DAX cluster after a node has been rebooted.+--+-- * 'rnrsResponseStatus' - -- | The response status code.+rebootNodeResponse+    :: Int -- ^ 'rnrsResponseStatus'+    -> RebootNodeResponse+rebootNodeResponse pResponseStatus_ =+  RebootNodeResponse'+  {_rnrsCluster = Nothing, _rnrsResponseStatus = pResponseStatus_}+++-- | A description of the DAX cluster after a node has been rebooted.+rnrsCluster :: Lens' RebootNodeResponse (Maybe Cluster)+rnrsCluster = lens _rnrsCluster (\ s a -> s{_rnrsCluster = a});++-- | -- | The response status code.+rnrsResponseStatus :: Lens' RebootNodeResponse Int+rnrsResponseStatus = lens _rnrsResponseStatus (\ s a -> s{_rnrsResponseStatus = a});++instance NFData RebootNodeResponse where
+ gen/Network/AWS/DAX/TagResource.hs view
@@ -0,0 +1,142 @@+{-# 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.DAX.TagResource+-- Copyright   : (c) 2013-2017 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)+--+-- Associates a set of tags with a DAX resource. You can call @TagResource@ up to 5 times per second, per account.+--+--+module Network.AWS.DAX.TagResource+    (+    -- * Creating a Request+      tagResource+    , TagResource+    -- * Request Lenses+    , trResourceName+    , trTags++    -- * Destructuring the Response+    , tagResourceResponse+    , TagResourceResponse+    -- * Response Lenses+    , trrsTags+    , trrsResponseStatus+    ) where++import Network.AWS.DAX.Types+import Network.AWS.DAX.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'tagResource' smart constructor.+data TagResource = TagResource'+  { _trResourceName :: !Text+  , _trTags         :: ![Tag]+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TagResource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'trResourceName' - The name of the DAX resource to which tags should be added.+--+-- * 'trTags' - The tags to be assigned to the DAX resource.+tagResource+    :: Text -- ^ 'trResourceName'+    -> TagResource+tagResource pResourceName_ =+  TagResource' {_trResourceName = pResourceName_, _trTags = mempty}+++-- | The name of the DAX resource to which tags should be added.+trResourceName :: Lens' TagResource Text+trResourceName = lens _trResourceName (\ s a -> s{_trResourceName = a});++-- | The tags to be assigned to the DAX resource.+trTags :: Lens' TagResource [Tag]+trTags = lens _trTags (\ s a -> s{_trTags = a}) . _Coerce;++instance AWSRequest TagResource where+        type Rs TagResource = TagResourceResponse+        request = postJSON dax+        response+          = receiveJSON+              (\ s h x ->+                 TagResourceResponse' <$>+                   (x .?> "Tags" .!@ mempty) <*> (pure (fromEnum s)))++instance Hashable TagResource where++instance NFData TagResource where++instance ToHeaders TagResource where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AmazonDAXV3.TagResource" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON TagResource where+        toJSON TagResource'{..}+          = object+              (catMaybes+                 [Just ("ResourceName" .= _trResourceName),+                  Just ("Tags" .= _trTags)])++instance ToPath TagResource where+        toPath = const "/"++instance ToQuery TagResource where+        toQuery = const mempty++-- | /See:/ 'tagResourceResponse' smart constructor.+data TagResourceResponse = TagResourceResponse'+  { _trrsTags           :: !(Maybe [Tag])+  , _trrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'TagResourceResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'trrsTags' - The list of tags that are associated with the DAX resource.+--+-- * 'trrsResponseStatus' - -- | The response status code.+tagResourceResponse+    :: Int -- ^ 'trrsResponseStatus'+    -> TagResourceResponse+tagResourceResponse pResponseStatus_ =+  TagResourceResponse'+  {_trrsTags = Nothing, _trrsResponseStatus = pResponseStatus_}+++-- | The list of tags that are associated with the DAX resource.+trrsTags :: Lens' TagResourceResponse [Tag]+trrsTags = lens _trrsTags (\ s a -> s{_trrsTags = a}) . _Default . _Coerce;++-- | -- | The response status code.+trrsResponseStatus :: Lens' TagResourceResponse Int+trrsResponseStatus = lens _trrsResponseStatus (\ s a -> s{_trrsResponseStatus = a});++instance NFData TagResourceResponse where
+ gen/Network/AWS/DAX/Types.hs view
@@ -0,0 +1,403 @@+{-# LANGUAGE OverloadedStrings #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.DAX.Types+-- Copyright   : (c) 2013-2017 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.DAX.Types+    (+    -- * Service Configuration+      dax++    -- * Errors+    , _SubnetQuotaExceededFault+    , _ParameterGroupNotFoundFault+    , _InvalidParameterGroupStateFault+    , _SubnetGroupInUseFault+    , _ParameterGroupAlreadyExistsFault+    , _InvalidSubnet+    , _TagQuotaPerResourceExceeded+    , _ClusterNotFoundFault+    , _TagNotFoundFault+    , _NodeQuotaForClusterExceededFault+    , _InvalidClusterStateFault+    , _InsufficientClusterCapacityFault+    , _NodeNotFoundFault+    , _ParameterGroupQuotaExceededFault+    , _InvalidParameterValueException+    , _InvalidVPCNetworkStateFault+    , _SubnetInUse+    , _ClusterQuotaForCustomerExceededFault+    , _SubnetGroupNotFoundFault+    , _SubnetGroupAlreadyExistsFault+    , _NodeQuotaForCustomerExceededFault+    , _SubnetGroupQuotaExceededFault+    , _ClusterAlreadyExistsFault+    , _InvalidARNFault+    , _InvalidParameterCombinationException++    -- * ChangeType+    , ChangeType (..)++    -- * IsModifiable+    , IsModifiable (..)++    -- * ParameterType+    , ParameterType (..)++    -- * SourceType+    , SourceType (..)++    -- * Cluster+    , Cluster+    , cluster+    , cStatus+    , cIAMRoleARN+    , cClusterARN+    , cActiveNodes+    , cSecurityGroups+    , cNotificationConfiguration+    , cNodeIdsToRemove+    , cTotalNodes+    , cPreferredMaintenanceWindow+    , cSubnetGroup+    , cClusterName+    , cNodeType+    , cNodes+    , cClusterDiscoveryEndpoint+    , cDescription+    , cParameterGroup++    -- * Endpoint+    , Endpoint+    , endpoint+    , eAddress+    , ePort++    -- * Event+    , Event+    , event+    , eSourceName+    , eSourceType+    , eDate+    , eMessage++    -- * Node+    , Node+    , node+    , nNodeStatus+    , nParameterGroupStatus+    , nAvailabilityZone+    , nNodeId+    , nEndpoint+    , nNodeCreateTime++    -- * NodeTypeSpecificValue+    , NodeTypeSpecificValue+    , nodeTypeSpecificValue+    , ntsvValue+    , ntsvNodeType++    -- * NotificationConfiguration+    , NotificationConfiguration+    , notificationConfiguration+    , ncTopicStatus+    , ncTopicARN++    -- * Parameter+    , Parameter+    , parameter+    , pParameterValue+    , pParameterType+    , pSource+    , pIsModifiable+    , pDataType+    , pNodeTypeSpecificValues+    , pAllowedValues+    , pParameterName+    , pDescription+    , pChangeType++    -- * ParameterGroup+    , ParameterGroup+    , parameterGroup+    , pgDescription+    , pgParameterGroupName++    -- * ParameterGroupStatus+    , ParameterGroupStatus+    , parameterGroupStatus+    , pgsNodeIdsToReboot+    , pgsParameterApplyStatus+    , pgsParameterGroupName++    -- * ParameterNameValue+    , ParameterNameValue+    , parameterNameValue+    , pnvParameterValue+    , pnvParameterName++    -- * SecurityGroupMembership+    , SecurityGroupMembership+    , securityGroupMembership+    , sgmStatus+    , sgmSecurityGroupIdentifier++    -- * Subnet+    , Subnet+    , subnet+    , sSubnetIdentifier+    , sSubnetAvailabilityZone++    -- * SubnetGroup+    , SubnetGroup+    , subnetGroup+    , sgVPCId+    , sgSubnets+    , sgSubnetGroupName+    , sgDescription++    -- * Tag+    , Tag+    , tag+    , tagValue+    , tagKey+    ) where++import Network.AWS.DAX.Types.Product+import Network.AWS.DAX.Types.Sum+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Sign.V4++-- | API version @2017-04-19@ of the Amazon DynamoDB Accelerator (DAX) SDK configuration.+dax :: Service+dax =+  Service+  { _svcAbbrev = "DAX"+  , _svcSigner = v4+  , _svcPrefix = "dax"+  , _svcVersion = "2017-04-19"+  , _svcEndpoint = defaultEndpoint dax+  , _svcTimeout = Just 70+  , _svcCheck = statusSuccess+  , _svcError = parseJSONError "DAX"+  , _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 (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 request cannot be processed because it would exceed the allowed number of subnets in a subnet group.+--+--+_SubnetQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError+_SubnetQuotaExceededFault = _MatchServiceError dax "SubnetQuotaExceededFault"+++-- | The specified parameter group does not exist.+--+--+_ParameterGroupNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError+_ParameterGroupNotFoundFault =+  _MatchServiceError dax "ParameterGroupNotFoundFault"+++-- | One or more parameters in a parameter group are in an invalid state.+--+--+_InvalidParameterGroupStateFault :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidParameterGroupStateFault =+  _MatchServiceError dax "InvalidParameterGroupStateFault"+++-- | The specified subnet group is currently in use.+--+--+_SubnetGroupInUseFault :: AsError a => Getting (First ServiceError) a ServiceError+_SubnetGroupInUseFault = _MatchServiceError dax "SubnetGroupInUseFault"+++-- | The specified parameter group already exists.+--+--+_ParameterGroupAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError+_ParameterGroupAlreadyExistsFault =+  _MatchServiceError dax "ParameterGroupAlreadyExistsFault"+++-- | An invalid subnet identifier was specified.+--+--+_InvalidSubnet :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidSubnet = _MatchServiceError dax "InvalidSubnet"+++-- | You have exceeded the maximum number of tags for this DAX cluster.+--+--+_TagQuotaPerResourceExceeded :: AsError a => Getting (First ServiceError) a ServiceError+_TagQuotaPerResourceExceeded =+  _MatchServiceError dax "TagQuotaPerResourceExceeded"+++-- | The requested cluster ID does not refer to an existing DAX cluster.+--+--+_ClusterNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError+_ClusterNotFoundFault = _MatchServiceError dax "ClusterNotFoundFault"+++-- | The tag does not exist.+--+--+_TagNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError+_TagNotFoundFault = _MatchServiceError dax "TagNotFoundFault"+++-- | You have attempted to exceed the maximum number of nodes for a DAX cluster.+--+--+_NodeQuotaForClusterExceededFault :: AsError a => Getting (First ServiceError) a ServiceError+_NodeQuotaForClusterExceededFault =+  _MatchServiceError dax "NodeQuotaForClusterExceededFault"+++-- | The requested DAX cluster is not in the /available/ state.+--+--+_InvalidClusterStateFault :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidClusterStateFault = _MatchServiceError dax "InvalidClusterStateFault"+++-- | There are not enough system resources to create the cluster you requested (or to resize an already-existing cluster).+--+--+_InsufficientClusterCapacityFault :: AsError a => Getting (First ServiceError) a ServiceError+_InsufficientClusterCapacityFault =+  _MatchServiceError dax "InsufficientClusterCapacityFault"+++-- | None of the nodes in the cluster have the given node ID.+--+--+_NodeNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError+_NodeNotFoundFault = _MatchServiceError dax "NodeNotFoundFault"+++-- | You have attempted to exceed the maximum number of parameter groups.+--+--+_ParameterGroupQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError+_ParameterGroupQuotaExceededFault =+  _MatchServiceError dax "ParameterGroupQuotaExceededFault"+++-- | The value for a parameter is invalid.+--+--+_InvalidParameterValueException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidParameterValueException =+  _MatchServiceError dax "InvalidParameterValueException"+++-- | The VPC network is in an invalid state.+--+--+_InvalidVPCNetworkStateFault :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidVPCNetworkStateFault =+  _MatchServiceError dax "InvalidVPCNetworkStateFault"+++-- | The requested subnet is being used by another subnet group.+--+--+_SubnetInUse :: AsError a => Getting (First ServiceError) a ServiceError+_SubnetInUse = _MatchServiceError dax "SubnetInUse"+++-- | You have attempted to exceed the maximum number of DAX clusters for your AWS account.+--+--+_ClusterQuotaForCustomerExceededFault :: AsError a => Getting (First ServiceError) a ServiceError+_ClusterQuotaForCustomerExceededFault =+  _MatchServiceError dax "ClusterQuotaForCustomerExceededFault"+++-- | The requested subnet group name does not refer to an existing subnet group.+--+--+_SubnetGroupNotFoundFault :: AsError a => Getting (First ServiceError) a ServiceError+_SubnetGroupNotFoundFault = _MatchServiceError dax "SubnetGroupNotFoundFault"+++-- | The specified subnet group already exists.+--+--+_SubnetGroupAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError+_SubnetGroupAlreadyExistsFault =+  _MatchServiceError dax "SubnetGroupAlreadyExistsFault"+++-- | You have attempted to exceed the maximum number of nodes for your AWS account.+--+--+_NodeQuotaForCustomerExceededFault :: AsError a => Getting (First ServiceError) a ServiceError+_NodeQuotaForCustomerExceededFault =+  _MatchServiceError dax "NodeQuotaForCustomerExceededFault"+++-- | The request cannot be processed because it would exceed the allowed number of subnets in a subnet group.+--+--+_SubnetGroupQuotaExceededFault :: AsError a => Getting (First ServiceError) a ServiceError+_SubnetGroupQuotaExceededFault =+  _MatchServiceError dax "SubnetGroupQuotaExceededFault"+++-- | You already have a DAX cluster with the given identifier.+--+--+_ClusterAlreadyExistsFault :: AsError a => Getting (First ServiceError) a ServiceError+_ClusterAlreadyExistsFault = _MatchServiceError dax "ClusterAlreadyExistsFault"+++-- | The Amazon Resource Name (ARN) supplied in the request is not valid.+--+--+_InvalidARNFault :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidARNFault = _MatchServiceError dax "InvalidARNFault"+++-- | Two or more incompatible parameters were specified.+--+--+_InvalidParameterCombinationException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidParameterCombinationException =+  _MatchServiceError dax "InvalidParameterCombinationException"+
+ gen/Network/AWS/DAX/Types/Product.hs view
@@ -0,0 +1,939 @@+{-# 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.DAX.Types.Product+-- Copyright   : (c) 2013-2017 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.DAX.Types.Product where++import Network.AWS.DAX.Types.Sum+import Network.AWS.Lens+import Network.AWS.Prelude++-- | Contains all of the attributes of a specific DAX cluster.+--+--+--+-- /See:/ 'cluster' smart constructor.+data Cluster = Cluster'+  { _cStatus                     :: !(Maybe Text)+  , _cIAMRoleARN                 :: !(Maybe Text)+  , _cClusterARN                 :: !(Maybe Text)+  , _cActiveNodes                :: !(Maybe Int)+  , _cSecurityGroups             :: !(Maybe [SecurityGroupMembership])+  , _cNotificationConfiguration  :: !(Maybe NotificationConfiguration)+  , _cNodeIdsToRemove            :: !(Maybe [Text])+  , _cTotalNodes                 :: !(Maybe Int)+  , _cPreferredMaintenanceWindow :: !(Maybe Text)+  , _cSubnetGroup                :: !(Maybe Text)+  , _cClusterName                :: !(Maybe Text)+  , _cNodeType                   :: !(Maybe Text)+  , _cNodes                      :: !(Maybe [Node])+  , _cClusterDiscoveryEndpoint   :: !(Maybe Endpoint)+  , _cDescription                :: !(Maybe Text)+  , _cParameterGroup             :: !(Maybe ParameterGroupStatus)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Cluster' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cStatus' - The current status of the cluster.+--+-- * 'cIAMRoleARN' - A valid Amazon Resource Name (ARN) that identifies an IAM role. At runtime, DAX will assume this role and use the role's permissions to access DynamoDB on your behalf.+--+-- * 'cClusterARN' - The Amazon Resource Name (ARN) that uniquely identifies the cluster.+--+-- * 'cActiveNodes' - The number of nodes in the cluster that are active (i.e., capable of serving requests).+--+-- * 'cSecurityGroups' - A list of security groups, and the status of each, for the nodes in the cluster.+--+-- * 'cNotificationConfiguration' - Describes a notification topic and its status. Notification topics are used for publishing DAX events to subscribers using Amazon Simple Notification Service (SNS).+--+-- * 'cNodeIdsToRemove' - A list of nodes to be removed from the cluster.+--+-- * 'cTotalNodes' - The total number of nodes in the cluster.+--+-- * 'cPreferredMaintenanceWindow' - A range of time when maintenance of DAX cluster software will be performed. For example: @sun:01:00-sun:09:00@ . Cluster maintenance normally takes less than 30 minutes, and is performed automatically within the maintenance window.+--+-- * 'cSubnetGroup' - The subnet group where the DAX cluster is running.+--+-- * 'cClusterName' - The name of the DAX cluster.+--+-- * 'cNodeType' - The node type for the nodes in the cluster. (All nodes in a DAX cluster are of the same type.)+--+-- * 'cNodes' - A list of nodes that are currently in the cluster.+--+-- * 'cClusterDiscoveryEndpoint' - The configuration endpoint for this DAX cluster, consisting of a DNS name and a port number. Client applications can specify this endpoint, rather than an individual node endpoint, and allow the DAX client software to intelligently route requests and responses to nodes in the DAX cluster.+--+-- * 'cDescription' - The description of the cluster.+--+-- * 'cParameterGroup' - The parameter group being used by nodes in the cluster.+cluster+    :: Cluster+cluster =+  Cluster'+  { _cStatus = Nothing+  , _cIAMRoleARN = Nothing+  , _cClusterARN = Nothing+  , _cActiveNodes = Nothing+  , _cSecurityGroups = Nothing+  , _cNotificationConfiguration = Nothing+  , _cNodeIdsToRemove = Nothing+  , _cTotalNodes = Nothing+  , _cPreferredMaintenanceWindow = Nothing+  , _cSubnetGroup = Nothing+  , _cClusterName = Nothing+  , _cNodeType = Nothing+  , _cNodes = Nothing+  , _cClusterDiscoveryEndpoint = Nothing+  , _cDescription = Nothing+  , _cParameterGroup = Nothing+  }+++-- | The current status of the cluster.+cStatus :: Lens' Cluster (Maybe Text)+cStatus = lens _cStatus (\ s a -> s{_cStatus = a});++-- | A valid Amazon Resource Name (ARN) that identifies an IAM role. At runtime, DAX will assume this role and use the role's permissions to access DynamoDB on your behalf.+cIAMRoleARN :: Lens' Cluster (Maybe Text)+cIAMRoleARN = lens _cIAMRoleARN (\ s a -> s{_cIAMRoleARN = a});++-- | The Amazon Resource Name (ARN) that uniquely identifies the cluster.+cClusterARN :: Lens' Cluster (Maybe Text)+cClusterARN = lens _cClusterARN (\ s a -> s{_cClusterARN = a});++-- | The number of nodes in the cluster that are active (i.e., capable of serving requests).+cActiveNodes :: Lens' Cluster (Maybe Int)+cActiveNodes = lens _cActiveNodes (\ s a -> s{_cActiveNodes = a});++-- | A list of security groups, and the status of each, for the nodes in the cluster.+cSecurityGroups :: Lens' Cluster [SecurityGroupMembership]+cSecurityGroups = lens _cSecurityGroups (\ s a -> s{_cSecurityGroups = a}) . _Default . _Coerce;++-- | Describes a notification topic and its status. Notification topics are used for publishing DAX events to subscribers using Amazon Simple Notification Service (SNS).+cNotificationConfiguration :: Lens' Cluster (Maybe NotificationConfiguration)+cNotificationConfiguration = lens _cNotificationConfiguration (\ s a -> s{_cNotificationConfiguration = a});++-- | A list of nodes to be removed from the cluster.+cNodeIdsToRemove :: Lens' Cluster [Text]+cNodeIdsToRemove = lens _cNodeIdsToRemove (\ s a -> s{_cNodeIdsToRemove = a}) . _Default . _Coerce;++-- | The total number of nodes in the cluster.+cTotalNodes :: Lens' Cluster (Maybe Int)+cTotalNodes = lens _cTotalNodes (\ s a -> s{_cTotalNodes = a});++-- | A range of time when maintenance of DAX cluster software will be performed. For example: @sun:01:00-sun:09:00@ . Cluster maintenance normally takes less than 30 minutes, and is performed automatically within the maintenance window.+cPreferredMaintenanceWindow :: Lens' Cluster (Maybe Text)+cPreferredMaintenanceWindow = lens _cPreferredMaintenanceWindow (\ s a -> s{_cPreferredMaintenanceWindow = a});++-- | The subnet group where the DAX cluster is running.+cSubnetGroup :: Lens' Cluster (Maybe Text)+cSubnetGroup = lens _cSubnetGroup (\ s a -> s{_cSubnetGroup = a});++-- | The name of the DAX cluster.+cClusterName :: Lens' Cluster (Maybe Text)+cClusterName = lens _cClusterName (\ s a -> s{_cClusterName = a});++-- | The node type for the nodes in the cluster. (All nodes in a DAX cluster are of the same type.)+cNodeType :: Lens' Cluster (Maybe Text)+cNodeType = lens _cNodeType (\ s a -> s{_cNodeType = a});++-- | A list of nodes that are currently in the cluster.+cNodes :: Lens' Cluster [Node]+cNodes = lens _cNodes (\ s a -> s{_cNodes = a}) . _Default . _Coerce;++-- | The configuration endpoint for this DAX cluster, consisting of a DNS name and a port number. Client applications can specify this endpoint, rather than an individual node endpoint, and allow the DAX client software to intelligently route requests and responses to nodes in the DAX cluster.+cClusterDiscoveryEndpoint :: Lens' Cluster (Maybe Endpoint)+cClusterDiscoveryEndpoint = lens _cClusterDiscoveryEndpoint (\ s a -> s{_cClusterDiscoveryEndpoint = a});++-- | The description of the cluster.+cDescription :: Lens' Cluster (Maybe Text)+cDescription = lens _cDescription (\ s a -> s{_cDescription = a});++-- | The parameter group being used by nodes in the cluster.+cParameterGroup :: Lens' Cluster (Maybe ParameterGroupStatus)+cParameterGroup = lens _cParameterGroup (\ s a -> s{_cParameterGroup = a});++instance FromJSON Cluster where+        parseJSON+          = withObject "Cluster"+              (\ x ->+                 Cluster' <$>+                   (x .:? "Status") <*> (x .:? "IamRoleArn") <*>+                     (x .:? "ClusterArn")+                     <*> (x .:? "ActiveNodes")+                     <*> (x .:? "SecurityGroups" .!= mempty)+                     <*> (x .:? "NotificationConfiguration")+                     <*> (x .:? "NodeIdsToRemove" .!= mempty)+                     <*> (x .:? "TotalNodes")+                     <*> (x .:? "PreferredMaintenanceWindow")+                     <*> (x .:? "SubnetGroup")+                     <*> (x .:? "ClusterName")+                     <*> (x .:? "NodeType")+                     <*> (x .:? "Nodes" .!= mempty)+                     <*> (x .:? "ClusterDiscoveryEndpoint")+                     <*> (x .:? "Description")+                     <*> (x .:? "ParameterGroup"))++instance Hashable Cluster where++instance NFData Cluster where++-- | Represents the information required for client programs to connect to the configuration endpoint for a DAX cluster, or to an individual node within the cluster.+--+--+--+-- /See:/ 'endpoint' smart constructor.+data Endpoint = Endpoint'+  { _eAddress :: !(Maybe Text)+  , _ePort    :: !(Maybe Int)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Endpoint' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eAddress' - The DNS hostname of the endpoint.+--+-- * 'ePort' - The port number that applications should use to connect to the endpoint.+endpoint+    :: Endpoint+endpoint = Endpoint' {_eAddress = Nothing, _ePort = Nothing}+++-- | The DNS hostname of the endpoint.+eAddress :: Lens' Endpoint (Maybe Text)+eAddress = lens _eAddress (\ s a -> s{_eAddress = a});++-- | The port number that applications should use to connect to the endpoint.+ePort :: Lens' Endpoint (Maybe Int)+ePort = lens _ePort (\ s a -> s{_ePort = a});++instance FromJSON Endpoint where+        parseJSON+          = withObject "Endpoint"+              (\ x ->+                 Endpoint' <$> (x .:? "Address") <*> (x .:? "Port"))++instance Hashable Endpoint where++instance NFData Endpoint where++-- | Represents a single occurrence of something interesting within the system. Some examples of events are creating a DAX cluster, adding or removing a node, or rebooting a node.+--+--+--+-- /See:/ 'event' smart constructor.+data Event = Event'+  { _eSourceName :: !(Maybe Text)+  , _eSourceType :: !(Maybe SourceType)+  , _eDate       :: !(Maybe POSIX)+  , _eMessage    :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Event' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eSourceName' - The source of the event. For example, if the event occurred at the node level, the source would be the node ID.+--+-- * 'eSourceType' - Specifies the origin of this event - a cluster, a parameter group, a node ID, etc.+--+-- * 'eDate' - The date and time when the event occurred.+--+-- * 'eMessage' - A user-defined message associated with the event.+event+    :: Event+event =+  Event'+  { _eSourceName = Nothing+  , _eSourceType = Nothing+  , _eDate = Nothing+  , _eMessage = Nothing+  }+++-- | The source of the event. For example, if the event occurred at the node level, the source would be the node ID.+eSourceName :: Lens' Event (Maybe Text)+eSourceName = lens _eSourceName (\ s a -> s{_eSourceName = a});++-- | Specifies the origin of this event - a cluster, a parameter group, a node ID, etc.+eSourceType :: Lens' Event (Maybe SourceType)+eSourceType = lens _eSourceType (\ s a -> s{_eSourceType = a});++-- | The date and time when the event occurred.+eDate :: Lens' Event (Maybe UTCTime)+eDate = lens _eDate (\ s a -> s{_eDate = a}) . mapping _Time;++-- | A user-defined message associated with the event.+eMessage :: Lens' Event (Maybe Text)+eMessage = lens _eMessage (\ s a -> s{_eMessage = a});++instance FromJSON Event where+        parseJSON+          = withObject "Event"+              (\ x ->+                 Event' <$>+                   (x .:? "SourceName") <*> (x .:? "SourceType") <*>+                     (x .:? "Date")+                     <*> (x .:? "Message"))++instance Hashable Event where++instance NFData Event where++-- | Represents an individual node within a DAX cluster.+--+--+--+-- /See:/ 'node' smart constructor.+data Node = Node'+  { _nNodeStatus           :: !(Maybe Text)+  , _nParameterGroupStatus :: !(Maybe Text)+  , _nAvailabilityZone     :: !(Maybe Text)+  , _nNodeId               :: !(Maybe Text)+  , _nEndpoint             :: !(Maybe Endpoint)+  , _nNodeCreateTime       :: !(Maybe POSIX)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Node' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nNodeStatus' - The current status of the node. For example: @available@ .+--+-- * 'nParameterGroupStatus' - The status of the parameter group associated with this node. For example, @in-sync@ .+--+-- * 'nAvailabilityZone' - The Availability Zone (AZ) in which the node has been deployed.+--+-- * 'nNodeId' - A system-generated identifier for the node.+--+-- * 'nEndpoint' - The endpoint for the node, consisting of a DNS name and a port number. Client applications can connect directly to a node endpoint, if desired (as an alternative to allowing DAX client software to intelligently route requests and responses to nodes in the DAX cluster.+--+-- * 'nNodeCreateTime' - The date and time (in UNIX epoch format) when the node was launched.+node+    :: Node+node =+  Node'+  { _nNodeStatus = Nothing+  , _nParameterGroupStatus = Nothing+  , _nAvailabilityZone = Nothing+  , _nNodeId = Nothing+  , _nEndpoint = Nothing+  , _nNodeCreateTime = Nothing+  }+++-- | The current status of the node. For example: @available@ .+nNodeStatus :: Lens' Node (Maybe Text)+nNodeStatus = lens _nNodeStatus (\ s a -> s{_nNodeStatus = a});++-- | The status of the parameter group associated with this node. For example, @in-sync@ .+nParameterGroupStatus :: Lens' Node (Maybe Text)+nParameterGroupStatus = lens _nParameterGroupStatus (\ s a -> s{_nParameterGroupStatus = a});++-- | The Availability Zone (AZ) in which the node has been deployed.+nAvailabilityZone :: Lens' Node (Maybe Text)+nAvailabilityZone = lens _nAvailabilityZone (\ s a -> s{_nAvailabilityZone = a});++-- | A system-generated identifier for the node.+nNodeId :: Lens' Node (Maybe Text)+nNodeId = lens _nNodeId (\ s a -> s{_nNodeId = a});++-- | The endpoint for the node, consisting of a DNS name and a port number. Client applications can connect directly to a node endpoint, if desired (as an alternative to allowing DAX client software to intelligently route requests and responses to nodes in the DAX cluster.+nEndpoint :: Lens' Node (Maybe Endpoint)+nEndpoint = lens _nEndpoint (\ s a -> s{_nEndpoint = a});++-- | The date and time (in UNIX epoch format) when the node was launched.+nNodeCreateTime :: Lens' Node (Maybe UTCTime)+nNodeCreateTime = lens _nNodeCreateTime (\ s a -> s{_nNodeCreateTime = a}) . mapping _Time;++instance FromJSON Node where+        parseJSON+          = withObject "Node"+              (\ x ->+                 Node' <$>+                   (x .:? "NodeStatus") <*>+                     (x .:? "ParameterGroupStatus")+                     <*> (x .:? "AvailabilityZone")+                     <*> (x .:? "NodeId")+                     <*> (x .:? "Endpoint")+                     <*> (x .:? "NodeCreateTime"))++instance Hashable Node where++instance NFData Node where++-- | Represents a parameter value that is applicable to a particular node type.+--+--+--+-- /See:/ 'nodeTypeSpecificValue' smart constructor.+data NodeTypeSpecificValue = NodeTypeSpecificValue'+  { _ntsvValue    :: !(Maybe Text)+  , _ntsvNodeType :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NodeTypeSpecificValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ntsvValue' - The parameter value for this node type.+--+-- * 'ntsvNodeType' - A node type to which the parameter value applies.+nodeTypeSpecificValue+    :: NodeTypeSpecificValue+nodeTypeSpecificValue =+  NodeTypeSpecificValue' {_ntsvValue = Nothing, _ntsvNodeType = Nothing}+++-- | The parameter value for this node type.+ntsvValue :: Lens' NodeTypeSpecificValue (Maybe Text)+ntsvValue = lens _ntsvValue (\ s a -> s{_ntsvValue = a});++-- | A node type to which the parameter value applies.+ntsvNodeType :: Lens' NodeTypeSpecificValue (Maybe Text)+ntsvNodeType = lens _ntsvNodeType (\ s a -> s{_ntsvNodeType = a});++instance FromJSON NodeTypeSpecificValue where+        parseJSON+          = withObject "NodeTypeSpecificValue"+              (\ x ->+                 NodeTypeSpecificValue' <$>+                   (x .:? "Value") <*> (x .:? "NodeType"))++instance Hashable NodeTypeSpecificValue where++instance NFData NodeTypeSpecificValue where++-- | Describes a notification topic and its status. Notification topics are used for publishing DAX events to subscribers using Amazon Simple Notification Service (SNS).+--+--+--+-- /See:/ 'notificationConfiguration' smart constructor.+data NotificationConfiguration = NotificationConfiguration'+  { _ncTopicStatus :: !(Maybe Text)+  , _ncTopicARN    :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'NotificationConfiguration' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ncTopicStatus' - The current state of the topic.+--+-- * 'ncTopicARN' - The Amazon Resource Name (ARN) that identifies the topic.+notificationConfiguration+    :: NotificationConfiguration+notificationConfiguration =+  NotificationConfiguration' {_ncTopicStatus = Nothing, _ncTopicARN = Nothing}+++-- | The current state of the topic.+ncTopicStatus :: Lens' NotificationConfiguration (Maybe Text)+ncTopicStatus = lens _ncTopicStatus (\ s a -> s{_ncTopicStatus = a});++-- | The Amazon Resource Name (ARN) that identifies the topic.+ncTopicARN :: Lens' NotificationConfiguration (Maybe Text)+ncTopicARN = lens _ncTopicARN (\ s a -> s{_ncTopicARN = a});++instance FromJSON NotificationConfiguration where+        parseJSON+          = withObject "NotificationConfiguration"+              (\ x ->+                 NotificationConfiguration' <$>+                   (x .:? "TopicStatus") <*> (x .:? "TopicArn"))++instance Hashable NotificationConfiguration where++instance NFData NotificationConfiguration where++-- | Describes an individual setting that controls some aspect of DAX behavior.+--+--+--+-- /See:/ 'parameter' smart constructor.+data Parameter = Parameter'+  { _pParameterValue         :: !(Maybe Text)+  , _pParameterType          :: !(Maybe ParameterType)+  , _pSource                 :: !(Maybe Text)+  , _pIsModifiable           :: !(Maybe IsModifiable)+  , _pDataType               :: !(Maybe Text)+  , _pNodeTypeSpecificValues :: !(Maybe [NodeTypeSpecificValue])+  , _pAllowedValues          :: !(Maybe Text)+  , _pParameterName          :: !(Maybe Text)+  , _pDescription            :: !(Maybe Text)+  , _pChangeType             :: !(Maybe ChangeType)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Parameter' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pParameterValue' - The value for the parameter.+--+-- * 'pParameterType' - Determines whether the parameter can be applied to any nodes, or only nodes of a particular type.+--+-- * 'pSource' - How the parameter is defined. For example, @system@ denotes a system-defined parameter.+--+-- * 'pIsModifiable' - Whether the customer is allowed to modify the parameter.+--+-- * 'pDataType' - The data type of the parameter. For example, @integer@ :+--+-- * 'pNodeTypeSpecificValues' - A list of node types, and specific parameter values for each node.+--+-- * 'pAllowedValues' - A range of values within which the parameter can be set.+--+-- * 'pParameterName' - The name of the parameter.+--+-- * 'pDescription' - A description of the parameter+--+-- * 'pChangeType' - The conditions under which changes to this parameter can be applied. For example, @requires-reboot@ indicates that a new value for this parameter will only take effect if a node is rebooted.+parameter+    :: Parameter+parameter =+  Parameter'+  { _pParameterValue = Nothing+  , _pParameterType = Nothing+  , _pSource = Nothing+  , _pIsModifiable = Nothing+  , _pDataType = Nothing+  , _pNodeTypeSpecificValues = Nothing+  , _pAllowedValues = Nothing+  , _pParameterName = Nothing+  , _pDescription = Nothing+  , _pChangeType = Nothing+  }+++-- | The value for the parameter.+pParameterValue :: Lens' Parameter (Maybe Text)+pParameterValue = lens _pParameterValue (\ s a -> s{_pParameterValue = a});++-- | Determines whether the parameter can be applied to any nodes, or only nodes of a particular type.+pParameterType :: Lens' Parameter (Maybe ParameterType)+pParameterType = lens _pParameterType (\ s a -> s{_pParameterType = a});++-- | How the parameter is defined. For example, @system@ denotes a system-defined parameter.+pSource :: Lens' Parameter (Maybe Text)+pSource = lens _pSource (\ s a -> s{_pSource = a});++-- | Whether the customer is allowed to modify the parameter.+pIsModifiable :: Lens' Parameter (Maybe IsModifiable)+pIsModifiable = lens _pIsModifiable (\ s a -> s{_pIsModifiable = a});++-- | The data type of the parameter. For example, @integer@ :+pDataType :: Lens' Parameter (Maybe Text)+pDataType = lens _pDataType (\ s a -> s{_pDataType = a});++-- | A list of node types, and specific parameter values for each node.+pNodeTypeSpecificValues :: Lens' Parameter [NodeTypeSpecificValue]+pNodeTypeSpecificValues = lens _pNodeTypeSpecificValues (\ s a -> s{_pNodeTypeSpecificValues = a}) . _Default . _Coerce;++-- | A range of values within which the parameter can be set.+pAllowedValues :: Lens' Parameter (Maybe Text)+pAllowedValues = lens _pAllowedValues (\ s a -> s{_pAllowedValues = a});++-- | The name of the parameter.+pParameterName :: Lens' Parameter (Maybe Text)+pParameterName = lens _pParameterName (\ s a -> s{_pParameterName = a});++-- | A description of the parameter+pDescription :: Lens' Parameter (Maybe Text)+pDescription = lens _pDescription (\ s a -> s{_pDescription = a});++-- | The conditions under which changes to this parameter can be applied. For example, @requires-reboot@ indicates that a new value for this parameter will only take effect if a node is rebooted.+pChangeType :: Lens' Parameter (Maybe ChangeType)+pChangeType = lens _pChangeType (\ s a -> s{_pChangeType = a});++instance FromJSON Parameter where+        parseJSON+          = withObject "Parameter"+              (\ x ->+                 Parameter' <$>+                   (x .:? "ParameterValue") <*> (x .:? "ParameterType")+                     <*> (x .:? "Source")+                     <*> (x .:? "IsModifiable")+                     <*> (x .:? "DataType")+                     <*> (x .:? "NodeTypeSpecificValues" .!= mempty)+                     <*> (x .:? "AllowedValues")+                     <*> (x .:? "ParameterName")+                     <*> (x .:? "Description")+                     <*> (x .:? "ChangeType"))++instance Hashable Parameter where++instance NFData Parameter where++-- | A named set of parameters that are applied to all of the nodes in a DAX cluster.+--+--+--+-- /See:/ 'parameterGroup' smart constructor.+data ParameterGroup = ParameterGroup'+  { _pgDescription        :: !(Maybe Text)+  , _pgParameterGroupName :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ParameterGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pgDescription' - A description of the parameter group.+--+-- * 'pgParameterGroupName' - The name of the parameter group.+parameterGroup+    :: ParameterGroup+parameterGroup =+  ParameterGroup' {_pgDescription = Nothing, _pgParameterGroupName = Nothing}+++-- | A description of the parameter group.+pgDescription :: Lens' ParameterGroup (Maybe Text)+pgDescription = lens _pgDescription (\ s a -> s{_pgDescription = a});++-- | The name of the parameter group.+pgParameterGroupName :: Lens' ParameterGroup (Maybe Text)+pgParameterGroupName = lens _pgParameterGroupName (\ s a -> s{_pgParameterGroupName = a});++instance FromJSON ParameterGroup where+        parseJSON+          = withObject "ParameterGroup"+              (\ x ->+                 ParameterGroup' <$>+                   (x .:? "Description") <*>+                     (x .:? "ParameterGroupName"))++instance Hashable ParameterGroup where++instance NFData ParameterGroup where++-- | The status of a parameter group.+--+--+--+-- /See:/ 'parameterGroupStatus' smart constructor.+data ParameterGroupStatus = ParameterGroupStatus'+  { _pgsNodeIdsToReboot      :: !(Maybe [Text])+  , _pgsParameterApplyStatus :: !(Maybe Text)+  , _pgsParameterGroupName   :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ParameterGroupStatus' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pgsNodeIdsToReboot' - The node IDs of one or more nodes to be rebooted.+--+-- * 'pgsParameterApplyStatus' - The status of parameter updates.+--+-- * 'pgsParameterGroupName' - The name of the parameter group.+parameterGroupStatus+    :: ParameterGroupStatus+parameterGroupStatus =+  ParameterGroupStatus'+  { _pgsNodeIdsToReboot = Nothing+  , _pgsParameterApplyStatus = Nothing+  , _pgsParameterGroupName = Nothing+  }+++-- | The node IDs of one or more nodes to be rebooted.+pgsNodeIdsToReboot :: Lens' ParameterGroupStatus [Text]+pgsNodeIdsToReboot = lens _pgsNodeIdsToReboot (\ s a -> s{_pgsNodeIdsToReboot = a}) . _Default . _Coerce;++-- | The status of parameter updates.+pgsParameterApplyStatus :: Lens' ParameterGroupStatus (Maybe Text)+pgsParameterApplyStatus = lens _pgsParameterApplyStatus (\ s a -> s{_pgsParameterApplyStatus = a});++-- | The name of the parameter group.+pgsParameterGroupName :: Lens' ParameterGroupStatus (Maybe Text)+pgsParameterGroupName = lens _pgsParameterGroupName (\ s a -> s{_pgsParameterGroupName = a});++instance FromJSON ParameterGroupStatus where+        parseJSON+          = withObject "ParameterGroupStatus"+              (\ x ->+                 ParameterGroupStatus' <$>+                   (x .:? "NodeIdsToReboot" .!= mempty) <*>+                     (x .:? "ParameterApplyStatus")+                     <*> (x .:? "ParameterGroupName"))++instance Hashable ParameterGroupStatus where++instance NFData ParameterGroupStatus where++-- | An individual DAX parameter.+--+--+--+-- /See:/ 'parameterNameValue' smart constructor.+data ParameterNameValue = ParameterNameValue'+  { _pnvParameterValue :: !(Maybe Text)+  , _pnvParameterName  :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'ParameterNameValue' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pnvParameterValue' - The value of the parameter.+--+-- * 'pnvParameterName' - The name of the parameter.+parameterNameValue+    :: ParameterNameValue+parameterNameValue =+  ParameterNameValue'+  {_pnvParameterValue = Nothing, _pnvParameterName = Nothing}+++-- | The value of the parameter.+pnvParameterValue :: Lens' ParameterNameValue (Maybe Text)+pnvParameterValue = lens _pnvParameterValue (\ s a -> s{_pnvParameterValue = a});++-- | The name of the parameter.+pnvParameterName :: Lens' ParameterNameValue (Maybe Text)+pnvParameterName = lens _pnvParameterName (\ s a -> s{_pnvParameterName = a});++instance Hashable ParameterNameValue where++instance NFData ParameterNameValue where++instance ToJSON ParameterNameValue where+        toJSON ParameterNameValue'{..}+          = object+              (catMaybes+                 [("ParameterValue" .=) <$> _pnvParameterValue,+                  ("ParameterName" .=) <$> _pnvParameterName])++-- | An individual VPC security group and its status.+--+--+--+-- /See:/ 'securityGroupMembership' smart constructor.+data SecurityGroupMembership = SecurityGroupMembership'+  { _sgmStatus                  :: !(Maybe Text)+  , _sgmSecurityGroupIdentifier :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SecurityGroupMembership' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sgmStatus' - The status of this security group.+--+-- * 'sgmSecurityGroupIdentifier' - The unique ID for this security group.+securityGroupMembership+    :: SecurityGroupMembership+securityGroupMembership =+  SecurityGroupMembership'+  {_sgmStatus = Nothing, _sgmSecurityGroupIdentifier = Nothing}+++-- | The status of this security group.+sgmStatus :: Lens' SecurityGroupMembership (Maybe Text)+sgmStatus = lens _sgmStatus (\ s a -> s{_sgmStatus = a});++-- | The unique ID for this security group.+sgmSecurityGroupIdentifier :: Lens' SecurityGroupMembership (Maybe Text)+sgmSecurityGroupIdentifier = lens _sgmSecurityGroupIdentifier (\ s a -> s{_sgmSecurityGroupIdentifier = a});++instance FromJSON SecurityGroupMembership where+        parseJSON+          = withObject "SecurityGroupMembership"+              (\ x ->+                 SecurityGroupMembership' <$>+                   (x .:? "Status") <*>+                     (x .:? "SecurityGroupIdentifier"))++instance Hashable SecurityGroupMembership where++instance NFData SecurityGroupMembership where++-- | Represents the subnet associated with a DAX cluster. This parameter refers to subnets defined in Amazon Virtual Private Cloud (Amazon VPC) and used with DAX.+--+--+--+-- /See:/ 'subnet' smart constructor.+data Subnet = Subnet'+  { _sSubnetIdentifier       :: !(Maybe Text)+  , _sSubnetAvailabilityZone :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Subnet' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sSubnetIdentifier' - The system-assigned identifier for the subnet.+--+-- * 'sSubnetAvailabilityZone' - The Availability Zone (AZ) for subnet subnet.+subnet+    :: Subnet+subnet =+  Subnet' {_sSubnetIdentifier = Nothing, _sSubnetAvailabilityZone = Nothing}+++-- | The system-assigned identifier for the subnet.+sSubnetIdentifier :: Lens' Subnet (Maybe Text)+sSubnetIdentifier = lens _sSubnetIdentifier (\ s a -> s{_sSubnetIdentifier = a});++-- | The Availability Zone (AZ) for subnet subnet.+sSubnetAvailabilityZone :: Lens' Subnet (Maybe Text)+sSubnetAvailabilityZone = lens _sSubnetAvailabilityZone (\ s a -> s{_sSubnetAvailabilityZone = a});++instance FromJSON Subnet where+        parseJSON+          = withObject "Subnet"+              (\ x ->+                 Subnet' <$>+                   (x .:? "SubnetIdentifier") <*>+                     (x .:? "SubnetAvailabilityZone"))++instance Hashable Subnet where++instance NFData Subnet where++-- | Represents the output of one of the following actions:+--+--+--     * /CreateSubnetGroup/+--+--     * /ModifySubnetGroup/+--+--+--+--+-- /See:/ 'subnetGroup' smart constructor.+data SubnetGroup = SubnetGroup'+  { _sgVPCId           :: !(Maybe Text)+  , _sgSubnets         :: !(Maybe [Subnet])+  , _sgSubnetGroupName :: !(Maybe Text)+  , _sgDescription     :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'SubnetGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sgVPCId' - The Amazon Virtual Private Cloud identifier (VPC ID) of the subnet group.+--+-- * 'sgSubnets' - A list of subnets associated with the subnet group.+--+-- * 'sgSubnetGroupName' - The name of the subnet group.+--+-- * 'sgDescription' - The description of the subnet group.+subnetGroup+    :: SubnetGroup+subnetGroup =+  SubnetGroup'+  { _sgVPCId = Nothing+  , _sgSubnets = Nothing+  , _sgSubnetGroupName = Nothing+  , _sgDescription = Nothing+  }+++-- | The Amazon Virtual Private Cloud identifier (VPC ID) of the subnet group.+sgVPCId :: Lens' SubnetGroup (Maybe Text)+sgVPCId = lens _sgVPCId (\ s a -> s{_sgVPCId = a});++-- | A list of subnets associated with the subnet group.+sgSubnets :: Lens' SubnetGroup [Subnet]+sgSubnets = lens _sgSubnets (\ s a -> s{_sgSubnets = a}) . _Default . _Coerce;++-- | The name of the subnet group.+sgSubnetGroupName :: Lens' SubnetGroup (Maybe Text)+sgSubnetGroupName = lens _sgSubnetGroupName (\ s a -> s{_sgSubnetGroupName = a});++-- | The description of the subnet group.+sgDescription :: Lens' SubnetGroup (Maybe Text)+sgDescription = lens _sgDescription (\ s a -> s{_sgDescription = a});++instance FromJSON SubnetGroup where+        parseJSON+          = withObject "SubnetGroup"+              (\ x ->+                 SubnetGroup' <$>+                   (x .:? "VpcId") <*> (x .:? "Subnets" .!= mempty) <*>+                     (x .:? "SubnetGroupName")+                     <*> (x .:? "Description"))++instance Hashable SubnetGroup where++instance NFData SubnetGroup where++-- | A description of a tag. Every tag is a key-value pair. You can add up to 50 tags to a single DAX cluster.+--+--+-- AWS-assigned tag names and values are automatically assigned the @aws:@ prefix, which the user cannot assign. AWS-assigned tag names do not count towards the tag limit of 50. User-assigned tag names have the prefix @user:@ .+--+-- You cannot backdate the application of a tag.+--+--+-- /See:/ 'tag' smart constructor.+data Tag = Tag'+  { _tagValue :: !(Maybe Text)+  , _tagKey   :: !(Maybe Text)+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'Tag' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tagValue' - The value of the tag. Tag values are case-sensitive and can be null.+--+-- * 'tagKey' - The key for the tag. Tag keys are case sensitive. Every DAX cluster can only have one tag with the same key. If you try to add an existing tag (same key), the existing tag value will be updated to the new value.+tag+    :: Tag+tag = Tag' {_tagValue = Nothing, _tagKey = Nothing}+++-- | The value of the tag. Tag values are case-sensitive and can be null.+tagValue :: Lens' Tag (Maybe Text)+tagValue = lens _tagValue (\ s a -> s{_tagValue = a});++-- | The key for the tag. Tag keys are case sensitive. Every DAX cluster can only have one tag with the same key. If you try to add an existing tag (same key), the existing tag value will be updated to the new value.+tagKey :: Lens' Tag (Maybe Text)+tagKey = lens _tagKey (\ s a -> s{_tagKey = a});++instance FromJSON Tag where+        parseJSON+          = withObject "Tag"+              (\ x -> Tag' <$> (x .:? "Value") <*> (x .:? "Key"))++instance Hashable Tag where++instance NFData Tag where++instance ToJSON Tag where+        toJSON Tag'{..}+          = object+              (catMaybes+                 [("Value" .=) <$> _tagValue, ("Key" .=) <$> _tagKey])
+ gen/Network/AWS/DAX/Types/Sum.hs view
@@ -0,0 +1,137 @@+{-# 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.DAX.Types.Sum+-- Copyright   : (c) 2013-2017 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.DAX.Types.Sum where++import Network.AWS.Prelude++data ChangeType+  = Immediate+  | RequiresReboot+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ChangeType where+    parser = takeLowerText >>= \case+        "immediate" -> pure Immediate+        "requires_reboot" -> pure RequiresReboot+        e -> fromTextError $ "Failure parsing ChangeType from value: '" <> e+           <> "'. Accepted values: immediate, requires_reboot"++instance ToText ChangeType where+    toText = \case+        Immediate -> "IMMEDIATE"+        RequiresReboot -> "REQUIRES_REBOOT"++instance Hashable     ChangeType+instance NFData       ChangeType+instance ToByteString ChangeType+instance ToQuery      ChangeType+instance ToHeader     ChangeType++instance FromJSON ChangeType where+    parseJSON = parseJSONText "ChangeType"++data IsModifiable+  = Conditional+  | False'+  | True'+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText IsModifiable where+    parser = takeLowerText >>= \case+        "conditional" -> pure Conditional+        "false" -> pure False'+        "true" -> pure True'+        e -> fromTextError $ "Failure parsing IsModifiable from value: '" <> e+           <> "'. Accepted values: conditional, false, true"++instance ToText IsModifiable where+    toText = \case+        Conditional -> "CONDITIONAL"+        False' -> "FALSE"+        True' -> "TRUE"++instance Hashable     IsModifiable+instance NFData       IsModifiable+instance ToByteString IsModifiable+instance ToQuery      IsModifiable+instance ToHeader     IsModifiable++instance FromJSON IsModifiable where+    parseJSON = parseJSONText "IsModifiable"++data ParameterType+  = Default+  | NodeTypeSpecific+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText ParameterType where+    parser = takeLowerText >>= \case+        "default" -> pure Default+        "node_type_specific" -> pure NodeTypeSpecific+        e -> fromTextError $ "Failure parsing ParameterType from value: '" <> e+           <> "'. Accepted values: default, node_type_specific"++instance ToText ParameterType where+    toText = \case+        Default -> "DEFAULT"+        NodeTypeSpecific -> "NODE_TYPE_SPECIFIC"++instance Hashable     ParameterType+instance NFData       ParameterType+instance ToByteString ParameterType+instance ToQuery      ParameterType+instance ToHeader     ParameterType++instance FromJSON ParameterType where+    parseJSON = parseJSONText "ParameterType"++data SourceType+  = Cluster+  | ParameterGroup+  | SubnetGroup+  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)+++instance FromText SourceType where+    parser = takeLowerText >>= \case+        "cluster" -> pure Cluster+        "parameter_group" -> pure ParameterGroup+        "subnet_group" -> pure SubnetGroup+        e -> fromTextError $ "Failure parsing SourceType from value: '" <> e+           <> "'. Accepted values: cluster, parameter_group, subnet_group"++instance ToText SourceType where+    toText = \case+        Cluster -> "CLUSTER"+        ParameterGroup -> "PARAMETER_GROUP"+        SubnetGroup -> "SUBNET_GROUP"++instance Hashable     SourceType+instance NFData       SourceType+instance ToByteString SourceType+instance ToQuery      SourceType+instance ToHeader     SourceType++instance ToJSON SourceType where+    toJSON = toJSONText++instance FromJSON SourceType where+    parseJSON = parseJSONText "SourceType"
+ gen/Network/AWS/DAX/UntagResource.hs view
@@ -0,0 +1,142 @@+{-# 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.DAX.UntagResource+-- Copyright   : (c) 2013-2017 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)+--+-- Removes the association of tags from a DAX resource. You can call @UntagResource@ up to 5 times per second, per account.+--+--+module Network.AWS.DAX.UntagResource+    (+    -- * Creating a Request+      untagResource+    , UntagResource+    -- * Request Lenses+    , urResourceName+    , urTagKeys++    -- * Destructuring the Response+    , untagResourceResponse+    , UntagResourceResponse+    -- * Response Lenses+    , urrsTags+    , urrsResponseStatus+    ) where++import Network.AWS.DAX.Types+import Network.AWS.DAX.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'untagResource' smart constructor.+data UntagResource = UntagResource'+  { _urResourceName :: !Text+  , _urTagKeys      :: ![Text]+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UntagResource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'urResourceName' - The name of the DAX resource from which the tags should be removed.+--+-- * 'urTagKeys' - A list of tag keys. If the DAX cluster has any tags with these keys, then the tags are removed from the cluster.+untagResource+    :: Text -- ^ 'urResourceName'+    -> UntagResource+untagResource pResourceName_ =+  UntagResource' {_urResourceName = pResourceName_, _urTagKeys = mempty}+++-- | The name of the DAX resource from which the tags should be removed.+urResourceName :: Lens' UntagResource Text+urResourceName = lens _urResourceName (\ s a -> s{_urResourceName = a});++-- | A list of tag keys. If the DAX cluster has any tags with these keys, then the tags are removed from the cluster.+urTagKeys :: Lens' UntagResource [Text]+urTagKeys = lens _urTagKeys (\ s a -> s{_urTagKeys = a}) . _Coerce;++instance AWSRequest UntagResource where+        type Rs UntagResource = UntagResourceResponse+        request = postJSON dax+        response+          = receiveJSON+              (\ s h x ->+                 UntagResourceResponse' <$>+                   (x .?> "Tags" .!@ mempty) <*> (pure (fromEnum s)))++instance Hashable UntagResource where++instance NFData UntagResource where++instance ToHeaders UntagResource where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AmazonDAXV3.UntagResource" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UntagResource where+        toJSON UntagResource'{..}+          = object+              (catMaybes+                 [Just ("ResourceName" .= _urResourceName),+                  Just ("TagKeys" .= _urTagKeys)])++instance ToPath UntagResource where+        toPath = const "/"++instance ToQuery UntagResource where+        toQuery = const mempty++-- | /See:/ 'untagResourceResponse' smart constructor.+data UntagResourceResponse = UntagResourceResponse'+  { _urrsTags           :: !(Maybe [Tag])+  , _urrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UntagResourceResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'urrsTags' - The tag keys that have been removed from the cluster.+--+-- * 'urrsResponseStatus' - -- | The response status code.+untagResourceResponse+    :: Int -- ^ 'urrsResponseStatus'+    -> UntagResourceResponse+untagResourceResponse pResponseStatus_ =+  UntagResourceResponse'+  {_urrsTags = Nothing, _urrsResponseStatus = pResponseStatus_}+++-- | The tag keys that have been removed from the cluster.+urrsTags :: Lens' UntagResourceResponse [Tag]+urrsTags = lens _urrsTags (\ s a -> s{_urrsTags = a}) . _Default . _Coerce;++-- | -- | The response status code.+urrsResponseStatus :: Lens' UntagResourceResponse Int+urrsResponseStatus = lens _urrsResponseStatus (\ s a -> s{_urrsResponseStatus = a});++instance NFData UntagResourceResponse where
+ gen/Network/AWS/DAX/UpdateCluster.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.DAX.UpdateCluster+-- Copyright   : (c) 2013-2017 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)+--+-- Modifies the settings for a DAX cluster. You can use this action to change one or more cluster configuration parameters by specifying the parameters and the new values.+--+--+module Network.AWS.DAX.UpdateCluster+    (+    -- * Creating a Request+      updateCluster+    , UpdateCluster+    -- * Request Lenses+    , ucSecurityGroupIds+    , ucPreferredMaintenanceWindow+    , ucNotificationTopicStatus+    , ucDescription+    , ucNotificationTopicARN+    , ucParameterGroupName+    , ucClusterName++    -- * Destructuring the Response+    , updateClusterResponse+    , UpdateClusterResponse+    -- * Response Lenses+    , ucrsCluster+    , ucrsResponseStatus+    ) where++import Network.AWS.DAX.Types+import Network.AWS.DAX.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'updateCluster' smart constructor.+data UpdateCluster = UpdateCluster'+  { _ucSecurityGroupIds           :: !(Maybe [Text])+  , _ucPreferredMaintenanceWindow :: !(Maybe Text)+  , _ucNotificationTopicStatus    :: !(Maybe Text)+  , _ucDescription                :: !(Maybe Text)+  , _ucNotificationTopicARN       :: !(Maybe Text)+  , _ucParameterGroupName         :: !(Maybe Text)+  , _ucClusterName                :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateCluster' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ucSecurityGroupIds' - A list of user-specified security group IDs to be assigned to each node in the DAX cluster. If this parameter is not specified, DAX assigns the default VPC security group to each node.+--+-- * 'ucPreferredMaintenanceWindow' - A range of time when maintenance of DAX cluster software will be performed. For example: @sun:01:00-sun:09:00@ . Cluster maintenance normally takes less than 30 minutes, and is performed automatically within the maintenance window.+--+-- * 'ucNotificationTopicStatus' - The current state of the topic.+--+-- * 'ucDescription' - A description of the changes being made to the cluster.+--+-- * 'ucNotificationTopicARN' - The Amazon Resource Name (ARN) that identifies the topic.+--+-- * 'ucParameterGroupName' - The name of a parameter group for this cluster.+--+-- * 'ucClusterName' - The name of the DAX cluster to be modified.+updateCluster+    :: Text -- ^ 'ucClusterName'+    -> UpdateCluster+updateCluster pClusterName_ =+  UpdateCluster'+  { _ucSecurityGroupIds = Nothing+  , _ucPreferredMaintenanceWindow = Nothing+  , _ucNotificationTopicStatus = Nothing+  , _ucDescription = Nothing+  , _ucNotificationTopicARN = Nothing+  , _ucParameterGroupName = Nothing+  , _ucClusterName = pClusterName_+  }+++-- | A list of user-specified security group IDs to be assigned to each node in the DAX cluster. If this parameter is not specified, DAX assigns the default VPC security group to each node.+ucSecurityGroupIds :: Lens' UpdateCluster [Text]+ucSecurityGroupIds = lens _ucSecurityGroupIds (\ s a -> s{_ucSecurityGroupIds = a}) . _Default . _Coerce;++-- | A range of time when maintenance of DAX cluster software will be performed. For example: @sun:01:00-sun:09:00@ . Cluster maintenance normally takes less than 30 minutes, and is performed automatically within the maintenance window.+ucPreferredMaintenanceWindow :: Lens' UpdateCluster (Maybe Text)+ucPreferredMaintenanceWindow = lens _ucPreferredMaintenanceWindow (\ s a -> s{_ucPreferredMaintenanceWindow = a});++-- | The current state of the topic.+ucNotificationTopicStatus :: Lens' UpdateCluster (Maybe Text)+ucNotificationTopicStatus = lens _ucNotificationTopicStatus (\ s a -> s{_ucNotificationTopicStatus = a});++-- | A description of the changes being made to the cluster.+ucDescription :: Lens' UpdateCluster (Maybe Text)+ucDescription = lens _ucDescription (\ s a -> s{_ucDescription = a});++-- | The Amazon Resource Name (ARN) that identifies the topic.+ucNotificationTopicARN :: Lens' UpdateCluster (Maybe Text)+ucNotificationTopicARN = lens _ucNotificationTopicARN (\ s a -> s{_ucNotificationTopicARN = a});++-- | The name of a parameter group for this cluster.+ucParameterGroupName :: Lens' UpdateCluster (Maybe Text)+ucParameterGroupName = lens _ucParameterGroupName (\ s a -> s{_ucParameterGroupName = a});++-- | The name of the DAX cluster to be modified.+ucClusterName :: Lens' UpdateCluster Text+ucClusterName = lens _ucClusterName (\ s a -> s{_ucClusterName = a});++instance AWSRequest UpdateCluster where+        type Rs UpdateCluster = UpdateClusterResponse+        request = postJSON dax+        response+          = receiveJSON+              (\ s h x ->+                 UpdateClusterResponse' <$>+                   (x .?> "Cluster") <*> (pure (fromEnum s)))++instance Hashable UpdateCluster where++instance NFData UpdateCluster where++instance ToHeaders UpdateCluster where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AmazonDAXV3.UpdateCluster" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdateCluster where+        toJSON UpdateCluster'{..}+          = object+              (catMaybes+                 [("SecurityGroupIds" .=) <$> _ucSecurityGroupIds,+                  ("PreferredMaintenanceWindow" .=) <$>+                    _ucPreferredMaintenanceWindow,+                  ("NotificationTopicStatus" .=) <$>+                    _ucNotificationTopicStatus,+                  ("Description" .=) <$> _ucDescription,+                  ("NotificationTopicArn" .=) <$>+                    _ucNotificationTopicARN,+                  ("ParameterGroupName" .=) <$> _ucParameterGroupName,+                  Just ("ClusterName" .= _ucClusterName)])++instance ToPath UpdateCluster where+        toPath = const "/"++instance ToQuery UpdateCluster where+        toQuery = const mempty++-- | /See:/ 'updateClusterResponse' smart constructor.+data UpdateClusterResponse = UpdateClusterResponse'+  { _ucrsCluster        :: !(Maybe Cluster)+  , _ucrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateClusterResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ucrsCluster' - A description of the DAX cluster, after it has been modified.+--+-- * 'ucrsResponseStatus' - -- | The response status code.+updateClusterResponse+    :: Int -- ^ 'ucrsResponseStatus'+    -> UpdateClusterResponse+updateClusterResponse pResponseStatus_ =+  UpdateClusterResponse'+  {_ucrsCluster = Nothing, _ucrsResponseStatus = pResponseStatus_}+++-- | A description of the DAX cluster, after it has been modified.+ucrsCluster :: Lens' UpdateClusterResponse (Maybe Cluster)+ucrsCluster = lens _ucrsCluster (\ s a -> s{_ucrsCluster = a});++-- | -- | The response status code.+ucrsResponseStatus :: Lens' UpdateClusterResponse Int+ucrsResponseStatus = lens _ucrsResponseStatus (\ s a -> s{_ucrsResponseStatus = a});++instance NFData UpdateClusterResponse where
+ gen/Network/AWS/DAX/UpdateParameterGroup.hs view
@@ -0,0 +1,148 @@+{-# 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.DAX.UpdateParameterGroup+-- Copyright   : (c) 2013-2017 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)+--+-- Modifies the parameters of a parameter group. You can modify up to 20 parameters in a single request by submitting a list parameter name and value pairs.+--+--+module Network.AWS.DAX.UpdateParameterGroup+    (+    -- * Creating a Request+      updateParameterGroup+    , UpdateParameterGroup+    -- * Request Lenses+    , upgParameterGroupName+    , upgParameterNameValues++    -- * Destructuring the Response+    , updateParameterGroupResponse+    , UpdateParameterGroupResponse+    -- * Response Lenses+    , upgrsParameterGroup+    , upgrsResponseStatus+    ) where++import Network.AWS.DAX.Types+import Network.AWS.DAX.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'updateParameterGroup' smart constructor.+data UpdateParameterGroup = UpdateParameterGroup'+  { _upgParameterGroupName  :: !Text+  , _upgParameterNameValues :: ![ParameterNameValue]+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateParameterGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'upgParameterGroupName' - The name of the parameter group.+--+-- * 'upgParameterNameValues' - An array of name-value pairs for the parameters in the group. Each element in the array represents a single parameter.+updateParameterGroup+    :: Text -- ^ 'upgParameterGroupName'+    -> UpdateParameterGroup+updateParameterGroup pParameterGroupName_ =+  UpdateParameterGroup'+  { _upgParameterGroupName = pParameterGroupName_+  , _upgParameterNameValues = mempty+  }+++-- | The name of the parameter group.+upgParameterGroupName :: Lens' UpdateParameterGroup Text+upgParameterGroupName = lens _upgParameterGroupName (\ s a -> s{_upgParameterGroupName = a});++-- | An array of name-value pairs for the parameters in the group. Each element in the array represents a single parameter.+upgParameterNameValues :: Lens' UpdateParameterGroup [ParameterNameValue]+upgParameterNameValues = lens _upgParameterNameValues (\ s a -> s{_upgParameterNameValues = a}) . _Coerce;++instance AWSRequest UpdateParameterGroup where+        type Rs UpdateParameterGroup =+             UpdateParameterGroupResponse+        request = postJSON dax+        response+          = receiveJSON+              (\ s h x ->+                 UpdateParameterGroupResponse' <$>+                   (x .?> "ParameterGroup") <*> (pure (fromEnum s)))++instance Hashable UpdateParameterGroup where++instance NFData UpdateParameterGroup where++instance ToHeaders UpdateParameterGroup where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AmazonDAXV3.UpdateParameterGroup" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdateParameterGroup where+        toJSON UpdateParameterGroup'{..}+          = object+              (catMaybes+                 [Just+                    ("ParameterGroupName" .= _upgParameterGroupName),+                  Just+                    ("ParameterNameValues" .= _upgParameterNameValues)])++instance ToPath UpdateParameterGroup where+        toPath = const "/"++instance ToQuery UpdateParameterGroup where+        toQuery = const mempty++-- | /See:/ 'updateParameterGroupResponse' smart constructor.+data UpdateParameterGroupResponse = UpdateParameterGroupResponse'+  { _upgrsParameterGroup :: !(Maybe ParameterGroup)+  , _upgrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateParameterGroupResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'upgrsParameterGroup' - The parameter group that has been modified.+--+-- * 'upgrsResponseStatus' - -- | The response status code.+updateParameterGroupResponse+    :: Int -- ^ 'upgrsResponseStatus'+    -> UpdateParameterGroupResponse+updateParameterGroupResponse pResponseStatus_ =+  UpdateParameterGroupResponse'+  {_upgrsParameterGroup = Nothing, _upgrsResponseStatus = pResponseStatus_}+++-- | The parameter group that has been modified.+upgrsParameterGroup :: Lens' UpdateParameterGroupResponse (Maybe ParameterGroup)+upgrsParameterGroup = lens _upgrsParameterGroup (\ s a -> s{_upgrsParameterGroup = a});++-- | -- | The response status code.+upgrsResponseStatus :: Lens' UpdateParameterGroupResponse Int+upgrsResponseStatus = lens _upgrsResponseStatus (\ s a -> s{_upgrsResponseStatus = a});++instance NFData UpdateParameterGroupResponse where
+ gen/Network/AWS/DAX/UpdateSubnetGroup.hs view
@@ -0,0 +1,155 @@+{-# 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.DAX.UpdateSubnetGroup+-- Copyright   : (c) 2013-2017 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)+--+-- Modifies an existing subnet group.+--+--+module Network.AWS.DAX.UpdateSubnetGroup+    (+    -- * Creating a Request+      updateSubnetGroup+    , UpdateSubnetGroup+    -- * Request Lenses+    , usgSubnetIds+    , usgDescription+    , usgSubnetGroupName++    -- * Destructuring the Response+    , updateSubnetGroupResponse+    , UpdateSubnetGroupResponse+    -- * Response Lenses+    , usgrsSubnetGroup+    , usgrsResponseStatus+    ) where++import Network.AWS.DAX.Types+import Network.AWS.DAX.Types.Product+import Network.AWS.Lens+import Network.AWS.Prelude+import Network.AWS.Request+import Network.AWS.Response++-- | /See:/ 'updateSubnetGroup' smart constructor.+data UpdateSubnetGroup = UpdateSubnetGroup'+  { _usgSubnetIds       :: !(Maybe [Text])+  , _usgDescription     :: !(Maybe Text)+  , _usgSubnetGroupName :: !Text+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateSubnetGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'usgSubnetIds' - A list of subnet IDs in the subnet group.+--+-- * 'usgDescription' - A description of the subnet group.+--+-- * 'usgSubnetGroupName' - The name of the subnet group.+updateSubnetGroup+    :: Text -- ^ 'usgSubnetGroupName'+    -> UpdateSubnetGroup+updateSubnetGroup pSubnetGroupName_ =+  UpdateSubnetGroup'+  { _usgSubnetIds = Nothing+  , _usgDescription = Nothing+  , _usgSubnetGroupName = pSubnetGroupName_+  }+++-- | A list of subnet IDs in the subnet group.+usgSubnetIds :: Lens' UpdateSubnetGroup [Text]+usgSubnetIds = lens _usgSubnetIds (\ s a -> s{_usgSubnetIds = a}) . _Default . _Coerce;++-- | A description of the subnet group.+usgDescription :: Lens' UpdateSubnetGroup (Maybe Text)+usgDescription = lens _usgDescription (\ s a -> s{_usgDescription = a});++-- | The name of the subnet group.+usgSubnetGroupName :: Lens' UpdateSubnetGroup Text+usgSubnetGroupName = lens _usgSubnetGroupName (\ s a -> s{_usgSubnetGroupName = a});++instance AWSRequest UpdateSubnetGroup where+        type Rs UpdateSubnetGroup = UpdateSubnetGroupResponse+        request = postJSON dax+        response+          = receiveJSON+              (\ s h x ->+                 UpdateSubnetGroupResponse' <$>+                   (x .?> "SubnetGroup") <*> (pure (fromEnum s)))++instance Hashable UpdateSubnetGroup where++instance NFData UpdateSubnetGroup where++instance ToHeaders UpdateSubnetGroup where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AmazonDAXV3.UpdateSubnetGroup" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdateSubnetGroup where+        toJSON UpdateSubnetGroup'{..}+          = object+              (catMaybes+                 [("SubnetIds" .=) <$> _usgSubnetIds,+                  ("Description" .=) <$> _usgDescription,+                  Just ("SubnetGroupName" .= _usgSubnetGroupName)])++instance ToPath UpdateSubnetGroup where+        toPath = const "/"++instance ToQuery UpdateSubnetGroup where+        toQuery = const mempty++-- | /See:/ 'updateSubnetGroupResponse' smart constructor.+data UpdateSubnetGroupResponse = UpdateSubnetGroupResponse'+  { _usgrsSubnetGroup    :: !(Maybe SubnetGroup)+  , _usgrsResponseStatus :: !Int+  } deriving (Eq, Read, Show, Data, Typeable, Generic)+++-- | Creates a value of 'UpdateSubnetGroupResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'usgrsSubnetGroup' - The subnet group that has been modified.+--+-- * 'usgrsResponseStatus' - -- | The response status code.+updateSubnetGroupResponse+    :: Int -- ^ 'usgrsResponseStatus'+    -> UpdateSubnetGroupResponse+updateSubnetGroupResponse pResponseStatus_ =+  UpdateSubnetGroupResponse'+  {_usgrsSubnetGroup = Nothing, _usgrsResponseStatus = pResponseStatus_}+++-- | The subnet group that has been modified.+usgrsSubnetGroup :: Lens' UpdateSubnetGroupResponse (Maybe SubnetGroup)+usgrsSubnetGroup = lens _usgrsSubnetGroup (\ s a -> s{_usgrsSubnetGroup = a});++-- | -- | The response status code.+usgrsResponseStatus :: Lens' UpdateSubnetGroupResponse Int+usgrsResponseStatus = lens _usgrsResponseStatus (\ s a -> s{_usgrsResponseStatus = a});++instance NFData UpdateSubnetGroupResponse where
+ gen/Network/AWS/DAX/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.DAX.Waiters+-- Copyright   : (c) 2013-2017 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.DAX.Waiters where++import Network.AWS.DAX.Types+import Network.AWS.Lens+import Network.AWS.Prelude+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-2017 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.DAX+import Test.AWS.DAX.Internal++main :: IO ()+main = defaultMain $ testGroup "DAX"+    [ testGroup "tests"    tests+    , testGroup "fixtures" fixtures+    ]
+ test/Test/AWS/DAX.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.AWS.DAX+-- Copyright   : (c) 2013-2017 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.DAX+    ( tests+    , fixtures+    ) where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/AWS/DAX/Internal.hs view
@@ -0,0 +1,9 @@+-- |+-- Module      : Test.AWS.DAX.Internal+-- Copyright   : (c) 2013-2017 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.DAX.Internal where
+ test/Test/AWS/Gen/DAX.hs view
@@ -0,0 +1,417 @@+{-# 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.DAX+-- Copyright   : (c) 2013-2017 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.DAX where++import Data.Proxy+import Network.AWS.DAX+import Test.AWS.DAX.Internal+import Test.AWS.Fixture+import Test.AWS.Prelude+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"+--         [ requestDescribeClusters $+--             describeClusters+--+--         , requestDescribeParameters $+--             describeParameters+--+--         , requestDescribeEvents $+--             describeEvents+--+--         , requestIncreaseReplicationFactor $+--             increaseReplicationFactor+--+--         , requestCreateSubnetGroup $+--             createSubnetGroup+--+--         , requestDeleteCluster $+--             deleteCluster+--+--         , requestUpdateCluster $+--             updateCluster+--+--         , requestCreateCluster $+--             createCluster+--+--         , requestDescribeDefaultParameters $+--             describeDefaultParameters+--+--         , requestDeleteParameterGroup $+--             deleteParameterGroup+--+--         , requestUpdateParameterGroup $+--             updateParameterGroup+--+--         , requestDescribeSubnetGroups $+--             describeSubnetGroups+--+--         , requestCreateParameterGroup $+--             createParameterGroup+--+--         , requestUpdateSubnetGroup $+--             updateSubnetGroup+--+--         , requestDeleteSubnetGroup $+--             deleteSubnetGroup+--+--         , requestDescribeParameterGroups $+--             describeParameterGroups+--+--         , requestTagResource $+--             tagResource+--+--         , requestListTags $+--             listTags+--+--         , requestDecreaseReplicationFactor $+--             decreaseReplicationFactor+--+--         , requestUntagResource $+--             untagResource+--+--         , requestRebootNode $+--             rebootNode+--+--           ]++--     , testGroup "response"+--         [ responseDescribeClusters $+--             describeClustersResponse+--+--         , responseDescribeParameters $+--             describeParametersResponse+--+--         , responseDescribeEvents $+--             describeEventsResponse+--+--         , responseIncreaseReplicationFactor $+--             increaseReplicationFactorResponse+--+--         , responseCreateSubnetGroup $+--             createSubnetGroupResponse+--+--         , responseDeleteCluster $+--             deleteClusterResponse+--+--         , responseUpdateCluster $+--             updateClusterResponse+--+--         , responseCreateCluster $+--             createClusterResponse+--+--         , responseDescribeDefaultParameters $+--             describeDefaultParametersResponse+--+--         , responseDeleteParameterGroup $+--             deleteParameterGroupResponse+--+--         , responseUpdateParameterGroup $+--             updateParameterGroupResponse+--+--         , responseDescribeSubnetGroups $+--             describeSubnetGroupsResponse+--+--         , responseCreateParameterGroup $+--             createParameterGroupResponse+--+--         , responseUpdateSubnetGroup $+--             updateSubnetGroupResponse+--+--         , responseDeleteSubnetGroup $+--             deleteSubnetGroupResponse+--+--         , responseDescribeParameterGroups $+--             describeParameterGroupsResponse+--+--         , responseTagResource $+--             tagResourceResponse+--+--         , responseListTags $+--             listTagsResponse+--+--         , responseDecreaseReplicationFactor $+--             decreaseReplicationFactorResponse+--+--         , responseUntagResource $+--             untagResourceResponse+--+--         , responseRebootNode $+--             rebootNodeResponse+--+--           ]+--     ]++-- Requests++requestDescribeClusters :: DescribeClusters -> TestTree+requestDescribeClusters = req+    "DescribeClusters"+    "fixture/DescribeClusters.yaml"++requestDescribeParameters :: DescribeParameters -> TestTree+requestDescribeParameters = req+    "DescribeParameters"+    "fixture/DescribeParameters.yaml"++requestDescribeEvents :: DescribeEvents -> TestTree+requestDescribeEvents = req+    "DescribeEvents"+    "fixture/DescribeEvents.yaml"++requestIncreaseReplicationFactor :: IncreaseReplicationFactor -> TestTree+requestIncreaseReplicationFactor = req+    "IncreaseReplicationFactor"+    "fixture/IncreaseReplicationFactor.yaml"++requestCreateSubnetGroup :: CreateSubnetGroup -> TestTree+requestCreateSubnetGroup = req+    "CreateSubnetGroup"+    "fixture/CreateSubnetGroup.yaml"++requestDeleteCluster :: DeleteCluster -> TestTree+requestDeleteCluster = req+    "DeleteCluster"+    "fixture/DeleteCluster.yaml"++requestUpdateCluster :: UpdateCluster -> TestTree+requestUpdateCluster = req+    "UpdateCluster"+    "fixture/UpdateCluster.yaml"++requestCreateCluster :: CreateCluster -> TestTree+requestCreateCluster = req+    "CreateCluster"+    "fixture/CreateCluster.yaml"++requestDescribeDefaultParameters :: DescribeDefaultParameters -> TestTree+requestDescribeDefaultParameters = req+    "DescribeDefaultParameters"+    "fixture/DescribeDefaultParameters.yaml"++requestDeleteParameterGroup :: DeleteParameterGroup -> TestTree+requestDeleteParameterGroup = req+    "DeleteParameterGroup"+    "fixture/DeleteParameterGroup.yaml"++requestUpdateParameterGroup :: UpdateParameterGroup -> TestTree+requestUpdateParameterGroup = req+    "UpdateParameterGroup"+    "fixture/UpdateParameterGroup.yaml"++requestDescribeSubnetGroups :: DescribeSubnetGroups -> TestTree+requestDescribeSubnetGroups = req+    "DescribeSubnetGroups"+    "fixture/DescribeSubnetGroups.yaml"++requestCreateParameterGroup :: CreateParameterGroup -> TestTree+requestCreateParameterGroup = req+    "CreateParameterGroup"+    "fixture/CreateParameterGroup.yaml"++requestUpdateSubnetGroup :: UpdateSubnetGroup -> TestTree+requestUpdateSubnetGroup = req+    "UpdateSubnetGroup"+    "fixture/UpdateSubnetGroup.yaml"++requestDeleteSubnetGroup :: DeleteSubnetGroup -> TestTree+requestDeleteSubnetGroup = req+    "DeleteSubnetGroup"+    "fixture/DeleteSubnetGroup.yaml"++requestDescribeParameterGroups :: DescribeParameterGroups -> TestTree+requestDescribeParameterGroups = req+    "DescribeParameterGroups"+    "fixture/DescribeParameterGroups.yaml"++requestTagResource :: TagResource -> TestTree+requestTagResource = req+    "TagResource"+    "fixture/TagResource.yaml"++requestListTags :: ListTags -> TestTree+requestListTags = req+    "ListTags"+    "fixture/ListTags.yaml"++requestDecreaseReplicationFactor :: DecreaseReplicationFactor -> TestTree+requestDecreaseReplicationFactor = req+    "DecreaseReplicationFactor"+    "fixture/DecreaseReplicationFactor.yaml"++requestUntagResource :: UntagResource -> TestTree+requestUntagResource = req+    "UntagResource"+    "fixture/UntagResource.yaml"++requestRebootNode :: RebootNode -> TestTree+requestRebootNode = req+    "RebootNode"+    "fixture/RebootNode.yaml"++-- Responses++responseDescribeClusters :: DescribeClustersResponse -> TestTree+responseDescribeClusters = res+    "DescribeClustersResponse"+    "fixture/DescribeClustersResponse.proto"+    dax+    (Proxy :: Proxy DescribeClusters)++responseDescribeParameters :: DescribeParametersResponse -> TestTree+responseDescribeParameters = res+    "DescribeParametersResponse"+    "fixture/DescribeParametersResponse.proto"+    dax+    (Proxy :: Proxy DescribeParameters)++responseDescribeEvents :: DescribeEventsResponse -> TestTree+responseDescribeEvents = res+    "DescribeEventsResponse"+    "fixture/DescribeEventsResponse.proto"+    dax+    (Proxy :: Proxy DescribeEvents)++responseIncreaseReplicationFactor :: IncreaseReplicationFactorResponse -> TestTree+responseIncreaseReplicationFactor = res+    "IncreaseReplicationFactorResponse"+    "fixture/IncreaseReplicationFactorResponse.proto"+    dax+    (Proxy :: Proxy IncreaseReplicationFactor)++responseCreateSubnetGroup :: CreateSubnetGroupResponse -> TestTree+responseCreateSubnetGroup = res+    "CreateSubnetGroupResponse"+    "fixture/CreateSubnetGroupResponse.proto"+    dax+    (Proxy :: Proxy CreateSubnetGroup)++responseDeleteCluster :: DeleteClusterResponse -> TestTree+responseDeleteCluster = res+    "DeleteClusterResponse"+    "fixture/DeleteClusterResponse.proto"+    dax+    (Proxy :: Proxy DeleteCluster)++responseUpdateCluster :: UpdateClusterResponse -> TestTree+responseUpdateCluster = res+    "UpdateClusterResponse"+    "fixture/UpdateClusterResponse.proto"+    dax+    (Proxy :: Proxy UpdateCluster)++responseCreateCluster :: CreateClusterResponse -> TestTree+responseCreateCluster = res+    "CreateClusterResponse"+    "fixture/CreateClusterResponse.proto"+    dax+    (Proxy :: Proxy CreateCluster)++responseDescribeDefaultParameters :: DescribeDefaultParametersResponse -> TestTree+responseDescribeDefaultParameters = res+    "DescribeDefaultParametersResponse"+    "fixture/DescribeDefaultParametersResponse.proto"+    dax+    (Proxy :: Proxy DescribeDefaultParameters)++responseDeleteParameterGroup :: DeleteParameterGroupResponse -> TestTree+responseDeleteParameterGroup = res+    "DeleteParameterGroupResponse"+    "fixture/DeleteParameterGroupResponse.proto"+    dax+    (Proxy :: Proxy DeleteParameterGroup)++responseUpdateParameterGroup :: UpdateParameterGroupResponse -> TestTree+responseUpdateParameterGroup = res+    "UpdateParameterGroupResponse"+    "fixture/UpdateParameterGroupResponse.proto"+    dax+    (Proxy :: Proxy UpdateParameterGroup)++responseDescribeSubnetGroups :: DescribeSubnetGroupsResponse -> TestTree+responseDescribeSubnetGroups = res+    "DescribeSubnetGroupsResponse"+    "fixture/DescribeSubnetGroupsResponse.proto"+    dax+    (Proxy :: Proxy DescribeSubnetGroups)++responseCreateParameterGroup :: CreateParameterGroupResponse -> TestTree+responseCreateParameterGroup = res+    "CreateParameterGroupResponse"+    "fixture/CreateParameterGroupResponse.proto"+    dax+    (Proxy :: Proxy CreateParameterGroup)++responseUpdateSubnetGroup :: UpdateSubnetGroupResponse -> TestTree+responseUpdateSubnetGroup = res+    "UpdateSubnetGroupResponse"+    "fixture/UpdateSubnetGroupResponse.proto"+    dax+    (Proxy :: Proxy UpdateSubnetGroup)++responseDeleteSubnetGroup :: DeleteSubnetGroupResponse -> TestTree+responseDeleteSubnetGroup = res+    "DeleteSubnetGroupResponse"+    "fixture/DeleteSubnetGroupResponse.proto"+    dax+    (Proxy :: Proxy DeleteSubnetGroup)++responseDescribeParameterGroups :: DescribeParameterGroupsResponse -> TestTree+responseDescribeParameterGroups = res+    "DescribeParameterGroupsResponse"+    "fixture/DescribeParameterGroupsResponse.proto"+    dax+    (Proxy :: Proxy DescribeParameterGroups)++responseTagResource :: TagResourceResponse -> TestTree+responseTagResource = res+    "TagResourceResponse"+    "fixture/TagResourceResponse.proto"+    dax+    (Proxy :: Proxy TagResource)++responseListTags :: ListTagsResponse -> TestTree+responseListTags = res+    "ListTagsResponse"+    "fixture/ListTagsResponse.proto"+    dax+    (Proxy :: Proxy ListTags)++responseDecreaseReplicationFactor :: DecreaseReplicationFactorResponse -> TestTree+responseDecreaseReplicationFactor = res+    "DecreaseReplicationFactorResponse"+    "fixture/DecreaseReplicationFactorResponse.proto"+    dax+    (Proxy :: Proxy DecreaseReplicationFactor)++responseUntagResource :: UntagResourceResponse -> TestTree+responseUntagResource = res+    "UntagResourceResponse"+    "fixture/UntagResourceResponse.proto"+    dax+    (Proxy :: Proxy UntagResource)++responseRebootNode :: RebootNodeResponse -> TestTree+responseRebootNode = res+    "RebootNodeResponse"+    "fixture/RebootNodeResponse.proto"+    dax+    (Proxy :: Proxy RebootNode)