amazonka-redshift (empty) → 0.0.0
raw patch · 62 files changed
+13322/−0 lines, 62 filesdep +amazonka-coredep +basesetup-changed
Dependencies added: amazonka-core, base
Files
- LICENSE +373/−0
- README.md +26/−0
- Setup.hs +2/−0
- amazonka-redshift.cabal +102/−0
- gen/Network/AWS/Redshift.hs +133/−0
- gen/Network/AWS/Redshift/AuthorizeClusterSecurityGroupIngress.hs +156/−0
- gen/Network/AWS/Redshift/AuthorizeSnapshotAccess.hs +137/−0
- gen/Network/AWS/Redshift/CopyClusterSnapshot.hs +148/−0
- gen/Network/AWS/Redshift/CreateCluster.hs +445/−0
- gen/Network/AWS/Redshift/CreateClusterParameterGroup.hs +161/−0
- gen/Network/AWS/Redshift/CreateClusterSecurityGroup.hs +137/−0
- gen/Network/AWS/Redshift/CreateClusterSnapshot.hs +136/−0
- gen/Network/AWS/Redshift/CreateClusterSubnetGroup.hs +148/−0
- gen/Network/AWS/Redshift/CreateEventSubscription.hs +219/−0
- gen/Network/AWS/Redshift/CreateHsmClientCertificate.hs +128/−0
- gen/Network/AWS/Redshift/CreateHsmConfiguration.hs +188/−0
- gen/Network/AWS/Redshift/CreateTags.hs +110/−0
- gen/Network/AWS/Redshift/DeleteCluster.hs +154/−0
- gen/Network/AWS/Redshift/DeleteClusterParameterGroup.hs +92/−0
- gen/Network/AWS/Redshift/DeleteClusterSecurityGroup.hs +94/−0
- gen/Network/AWS/Redshift/DeleteClusterSnapshot.hs +128/−0
- gen/Network/AWS/Redshift/DeleteClusterSubnetGroup.hs +90/−0
- gen/Network/AWS/Redshift/DeleteEventSubscription.hs +90/−0
- gen/Network/AWS/Redshift/DeleteHsmClientCertificate.hs +90/−0
- gen/Network/AWS/Redshift/DeleteHsmConfiguration.hs +90/−0
- gen/Network/AWS/Redshift/DeleteTags.hs +100/−0
- gen/Network/AWS/Redshift/DescribeClusterParameterGroups.hs +205/−0
- gen/Network/AWS/Redshift/DescribeClusterParameters.hs +179/−0
- gen/Network/AWS/Redshift/DescribeClusterSecurityGroups.hs +207/−0
- gen/Network/AWS/Redshift/DescribeClusterSnapshots.hs +262/−0
- gen/Network/AWS/Redshift/DescribeClusterSubnetGroups.hs +199/−0
- gen/Network/AWS/Redshift/DescribeClusterVersions.hs +177/−0
- gen/Network/AWS/Redshift/DescribeClusters.hs +200/−0
- gen/Network/AWS/Redshift/DescribeDefaultClusterParameters.hs +147/−0
- gen/Network/AWS/Redshift/DescribeEventCategories.hs +118/−0
- gen/Network/AWS/Redshift/DescribeEventSubscriptions.hs +162/−0
- gen/Network/AWS/Redshift/DescribeEvents.hs +221/−0
- gen/Network/AWS/Redshift/DescribeHsmClientCertificates.hs +205/−0
- gen/Network/AWS/Redshift/DescribeHsmConfigurations.hs +202/−0
- gen/Network/AWS/Redshift/DescribeLoggingStatus.hs +166/−0
- gen/Network/AWS/Redshift/DescribeOrderableClusterOptions.hs +182/−0
- gen/Network/AWS/Redshift/DescribeReservedNodeOfferings.hs +168/−0
- gen/Network/AWS/Redshift/DescribeReservedNodes.hs +158/−0
- gen/Network/AWS/Redshift/DescribeResize.hs +264/−0
- gen/Network/AWS/Redshift/DescribeTags.hs +210/−0
- gen/Network/AWS/Redshift/DisableLogging.hs +166/−0
- gen/Network/AWS/Redshift/DisableSnapshotCopy.hs +110/−0
- gen/Network/AWS/Redshift/EnableLogging.hs +192/−0
- gen/Network/AWS/Redshift/EnableSnapshotCopy.hs +136/−0
- gen/Network/AWS/Redshift/ModifyCluster.hs +344/−0
- gen/Network/AWS/Redshift/ModifyClusterParameterGroup.hs +139/−0
- gen/Network/AWS/Redshift/ModifyClusterSubnetGroup.hs +131/−0
- gen/Network/AWS/Redshift/ModifyEventSubscription.hs +185/−0
- gen/Network/AWS/Redshift/ModifySnapshotCopyRetentionPeriod.hs +127/−0
- gen/Network/AWS/Redshift/PurchaseReservedNodeOffering.hs +124/−0
- gen/Network/AWS/Redshift/RebootCluster.hs +111/−0
- gen/Network/AWS/Redshift/ResetClusterParameterGroup.hs +150/−0
- gen/Network/AWS/Redshift/RestoreFromClusterSnapshot.hs +348/−0
- gen/Network/AWS/Redshift/RevokeClusterSecurityGroupIngress.hs +156/−0
- gen/Network/AWS/Redshift/RevokeSnapshotAccess.hs +139/−0
- gen/Network/AWS/Redshift/RotateEncryptionKey.hs +108/−0
- gen/Network/AWS/Redshift/Types.hs +3347/−0
+ LICENSE view
@@ -0,0 +1,373 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+ means each individual or legal entity that creates, contributes to+ the creation of, or owns Covered Software.++1.2. "Contributor Version"+ means the combination of the Contributions of others (if any) used+ by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+ means Covered Software of a particular Contributor.++1.4. "Covered Software"+ means Source Code Form to which the initial Contributor has attached+ the notice in Exhibit A, the Executable Form of such Source Code+ Form, and Modifications of such Source Code Form, in each case+ including portions thereof.++1.5. "Incompatible With Secondary Licenses"+ means++ (a) that the initial Contributor has attached the notice described+ in Exhibit B to the Covered Software; or++ (b) that the Covered Software was made available under the terms of+ version 1.1 or earlier of the License, but not also under the+ terms of a Secondary License.++1.6. "Executable Form"+ means any form of the work other than Source Code Form.++1.7. "Larger Work"+ means a work that combines Covered Software with other material, in+ a separate file or files, that is not Covered Software.++1.8. "License"+ means this document.++1.9. "Licensable"+ means having the right to grant, to the maximum extent possible,+ whether at the time of the initial grant or subsequently, any and+ all of the rights conveyed by this License.++1.10. "Modifications"+ means any of the following:++ (a) any file in Source Code Form that results from an addition to,+ deletion from, or modification of the contents of Covered+ Software; or++ (b) any new file in Source Code Form that contains any Covered+ Software.++1.11. "Patent Claims" of a Contributor+ means any patent claim(s), including without limitation, method,+ process, and apparatus claims, in any patent Licensable by such+ Contributor that would be infringed, but for the grant of the+ License, by the making, using, selling, offering for sale, having+ made, import, or transfer of either its Contributions or its+ Contributor Version.++1.12. "Secondary License"+ means either the GNU General Public License, Version 2.0, the GNU+ Lesser General Public License, Version 2.1, the GNU Affero General+ Public License, Version 3.0, or any later versions of those+ licenses.++1.13. "Source Code Form"+ means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+ means an individual or a legal entity exercising rights under this+ License. For legal entities, "You" includes any entity that+ controls, is controlled by, or is under common control with You. For+ purposes of this definition, "control" means (a) the power, direct+ or indirect, to cause the direction or management of such entity,+ whether by contract or otherwise, or (b) ownership of more than+ fifty percent (50%) of the outstanding shares or beneficial+ ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+ Licensable by such Contributor to use, reproduce, make available,+ modify, display, perform, distribute, and otherwise exploit its+ Contributions, either on an unmodified basis, with Modifications, or+ as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+ for sale, have made, import, and otherwise transfer either its+ Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+ or++(b) for infringements caused by: (i) Your and any other third party's+ modifications of Covered Software, or (ii) the combination of its+ Contributions with other software (except as part of its Contributor+ Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+ its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+ Form, as described in Section 3.1, and You must inform recipients of+ the Executable Form how they can obtain a copy of such Source Code+ Form by reasonable means in a timely manner, at a charge no more+ than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+ License, or sublicense it under different terms, provided that the+ license for the Executable Form does not attempt to limit or alter+ the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+* *+* 6. Disclaimer of Warranty *+* ------------------------- *+* *+* Covered Software is provided under this License on an "as is" *+* basis, without warranty of any kind, either expressed, implied, or *+* statutory, including, without limitation, warranties that the *+* Covered Software is free of defects, merchantable, fit for a *+* particular purpose or non-infringing. The entire risk as to the *+* quality and performance of the Covered Software is with You. *+* Should any Covered Software prove defective in any respect, You *+* (not any Contributor) assume the cost of any necessary servicing, *+* repair, or correction. This disclaimer of warranty constitutes an *+* essential part of this License. No use of any Covered Software is *+* authorized under this License except under this disclaimer. *+* *+************************************************************************++************************************************************************+* *+* 7. Limitation of Liability *+* -------------------------- *+* *+* Under no circumstances and under no legal theory, whether tort *+* (including negligence), contract, or otherwise, shall any *+* Contributor, or anyone who distributes Covered Software as *+* permitted above, be liable to You for any direct, indirect, *+* special, incidental, or consequential damages of any character *+* including, without limitation, damages for lost profits, loss of *+* goodwill, work stoppage, computer failure or malfunction, or any *+* and all other commercial damages or losses, even if such party *+* shall have been informed of the possibility of such damages. This *+* limitation of liability shall not apply to liability for death or *+* personal injury resulting from such party's negligence to the *+* extent applicable law prohibits such limitation. Some *+* jurisdictions do not allow the exclusion or limitation of *+* incidental or consequential damages, so this exclusion and *+* limitation may not apply to You. *+* *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++ This Source Code Form is subject to the terms of the Mozilla Public+ License, v. 2.0. If a copy of the MPL was not distributed with this+ file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.++Exhibit B - "Incompatible With Secondary Licenses" Notice+---------------------------------------------------------++ This Source Code Form is "Incompatible With Secondary Licenses", as+ defined by the Mozilla Public License, v. 2.0.
+ README.md view
@@ -0,0 +1,26 @@+# Amazon Redshift SDK++> _Warning:_ This is an experimental preview release which is still under heavy development and not intended for public consumption, _caveat emptor_!++* [description](#description)+* [Contribute](#contribute)+* [Licence](#licence)++## Description++Amazon Redshift is a fast, fully managed, petabyte-scale data warehouse service that makes it simple and cost-effective to efficiently analyze all your data using your existing business intelligence tools. You can start small for just $0.25 per hour with no commitments or upfront costs and scale to a petabyte or more for $1,000 per terabyte per year, less than a tenth of most other data warehousing solutions.++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-redshift)+and [AWS API Reference](http://docs.aws.amazon.com/redshift/latest/APIReference/Welcome.html).+++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.+++## Licence++`amazonka-redshift` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ amazonka-redshift.cabal view
@@ -0,0 +1,102 @@+name: amazonka-redshift+version: 0.0.0+synopsis: Amazon Redshift SDK.+homepage: https://github.com/brendanhay/amazonka+license: OtherLicense+license-file: LICENSE+author: Brendan Hay+maintainer: Brendan Hay <brendan.g.hay@gmail.com>+copyright: Copyright (c) 2013-2014 Brendan Hay+category: Network, AWS, Cloud+build-type: Simple+extra-source-files: README.md+cabal-version: >= 1.10++description:+ Amazon Redshift is a fast, fully managed, petabyte-scale data warehouse+ service that makes it simple and cost-effective to efficiently analyze+ all your data using your existing business intelligence tools. You can+ start small for just $0.25 per hour with no commitments or upfront+ costs and scale to a petabyte or more for $1,000 per terabyte per year,+ less than a tenth of most other data warehousing solutions.+ .+ /See:/ <http://docs.aws.amazon.com/redshift/latest/APIReference/Welcome.html AWS API Reference>+ .+ /Warning:/ This is an experimental preview release which is still under+ heavy development and not intended for public consumption, caveat emptor!++source-repository head+ type: git+ location: git://github.com/brendanhay/amazonka.git++library+ default-language: Haskell2010+ hs-source-dirs: src gen++ ghc-options: -Wall++ exposed-modules:+ Network.AWS.Redshift+ , Network.AWS.Redshift.AuthorizeClusterSecurityGroupIngress+ , Network.AWS.Redshift.AuthorizeSnapshotAccess+ , Network.AWS.Redshift.CopyClusterSnapshot+ , Network.AWS.Redshift.CreateCluster+ , Network.AWS.Redshift.CreateClusterParameterGroup+ , Network.AWS.Redshift.CreateClusterSecurityGroup+ , Network.AWS.Redshift.CreateClusterSnapshot+ , Network.AWS.Redshift.CreateClusterSubnetGroup+ , Network.AWS.Redshift.CreateEventSubscription+ , Network.AWS.Redshift.CreateHsmClientCertificate+ , Network.AWS.Redshift.CreateHsmConfiguration+ , Network.AWS.Redshift.CreateTags+ , Network.AWS.Redshift.DeleteCluster+ , Network.AWS.Redshift.DeleteClusterParameterGroup+ , Network.AWS.Redshift.DeleteClusterSecurityGroup+ , Network.AWS.Redshift.DeleteClusterSnapshot+ , Network.AWS.Redshift.DeleteClusterSubnetGroup+ , Network.AWS.Redshift.DeleteEventSubscription+ , Network.AWS.Redshift.DeleteHsmClientCertificate+ , Network.AWS.Redshift.DeleteHsmConfiguration+ , Network.AWS.Redshift.DeleteTags+ , Network.AWS.Redshift.DescribeClusterParameterGroups+ , Network.AWS.Redshift.DescribeClusterParameters+ , Network.AWS.Redshift.DescribeClusterSecurityGroups+ , Network.AWS.Redshift.DescribeClusterSnapshots+ , Network.AWS.Redshift.DescribeClusterSubnetGroups+ , Network.AWS.Redshift.DescribeClusterVersions+ , Network.AWS.Redshift.DescribeClusters+ , Network.AWS.Redshift.DescribeDefaultClusterParameters+ , Network.AWS.Redshift.DescribeEventCategories+ , Network.AWS.Redshift.DescribeEventSubscriptions+ , Network.AWS.Redshift.DescribeEvents+ , Network.AWS.Redshift.DescribeHsmClientCertificates+ , Network.AWS.Redshift.DescribeHsmConfigurations+ , Network.AWS.Redshift.DescribeLoggingStatus+ , Network.AWS.Redshift.DescribeOrderableClusterOptions+ , Network.AWS.Redshift.DescribeReservedNodeOfferings+ , Network.AWS.Redshift.DescribeReservedNodes+ , Network.AWS.Redshift.DescribeResize+ , Network.AWS.Redshift.DescribeTags+ , Network.AWS.Redshift.DisableLogging+ , Network.AWS.Redshift.DisableSnapshotCopy+ , Network.AWS.Redshift.EnableLogging+ , Network.AWS.Redshift.EnableSnapshotCopy+ , Network.AWS.Redshift.ModifyCluster+ , Network.AWS.Redshift.ModifyClusterParameterGroup+ , Network.AWS.Redshift.ModifyClusterSubnetGroup+ , Network.AWS.Redshift.ModifyEventSubscription+ , Network.AWS.Redshift.ModifySnapshotCopyRetentionPeriod+ , Network.AWS.Redshift.PurchaseReservedNodeOffering+ , Network.AWS.Redshift.RebootCluster+ , Network.AWS.Redshift.ResetClusterParameterGroup+ , Network.AWS.Redshift.RestoreFromClusterSnapshot+ , Network.AWS.Redshift.RevokeClusterSecurityGroupIngress+ , Network.AWS.Redshift.RevokeSnapshotAccess+ , Network.AWS.Redshift.RotateEncryptionKey+ , Network.AWS.Redshift.Types++ other-modules:++ build-depends:+ amazonka-core+ , base >= 4.7 && < 5
+ gen/Network/AWS/Redshift.hs view
@@ -0,0 +1,133 @@+-- Module : Network.AWS.Redshift+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Amazon Redshift is a fast, fully managed, petabyte-scale data warehouse+-- service that makes it simple and cost-effective to efficiently analyze all+-- your data using your existing business intelligence tools. You can start+-- small for just $0.25 per hour with no commitments or upfront costs and+-- scale to a petabyte or more for $1,000 per terabyte per year, less than a+-- tenth of most other data warehousing solutions.+module Network.AWS.Redshift+ ( module Network.AWS.Redshift.AuthorizeClusterSecurityGroupIngress+ , module Network.AWS.Redshift.AuthorizeSnapshotAccess+ , module Network.AWS.Redshift.CopyClusterSnapshot+ , module Network.AWS.Redshift.CreateCluster+ , module Network.AWS.Redshift.CreateClusterParameterGroup+ , module Network.AWS.Redshift.CreateClusterSecurityGroup+ , module Network.AWS.Redshift.CreateClusterSnapshot+ , module Network.AWS.Redshift.CreateClusterSubnetGroup+ , module Network.AWS.Redshift.CreateEventSubscription+ , module Network.AWS.Redshift.CreateHsmClientCertificate+ , module Network.AWS.Redshift.CreateHsmConfiguration+ , module Network.AWS.Redshift.CreateTags+ , module Network.AWS.Redshift.DeleteCluster+ , module Network.AWS.Redshift.DeleteClusterParameterGroup+ , module Network.AWS.Redshift.DeleteClusterSecurityGroup+ , module Network.AWS.Redshift.DeleteClusterSnapshot+ , module Network.AWS.Redshift.DeleteClusterSubnetGroup+ , module Network.AWS.Redshift.DeleteEventSubscription+ , module Network.AWS.Redshift.DeleteHsmClientCertificate+ , module Network.AWS.Redshift.DeleteHsmConfiguration+ , module Network.AWS.Redshift.DeleteTags+ , module Network.AWS.Redshift.DescribeClusterParameterGroups+ , module Network.AWS.Redshift.DescribeClusterParameters+ , module Network.AWS.Redshift.DescribeClusterSecurityGroups+ , module Network.AWS.Redshift.DescribeClusterSnapshots+ , module Network.AWS.Redshift.DescribeClusterSubnetGroups+ , module Network.AWS.Redshift.DescribeClusterVersions+ , module Network.AWS.Redshift.DescribeClusters+ , module Network.AWS.Redshift.DescribeDefaultClusterParameters+ , module Network.AWS.Redshift.DescribeEventCategories+ , module Network.AWS.Redshift.DescribeEventSubscriptions+ , module Network.AWS.Redshift.DescribeEvents+ , module Network.AWS.Redshift.DescribeHsmClientCertificates+ , module Network.AWS.Redshift.DescribeHsmConfigurations+ , module Network.AWS.Redshift.DescribeLoggingStatus+ , module Network.AWS.Redshift.DescribeOrderableClusterOptions+ , module Network.AWS.Redshift.DescribeReservedNodeOfferings+ , module Network.AWS.Redshift.DescribeReservedNodes+ , module Network.AWS.Redshift.DescribeResize+ , module Network.AWS.Redshift.DescribeTags+ , module Network.AWS.Redshift.DisableLogging+ , module Network.AWS.Redshift.DisableSnapshotCopy+ , module Network.AWS.Redshift.EnableLogging+ , module Network.AWS.Redshift.EnableSnapshotCopy+ , module Network.AWS.Redshift.ModifyCluster+ , module Network.AWS.Redshift.ModifyClusterParameterGroup+ , module Network.AWS.Redshift.ModifyClusterSubnetGroup+ , module Network.AWS.Redshift.ModifyEventSubscription+ , module Network.AWS.Redshift.ModifySnapshotCopyRetentionPeriod+ , module Network.AWS.Redshift.PurchaseReservedNodeOffering+ , module Network.AWS.Redshift.RebootCluster+ , module Network.AWS.Redshift.ResetClusterParameterGroup+ , module Network.AWS.Redshift.RestoreFromClusterSnapshot+ , module Network.AWS.Redshift.RevokeClusterSecurityGroupIngress+ , module Network.AWS.Redshift.RevokeSnapshotAccess+ , module Network.AWS.Redshift.RotateEncryptionKey+ , module Network.AWS.Redshift.Types+ ) where++import Network.AWS.Redshift.AuthorizeClusterSecurityGroupIngress+import Network.AWS.Redshift.AuthorizeSnapshotAccess+import Network.AWS.Redshift.CopyClusterSnapshot+import Network.AWS.Redshift.CreateCluster+import Network.AWS.Redshift.CreateClusterParameterGroup+import Network.AWS.Redshift.CreateClusterSecurityGroup+import Network.AWS.Redshift.CreateClusterSnapshot+import Network.AWS.Redshift.CreateClusterSubnetGroup+import Network.AWS.Redshift.CreateEventSubscription+import Network.AWS.Redshift.CreateHsmClientCertificate+import Network.AWS.Redshift.CreateHsmConfiguration+import Network.AWS.Redshift.CreateTags+import Network.AWS.Redshift.DeleteCluster+import Network.AWS.Redshift.DeleteClusterParameterGroup+import Network.AWS.Redshift.DeleteClusterSecurityGroup+import Network.AWS.Redshift.DeleteClusterSnapshot+import Network.AWS.Redshift.DeleteClusterSubnetGroup+import Network.AWS.Redshift.DeleteEventSubscription+import Network.AWS.Redshift.DeleteHsmClientCertificate+import Network.AWS.Redshift.DeleteHsmConfiguration+import Network.AWS.Redshift.DeleteTags+import Network.AWS.Redshift.DescribeClusterParameterGroups+import Network.AWS.Redshift.DescribeClusterParameters+import Network.AWS.Redshift.DescribeClusterSecurityGroups+import Network.AWS.Redshift.DescribeClusterSnapshots+import Network.AWS.Redshift.DescribeClusterSubnetGroups+import Network.AWS.Redshift.DescribeClusterVersions+import Network.AWS.Redshift.DescribeClusters+import Network.AWS.Redshift.DescribeDefaultClusterParameters+import Network.AWS.Redshift.DescribeEventCategories+import Network.AWS.Redshift.DescribeEventSubscriptions+import Network.AWS.Redshift.DescribeEvents+import Network.AWS.Redshift.DescribeHsmClientCertificates+import Network.AWS.Redshift.DescribeHsmConfigurations+import Network.AWS.Redshift.DescribeLoggingStatus+import Network.AWS.Redshift.DescribeOrderableClusterOptions+import Network.AWS.Redshift.DescribeReservedNodeOfferings+import Network.AWS.Redshift.DescribeReservedNodes+import Network.AWS.Redshift.DescribeResize+import Network.AWS.Redshift.DescribeTags+import Network.AWS.Redshift.DisableLogging+import Network.AWS.Redshift.DisableSnapshotCopy+import Network.AWS.Redshift.EnableLogging+import Network.AWS.Redshift.EnableSnapshotCopy+import Network.AWS.Redshift.ModifyCluster+import Network.AWS.Redshift.ModifyClusterParameterGroup+import Network.AWS.Redshift.ModifyClusterSubnetGroup+import Network.AWS.Redshift.ModifyEventSubscription+import Network.AWS.Redshift.ModifySnapshotCopyRetentionPeriod+import Network.AWS.Redshift.PurchaseReservedNodeOffering+import Network.AWS.Redshift.RebootCluster+import Network.AWS.Redshift.ResetClusterParameterGroup+import Network.AWS.Redshift.RestoreFromClusterSnapshot+import Network.AWS.Redshift.RevokeClusterSecurityGroupIngress+import Network.AWS.Redshift.RevokeSnapshotAccess+import Network.AWS.Redshift.RotateEncryptionKey+import Network.AWS.Redshift.Types
+ gen/Network/AWS/Redshift/AuthorizeClusterSecurityGroupIngress.hs view
@@ -0,0 +1,156 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.AuthorizeClusterSecurityGroupIngress+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Adds an inbound (ingress) rule to an Amazon Redshift security group.+-- Depending on whether the application accessing your cluster is running on+-- the Internet or an EC2 instance, you can authorize inbound access to either+-- a Classless Interdomain Routing (CIDR) IP address range or an EC2 security+-- group. You can add as many as 20 ingress rules to an Amazon Redshift+-- security group. The EC2 security group must be defined in the AWS region+-- where the cluster resides. For an overview of CIDR blocks, see the+-- Wikipedia article on Classless Inter-Domain Routing. You must also+-- associate the security group with a cluster so that clients running on+-- these IP addresses or the EC2 instance are authorized to connect to the+-- cluster. For information about managing security groups, go to Working with+-- Security Groups in the Amazon Redshift Cluster Management Guide.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_AuthorizeClusterSecurityGroupIngress.html>+module Network.AWS.Redshift.AuthorizeClusterSecurityGroupIngress+ (+ -- * Request+ AuthorizeClusterSecurityGroupIngress+ -- ** Request constructor+ , authorizeClusterSecurityGroupIngress+ -- ** Request lenses+ , acsgiCIDRIP+ , acsgiClusterSecurityGroupName+ , acsgiEC2SecurityGroupName+ , acsgiEC2SecurityGroupOwnerId++ -- * Response+ , AuthorizeClusterSecurityGroupIngressResponse+ -- ** Response constructor+ , authorizeClusterSecurityGroupIngressResponse+ -- ** Response lenses+ , acsgirClusterSecurityGroup+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data AuthorizeClusterSecurityGroupIngress = AuthorizeClusterSecurityGroupIngress+ { _acsgiCIDRIP :: Maybe Text+ , _acsgiClusterSecurityGroupName :: Text+ , _acsgiEC2SecurityGroupName :: Maybe Text+ , _acsgiEC2SecurityGroupOwnerId :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'AuthorizeClusterSecurityGroupIngress' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'acsgiCIDRIP' @::@ 'Maybe' 'Text'+--+-- * 'acsgiClusterSecurityGroupName' @::@ 'Text'+--+-- * 'acsgiEC2SecurityGroupName' @::@ 'Maybe' 'Text'+--+-- * 'acsgiEC2SecurityGroupOwnerId' @::@ 'Maybe' 'Text'+--+authorizeClusterSecurityGroupIngress :: Text -- ^ 'acsgiClusterSecurityGroupName'+ -> AuthorizeClusterSecurityGroupIngress+authorizeClusterSecurityGroupIngress p1 = AuthorizeClusterSecurityGroupIngress+ { _acsgiClusterSecurityGroupName = p1+ , _acsgiCIDRIP = Nothing+ , _acsgiEC2SecurityGroupName = Nothing+ , _acsgiEC2SecurityGroupOwnerId = Nothing+ }++-- | The IP range to be added the Amazon Redshift security group.+acsgiCIDRIP :: Lens' AuthorizeClusterSecurityGroupIngress (Maybe Text)+acsgiCIDRIP = lens _acsgiCIDRIP (\s a -> s { _acsgiCIDRIP = a })++-- | The name of the security group to which the ingress rule is added.+acsgiClusterSecurityGroupName :: Lens' AuthorizeClusterSecurityGroupIngress Text+acsgiClusterSecurityGroupName =+ lens _acsgiClusterSecurityGroupName+ (\s a -> s { _acsgiClusterSecurityGroupName = a })++-- | The EC2 security group to be added the Amazon Redshift security group.+acsgiEC2SecurityGroupName :: Lens' AuthorizeClusterSecurityGroupIngress (Maybe Text)+acsgiEC2SecurityGroupName =+ lens _acsgiEC2SecurityGroupName+ (\s a -> s { _acsgiEC2SecurityGroupName = a })++-- | The AWS account number of the owner of the security group specified by+-- the EC2SecurityGroupName parameter. The AWS Access Key ID is not an+-- acceptable value. Example: 111122223333.+acsgiEC2SecurityGroupOwnerId :: Lens' AuthorizeClusterSecurityGroupIngress (Maybe Text)+acsgiEC2SecurityGroupOwnerId =+ lens _acsgiEC2SecurityGroupOwnerId+ (\s a -> s { _acsgiEC2SecurityGroupOwnerId = a })++newtype AuthorizeClusterSecurityGroupIngressResponse = AuthorizeClusterSecurityGroupIngressResponse+ { _acsgirClusterSecurityGroup :: Maybe ClusterSecurityGroup+ } deriving (Eq, Show)++-- | 'AuthorizeClusterSecurityGroupIngressResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'acsgirClusterSecurityGroup' @::@ 'Maybe' 'ClusterSecurityGroup'+--+authorizeClusterSecurityGroupIngressResponse :: AuthorizeClusterSecurityGroupIngressResponse+authorizeClusterSecurityGroupIngressResponse = AuthorizeClusterSecurityGroupIngressResponse+ { _acsgirClusterSecurityGroup = Nothing+ }++acsgirClusterSecurityGroup :: Lens' AuthorizeClusterSecurityGroupIngressResponse (Maybe ClusterSecurityGroup)+acsgirClusterSecurityGroup =+ lens _acsgirClusterSecurityGroup+ (\s a -> s { _acsgirClusterSecurityGroup = a })++instance ToPath AuthorizeClusterSecurityGroupIngress where+ toPath = const "/"++instance ToQuery AuthorizeClusterSecurityGroupIngress where+ toQuery AuthorizeClusterSecurityGroupIngress{..} = mconcat+ [ "CIDRIP" =? _acsgiCIDRIP+ , "ClusterSecurityGroupName" =? _acsgiClusterSecurityGroupName+ , "EC2SecurityGroupName" =? _acsgiEC2SecurityGroupName+ , "EC2SecurityGroupOwnerId" =? _acsgiEC2SecurityGroupOwnerId+ ]++instance ToHeaders AuthorizeClusterSecurityGroupIngress++instance AWSRequest AuthorizeClusterSecurityGroupIngress where+ type Sv AuthorizeClusterSecurityGroupIngress = Redshift+ type Rs AuthorizeClusterSecurityGroupIngress = AuthorizeClusterSecurityGroupIngressResponse++ request = post "AuthorizeClusterSecurityGroupIngress"+ response = xmlResponse++instance FromXML AuthorizeClusterSecurityGroupIngressResponse where+ parseXML = withElement "AuthorizeClusterSecurityGroupIngressResult" $ \x -> AuthorizeClusterSecurityGroupIngressResponse+ <$> x .@? "ClusterSecurityGroup"
+ gen/Network/AWS/Redshift/AuthorizeSnapshotAccess.hs view
@@ -0,0 +1,137 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.AuthorizeSnapshotAccess+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Authorizes the specified AWS customer account to restore the specified+-- snapshot. For more information about working with snapshots, go to Amazon+-- Redshift Snapshots in the Amazon Redshift Cluster Management Guide.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_AuthorizeSnapshotAccess.html>+module Network.AWS.Redshift.AuthorizeSnapshotAccess+ (+ -- * Request+ AuthorizeSnapshotAccess+ -- ** Request constructor+ , authorizeSnapshotAccess+ -- ** Request lenses+ , asaAccountWithRestoreAccess+ , asaSnapshotClusterIdentifier+ , asaSnapshotIdentifier++ -- * Response+ , AuthorizeSnapshotAccessResponse+ -- ** Response constructor+ , authorizeSnapshotAccessResponse+ -- ** Response lenses+ , asarSnapshot+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data AuthorizeSnapshotAccess = AuthorizeSnapshotAccess+ { _asaAccountWithRestoreAccess :: Text+ , _asaSnapshotClusterIdentifier :: Maybe Text+ , _asaSnapshotIdentifier :: Text+ } deriving (Eq, Ord, Show)++-- | 'AuthorizeSnapshotAccess' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'asaAccountWithRestoreAccess' @::@ 'Text'+--+-- * 'asaSnapshotClusterIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'asaSnapshotIdentifier' @::@ 'Text'+--+authorizeSnapshotAccess :: Text -- ^ 'asaSnapshotIdentifier'+ -> Text -- ^ 'asaAccountWithRestoreAccess'+ -> AuthorizeSnapshotAccess+authorizeSnapshotAccess p1 p2 = AuthorizeSnapshotAccess+ { _asaSnapshotIdentifier = p1+ , _asaAccountWithRestoreAccess = p2+ , _asaSnapshotClusterIdentifier = Nothing+ }++-- | The identifier of the AWS customer account authorized to restore the+-- specified snapshot.+asaAccountWithRestoreAccess :: Lens' AuthorizeSnapshotAccess Text+asaAccountWithRestoreAccess =+ lens _asaAccountWithRestoreAccess+ (\s a -> s { _asaAccountWithRestoreAccess = a })++-- | The identifier of the cluster the snapshot was created from. This+-- parameter is required if your IAM user has a policy containing a snapshot+-- resource element that specifies anything other than * for the cluster+-- name.+asaSnapshotClusterIdentifier :: Lens' AuthorizeSnapshotAccess (Maybe Text)+asaSnapshotClusterIdentifier =+ lens _asaSnapshotClusterIdentifier+ (\s a -> s { _asaSnapshotClusterIdentifier = a })++-- | The identifier of the snapshot the account is authorized to restore.+asaSnapshotIdentifier :: Lens' AuthorizeSnapshotAccess Text+asaSnapshotIdentifier =+ lens _asaSnapshotIdentifier (\s a -> s { _asaSnapshotIdentifier = a })++newtype AuthorizeSnapshotAccessResponse = AuthorizeSnapshotAccessResponse+ { _asarSnapshot :: Maybe Snapshot+ } deriving (Eq, Show)++-- | 'AuthorizeSnapshotAccessResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'asarSnapshot' @::@ 'Maybe' 'Snapshot'+--+authorizeSnapshotAccessResponse :: AuthorizeSnapshotAccessResponse+authorizeSnapshotAccessResponse = AuthorizeSnapshotAccessResponse+ { _asarSnapshot = Nothing+ }++asarSnapshot :: Lens' AuthorizeSnapshotAccessResponse (Maybe Snapshot)+asarSnapshot = lens _asarSnapshot (\s a -> s { _asarSnapshot = a })++instance ToPath AuthorizeSnapshotAccess where+ toPath = const "/"++instance ToQuery AuthorizeSnapshotAccess where+ toQuery AuthorizeSnapshotAccess{..} = mconcat+ [ "AccountWithRestoreAccess" =? _asaAccountWithRestoreAccess+ , "SnapshotClusterIdentifier" =? _asaSnapshotClusterIdentifier+ , "SnapshotIdentifier" =? _asaSnapshotIdentifier+ ]++instance ToHeaders AuthorizeSnapshotAccess++instance AWSRequest AuthorizeSnapshotAccess where+ type Sv AuthorizeSnapshotAccess = Redshift+ type Rs AuthorizeSnapshotAccess = AuthorizeSnapshotAccessResponse++ request = post "AuthorizeSnapshotAccess"+ response = xmlResponse++instance FromXML AuthorizeSnapshotAccessResponse where+ parseXML = withElement "AuthorizeSnapshotAccessResult" $ \x -> AuthorizeSnapshotAccessResponse+ <$> x .@? "Snapshot"
+ gen/Network/AWS/Redshift/CopyClusterSnapshot.hs view
@@ -0,0 +1,148 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.CopyClusterSnapshot+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Copies the specified automated cluster snapshot to a new manual cluster+-- snapshot. The source must be an automated snapshot and it must be in the+-- available state. When you delete a cluster, Amazon Redshift deletes any+-- automated snapshots of the cluster. Also, when the retention period of the+-- snapshot expires, Amazon Redshift automatically deletes it. If you want to+-- keep an automated snapshot for a longer period, you can make a manual copy+-- of the snapshot. Manual snapshots are retained until you delete them. For+-- more information about working with snapshots, go to Amazon Redshift+-- Snapshots in the Amazon Redshift Cluster Management Guide.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_CopyClusterSnapshot.html>+module Network.AWS.Redshift.CopyClusterSnapshot+ (+ -- * Request+ CopyClusterSnapshot+ -- ** Request constructor+ , copyClusterSnapshot+ -- ** Request lenses+ , ccsSourceSnapshotClusterIdentifier+ , ccsSourceSnapshotIdentifier+ , ccsTargetSnapshotIdentifier++ -- * Response+ , CopyClusterSnapshotResponse+ -- ** Response constructor+ , copyClusterSnapshotResponse+ -- ** Response lenses+ , ccsrSnapshot+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data CopyClusterSnapshot = CopyClusterSnapshot+ { _ccsSourceSnapshotClusterIdentifier :: Maybe Text+ , _ccsSourceSnapshotIdentifier :: Text+ , _ccsTargetSnapshotIdentifier :: Text+ } deriving (Eq, Ord, Show)++-- | 'CopyClusterSnapshot' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ccsSourceSnapshotClusterIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'ccsSourceSnapshotIdentifier' @::@ 'Text'+--+-- * 'ccsTargetSnapshotIdentifier' @::@ 'Text'+--+copyClusterSnapshot :: Text -- ^ 'ccsSourceSnapshotIdentifier'+ -> Text -- ^ 'ccsTargetSnapshotIdentifier'+ -> CopyClusterSnapshot+copyClusterSnapshot p1 p2 = CopyClusterSnapshot+ { _ccsSourceSnapshotIdentifier = p1+ , _ccsTargetSnapshotIdentifier = p2+ , _ccsSourceSnapshotClusterIdentifier = Nothing+ }++-- | The identifier of the cluster the source snapshot was created from. This+-- parameter is required if your IAM user has a policy containing a snapshot+-- resource element that specifies anything other than * for the cluster+-- name. Constraints: Must be the identifier for a valid cluster.+ccsSourceSnapshotClusterIdentifier :: Lens' CopyClusterSnapshot (Maybe Text)+ccsSourceSnapshotClusterIdentifier =+ lens _ccsSourceSnapshotClusterIdentifier+ (\s a -> s { _ccsSourceSnapshotClusterIdentifier = a })++-- | The identifier for the source snapshot. Constraints: Must be the+-- identifier for a valid automated snapshot whose state is available.+ccsSourceSnapshotIdentifier :: Lens' CopyClusterSnapshot Text+ccsSourceSnapshotIdentifier =+ lens _ccsSourceSnapshotIdentifier+ (\s a -> s { _ccsSourceSnapshotIdentifier = a })++-- | The identifier given to the new manual snapshot. Constraints: Cannot be+-- null, empty, or blank. Must contain from 1 to 255 alphanumeric characters+-- or hyphens. First character must be a letter. Cannot end with a hyphen or+-- contain two consecutive hyphens. Must be unique for the AWS account that+-- is making the request.+ccsTargetSnapshotIdentifier :: Lens' CopyClusterSnapshot Text+ccsTargetSnapshotIdentifier =+ lens _ccsTargetSnapshotIdentifier+ (\s a -> s { _ccsTargetSnapshotIdentifier = a })++newtype CopyClusterSnapshotResponse = CopyClusterSnapshotResponse+ { _ccsrSnapshot :: Maybe Snapshot+ } deriving (Eq, Show)++-- | 'CopyClusterSnapshotResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ccsrSnapshot' @::@ 'Maybe' 'Snapshot'+--+copyClusterSnapshotResponse :: CopyClusterSnapshotResponse+copyClusterSnapshotResponse = CopyClusterSnapshotResponse+ { _ccsrSnapshot = Nothing+ }++ccsrSnapshot :: Lens' CopyClusterSnapshotResponse (Maybe Snapshot)+ccsrSnapshot = lens _ccsrSnapshot (\s a -> s { _ccsrSnapshot = a })++instance ToPath CopyClusterSnapshot where+ toPath = const "/"++instance ToQuery CopyClusterSnapshot where+ toQuery CopyClusterSnapshot{..} = mconcat+ [ "SourceSnapshotClusterIdentifier" =? _ccsSourceSnapshotClusterIdentifier+ , "SourceSnapshotIdentifier" =? _ccsSourceSnapshotIdentifier+ , "TargetSnapshotIdentifier" =? _ccsTargetSnapshotIdentifier+ ]++instance ToHeaders CopyClusterSnapshot++instance AWSRequest CopyClusterSnapshot where+ type Sv CopyClusterSnapshot = Redshift+ type Rs CopyClusterSnapshot = CopyClusterSnapshotResponse++ request = post "CopyClusterSnapshot"+ response = xmlResponse++instance FromXML CopyClusterSnapshotResponse where+ parseXML = withElement "CopyClusterSnapshotResult" $ \x -> CopyClusterSnapshotResponse+ <$> x .@? "Snapshot"
+ gen/Network/AWS/Redshift/CreateCluster.hs view
@@ -0,0 +1,445 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.CreateCluster+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Creates a new cluster. To create the cluster in virtual private cloud+-- (VPC), you must provide cluster subnet group name. If you don't provide a+-- cluster subnet group name or the cluster security group parameter, Amazon+-- Redshift creates a non-VPC cluster, it associates the default cluster+-- security group with the cluster. For more information about managing+-- clusters, go to Amazon Redshift Clusters in the Amazon Redshift Cluster+-- Management Guide .+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_CreateCluster.html>+module Network.AWS.Redshift.CreateCluster+ (+ -- * Request+ CreateCluster+ -- ** Request constructor+ , createCluster+ -- ** Request lenses+ , ccAllowVersionUpgrade+ , ccAutomatedSnapshotRetentionPeriod+ , ccAvailabilityZone+ , ccClusterIdentifier+ , ccClusterParameterGroupName+ , ccClusterSecurityGroups+ , ccClusterSubnetGroupName+ , ccClusterType+ , ccClusterVersion+ , ccDBName+ , ccElasticIp+ , ccEncrypted+ , ccHsmClientCertificateIdentifier+ , ccHsmConfigurationIdentifier+ , ccKmsKeyId+ , ccMasterUserPassword+ , ccMasterUsername+ , ccNodeType+ , ccNumberOfNodes+ , ccPort+ , ccPreferredMaintenanceWindow+ , ccPubliclyAccessible+ , ccTags+ , ccVpcSecurityGroupIds++ -- * Response+ , CreateClusterResponse+ -- ** Response constructor+ , createClusterResponse+ -- ** Response lenses+ , ccrCluster+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data CreateCluster = CreateCluster+ { _ccAllowVersionUpgrade :: Maybe Bool+ , _ccAutomatedSnapshotRetentionPeriod :: Maybe Int+ , _ccAvailabilityZone :: Maybe Text+ , _ccClusterIdentifier :: Text+ , _ccClusterParameterGroupName :: Maybe Text+ , _ccClusterSecurityGroups :: List "ClusterSecurityGroupName" Text+ , _ccClusterSubnetGroupName :: Maybe Text+ , _ccClusterType :: Maybe Text+ , _ccClusterVersion :: Maybe Text+ , _ccDBName :: Maybe Text+ , _ccElasticIp :: Maybe Text+ , _ccEncrypted :: Maybe Bool+ , _ccHsmClientCertificateIdentifier :: Maybe Text+ , _ccHsmConfigurationIdentifier :: Maybe Text+ , _ccKmsKeyId :: Maybe Text+ , _ccMasterUserPassword :: Text+ , _ccMasterUsername :: Text+ , _ccNodeType :: Text+ , _ccNumberOfNodes :: Maybe Int+ , _ccPort :: Maybe Int+ , _ccPreferredMaintenanceWindow :: Maybe Text+ , _ccPubliclyAccessible :: Maybe Bool+ , _ccTags :: List "Tag" Tag+ , _ccVpcSecurityGroupIds :: List "VpcSecurityGroupId" Text+ } deriving (Eq, Show)++-- | 'CreateCluster' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ccAllowVersionUpgrade' @::@ 'Maybe' 'Bool'+--+-- * 'ccAutomatedSnapshotRetentionPeriod' @::@ 'Maybe' 'Int'+--+-- * 'ccAvailabilityZone' @::@ 'Maybe' 'Text'+--+-- * 'ccClusterIdentifier' @::@ 'Text'+--+-- * 'ccClusterParameterGroupName' @::@ 'Maybe' 'Text'+--+-- * 'ccClusterSecurityGroups' @::@ ['Text']+--+-- * 'ccClusterSubnetGroupName' @::@ 'Maybe' 'Text'+--+-- * 'ccClusterType' @::@ 'Maybe' 'Text'+--+-- * 'ccClusterVersion' @::@ 'Maybe' 'Text'+--+-- * 'ccDBName' @::@ 'Maybe' 'Text'+--+-- * 'ccElasticIp' @::@ 'Maybe' 'Text'+--+-- * 'ccEncrypted' @::@ 'Maybe' 'Bool'+--+-- * 'ccHsmClientCertificateIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'ccHsmConfigurationIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'ccKmsKeyId' @::@ 'Maybe' 'Text'+--+-- * 'ccMasterUserPassword' @::@ 'Text'+--+-- * 'ccMasterUsername' @::@ 'Text'+--+-- * 'ccNodeType' @::@ 'Text'+--+-- * 'ccNumberOfNodes' @::@ 'Maybe' 'Int'+--+-- * 'ccPort' @::@ 'Maybe' 'Int'+--+-- * 'ccPreferredMaintenanceWindow' @::@ 'Maybe' 'Text'+--+-- * 'ccPubliclyAccessible' @::@ 'Maybe' 'Bool'+--+-- * 'ccTags' @::@ ['Tag']+--+-- * 'ccVpcSecurityGroupIds' @::@ ['Text']+--+createCluster :: Text -- ^ 'ccClusterIdentifier'+ -> Text -- ^ 'ccNodeType'+ -> Text -- ^ 'ccMasterUsername'+ -> Text -- ^ 'ccMasterUserPassword'+ -> CreateCluster+createCluster p1 p2 p3 p4 = CreateCluster+ { _ccClusterIdentifier = p1+ , _ccNodeType = p2+ , _ccMasterUsername = p3+ , _ccMasterUserPassword = p4+ , _ccDBName = Nothing+ , _ccClusterType = Nothing+ , _ccClusterSecurityGroups = mempty+ , _ccVpcSecurityGroupIds = mempty+ , _ccClusterSubnetGroupName = Nothing+ , _ccAvailabilityZone = Nothing+ , _ccPreferredMaintenanceWindow = Nothing+ , _ccClusterParameterGroupName = Nothing+ , _ccAutomatedSnapshotRetentionPeriod = Nothing+ , _ccPort = Nothing+ , _ccClusterVersion = Nothing+ , _ccAllowVersionUpgrade = Nothing+ , _ccNumberOfNodes = Nothing+ , _ccPubliclyAccessible = Nothing+ , _ccEncrypted = Nothing+ , _ccHsmClientCertificateIdentifier = Nothing+ , _ccHsmConfigurationIdentifier = Nothing+ , _ccElasticIp = Nothing+ , _ccTags = mempty+ , _ccKmsKeyId = Nothing+ }++-- | If true, major version upgrades can be applied during the maintenance+-- window to the Amazon Redshift engine that is running on the cluster. When+-- a new major version of the Amazon Redshift engine is released, you can+-- request that the service automatically apply upgrades during the+-- maintenance window to the Amazon Redshift engine that is running on your+-- cluster. Default: true.+ccAllowVersionUpgrade :: Lens' CreateCluster (Maybe Bool)+ccAllowVersionUpgrade =+ lens _ccAllowVersionUpgrade (\s a -> s { _ccAllowVersionUpgrade = a })++-- | The number of days that automated snapshots are retained. If the value is+-- 0, automated snapshots are disabled. Even if automated snapshots are+-- disabled, you can still create manual snapshots when you want with+-- CreateClusterSnapshot. Default: 1 Constraints: Must be a value from 0 to+-- 35.+ccAutomatedSnapshotRetentionPeriod :: Lens' CreateCluster (Maybe Int)+ccAutomatedSnapshotRetentionPeriod =+ lens _ccAutomatedSnapshotRetentionPeriod+ (\s a -> s { _ccAutomatedSnapshotRetentionPeriod = a })++-- | The EC2 Availability Zone (AZ) in which you want Amazon Redshift to+-- provision the cluster. For example, if you have several EC2 instances+-- running in a specific Availability Zone, then you might want the cluster+-- to be provisioned in the same zone in order to decrease network latency.+-- Default: A random, system-chosen Availability Zone in the region that is+-- specified by the endpoint. Example: us-east-1d Constraint: The specified+-- Availability Zone must be in the same region as the current endpoint.+ccAvailabilityZone :: Lens' CreateCluster (Maybe Text)+ccAvailabilityZone =+ lens _ccAvailabilityZone (\s a -> s { _ccAvailabilityZone = a })++-- | A unique identifier for the cluster. You use this identifier to refer to+-- the cluster for any subsequent cluster operations such as deleting or+-- modifying. The identifier also appears in the Amazon Redshift console.+-- Constraints: Must contain from 1 to 63 alphanumeric characters or+-- hyphens. Alphabetic characters must be lowercase. First character must be+-- a letter. Cannot end with a hyphen or contain two consecutive hyphens.+-- Must be unique for all clusters within an AWS account. Example:+-- myexamplecluster.+ccClusterIdentifier :: Lens' CreateCluster Text+ccClusterIdentifier =+ lens _ccClusterIdentifier (\s a -> s { _ccClusterIdentifier = a })++-- | The name of the parameter group to be associated with this cluster.+-- Default: The default Amazon Redshift cluster parameter group. For+-- information about the default parameter group, go to Working with Amazon+-- Redshift Parameter Groups Constraints: Must be 1 to 255 alphanumeric+-- characters or hyphens. First character must be a letter. Cannot end with+-- a hyphen or contain two consecutive hyphens.+ccClusterParameterGroupName :: Lens' CreateCluster (Maybe Text)+ccClusterParameterGroupName =+ lens _ccClusterParameterGroupName+ (\s a -> s { _ccClusterParameterGroupName = a })++-- | A list of security groups to be associated with this cluster. Default:+-- The default cluster security group for Amazon Redshift.+ccClusterSecurityGroups :: Lens' CreateCluster [Text]+ccClusterSecurityGroups =+ lens _ccClusterSecurityGroups (\s a -> s { _ccClusterSecurityGroups = a })+ . _List++-- | The name of a cluster subnet group to be associated with this cluster. If+-- this parameter is not provided the resulting cluster will be deployed+-- outside virtual private cloud (VPC).+ccClusterSubnetGroupName :: Lens' CreateCluster (Maybe Text)+ccClusterSubnetGroupName =+ lens _ccClusterSubnetGroupName+ (\s a -> s { _ccClusterSubnetGroupName = a })++-- | The type of the cluster. When cluster type is specified as single-node,+-- the NumberOfNodes parameter is not required. multi-node, the+-- NumberOfNodes parameter is required. Valid Values: multi-node |+-- single-node Default: multi-node.+ccClusterType :: Lens' CreateCluster (Maybe Text)+ccClusterType = lens _ccClusterType (\s a -> s { _ccClusterType = a })++-- | The version of the Amazon Redshift engine software that you want to+-- deploy on the cluster. The version selected runs on all the nodes in the+-- cluster. Constraints: Only version 1.0 is currently available. Example:+-- 1.0.+ccClusterVersion :: Lens' CreateCluster (Maybe Text)+ccClusterVersion = lens _ccClusterVersion (\s a -> s { _ccClusterVersion = a })++-- | The name of the first database to be created when the cluster is created.+-- To create additional databases after the cluster is created, connect to+-- the cluster with a SQL client and use SQL commands to create a database.+-- For more information, go to Create a Database in the Amazon Redshift+-- Database Developer Guide. Default: dev Constraints: Must contain 1 to 64+-- alphanumeric characters. Must contain only lowercase letters. Cannot be a+-- word that is reserved by the service. A list of reserved words can be+-- found in Reserved Words in the Amazon Redshift Database Developer Guide.+ccDBName :: Lens' CreateCluster (Maybe Text)+ccDBName = lens _ccDBName (\s a -> s { _ccDBName = a })++-- | The Elastic IP (EIP) address for the cluster. Constraints: The cluster+-- must be provisioned in EC2-VPC and publicly-accessible through an+-- Internet gateway. For more information about provisioning clusters in+-- EC2-VPC, go to Supported Platforms to Launch Your Cluster in the Amazon+-- Redshift Cluster Management Guide.+ccElasticIp :: Lens' CreateCluster (Maybe Text)+ccElasticIp = lens _ccElasticIp (\s a -> s { _ccElasticIp = a })++-- | If true, the data in the cluster is encrypted at rest. Default: false.+ccEncrypted :: Lens' CreateCluster (Maybe Bool)+ccEncrypted = lens _ccEncrypted (\s a -> s { _ccEncrypted = a })++-- | Specifies the name of the HSM client certificate the Amazon Redshift+-- cluster uses to retrieve the data encryption keys stored in an HSM.+ccHsmClientCertificateIdentifier :: Lens' CreateCluster (Maybe Text)+ccHsmClientCertificateIdentifier =+ lens _ccHsmClientCertificateIdentifier+ (\s a -> s { _ccHsmClientCertificateIdentifier = a })++-- | Specifies the name of the HSM configuration that contains the information+-- the Amazon Redshift cluster can use to retrieve and store keys in an HSM.+ccHsmConfigurationIdentifier :: Lens' CreateCluster (Maybe Text)+ccHsmConfigurationIdentifier =+ lens _ccHsmConfigurationIdentifier+ (\s a -> s { _ccHsmConfigurationIdentifier = a })++-- | The AWS Key Management Service (KMS) key ID of the encryption key that+-- you want to use to encrypt data in the cluster.+ccKmsKeyId :: Lens' CreateCluster (Maybe Text)+ccKmsKeyId = lens _ccKmsKeyId (\s a -> s { _ccKmsKeyId = a })++-- | The password associated with the master user account for the cluster that+-- is being created. Constraints: Must be between 8 and 64 characters in+-- length. Must contain at least one uppercase letter. Must contain at least+-- one lowercase letter. Must contain one number. Can be any printable ASCII+-- character (ASCII code 33 to 126) except ' (single quote), " (double+-- quote), \, /, @, or space.+ccMasterUserPassword :: Lens' CreateCluster Text+ccMasterUserPassword =+ lens _ccMasterUserPassword (\s a -> s { _ccMasterUserPassword = a })++-- | The user name associated with the master user account for the cluster+-- that is being created. Constraints: Must be 1 - 128 alphanumeric+-- characters. First character must be a letter. Cannot be a reserved word.+-- A list of reserved words can be found in Reserved Words in the Amazon+-- Redshift Database Developer Guide.+ccMasterUsername :: Lens' CreateCluster Text+ccMasterUsername = lens _ccMasterUsername (\s a -> s { _ccMasterUsername = a })++-- | The node type to be provisioned for the cluster. For information about+-- node types, go to Working with Clusters in the Amazon Redshift Cluster+-- Management Guide. Valid Values: dw1.xlarge | dw1.8xlarge | dw2.large |+-- dw2.8xlarge.+ccNodeType :: Lens' CreateCluster Text+ccNodeType = lens _ccNodeType (\s a -> s { _ccNodeType = a })++-- | The number of compute nodes in the cluster. This parameter is required+-- when the ClusterType parameter is specified as multi-node. For+-- information about determining how many nodes you need, go to Working with+-- Clusters in the Amazon Redshift Cluster Management Guide. If you don't+-- specify this parameter, you get a single-node cluster. When requesting a+-- multi-node cluster, you must specify the number of nodes that you want in+-- the cluster. Default: 1 Constraints: Value must be at least 1 and no more+-- than 100.+ccNumberOfNodes :: Lens' CreateCluster (Maybe Int)+ccNumberOfNodes = lens _ccNumberOfNodes (\s a -> s { _ccNumberOfNodes = a })++-- | The port number on which the cluster accepts incoming connections. The+-- cluster is accessible only via the JDBC and ODBC connection strings. Part+-- of the connection string requires the port on which the cluster will+-- listen for incoming connections. Default: 5439 Valid Values: 1150-65535.+ccPort :: Lens' CreateCluster (Maybe Int)+ccPort = lens _ccPort (\s a -> s { _ccPort = a })++-- | The weekly time range (in UTC) during which automated cluster maintenance+-- can occur. Format: ddd:hh24:mi-ddd:hh24:mi Default: A 30-minute window+-- selected at random from an 8-hour block of time per region, occurring on+-- a random day of the week. For more information about the time blocks for+-- each region, see Maintenance Windows in Amazon Redshift Cluster+-- Management Guide. Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun+-- Constraints: Minimum 30-minute window.+ccPreferredMaintenanceWindow :: Lens' CreateCluster (Maybe Text)+ccPreferredMaintenanceWindow =+ lens _ccPreferredMaintenanceWindow+ (\s a -> s { _ccPreferredMaintenanceWindow = a })++-- | If true, the cluster can be accessed from a public network.+ccPubliclyAccessible :: Lens' CreateCluster (Maybe Bool)+ccPubliclyAccessible =+ lens _ccPubliclyAccessible (\s a -> s { _ccPubliclyAccessible = a })++-- | A list of tag instances.+ccTags :: Lens' CreateCluster [Tag]+ccTags = lens _ccTags (\s a -> s { _ccTags = a }) . _List++-- | A list of Virtual Private Cloud (VPC) security groups to be associated+-- with the cluster. Default: The default VPC security group is associated+-- with the cluster.+ccVpcSecurityGroupIds :: Lens' CreateCluster [Text]+ccVpcSecurityGroupIds =+ lens _ccVpcSecurityGroupIds (\s a -> s { _ccVpcSecurityGroupIds = a })+ . _List++newtype CreateClusterResponse = CreateClusterResponse+ { _ccrCluster :: Maybe Cluster+ } deriving (Eq, Show)++-- | 'CreateClusterResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ccrCluster' @::@ 'Maybe' 'Cluster'+--+createClusterResponse :: CreateClusterResponse+createClusterResponse = CreateClusterResponse+ { _ccrCluster = Nothing+ }++ccrCluster :: Lens' CreateClusterResponse (Maybe Cluster)+ccrCluster = lens _ccrCluster (\s a -> s { _ccrCluster = a })++instance ToPath CreateCluster where+ toPath = const "/"++instance ToQuery CreateCluster where+ toQuery CreateCluster{..} = mconcat+ [ "AllowVersionUpgrade" =? _ccAllowVersionUpgrade+ , "AutomatedSnapshotRetentionPeriod" =? _ccAutomatedSnapshotRetentionPeriod+ , "AvailabilityZone" =? _ccAvailabilityZone+ , "ClusterIdentifier" =? _ccClusterIdentifier+ , "ClusterParameterGroupName" =? _ccClusterParameterGroupName+ , "ClusterSecurityGroups" =? _ccClusterSecurityGroups+ , "ClusterSubnetGroupName" =? _ccClusterSubnetGroupName+ , "ClusterType" =? _ccClusterType+ , "ClusterVersion" =? _ccClusterVersion+ , "DBName" =? _ccDBName+ , "ElasticIp" =? _ccElasticIp+ , "Encrypted" =? _ccEncrypted+ , "HsmClientCertificateIdentifier" =? _ccHsmClientCertificateIdentifier+ , "HsmConfigurationIdentifier" =? _ccHsmConfigurationIdentifier+ , "KmsKeyId" =? _ccKmsKeyId+ , "MasterUserPassword" =? _ccMasterUserPassword+ , "MasterUsername" =? _ccMasterUsername+ , "NodeType" =? _ccNodeType+ , "NumberOfNodes" =? _ccNumberOfNodes+ , "Port" =? _ccPort+ , "PreferredMaintenanceWindow" =? _ccPreferredMaintenanceWindow+ , "PubliclyAccessible" =? _ccPubliclyAccessible+ , "Tags" =? _ccTags+ , "VpcSecurityGroupIds" =? _ccVpcSecurityGroupIds+ ]++instance ToHeaders CreateCluster++instance AWSRequest CreateCluster where+ type Sv CreateCluster = Redshift+ type Rs CreateCluster = CreateClusterResponse++ request = post "CreateCluster"+ response = xmlResponse++instance FromXML CreateClusterResponse where+ parseXML = withElement "CreateClusterResult" $ \x -> CreateClusterResponse+ <$> x .@? "Cluster"
+ gen/Network/AWS/Redshift/CreateClusterParameterGroup.hs view
@@ -0,0 +1,161 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.CreateClusterParameterGroup+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Creates an Amazon Redshift parameter group. Creating parameter groups is+-- independent of creating clusters. You can associate a cluster with a+-- parameter group when you create the cluster. You can also associate an+-- existing cluster with a parameter group after the cluster is created by+-- using ModifyCluster. Parameters in the parameter group define specific+-- behavior that applies to the databases you create on the cluster. For more+-- information about managing parameter groups, go to Amazon Redshift+-- Parameter Groups in the Amazon Redshift Cluster Management Guide.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_CreateClusterParameterGroup.html>+module Network.AWS.Redshift.CreateClusterParameterGroup+ (+ -- * Request+ CreateClusterParameterGroup+ -- ** Request constructor+ , createClusterParameterGroup+ -- ** Request lenses+ , ccpgDescription+ , ccpgParameterGroupFamily+ , ccpgParameterGroupName+ , ccpgTags++ -- * Response+ , CreateClusterParameterGroupResponse+ -- ** Response constructor+ , createClusterParameterGroupResponse+ -- ** Response lenses+ , ccpgrClusterParameterGroup+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data CreateClusterParameterGroup = CreateClusterParameterGroup+ { _ccpgDescription :: Text+ , _ccpgParameterGroupFamily :: Text+ , _ccpgParameterGroupName :: Text+ , _ccpgTags :: List "Tag" Tag+ } deriving (Eq, Show)++-- | 'CreateClusterParameterGroup' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ccpgDescription' @::@ 'Text'+--+-- * 'ccpgParameterGroupFamily' @::@ 'Text'+--+-- * 'ccpgParameterGroupName' @::@ 'Text'+--+-- * 'ccpgTags' @::@ ['Tag']+--+createClusterParameterGroup :: Text -- ^ 'ccpgParameterGroupName'+ -> Text -- ^ 'ccpgParameterGroupFamily'+ -> Text -- ^ 'ccpgDescription'+ -> CreateClusterParameterGroup+createClusterParameterGroup p1 p2 p3 = CreateClusterParameterGroup+ { _ccpgParameterGroupName = p1+ , _ccpgParameterGroupFamily = p2+ , _ccpgDescription = p3+ , _ccpgTags = mempty+ }++-- | A description of the parameter group.+ccpgDescription :: Lens' CreateClusterParameterGroup Text+ccpgDescription = lens _ccpgDescription (\s a -> s { _ccpgDescription = a })++-- | The Amazon Redshift engine version to which the cluster parameter group+-- applies. The cluster engine version determines the set of parameters. To+-- get a list of valid parameter group family names, you can call+-- DescribeClusterParameterGroups. By default, Amazon Redshift returns a+-- list of all the parameter groups that are owned by your AWS account,+-- including the default parameter groups for each Amazon Redshift engine+-- version. The parameter group family names associated with the default+-- parameter groups provide you the valid values. For example, a valid+-- family name is "redshift-1.0".+ccpgParameterGroupFamily :: Lens' CreateClusterParameterGroup Text+ccpgParameterGroupFamily =+ lens _ccpgParameterGroupFamily+ (\s a -> s { _ccpgParameterGroupFamily = a })++-- | The name of the cluster parameter group. Constraints: Must be 1 to 255+-- alphanumeric characters or hyphens First character must be a letter.+-- Cannot end with a hyphen or contain two consecutive hyphens. Must be+-- unique withing your AWS account. This value is stored as a lower-case+-- string.+ccpgParameterGroupName :: Lens' CreateClusterParameterGroup Text+ccpgParameterGroupName =+ lens _ccpgParameterGroupName (\s a -> s { _ccpgParameterGroupName = a })++-- | A list of tag instances.+ccpgTags :: Lens' CreateClusterParameterGroup [Tag]+ccpgTags = lens _ccpgTags (\s a -> s { _ccpgTags = a }) . _List++newtype CreateClusterParameterGroupResponse = CreateClusterParameterGroupResponse+ { _ccpgrClusterParameterGroup :: Maybe ClusterParameterGroup+ } deriving (Eq, Show)++-- | 'CreateClusterParameterGroupResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ccpgrClusterParameterGroup' @::@ 'Maybe' 'ClusterParameterGroup'+--+createClusterParameterGroupResponse :: CreateClusterParameterGroupResponse+createClusterParameterGroupResponse = CreateClusterParameterGroupResponse+ { _ccpgrClusterParameterGroup = Nothing+ }++ccpgrClusterParameterGroup :: Lens' CreateClusterParameterGroupResponse (Maybe ClusterParameterGroup)+ccpgrClusterParameterGroup =+ lens _ccpgrClusterParameterGroup+ (\s a -> s { _ccpgrClusterParameterGroup = a })++instance ToPath CreateClusterParameterGroup where+ toPath = const "/"++instance ToQuery CreateClusterParameterGroup where+ toQuery CreateClusterParameterGroup{..} = mconcat+ [ "Description" =? _ccpgDescription+ , "ParameterGroupFamily" =? _ccpgParameterGroupFamily+ , "ParameterGroupName" =? _ccpgParameterGroupName+ , "Tags" =? _ccpgTags+ ]++instance ToHeaders CreateClusterParameterGroup++instance AWSRequest CreateClusterParameterGroup where+ type Sv CreateClusterParameterGroup = Redshift+ type Rs CreateClusterParameterGroup = CreateClusterParameterGroupResponse++ request = post "CreateClusterParameterGroup"+ response = xmlResponse++instance FromXML CreateClusterParameterGroupResponse where+ parseXML = withElement "CreateClusterParameterGroupResult" $ \x -> CreateClusterParameterGroupResponse+ <$> x .@? "ClusterParameterGroup"
+ gen/Network/AWS/Redshift/CreateClusterSecurityGroup.hs view
@@ -0,0 +1,137 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.CreateClusterSecurityGroup+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Creates a new Amazon Redshift security group. You use security groups to+-- control access to non-VPC clusters. For information about managing security+-- groups, go to Amazon Redshift Cluster Security Groups in the Amazon+-- Redshift Cluster Management Guide.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_CreateClusterSecurityGroup.html>+module Network.AWS.Redshift.CreateClusterSecurityGroup+ (+ -- * Request+ CreateClusterSecurityGroup+ -- ** Request constructor+ , createClusterSecurityGroup+ -- ** Request lenses+ , ccsg1ClusterSecurityGroupName+ , ccsg1Description+ , ccsg1Tags++ -- * Response+ , CreateClusterSecurityGroupResponse+ -- ** Response constructor+ , createClusterSecurityGroupResponse+ -- ** Response lenses+ , ccsgrClusterSecurityGroup+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data CreateClusterSecurityGroup = CreateClusterSecurityGroup+ { _ccsg1ClusterSecurityGroupName :: Text+ , _ccsg1Description :: Text+ , _ccsg1Tags :: List "Tag" Tag+ } deriving (Eq, Show)++-- | 'CreateClusterSecurityGroup' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ccsg1ClusterSecurityGroupName' @::@ 'Text'+--+-- * 'ccsg1Description' @::@ 'Text'+--+-- * 'ccsg1Tags' @::@ ['Tag']+--+createClusterSecurityGroup :: Text -- ^ 'ccsg1ClusterSecurityGroupName'+ -> Text -- ^ 'ccsg1Description'+ -> CreateClusterSecurityGroup+createClusterSecurityGroup p1 p2 = CreateClusterSecurityGroup+ { _ccsg1ClusterSecurityGroupName = p1+ , _ccsg1Description = p2+ , _ccsg1Tags = mempty+ }++-- | The name for the security group. Amazon Redshift stores the value as a+-- lowercase string. Constraints: Must contain no more than 255 alphanumeric+-- characters or hyphens. Must not be "Default". Must be unique for all+-- security groups that are created by your AWS account. Example:+-- examplesecuritygroup.+ccsg1ClusterSecurityGroupName :: Lens' CreateClusterSecurityGroup Text+ccsg1ClusterSecurityGroupName =+ lens _ccsg1ClusterSecurityGroupName+ (\s a -> s { _ccsg1ClusterSecurityGroupName = a })++-- | A description for the security group.+ccsg1Description :: Lens' CreateClusterSecurityGroup Text+ccsg1Description = lens _ccsg1Description (\s a -> s { _ccsg1Description = a })++-- | A list of tag instances.+ccsg1Tags :: Lens' CreateClusterSecurityGroup [Tag]+ccsg1Tags = lens _ccsg1Tags (\s a -> s { _ccsg1Tags = a }) . _List++newtype CreateClusterSecurityGroupResponse = CreateClusterSecurityGroupResponse+ { _ccsgrClusterSecurityGroup :: Maybe ClusterSecurityGroup+ } deriving (Eq, Show)++-- | 'CreateClusterSecurityGroupResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ccsgrClusterSecurityGroup' @::@ 'Maybe' 'ClusterSecurityGroup'+--+createClusterSecurityGroupResponse :: CreateClusterSecurityGroupResponse+createClusterSecurityGroupResponse = CreateClusterSecurityGroupResponse+ { _ccsgrClusterSecurityGroup = Nothing+ }++ccsgrClusterSecurityGroup :: Lens' CreateClusterSecurityGroupResponse (Maybe ClusterSecurityGroup)+ccsgrClusterSecurityGroup =+ lens _ccsgrClusterSecurityGroup+ (\s a -> s { _ccsgrClusterSecurityGroup = a })++instance ToPath CreateClusterSecurityGroup where+ toPath = const "/"++instance ToQuery CreateClusterSecurityGroup where+ toQuery CreateClusterSecurityGroup{..} = mconcat+ [ "ClusterSecurityGroupName" =? _ccsg1ClusterSecurityGroupName+ , "Description" =? _ccsg1Description+ , "Tags" =? _ccsg1Tags+ ]++instance ToHeaders CreateClusterSecurityGroup++instance AWSRequest CreateClusterSecurityGroup where+ type Sv CreateClusterSecurityGroup = Redshift+ type Rs CreateClusterSecurityGroup = CreateClusterSecurityGroupResponse++ request = post "CreateClusterSecurityGroup"+ response = xmlResponse++instance FromXML CreateClusterSecurityGroupResponse where+ parseXML = withElement "CreateClusterSecurityGroupResult" $ \x -> CreateClusterSecurityGroupResponse+ <$> x .@? "ClusterSecurityGroup"
+ gen/Network/AWS/Redshift/CreateClusterSnapshot.hs view
@@ -0,0 +1,136 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.CreateClusterSnapshot+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Creates a manual snapshot of the specified cluster. The cluster must be in+-- the available state. For more information about working with snapshots, go+-- to Amazon Redshift Snapshots in the Amazon Redshift Cluster Management+-- Guide.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_CreateClusterSnapshot.html>+module Network.AWS.Redshift.CreateClusterSnapshot+ (+ -- * Request+ CreateClusterSnapshot+ -- ** Request constructor+ , createClusterSnapshot+ -- ** Request lenses+ , ccsClusterIdentifier+ , ccsSnapshotIdentifier+ , ccsTags++ -- * Response+ , CreateClusterSnapshotResponse+ -- ** Response constructor+ , createClusterSnapshotResponse+ -- ** Response lenses+ , ccsr1Snapshot+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data CreateClusterSnapshot = CreateClusterSnapshot+ { _ccsClusterIdentifier :: Text+ , _ccsSnapshotIdentifier :: Text+ , _ccsTags :: List "Tag" Tag+ } deriving (Eq, Show)++-- | 'CreateClusterSnapshot' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ccsClusterIdentifier' @::@ 'Text'+--+-- * 'ccsSnapshotIdentifier' @::@ 'Text'+--+-- * 'ccsTags' @::@ ['Tag']+--+createClusterSnapshot :: Text -- ^ 'ccsSnapshotIdentifier'+ -> Text -- ^ 'ccsClusterIdentifier'+ -> CreateClusterSnapshot+createClusterSnapshot p1 p2 = CreateClusterSnapshot+ { _ccsSnapshotIdentifier = p1+ , _ccsClusterIdentifier = p2+ , _ccsTags = mempty+ }++-- | The cluster identifier for which you want a snapshot.+ccsClusterIdentifier :: Lens' CreateClusterSnapshot Text+ccsClusterIdentifier =+ lens _ccsClusterIdentifier (\s a -> s { _ccsClusterIdentifier = a })++-- | A unique identifier for the snapshot that you are requesting. This+-- identifier must be unique for all snapshots within the AWS account.+-- Constraints: Cannot be null, empty, or blank Must contain from 1 to 255+-- alphanumeric characters or hyphens First character must be a letter+-- Cannot end with a hyphen or contain two consecutive hyphens Example:+-- my-snapshot-id.+ccsSnapshotIdentifier :: Lens' CreateClusterSnapshot Text+ccsSnapshotIdentifier =+ lens _ccsSnapshotIdentifier (\s a -> s { _ccsSnapshotIdentifier = a })++-- | A list of tag instances.+ccsTags :: Lens' CreateClusterSnapshot [Tag]+ccsTags = lens _ccsTags (\s a -> s { _ccsTags = a }) . _List++newtype CreateClusterSnapshotResponse = CreateClusterSnapshotResponse+ { _ccsr1Snapshot :: Maybe Snapshot+ } deriving (Eq, Show)++-- | 'CreateClusterSnapshotResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ccsr1Snapshot' @::@ 'Maybe' 'Snapshot'+--+createClusterSnapshotResponse :: CreateClusterSnapshotResponse+createClusterSnapshotResponse = CreateClusterSnapshotResponse+ { _ccsr1Snapshot = Nothing+ }++ccsr1Snapshot :: Lens' CreateClusterSnapshotResponse (Maybe Snapshot)+ccsr1Snapshot = lens _ccsr1Snapshot (\s a -> s { _ccsr1Snapshot = a })++instance ToPath CreateClusterSnapshot where+ toPath = const "/"++instance ToQuery CreateClusterSnapshot where+ toQuery CreateClusterSnapshot{..} = mconcat+ [ "ClusterIdentifier" =? _ccsClusterIdentifier+ , "SnapshotIdentifier" =? _ccsSnapshotIdentifier+ , "Tags" =? _ccsTags+ ]++instance ToHeaders CreateClusterSnapshot++instance AWSRequest CreateClusterSnapshot where+ type Sv CreateClusterSnapshot = Redshift+ type Rs CreateClusterSnapshot = CreateClusterSnapshotResponse++ request = post "CreateClusterSnapshot"+ response = xmlResponse++instance FromXML CreateClusterSnapshotResponse where+ parseXML = withElement "CreateClusterSnapshotResult" $ \x -> CreateClusterSnapshotResponse+ <$> x .@? "Snapshot"
+ gen/Network/AWS/Redshift/CreateClusterSubnetGroup.hs view
@@ -0,0 +1,148 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.CreateClusterSubnetGroup+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Creates a new Amazon Redshift subnet group. You must provide a list of one+-- or more subnets in your existing Amazon Virtual Private Cloud (Amazon VPC)+-- when creating Amazon Redshift subnet group. For information about subnet+-- groups, go to Amazon Redshift Cluster Subnet Groups in the Amazon Redshift+-- Cluster Management Guide.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_CreateClusterSubnetGroup.html>+module Network.AWS.Redshift.CreateClusterSubnetGroup+ (+ -- * Request+ CreateClusterSubnetGroup+ -- ** Request constructor+ , createClusterSubnetGroup+ -- ** Request lenses+ , ccsgClusterSubnetGroupName+ , ccsgDescription+ , ccsgSubnetIds+ , ccsgTags++ -- * Response+ , CreateClusterSubnetGroupResponse+ -- ** Response constructor+ , createClusterSubnetGroupResponse+ -- ** Response lenses+ , ccsgrClusterSubnetGroup+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data CreateClusterSubnetGroup = CreateClusterSubnetGroup+ { _ccsgClusterSubnetGroupName :: Text+ , _ccsgDescription :: Text+ , _ccsgSubnetIds :: List "SubnetIdentifier" Text+ , _ccsgTags :: List "Tag" Tag+ } deriving (Eq, Show)++-- | 'CreateClusterSubnetGroup' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ccsgClusterSubnetGroupName' @::@ 'Text'+--+-- * 'ccsgDescription' @::@ 'Text'+--+-- * 'ccsgSubnetIds' @::@ ['Text']+--+-- * 'ccsgTags' @::@ ['Tag']+--+createClusterSubnetGroup :: Text -- ^ 'ccsgClusterSubnetGroupName'+ -> Text -- ^ 'ccsgDescription'+ -> CreateClusterSubnetGroup+createClusterSubnetGroup p1 p2 = CreateClusterSubnetGroup+ { _ccsgClusterSubnetGroupName = p1+ , _ccsgDescription = p2+ , _ccsgSubnetIds = mempty+ , _ccsgTags = mempty+ }++-- | The name for the subnet group. Amazon Redshift stores the value as a+-- lowercase string. Constraints: Must contain no more than 255 alphanumeric+-- characters or hyphens. Must not be "Default". Must be unique for all+-- subnet groups that are created by your AWS account. Example:+-- examplesubnetgroup.+ccsgClusterSubnetGroupName :: Lens' CreateClusterSubnetGroup Text+ccsgClusterSubnetGroupName =+ lens _ccsgClusterSubnetGroupName+ (\s a -> s { _ccsgClusterSubnetGroupName = a })++-- | A description for the subnet group.+ccsgDescription :: Lens' CreateClusterSubnetGroup Text+ccsgDescription = lens _ccsgDescription (\s a -> s { _ccsgDescription = a })++-- | An array of VPC subnet IDs. A maximum of 20 subnets can be modified in a+-- single request.+ccsgSubnetIds :: Lens' CreateClusterSubnetGroup [Text]+ccsgSubnetIds = lens _ccsgSubnetIds (\s a -> s { _ccsgSubnetIds = a }) . _List++-- | A list of tag instances.+ccsgTags :: Lens' CreateClusterSubnetGroup [Tag]+ccsgTags = lens _ccsgTags (\s a -> s { _ccsgTags = a }) . _List++newtype CreateClusterSubnetGroupResponse = CreateClusterSubnetGroupResponse+ { _ccsgrClusterSubnetGroup :: Maybe ClusterSubnetGroup+ } deriving (Eq, Show)++-- | 'CreateClusterSubnetGroupResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ccsgrClusterSubnetGroup' @::@ 'Maybe' 'ClusterSubnetGroup'+--+createClusterSubnetGroupResponse :: CreateClusterSubnetGroupResponse+createClusterSubnetGroupResponse = CreateClusterSubnetGroupResponse+ { _ccsgrClusterSubnetGroup = Nothing+ }++ccsgrClusterSubnetGroup :: Lens' CreateClusterSubnetGroupResponse (Maybe ClusterSubnetGroup)+ccsgrClusterSubnetGroup =+ lens _ccsgrClusterSubnetGroup (\s a -> s { _ccsgrClusterSubnetGroup = a })++instance ToPath CreateClusterSubnetGroup where+ toPath = const "/"++instance ToQuery CreateClusterSubnetGroup where+ toQuery CreateClusterSubnetGroup{..} = mconcat+ [ "ClusterSubnetGroupName" =? _ccsgClusterSubnetGroupName+ , "Description" =? _ccsgDescription+ , "SubnetIds" =? _ccsgSubnetIds+ , "Tags" =? _ccsgTags+ ]++instance ToHeaders CreateClusterSubnetGroup++instance AWSRequest CreateClusterSubnetGroup where+ type Sv CreateClusterSubnetGroup = Redshift+ type Rs CreateClusterSubnetGroup = CreateClusterSubnetGroupResponse++ request = post "CreateClusterSubnetGroup"+ response = xmlResponse++instance FromXML CreateClusterSubnetGroupResponse where+ parseXML = withElement "CreateClusterSubnetGroupResult" $ \x -> CreateClusterSubnetGroupResponse+ <$> x .@? "ClusterSubnetGroup"
+ gen/Network/AWS/Redshift/CreateEventSubscription.hs view
@@ -0,0 +1,219 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.CreateEventSubscription+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Creates an Amazon Redshift event notification subscription. This action+-- requires an ARN (Amazon Resource Name) of an Amazon SNS topic created by+-- either the Amazon Redshift console, the Amazon SNS console, or the Amazon+-- SNS API. To obtain an ARN with Amazon SNS, you must create a topic in+-- Amazon SNS and subscribe to the topic. The ARN is displayed in the SNS+-- console. You can specify the source type, and lists of Amazon Redshift+-- source IDs, event categories, and event severities. Notifications will be+-- sent for all events you want that match those criteria. For example, you+-- can specify source type = cluster, source ID = my-cluster-1 and mycluster2,+-- event categories = Availability, Backup, and severity = ERROR. The+-- subscription will only send notifications for those ERROR events in the+-- Availability and Backup categories for the specified clusters. If you+-- specify both the source type and source IDs, such as source type = cluster+-- and source identifier = my-cluster-1, notifications will be sent for all+-- the cluster events for my-cluster-1. If you specify a source type but do+-- not specify a source identifier, you will receive notice of the events for+-- the objects of that type in your AWS account. If you do not specify either+-- the SourceType nor the SourceIdentifier, you will be notified of events+-- generated from all Amazon Redshift sources belonging to your AWS account.+-- You must specify a source type if you specify a source ID.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_CreateEventSubscription.html>+module Network.AWS.Redshift.CreateEventSubscription+ (+ -- * Request+ CreateEventSubscription+ -- ** Request constructor+ , createEventSubscription+ -- ** Request lenses+ , cesEnabled+ , cesEventCategories+ , cesSeverity+ , cesSnsTopicArn+ , cesSourceIds+ , cesSourceType+ , cesSubscriptionName+ , cesTags++ -- * Response+ , CreateEventSubscriptionResponse+ -- ** Response constructor+ , createEventSubscriptionResponse+ -- ** Response lenses+ , cesrEventSubscription+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data CreateEventSubscription = CreateEventSubscription+ { _cesEnabled :: Maybe Bool+ , _cesEventCategories :: List "EventCategory" Text+ , _cesSeverity :: Maybe Text+ , _cesSnsTopicArn :: Text+ , _cesSourceIds :: List "SourceId" Text+ , _cesSourceType :: Maybe Text+ , _cesSubscriptionName :: Text+ , _cesTags :: List "Tag" Tag+ } deriving (Eq, Show)++-- | 'CreateEventSubscription' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'cesEnabled' @::@ 'Maybe' 'Bool'+--+-- * 'cesEventCategories' @::@ ['Text']+--+-- * 'cesSeverity' @::@ 'Maybe' 'Text'+--+-- * 'cesSnsTopicArn' @::@ 'Text'+--+-- * 'cesSourceIds' @::@ ['Text']+--+-- * 'cesSourceType' @::@ 'Maybe' 'Text'+--+-- * 'cesSubscriptionName' @::@ 'Text'+--+-- * 'cesTags' @::@ ['Tag']+--+createEventSubscription :: Text -- ^ 'cesSubscriptionName'+ -> Text -- ^ 'cesSnsTopicArn'+ -> CreateEventSubscription+createEventSubscription p1 p2 = CreateEventSubscription+ { _cesSubscriptionName = p1+ , _cesSnsTopicArn = p2+ , _cesSourceType = Nothing+ , _cesSourceIds = mempty+ , _cesEventCategories = mempty+ , _cesSeverity = Nothing+ , _cesEnabled = Nothing+ , _cesTags = mempty+ }++-- | A Boolean value; set to true to activate the subscription, set to false+-- to create the subscription but not active it.+cesEnabled :: Lens' CreateEventSubscription (Maybe Bool)+cesEnabled = lens _cesEnabled (\s a -> s { _cesEnabled = a })++-- | Specifies the Amazon Redshift event categories to be published by the+-- event notification subscription. Values: Configuration, Management,+-- Monitoring, Security.+cesEventCategories :: Lens' CreateEventSubscription [Text]+cesEventCategories =+ lens _cesEventCategories (\s a -> s { _cesEventCategories = a })+ . _List++-- | Specifies the Amazon Redshift event severity to be published by the event+-- notification subscription. Values: ERROR, INFO.+cesSeverity :: Lens' CreateEventSubscription (Maybe Text)+cesSeverity = lens _cesSeverity (\s a -> s { _cesSeverity = a })++-- | The Amazon Resource Name (ARN) of the Amazon SNS topic used to transmit+-- the event notifications. The ARN is created by Amazon SNS when you create+-- a topic and subscribe to it.+cesSnsTopicArn :: Lens' CreateEventSubscription Text+cesSnsTopicArn = lens _cesSnsTopicArn (\s a -> s { _cesSnsTopicArn = a })++-- | A list of one or more identifiers of Amazon Redshift source objects. All+-- of the objects must be of the same type as was specified in the source+-- type parameter. The event subscription will return only events generated+-- by the specified objects. If not specified, then events are returned for+-- all objects within the source type specified. Example: my-cluster-1,+-- my-cluster-2 Example: my-snapshot-20131010.+cesSourceIds :: Lens' CreateEventSubscription [Text]+cesSourceIds = lens _cesSourceIds (\s a -> s { _cesSourceIds = a }) . _List++-- | The type of source that will be generating the events. For example, if+-- you want to be notified of events generated by a cluster, you would set+-- this parameter to cluster. If this value is not specified, events are+-- returned for all Amazon Redshift objects in your AWS account. You must+-- specify a source type in order to specify source IDs. Valid values:+-- cluster, cluster-parameter-group, cluster-security-group, and+-- cluster-snapshot.+cesSourceType :: Lens' CreateEventSubscription (Maybe Text)+cesSourceType = lens _cesSourceType (\s a -> s { _cesSourceType = a })++-- | The name of the event subscription to be created. Constraints: Cannot be+-- null, empty, or blank. Must contain from 1 to 255 alphanumeric characters+-- or hyphens. First character must be a letter. Cannot end with a hyphen or+-- contain two consecutive hyphens.+cesSubscriptionName :: Lens' CreateEventSubscription Text+cesSubscriptionName =+ lens _cesSubscriptionName (\s a -> s { _cesSubscriptionName = a })++-- | A list of tag instances.+cesTags :: Lens' CreateEventSubscription [Tag]+cesTags = lens _cesTags (\s a -> s { _cesTags = a }) . _List++newtype CreateEventSubscriptionResponse = CreateEventSubscriptionResponse+ { _cesrEventSubscription :: Maybe EventSubscription+ } deriving (Eq, Show)++-- | 'CreateEventSubscriptionResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'cesrEventSubscription' @::@ 'Maybe' 'EventSubscription'+--+createEventSubscriptionResponse :: CreateEventSubscriptionResponse+createEventSubscriptionResponse = CreateEventSubscriptionResponse+ { _cesrEventSubscription = Nothing+ }++cesrEventSubscription :: Lens' CreateEventSubscriptionResponse (Maybe EventSubscription)+cesrEventSubscription =+ lens _cesrEventSubscription (\s a -> s { _cesrEventSubscription = a })++instance ToPath CreateEventSubscription where+ toPath = const "/"++instance ToQuery CreateEventSubscription where+ toQuery CreateEventSubscription{..} = mconcat+ [ "Enabled" =? _cesEnabled+ , "EventCategories" =? _cesEventCategories+ , "Severity" =? _cesSeverity+ , "SnsTopicArn" =? _cesSnsTopicArn+ , "SourceIds" =? _cesSourceIds+ , "SourceType" =? _cesSourceType+ , "SubscriptionName" =? _cesSubscriptionName+ , "Tags" =? _cesTags+ ]++instance ToHeaders CreateEventSubscription++instance AWSRequest CreateEventSubscription where+ type Sv CreateEventSubscription = Redshift+ type Rs CreateEventSubscription = CreateEventSubscriptionResponse++ request = post "CreateEventSubscription"+ response = xmlResponse++instance FromXML CreateEventSubscriptionResponse where+ parseXML = withElement "CreateEventSubscriptionResult" $ \x -> CreateEventSubscriptionResponse+ <$> x .@? "EventSubscription"
+ gen/Network/AWS/Redshift/CreateHsmClientCertificate.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.CreateHsmClientCertificate+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Creates an HSM client certificate that an Amazon Redshift cluster will use+-- to connect to the client's HSM in order to store and retrieve the keys used+-- to encrypt the cluster databases. The command returns a public key, which+-- you must store in the HSM. In addition to creating the HSM certificate, you+-- must create an Amazon Redshift HSM configuration that provides a cluster+-- the information needed to store and use encryption keys in the HSM. For+-- more information, go to Hardware Security Modules in the Amazon Redshift+-- Cluster Management Guide.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_CreateHsmClientCertificate.html>+module Network.AWS.Redshift.CreateHsmClientCertificate+ (+ -- * Request+ CreateHsmClientCertificate+ -- ** Request constructor+ , createHsmClientCertificate+ -- ** Request lenses+ , chccHsmClientCertificateIdentifier+ , chccTags++ -- * Response+ , CreateHsmClientCertificateResponse+ -- ** Response constructor+ , createHsmClientCertificateResponse+ -- ** Response lenses+ , chccrHsmClientCertificate+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data CreateHsmClientCertificate = CreateHsmClientCertificate+ { _chccHsmClientCertificateIdentifier :: Text+ , _chccTags :: List "Tag" Tag+ } deriving (Eq, Show)++-- | 'CreateHsmClientCertificate' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'chccHsmClientCertificateIdentifier' @::@ 'Text'+--+-- * 'chccTags' @::@ ['Tag']+--+createHsmClientCertificate :: Text -- ^ 'chccHsmClientCertificateIdentifier'+ -> CreateHsmClientCertificate+createHsmClientCertificate p1 = CreateHsmClientCertificate+ { _chccHsmClientCertificateIdentifier = p1+ , _chccTags = mempty+ }++-- | The identifier to be assigned to the new HSM client certificate that the+-- cluster will use to connect to the HSM to use the database encryption+-- keys.+chccHsmClientCertificateIdentifier :: Lens' CreateHsmClientCertificate Text+chccHsmClientCertificateIdentifier =+ lens _chccHsmClientCertificateIdentifier+ (\s a -> s { _chccHsmClientCertificateIdentifier = a })++-- | A list of tag instances.+chccTags :: Lens' CreateHsmClientCertificate [Tag]+chccTags = lens _chccTags (\s a -> s { _chccTags = a }) . _List++newtype CreateHsmClientCertificateResponse = CreateHsmClientCertificateResponse+ { _chccrHsmClientCertificate :: Maybe HsmClientCertificate+ } deriving (Eq, Show)++-- | 'CreateHsmClientCertificateResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'chccrHsmClientCertificate' @::@ 'Maybe' 'HsmClientCertificate'+--+createHsmClientCertificateResponse :: CreateHsmClientCertificateResponse+createHsmClientCertificateResponse = CreateHsmClientCertificateResponse+ { _chccrHsmClientCertificate = Nothing+ }++chccrHsmClientCertificate :: Lens' CreateHsmClientCertificateResponse (Maybe HsmClientCertificate)+chccrHsmClientCertificate =+ lens _chccrHsmClientCertificate+ (\s a -> s { _chccrHsmClientCertificate = a })++instance ToPath CreateHsmClientCertificate where+ toPath = const "/"++instance ToQuery CreateHsmClientCertificate where+ toQuery CreateHsmClientCertificate{..} = mconcat+ [ "HsmClientCertificateIdentifier" =? _chccHsmClientCertificateIdentifier+ , "Tags" =? _chccTags+ ]++instance ToHeaders CreateHsmClientCertificate++instance AWSRequest CreateHsmClientCertificate where+ type Sv CreateHsmClientCertificate = Redshift+ type Rs CreateHsmClientCertificate = CreateHsmClientCertificateResponse++ request = post "CreateHsmClientCertificate"+ response = xmlResponse++instance FromXML CreateHsmClientCertificateResponse where+ parseXML = withElement "CreateHsmClientCertificateResult" $ \x -> CreateHsmClientCertificateResponse+ <$> x .@? "HsmClientCertificate"
+ gen/Network/AWS/Redshift/CreateHsmConfiguration.hs view
@@ -0,0 +1,188 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.CreateHsmConfiguration+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Creates an HSM configuration that contains the information required by an+-- Amazon Redshift cluster to store and use database encryption keys in a+-- Hardware Security Module (HSM). After creating the HSM configuration, you+-- can specify it as a parameter when creating a cluster. The cluster will+-- then store its encryption keys in the HSM. In addition to creating an HSM+-- configuration, you must also create an HSM client certificate. For more+-- information, go to Hardware Security Modules in the Amazon Redshift Cluster+-- Management Guide.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_CreateHsmConfiguration.html>+module Network.AWS.Redshift.CreateHsmConfiguration+ (+ -- * Request+ CreateHsmConfiguration+ -- ** Request constructor+ , createHsmConfiguration+ -- ** Request lenses+ , chcDescription+ , chcHsmConfigurationIdentifier+ , chcHsmIpAddress+ , chcHsmPartitionName+ , chcHsmPartitionPassword+ , chcHsmServerPublicCertificate+ , chcTags++ -- * Response+ , CreateHsmConfigurationResponse+ -- ** Response constructor+ , createHsmConfigurationResponse+ -- ** Response lenses+ , chcrHsmConfiguration+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data CreateHsmConfiguration = CreateHsmConfiguration+ { _chcDescription :: Text+ , _chcHsmConfigurationIdentifier :: Text+ , _chcHsmIpAddress :: Text+ , _chcHsmPartitionName :: Text+ , _chcHsmPartitionPassword :: Text+ , _chcHsmServerPublicCertificate :: Text+ , _chcTags :: List "Tag" Tag+ } deriving (Eq, Show)++-- | 'CreateHsmConfiguration' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'chcDescription' @::@ 'Text'+--+-- * 'chcHsmConfigurationIdentifier' @::@ 'Text'+--+-- * 'chcHsmIpAddress' @::@ 'Text'+--+-- * 'chcHsmPartitionName' @::@ 'Text'+--+-- * 'chcHsmPartitionPassword' @::@ 'Text'+--+-- * 'chcHsmServerPublicCertificate' @::@ 'Text'+--+-- * 'chcTags' @::@ ['Tag']+--+createHsmConfiguration :: Text -- ^ 'chcHsmConfigurationIdentifier'+ -> Text -- ^ 'chcDescription'+ -> Text -- ^ 'chcHsmIpAddress'+ -> Text -- ^ 'chcHsmPartitionName'+ -> Text -- ^ 'chcHsmPartitionPassword'+ -> Text -- ^ 'chcHsmServerPublicCertificate'+ -> CreateHsmConfiguration+createHsmConfiguration p1 p2 p3 p4 p5 p6 = CreateHsmConfiguration+ { _chcHsmConfigurationIdentifier = p1+ , _chcDescription = p2+ , _chcHsmIpAddress = p3+ , _chcHsmPartitionName = p4+ , _chcHsmPartitionPassword = p5+ , _chcHsmServerPublicCertificate = p6+ , _chcTags = mempty+ }++-- | A text description of the HSM configuration to be created.+chcDescription :: Lens' CreateHsmConfiguration Text+chcDescription = lens _chcDescription (\s a -> s { _chcDescription = a })++-- | The identifier to be assigned to the new Amazon Redshift HSM+-- configuration.+chcHsmConfigurationIdentifier :: Lens' CreateHsmConfiguration Text+chcHsmConfigurationIdentifier =+ lens _chcHsmConfigurationIdentifier+ (\s a -> s { _chcHsmConfigurationIdentifier = a })++-- | The IP address that the Amazon Redshift cluster must use to access the+-- HSM.+chcHsmIpAddress :: Lens' CreateHsmConfiguration Text+chcHsmIpAddress = lens _chcHsmIpAddress (\s a -> s { _chcHsmIpAddress = a })++-- | The name of the partition in the HSM where the Amazon Redshift clusters+-- will store their database encryption keys.+chcHsmPartitionName :: Lens' CreateHsmConfiguration Text+chcHsmPartitionName =+ lens _chcHsmPartitionName (\s a -> s { _chcHsmPartitionName = a })++-- | The password required to access the HSM partition.+chcHsmPartitionPassword :: Lens' CreateHsmConfiguration Text+chcHsmPartitionPassword =+ lens _chcHsmPartitionPassword (\s a -> s { _chcHsmPartitionPassword = a })++-- | The HSMs public certificate file. When using Cloud HSM, the file name is+-- server.pem.+chcHsmServerPublicCertificate :: Lens' CreateHsmConfiguration Text+chcHsmServerPublicCertificate =+ lens _chcHsmServerPublicCertificate+ (\s a -> s { _chcHsmServerPublicCertificate = a })++-- | A list of tag instances.+chcTags :: Lens' CreateHsmConfiguration [Tag]+chcTags = lens _chcTags (\s a -> s { _chcTags = a }) . _List++newtype CreateHsmConfigurationResponse = CreateHsmConfigurationResponse+ { _chcrHsmConfiguration :: Maybe HsmConfiguration+ } deriving (Eq, Show)++-- | 'CreateHsmConfigurationResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'chcrHsmConfiguration' @::@ 'Maybe' 'HsmConfiguration'+--+createHsmConfigurationResponse :: CreateHsmConfigurationResponse+createHsmConfigurationResponse = CreateHsmConfigurationResponse+ { _chcrHsmConfiguration = Nothing+ }++chcrHsmConfiguration :: Lens' CreateHsmConfigurationResponse (Maybe HsmConfiguration)+chcrHsmConfiguration =+ lens _chcrHsmConfiguration (\s a -> s { _chcrHsmConfiguration = a })++instance ToPath CreateHsmConfiguration where+ toPath = const "/"++instance ToQuery CreateHsmConfiguration where+ toQuery CreateHsmConfiguration{..} = mconcat+ [ "Description" =? _chcDescription+ , "HsmConfigurationIdentifier" =? _chcHsmConfigurationIdentifier+ , "HsmIpAddress" =? _chcHsmIpAddress+ , "HsmPartitionName" =? _chcHsmPartitionName+ , "HsmPartitionPassword" =? _chcHsmPartitionPassword+ , "HsmServerPublicCertificate" =? _chcHsmServerPublicCertificate+ , "Tags" =? _chcTags+ ]++instance ToHeaders CreateHsmConfiguration++instance AWSRequest CreateHsmConfiguration where+ type Sv CreateHsmConfiguration = Redshift+ type Rs CreateHsmConfiguration = CreateHsmConfigurationResponse++ request = post "CreateHsmConfiguration"+ response = xmlResponse++instance FromXML CreateHsmConfigurationResponse where+ parseXML = withElement "CreateHsmConfigurationResult" $ \x -> CreateHsmConfigurationResponse+ <$> x .@? "HsmConfiguration"
+ gen/Network/AWS/Redshift/CreateTags.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.CreateTags+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Adds one or more tags to a specified resource. A resource can have up to 10+-- tags. If you try to create more than 10 tags for a resource, you will+-- receive an error and the attempt will fail. If you specify a key that+-- already exists for the resource, the value for that key will be updated+-- with the new value.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_CreateTags.html>+module Network.AWS.Redshift.CreateTags+ (+ -- * Request+ CreateTags+ -- ** Request constructor+ , createTags+ -- ** Request lenses+ , ctResourceName+ , ctTags++ -- * Response+ , CreateTagsResponse+ -- ** Response constructor+ , createTagsResponse+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data CreateTags = CreateTags+ { _ctResourceName :: Text+ , _ctTags :: List "Tag" Tag+ } deriving (Eq, Show)++-- | 'CreateTags' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ctResourceName' @::@ 'Text'+--+-- * 'ctTags' @::@ ['Tag']+--+createTags :: Text -- ^ 'ctResourceName'+ -> CreateTags+createTags p1 = CreateTags+ { _ctResourceName = p1+ , _ctTags = mempty+ }++-- | The Amazon Resource Name (ARN) to which you want to add the tag or tags.+-- For example, arn:aws:redshift:us-east-1:123456789:cluster:t1.+ctResourceName :: Lens' CreateTags Text+ctResourceName = lens _ctResourceName (\s a -> s { _ctResourceName = a })++-- | One or more name/value pairs to add as tags to the specified resource.+-- Each tag name is passed in with the parameter tag-key and the+-- corresponding value is passed in with the parameter tag-value. The+-- tag-key and tag-value parameters are separated by a colon (:). Separate+-- multiple tags with a space. For example, --tags+-- "tag-key"="owner":"tag-value"="admin"+-- "tag-key"="environment":"tag-value"="test"+-- "tag-key"="version":"tag-value"="1.0".+ctTags :: Lens' CreateTags [Tag]+ctTags = lens _ctTags (\s a -> s { _ctTags = a }) . _List++data CreateTagsResponse = CreateTagsResponse+ deriving (Eq, Ord, Show, Generic)++-- | 'CreateTagsResponse' constructor.+createTagsResponse :: CreateTagsResponse+createTagsResponse = CreateTagsResponse++instance ToPath CreateTags where+ toPath = const "/"++instance ToQuery CreateTags where+ toQuery CreateTags{..} = mconcat+ [ "ResourceName" =? _ctResourceName+ , "Tags" =? _ctTags+ ]++instance ToHeaders CreateTags++instance AWSRequest CreateTags where+ type Sv CreateTags = Redshift+ type Rs CreateTags = CreateTagsResponse++ request = post "CreateTags"+ response = nullResponse CreateTagsResponse
+ gen/Network/AWS/Redshift/DeleteCluster.hs view
@@ -0,0 +1,154 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DeleteCluster+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Deletes a previously provisioned cluster. A successful response from the+-- web service indicates that the request was received correctly. Use+-- DescribeClusters to monitor the status of the deletion. The delete+-- operation cannot be canceled or reverted once submitted. For more+-- information about managing clusters, go to Amazon Redshift Clusters in the+-- Amazon Redshift Cluster Management Guide . If you want to shut down the+-- cluster and retain it for future use, set SkipFinalClusterSnapshot to false+-- and specify a name for FinalClusterSnapshotIdentifier. You can later+-- restore this snapshot to resume using the cluster. If a final cluster+-- snapshot is requested, the status of the cluster will be "final-snapshot"+-- while the snapshot is being taken, then it's "deleting" once Amazon+-- Redshift begins deleting the cluster. For more information about managing+-- clusters, go to Amazon Redshift Clusters in the Amazon Redshift Cluster+-- Management Guide .+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DeleteCluster.html>+module Network.AWS.Redshift.DeleteCluster+ (+ -- * Request+ DeleteCluster+ -- ** Request constructor+ , deleteCluster+ -- ** Request lenses+ , dc1ClusterIdentifier+ , dc1FinalClusterSnapshotIdentifier+ , dc1SkipFinalClusterSnapshot++ -- * Response+ , DeleteClusterResponse+ -- ** Response constructor+ , deleteClusterResponse+ -- ** Response lenses+ , dcrCluster+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data DeleteCluster = DeleteCluster+ { _dc1ClusterIdentifier :: Text+ , _dc1FinalClusterSnapshotIdentifier :: Maybe Text+ , _dc1SkipFinalClusterSnapshot :: Maybe Bool+ } deriving (Eq, Ord, Show)++-- | 'DeleteCluster' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dc1ClusterIdentifier' @::@ 'Text'+--+-- * 'dc1FinalClusterSnapshotIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'dc1SkipFinalClusterSnapshot' @::@ 'Maybe' 'Bool'+--+deleteCluster :: Text -- ^ 'dc1ClusterIdentifier'+ -> DeleteCluster+deleteCluster p1 = DeleteCluster+ { _dc1ClusterIdentifier = p1+ , _dc1SkipFinalClusterSnapshot = Nothing+ , _dc1FinalClusterSnapshotIdentifier = Nothing+ }++-- | The identifier of the cluster to be deleted. Constraints: Must contain+-- lowercase characters. Must contain from 1 to 63 alphanumeric characters+-- or hyphens. First character must be a letter. Cannot end with a hyphen or+-- contain two consecutive hyphens.+dc1ClusterIdentifier :: Lens' DeleteCluster Text+dc1ClusterIdentifier =+ lens _dc1ClusterIdentifier (\s a -> s { _dc1ClusterIdentifier = a })++-- | The identifier of the final snapshot that is to be created immediately+-- before deleting the cluster. If this parameter is provided,+-- SkipFinalClusterSnapshot must be false. Constraints: Must be 1 to 255+-- alphanumeric characters. First character must be a letter. Cannot end+-- with a hyphen or contain two consecutive hyphens.+dc1FinalClusterSnapshotIdentifier :: Lens' DeleteCluster (Maybe Text)+dc1FinalClusterSnapshotIdentifier =+ lens _dc1FinalClusterSnapshotIdentifier+ (\s a -> s { _dc1FinalClusterSnapshotIdentifier = a })++-- | Determines whether a final snapshot of the cluster is created before+-- Amazon Redshift deletes the cluster. If true, a final cluster snapshot is+-- not created. If false, a final cluster snapshot is created before the+-- cluster is deleted. The FinalClusterSnapshotIdentifier parameter must be+-- specified if SkipFinalClusterSnapshot is false. Default: false.+dc1SkipFinalClusterSnapshot :: Lens' DeleteCluster (Maybe Bool)+dc1SkipFinalClusterSnapshot =+ lens _dc1SkipFinalClusterSnapshot+ (\s a -> s { _dc1SkipFinalClusterSnapshot = a })++newtype DeleteClusterResponse = DeleteClusterResponse+ { _dcrCluster :: Maybe Cluster+ } deriving (Eq, Show)++-- | 'DeleteClusterResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcrCluster' @::@ 'Maybe' 'Cluster'+--+deleteClusterResponse :: DeleteClusterResponse+deleteClusterResponse = DeleteClusterResponse+ { _dcrCluster = Nothing+ }++dcrCluster :: Lens' DeleteClusterResponse (Maybe Cluster)+dcrCluster = lens _dcrCluster (\s a -> s { _dcrCluster = a })++instance ToPath DeleteCluster where+ toPath = const "/"++instance ToQuery DeleteCluster where+ toQuery DeleteCluster{..} = mconcat+ [ "ClusterIdentifier" =? _dc1ClusterIdentifier+ , "FinalClusterSnapshotIdentifier" =? _dc1FinalClusterSnapshotIdentifier+ , "SkipFinalClusterSnapshot" =? _dc1SkipFinalClusterSnapshot+ ]++instance ToHeaders DeleteCluster++instance AWSRequest DeleteCluster where+ type Sv DeleteCluster = Redshift+ type Rs DeleteCluster = DeleteClusterResponse++ request = post "DeleteCluster"+ response = xmlResponse++instance FromXML DeleteClusterResponse where+ parseXML = withElement "DeleteClusterResult" $ \x -> DeleteClusterResponse+ <$> x .@? "Cluster"
+ gen/Network/AWS/Redshift/DeleteClusterParameterGroup.hs view
@@ -0,0 +1,92 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DeleteClusterParameterGroup+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Deletes a specified Amazon Redshift parameter group. You cannot delete a+-- parameter group if it is associated with a cluster.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DeleteClusterParameterGroup.html>+module Network.AWS.Redshift.DeleteClusterParameterGroup+ (+ -- * Request+ DeleteClusterParameterGroup+ -- ** Request constructor+ , deleteClusterParameterGroup+ -- ** Request lenses+ , dcpg1ParameterGroupName++ -- * Response+ , DeleteClusterParameterGroupResponse+ -- ** Response constructor+ , deleteClusterParameterGroupResponse+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++newtype DeleteClusterParameterGroup = DeleteClusterParameterGroup+ { _dcpg1ParameterGroupName :: Text+ } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DeleteClusterParameterGroup' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcpg1ParameterGroupName' @::@ 'Text'+--+deleteClusterParameterGroup :: Text -- ^ 'dcpg1ParameterGroupName'+ -> DeleteClusterParameterGroup+deleteClusterParameterGroup p1 = DeleteClusterParameterGroup+ { _dcpg1ParameterGroupName = p1+ }++-- | The name of the parameter group to be deleted. Constraints: Must be the+-- name of an existing cluster parameter group. Cannot delete a default+-- cluster parameter group.+dcpg1ParameterGroupName :: Lens' DeleteClusterParameterGroup Text+dcpg1ParameterGroupName =+ lens _dcpg1ParameterGroupName (\s a -> s { _dcpg1ParameterGroupName = a })++data DeleteClusterParameterGroupResponse = DeleteClusterParameterGroupResponse+ deriving (Eq, Ord, Show, Generic)++-- | 'DeleteClusterParameterGroupResponse' constructor.+deleteClusterParameterGroupResponse :: DeleteClusterParameterGroupResponse+deleteClusterParameterGroupResponse = DeleteClusterParameterGroupResponse++instance ToPath DeleteClusterParameterGroup where+ toPath = const "/"++instance ToQuery DeleteClusterParameterGroup where+ toQuery DeleteClusterParameterGroup{..} = mconcat+ [ "ParameterGroupName" =? _dcpg1ParameterGroupName+ ]++instance ToHeaders DeleteClusterParameterGroup++instance AWSRequest DeleteClusterParameterGroup where+ type Sv DeleteClusterParameterGroup = Redshift+ type Rs DeleteClusterParameterGroup = DeleteClusterParameterGroupResponse++ request = post "DeleteClusterParameterGroup"+ response = nullResponse DeleteClusterParameterGroupResponse
+ gen/Network/AWS/Redshift/DeleteClusterSecurityGroup.hs view
@@ -0,0 +1,94 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DeleteClusterSecurityGroup+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Deletes an Amazon Redshift security group. You cannot delete a security+-- group that is associated with any clusters. You cannot delete the default+-- security group. For information about managing security groups, go to+-- Amazon Redshift Cluster Security Groups in the Amazon Redshift Cluster+-- Management Guide.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DeleteClusterSecurityGroup.html>+module Network.AWS.Redshift.DeleteClusterSecurityGroup+ (+ -- * Request+ DeleteClusterSecurityGroup+ -- ** Request constructor+ , deleteClusterSecurityGroup+ -- ** Request lenses+ , dcsg1ClusterSecurityGroupName++ -- * Response+ , DeleteClusterSecurityGroupResponse+ -- ** Response constructor+ , deleteClusterSecurityGroupResponse+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++newtype DeleteClusterSecurityGroup = DeleteClusterSecurityGroup+ { _dcsg1ClusterSecurityGroupName :: Text+ } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DeleteClusterSecurityGroup' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcsg1ClusterSecurityGroupName' @::@ 'Text'+--+deleteClusterSecurityGroup :: Text -- ^ 'dcsg1ClusterSecurityGroupName'+ -> DeleteClusterSecurityGroup+deleteClusterSecurityGroup p1 = DeleteClusterSecurityGroup+ { _dcsg1ClusterSecurityGroupName = p1+ }++-- | The name of the cluster security group to be deleted.+dcsg1ClusterSecurityGroupName :: Lens' DeleteClusterSecurityGroup Text+dcsg1ClusterSecurityGroupName =+ lens _dcsg1ClusterSecurityGroupName+ (\s a -> s { _dcsg1ClusterSecurityGroupName = a })++data DeleteClusterSecurityGroupResponse = DeleteClusterSecurityGroupResponse+ deriving (Eq, Ord, Show, Generic)++-- | 'DeleteClusterSecurityGroupResponse' constructor.+deleteClusterSecurityGroupResponse :: DeleteClusterSecurityGroupResponse+deleteClusterSecurityGroupResponse = DeleteClusterSecurityGroupResponse++instance ToPath DeleteClusterSecurityGroup where+ toPath = const "/"++instance ToQuery DeleteClusterSecurityGroup where+ toQuery DeleteClusterSecurityGroup{..} = mconcat+ [ "ClusterSecurityGroupName" =? _dcsg1ClusterSecurityGroupName+ ]++instance ToHeaders DeleteClusterSecurityGroup++instance AWSRequest DeleteClusterSecurityGroup where+ type Sv DeleteClusterSecurityGroup = Redshift+ type Rs DeleteClusterSecurityGroup = DeleteClusterSecurityGroupResponse++ request = post "DeleteClusterSecurityGroup"+ response = nullResponse DeleteClusterSecurityGroupResponse
+ gen/Network/AWS/Redshift/DeleteClusterSnapshot.hs view
@@ -0,0 +1,128 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DeleteClusterSnapshot+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Deletes the specified manual snapshot. The snapshot must be in the+-- available state, with no other users authorized to access the snapshot.+-- Unlike automated snapshots, manual snapshots are retained even after you+-- delete your cluster. Amazon Redshift does not delete your manual snapshots.+-- You must delete manual snapshot explicitly to avoid getting charged. If+-- other accounts are authorized to access the snapshot, you must revoke all+-- of the authorizations before you can delete the snapshot.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DeleteClusterSnapshot.html>+module Network.AWS.Redshift.DeleteClusterSnapshot+ (+ -- * Request+ DeleteClusterSnapshot+ -- ** Request constructor+ , deleteClusterSnapshot+ -- ** Request lenses+ , dcsSnapshotClusterIdentifier+ , dcsSnapshotIdentifier++ -- * Response+ , DeleteClusterSnapshotResponse+ -- ** Response constructor+ , deleteClusterSnapshotResponse+ -- ** Response lenses+ , dcsrSnapshot+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data DeleteClusterSnapshot = DeleteClusterSnapshot+ { _dcsSnapshotClusterIdentifier :: Maybe Text+ , _dcsSnapshotIdentifier :: Text+ } deriving (Eq, Ord, Show)++-- | 'DeleteClusterSnapshot' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcsSnapshotClusterIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'dcsSnapshotIdentifier' @::@ 'Text'+--+deleteClusterSnapshot :: Text -- ^ 'dcsSnapshotIdentifier'+ -> DeleteClusterSnapshot+deleteClusterSnapshot p1 = DeleteClusterSnapshot+ { _dcsSnapshotIdentifier = p1+ , _dcsSnapshotClusterIdentifier = Nothing+ }++-- | The unique identifier of the cluster the snapshot was created from. This+-- parameter is required if your IAM user has a policy containing a snapshot+-- resource element that specifies anything other than * for the cluster+-- name. Constraints: Must be the name of valid cluster.+dcsSnapshotClusterIdentifier :: Lens' DeleteClusterSnapshot (Maybe Text)+dcsSnapshotClusterIdentifier =+ lens _dcsSnapshotClusterIdentifier+ (\s a -> s { _dcsSnapshotClusterIdentifier = a })++-- | The unique identifier of the manual snapshot to be deleted. Constraints:+-- Must be the name of an existing snapshot that is in the available state.+dcsSnapshotIdentifier :: Lens' DeleteClusterSnapshot Text+dcsSnapshotIdentifier =+ lens _dcsSnapshotIdentifier (\s a -> s { _dcsSnapshotIdentifier = a })++newtype DeleteClusterSnapshotResponse = DeleteClusterSnapshotResponse+ { _dcsrSnapshot :: Maybe Snapshot+ } deriving (Eq, Show)++-- | 'DeleteClusterSnapshotResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcsrSnapshot' @::@ 'Maybe' 'Snapshot'+--+deleteClusterSnapshotResponse :: DeleteClusterSnapshotResponse+deleteClusterSnapshotResponse = DeleteClusterSnapshotResponse+ { _dcsrSnapshot = Nothing+ }++dcsrSnapshot :: Lens' DeleteClusterSnapshotResponse (Maybe Snapshot)+dcsrSnapshot = lens _dcsrSnapshot (\s a -> s { _dcsrSnapshot = a })++instance ToPath DeleteClusterSnapshot where+ toPath = const "/"++instance ToQuery DeleteClusterSnapshot where+ toQuery DeleteClusterSnapshot{..} = mconcat+ [ "SnapshotClusterIdentifier" =? _dcsSnapshotClusterIdentifier+ , "SnapshotIdentifier" =? _dcsSnapshotIdentifier+ ]++instance ToHeaders DeleteClusterSnapshot++instance AWSRequest DeleteClusterSnapshot where+ type Sv DeleteClusterSnapshot = Redshift+ type Rs DeleteClusterSnapshot = DeleteClusterSnapshotResponse++ request = post "DeleteClusterSnapshot"+ response = xmlResponse++instance FromXML DeleteClusterSnapshotResponse where+ parseXML = withElement "DeleteClusterSnapshotResult" $ \x -> DeleteClusterSnapshotResponse+ <$> x .@? "Snapshot"
+ gen/Network/AWS/Redshift/DeleteClusterSubnetGroup.hs view
@@ -0,0 +1,90 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DeleteClusterSubnetGroup+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Deletes the specified cluster subnet group.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DeleteClusterSubnetGroup.html>+module Network.AWS.Redshift.DeleteClusterSubnetGroup+ (+ -- * Request+ DeleteClusterSubnetGroup+ -- ** Request constructor+ , deleteClusterSubnetGroup+ -- ** Request lenses+ , dcsgClusterSubnetGroupName++ -- * Response+ , DeleteClusterSubnetGroupResponse+ -- ** Response constructor+ , deleteClusterSubnetGroupResponse+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++newtype DeleteClusterSubnetGroup = DeleteClusterSubnetGroup+ { _dcsgClusterSubnetGroupName :: Text+ } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DeleteClusterSubnetGroup' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcsgClusterSubnetGroupName' @::@ 'Text'+--+deleteClusterSubnetGroup :: Text -- ^ 'dcsgClusterSubnetGroupName'+ -> DeleteClusterSubnetGroup+deleteClusterSubnetGroup p1 = DeleteClusterSubnetGroup+ { _dcsgClusterSubnetGroupName = p1+ }++-- | The name of the cluster subnet group name to be deleted.+dcsgClusterSubnetGroupName :: Lens' DeleteClusterSubnetGroup Text+dcsgClusterSubnetGroupName =+ lens _dcsgClusterSubnetGroupName+ (\s a -> s { _dcsgClusterSubnetGroupName = a })++data DeleteClusterSubnetGroupResponse = DeleteClusterSubnetGroupResponse+ deriving (Eq, Ord, Show, Generic)++-- | 'DeleteClusterSubnetGroupResponse' constructor.+deleteClusterSubnetGroupResponse :: DeleteClusterSubnetGroupResponse+deleteClusterSubnetGroupResponse = DeleteClusterSubnetGroupResponse++instance ToPath DeleteClusterSubnetGroup where+ toPath = const "/"++instance ToQuery DeleteClusterSubnetGroup where+ toQuery DeleteClusterSubnetGroup{..} = mconcat+ [ "ClusterSubnetGroupName" =? _dcsgClusterSubnetGroupName+ ]++instance ToHeaders DeleteClusterSubnetGroup++instance AWSRequest DeleteClusterSubnetGroup where+ type Sv DeleteClusterSubnetGroup = Redshift+ type Rs DeleteClusterSubnetGroup = DeleteClusterSubnetGroupResponse++ request = post "DeleteClusterSubnetGroup"+ response = nullResponse DeleteClusterSubnetGroupResponse
+ gen/Network/AWS/Redshift/DeleteEventSubscription.hs view
@@ -0,0 +1,90 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DeleteEventSubscription+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Deletes an Amazon Redshift event notification subscription.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DeleteEventSubscription.html>+module Network.AWS.Redshift.DeleteEventSubscription+ (+ -- * Request+ DeleteEventSubscription+ -- ** Request constructor+ , deleteEventSubscription+ -- ** Request lenses+ , desSubscriptionName++ -- * Response+ , DeleteEventSubscriptionResponse+ -- ** Response constructor+ , deleteEventSubscriptionResponse+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++newtype DeleteEventSubscription = DeleteEventSubscription+ { _desSubscriptionName :: Text+ } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DeleteEventSubscription' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'desSubscriptionName' @::@ 'Text'+--+deleteEventSubscription :: Text -- ^ 'desSubscriptionName'+ -> DeleteEventSubscription+deleteEventSubscription p1 = DeleteEventSubscription+ { _desSubscriptionName = p1+ }++-- | The name of the Amazon Redshift event notification subscription to be+-- deleted.+desSubscriptionName :: Lens' DeleteEventSubscription Text+desSubscriptionName =+ lens _desSubscriptionName (\s a -> s { _desSubscriptionName = a })++data DeleteEventSubscriptionResponse = DeleteEventSubscriptionResponse+ deriving (Eq, Ord, Show, Generic)++-- | 'DeleteEventSubscriptionResponse' constructor.+deleteEventSubscriptionResponse :: DeleteEventSubscriptionResponse+deleteEventSubscriptionResponse = DeleteEventSubscriptionResponse++instance ToPath DeleteEventSubscription where+ toPath = const "/"++instance ToQuery DeleteEventSubscription where+ toQuery DeleteEventSubscription{..} = mconcat+ [ "SubscriptionName" =? _desSubscriptionName+ ]++instance ToHeaders DeleteEventSubscription++instance AWSRequest DeleteEventSubscription where+ type Sv DeleteEventSubscription = Redshift+ type Rs DeleteEventSubscription = DeleteEventSubscriptionResponse++ request = post "DeleteEventSubscription"+ response = nullResponse DeleteEventSubscriptionResponse
+ gen/Network/AWS/Redshift/DeleteHsmClientCertificate.hs view
@@ -0,0 +1,90 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DeleteHsmClientCertificate+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Deletes the specified HSM client certificate.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DeleteHsmClientCertificate.html>+module Network.AWS.Redshift.DeleteHsmClientCertificate+ (+ -- * Request+ DeleteHsmClientCertificate+ -- ** Request constructor+ , deleteHsmClientCertificate+ -- ** Request lenses+ , dhcc1HsmClientCertificateIdentifier++ -- * Response+ , DeleteHsmClientCertificateResponse+ -- ** Response constructor+ , deleteHsmClientCertificateResponse+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++newtype DeleteHsmClientCertificate = DeleteHsmClientCertificate+ { _dhcc1HsmClientCertificateIdentifier :: Text+ } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DeleteHsmClientCertificate' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dhcc1HsmClientCertificateIdentifier' @::@ 'Text'+--+deleteHsmClientCertificate :: Text -- ^ 'dhcc1HsmClientCertificateIdentifier'+ -> DeleteHsmClientCertificate+deleteHsmClientCertificate p1 = DeleteHsmClientCertificate+ { _dhcc1HsmClientCertificateIdentifier = p1+ }++-- | The identifier of the HSM client certificate to be deleted.+dhcc1HsmClientCertificateIdentifier :: Lens' DeleteHsmClientCertificate Text+dhcc1HsmClientCertificateIdentifier =+ lens _dhcc1HsmClientCertificateIdentifier+ (\s a -> s { _dhcc1HsmClientCertificateIdentifier = a })++data DeleteHsmClientCertificateResponse = DeleteHsmClientCertificateResponse+ deriving (Eq, Ord, Show, Generic)++-- | 'DeleteHsmClientCertificateResponse' constructor.+deleteHsmClientCertificateResponse :: DeleteHsmClientCertificateResponse+deleteHsmClientCertificateResponse = DeleteHsmClientCertificateResponse++instance ToPath DeleteHsmClientCertificate where+ toPath = const "/"++instance ToQuery DeleteHsmClientCertificate where+ toQuery DeleteHsmClientCertificate{..} = mconcat+ [ "HsmClientCertificateIdentifier" =? _dhcc1HsmClientCertificateIdentifier+ ]++instance ToHeaders DeleteHsmClientCertificate++instance AWSRequest DeleteHsmClientCertificate where+ type Sv DeleteHsmClientCertificate = Redshift+ type Rs DeleteHsmClientCertificate = DeleteHsmClientCertificateResponse++ request = post "DeleteHsmClientCertificate"+ response = nullResponse DeleteHsmClientCertificateResponse
+ gen/Network/AWS/Redshift/DeleteHsmConfiguration.hs view
@@ -0,0 +1,90 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DeleteHsmConfiguration+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Deletes the specified Amazon Redshift HSM configuration.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DeleteHsmConfiguration.html>+module Network.AWS.Redshift.DeleteHsmConfiguration+ (+ -- * Request+ DeleteHsmConfiguration+ -- ** Request constructor+ , deleteHsmConfiguration+ -- ** Request lenses+ , dhcHsmConfigurationIdentifier++ -- * Response+ , DeleteHsmConfigurationResponse+ -- ** Response constructor+ , deleteHsmConfigurationResponse+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++newtype DeleteHsmConfiguration = DeleteHsmConfiguration+ { _dhcHsmConfigurationIdentifier :: Text+ } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DeleteHsmConfiguration' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dhcHsmConfigurationIdentifier' @::@ 'Text'+--+deleteHsmConfiguration :: Text -- ^ 'dhcHsmConfigurationIdentifier'+ -> DeleteHsmConfiguration+deleteHsmConfiguration p1 = DeleteHsmConfiguration+ { _dhcHsmConfigurationIdentifier = p1+ }++-- | The identifier of the Amazon Redshift HSM configuration to be deleted.+dhcHsmConfigurationIdentifier :: Lens' DeleteHsmConfiguration Text+dhcHsmConfigurationIdentifier =+ lens _dhcHsmConfigurationIdentifier+ (\s a -> s { _dhcHsmConfigurationIdentifier = a })++data DeleteHsmConfigurationResponse = DeleteHsmConfigurationResponse+ deriving (Eq, Ord, Show, Generic)++-- | 'DeleteHsmConfigurationResponse' constructor.+deleteHsmConfigurationResponse :: DeleteHsmConfigurationResponse+deleteHsmConfigurationResponse = DeleteHsmConfigurationResponse++instance ToPath DeleteHsmConfiguration where+ toPath = const "/"++instance ToQuery DeleteHsmConfiguration where+ toQuery DeleteHsmConfiguration{..} = mconcat+ [ "HsmConfigurationIdentifier" =? _dhcHsmConfigurationIdentifier+ ]++instance ToHeaders DeleteHsmConfiguration++instance AWSRequest DeleteHsmConfiguration where+ type Sv DeleteHsmConfiguration = Redshift+ type Rs DeleteHsmConfiguration = DeleteHsmConfigurationResponse++ request = post "DeleteHsmConfiguration"+ response = nullResponse DeleteHsmConfigurationResponse
+ gen/Network/AWS/Redshift/DeleteTags.hs view
@@ -0,0 +1,100 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DeleteTags+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Deletes a tag or tags from a resource. You must provide the ARN of the+-- resource from which you want to delete the tag or tags.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DeleteTags.html>+module Network.AWS.Redshift.DeleteTags+ (+ -- * Request+ DeleteTags+ -- ** Request constructor+ , deleteTags+ -- ** Request lenses+ , dt1ResourceName+ , dt1TagKeys++ -- * Response+ , DeleteTagsResponse+ -- ** Response constructor+ , deleteTagsResponse+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data DeleteTags = DeleteTags+ { _dt1ResourceName :: Text+ , _dt1TagKeys :: List "TagKey" Text+ } deriving (Eq, Ord, Show)++-- | 'DeleteTags' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dt1ResourceName' @::@ 'Text'+--+-- * 'dt1TagKeys' @::@ ['Text']+--+deleteTags :: Text -- ^ 'dt1ResourceName'+ -> DeleteTags+deleteTags p1 = DeleteTags+ { _dt1ResourceName = p1+ , _dt1TagKeys = mempty+ }++-- | The Amazon Resource Name (ARN) from which you want to remove the tag or+-- tags. For example, arn:aws:redshift:us-east-1:123456789:cluster:t1.+dt1ResourceName :: Lens' DeleteTags Text+dt1ResourceName = lens _dt1ResourceName (\s a -> s { _dt1ResourceName = a })++-- | The tag key that you want to delete.+dt1TagKeys :: Lens' DeleteTags [Text]+dt1TagKeys = lens _dt1TagKeys (\s a -> s { _dt1TagKeys = a }) . _List++data DeleteTagsResponse = DeleteTagsResponse+ deriving (Eq, Ord, Show, Generic)++-- | 'DeleteTagsResponse' constructor.+deleteTagsResponse :: DeleteTagsResponse+deleteTagsResponse = DeleteTagsResponse++instance ToPath DeleteTags where+ toPath = const "/"++instance ToQuery DeleteTags where+ toQuery DeleteTags{..} = mconcat+ [ "ResourceName" =? _dt1ResourceName+ , "TagKeys" =? _dt1TagKeys+ ]++instance ToHeaders DeleteTags++instance AWSRequest DeleteTags where+ type Sv DeleteTags = Redshift+ type Rs DeleteTags = DeleteTagsResponse++ request = post "DeleteTags"+ response = nullResponse DeleteTagsResponse
+ gen/Network/AWS/Redshift/DescribeClusterParameterGroups.hs view
@@ -0,0 +1,205 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DescribeClusterParameterGroups+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Returns a list of Amazon Redshift parameter groups, including parameter+-- groups you created and the default parameter group. For each parameter+-- group, the response includes the parameter group name, description, and+-- parameter group family name. You can optionally specify a name to retrieve+-- the description of a specific parameter group. For more information about+-- managing parameter groups, go to Amazon Redshift Parameter Groups in the+-- Amazon Redshift Cluster Management Guide. If you specify both tag keys and+-- tag values in the same request, Amazon Redshift returns all parameter+-- groups that match any combination of the specified keys and values. For+-- example, if you have owner and environment for tag keys, and admin and test+-- for tag values, all parameter groups that have any combination of those+-- values are returned. If both tag keys and values are omitted from the+-- request, parameter groups are returned regardless of whether they have tag+-- keys or values associated with them.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeClusterParameterGroups.html>+module Network.AWS.Redshift.DescribeClusterParameterGroups+ (+ -- * Request+ DescribeClusterParameterGroups+ -- ** Request constructor+ , describeClusterParameterGroups+ -- ** Request lenses+ , dcpgMarker+ , dcpgMaxRecords+ , dcpgParameterGroupName+ , dcpgTagKeys+ , dcpgTagValues++ -- * Response+ , DescribeClusterParameterGroupsResponse+ -- ** Response constructor+ , describeClusterParameterGroupsResponse+ -- ** Response lenses+ , dcpgrMarker+ , dcpgrParameterGroups+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data DescribeClusterParameterGroups = DescribeClusterParameterGroups+ { _dcpgMarker :: Maybe Text+ , _dcpgMaxRecords :: Maybe Int+ , _dcpgParameterGroupName :: Maybe Text+ , _dcpgTagKeys :: List "TagKey" Text+ , _dcpgTagValues :: List "TagValue" Text+ } deriving (Eq, Ord, Show)++-- | 'DescribeClusterParameterGroups' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcpgMarker' @::@ 'Maybe' 'Text'+--+-- * 'dcpgMaxRecords' @::@ 'Maybe' 'Int'+--+-- * 'dcpgParameterGroupName' @::@ 'Maybe' 'Text'+--+-- * 'dcpgTagKeys' @::@ ['Text']+--+-- * 'dcpgTagValues' @::@ ['Text']+--+describeClusterParameterGroups :: DescribeClusterParameterGroups+describeClusterParameterGroups = DescribeClusterParameterGroups+ { _dcpgParameterGroupName = Nothing+ , _dcpgMaxRecords = Nothing+ , _dcpgMarker = Nothing+ , _dcpgTagKeys = mempty+ , _dcpgTagValues = mempty+ }++-- | An optional parameter that specifies the starting point to return a set+-- of response records. When the results of a DescribeClusterParameterGroups+-- request exceed the value specified in MaxRecords, AWS returns a value in+-- the Marker field of the response. You can retrieve the next set of+-- response records by providing the returned marker value in the Marker+-- parameter and retrying the request.+dcpgMarker :: Lens' DescribeClusterParameterGroups (Maybe Text)+dcpgMarker = lens _dcpgMarker (\s a -> s { _dcpgMarker = a })++-- | The maximum number of response records to return in each call. If the+-- number of remaining response records exceeds the specified MaxRecords+-- value, a value is returned in a marker field of the response. You can+-- retrieve the next set of records by retrying the command with the+-- returned marker value. Default: 100 Constraints: minimum 20, maximum 100.+dcpgMaxRecords :: Lens' DescribeClusterParameterGroups (Maybe Int)+dcpgMaxRecords = lens _dcpgMaxRecords (\s a -> s { _dcpgMaxRecords = a })++-- | The name of a specific parameter group for which to return details. By+-- default, details about all parameter groups and the default parameter+-- group are returned.+dcpgParameterGroupName :: Lens' DescribeClusterParameterGroups (Maybe Text)+dcpgParameterGroupName =+ lens _dcpgParameterGroupName (\s a -> s { _dcpgParameterGroupName = a })++-- | A tag key or keys for which you want to return all matching cluster+-- parameter groups that are associated with the specified key or keys. For+-- example, suppose that you have parameter groups that are tagged with keys+-- called owner and environment. If you specify both of these tag keys in+-- the request, Amazon Redshift returns a response with the parameter groups+-- that have either or both of these tag keys associated with them.+dcpgTagKeys :: Lens' DescribeClusterParameterGroups [Text]+dcpgTagKeys = lens _dcpgTagKeys (\s a -> s { _dcpgTagKeys = a }) . _List++-- | A tag value or values for which you want to return all matching cluster+-- parameter groups that are associated with the specified tag value or+-- values. For example, suppose that you have parameter groups that are+-- tagged with values called admin and test. If you specify both of these+-- tag values in the request, Amazon Redshift returns a response with the+-- parameter groups that have either or both of these tag values associated+-- with them.+dcpgTagValues :: Lens' DescribeClusterParameterGroups [Text]+dcpgTagValues = lens _dcpgTagValues (\s a -> s { _dcpgTagValues = a }) . _List++data DescribeClusterParameterGroupsResponse = DescribeClusterParameterGroupsResponse+ { _dcpgrMarker :: Maybe Text+ , _dcpgrParameterGroups :: List "ClusterParameterGroup" ClusterParameterGroup+ } deriving (Eq, Show)++-- | 'DescribeClusterParameterGroupsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcpgrMarker' @::@ 'Maybe' 'Text'+--+-- * 'dcpgrParameterGroups' @::@ ['ClusterParameterGroup']+--+describeClusterParameterGroupsResponse :: DescribeClusterParameterGroupsResponse+describeClusterParameterGroupsResponse = DescribeClusterParameterGroupsResponse+ { _dcpgrMarker = Nothing+ , _dcpgrParameterGroups = mempty+ }++-- | A value that indicates the starting point for the next set of response+-- records in a subsequent request. If a value is returned in a response,+-- you can retrieve the next set of records by providing this returned+-- marker value in the Marker parameter and retrying the command. If the+-- Marker field is empty, all response records have been retrieved for the+-- request.+dcpgrMarker :: Lens' DescribeClusterParameterGroupsResponse (Maybe Text)+dcpgrMarker = lens _dcpgrMarker (\s a -> s { _dcpgrMarker = a })++-- | A list of ClusterParameterGroup instances. Each instance describes one+-- cluster parameter group.+dcpgrParameterGroups :: Lens' DescribeClusterParameterGroupsResponse [ClusterParameterGroup]+dcpgrParameterGroups =+ lens _dcpgrParameterGroups (\s a -> s { _dcpgrParameterGroups = a })+ . _List++instance ToPath DescribeClusterParameterGroups where+ toPath = const "/"++instance ToQuery DescribeClusterParameterGroups where+ toQuery DescribeClusterParameterGroups{..} = mconcat+ [ "Marker" =? _dcpgMarker+ , "MaxRecords" =? _dcpgMaxRecords+ , "ParameterGroupName" =? _dcpgParameterGroupName+ , "TagKeys" =? _dcpgTagKeys+ , "TagValues" =? _dcpgTagValues+ ]++instance ToHeaders DescribeClusterParameterGroups++instance AWSRequest DescribeClusterParameterGroups where+ type Sv DescribeClusterParameterGroups = Redshift+ type Rs DescribeClusterParameterGroups = DescribeClusterParameterGroupsResponse++ request = post "DescribeClusterParameterGroups"+ response = xmlResponse++instance FromXML DescribeClusterParameterGroupsResponse where+ parseXML = withElement "DescribeClusterParameterGroupsResult" $ \x -> DescribeClusterParameterGroupsResponse+ <$> x .@? "Marker"+ <*> x .@ "ParameterGroups"++instance AWSPager DescribeClusterParameterGroups where+ page rq rs+ | stop (rq ^. dcpgMarker) = Nothing+ | otherwise = (\x -> rq & dcpgMarker ?~ x)+ <$> (rs ^. dcpgrMarker)
+ gen/Network/AWS/Redshift/DescribeClusterParameters.hs view
@@ -0,0 +1,179 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DescribeClusterParameters+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Returns a detailed list of parameters contained within the specified Amazon+-- Redshift parameter group. For each parameter the response includes+-- information such as parameter name, description, data type, value, whether+-- the parameter value is modifiable, and so on. You can specify source filter+-- to retrieve parameters of only specific type. For example, to retrieve+-- parameters that were modified by a user action such as from+-- ModifyClusterParameterGroup, you can specify source equal to user. For more+-- information about managing parameter groups, go to Amazon Redshift+-- Parameter Groups in the Amazon Redshift Cluster Management Guide.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeClusterParameters.html>+module Network.AWS.Redshift.DescribeClusterParameters+ (+ -- * Request+ DescribeClusterParameters+ -- ** Request constructor+ , describeClusterParameters+ -- ** Request lenses+ , dcp1Marker+ , dcp1MaxRecords+ , dcp1ParameterGroupName+ , dcp1Source++ -- * Response+ , DescribeClusterParametersResponse+ -- ** Response constructor+ , describeClusterParametersResponse+ -- ** Response lenses+ , dcprMarker+ , dcprParameters+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data DescribeClusterParameters = DescribeClusterParameters+ { _dcp1Marker :: Maybe Text+ , _dcp1MaxRecords :: Maybe Int+ , _dcp1ParameterGroupName :: Text+ , _dcp1Source :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'DescribeClusterParameters' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcp1Marker' @::@ 'Maybe' 'Text'+--+-- * 'dcp1MaxRecords' @::@ 'Maybe' 'Int'+--+-- * 'dcp1ParameterGroupName' @::@ 'Text'+--+-- * 'dcp1Source' @::@ 'Maybe' 'Text'+--+describeClusterParameters :: Text -- ^ 'dcp1ParameterGroupName'+ -> DescribeClusterParameters+describeClusterParameters p1 = DescribeClusterParameters+ { _dcp1ParameterGroupName = p1+ , _dcp1Source = Nothing+ , _dcp1MaxRecords = Nothing+ , _dcp1Marker = Nothing+ }++-- | An optional parameter that specifies the starting point to return a set+-- of response records. When the results of a DescribeClusterParameters+-- request exceed the value specified in MaxRecords, AWS returns a value in+-- the Marker field of the response. You can retrieve the next set of+-- response records by providing the returned marker value in the Marker+-- parameter and retrying the request.+dcp1Marker :: Lens' DescribeClusterParameters (Maybe Text)+dcp1Marker = lens _dcp1Marker (\s a -> s { _dcp1Marker = a })++-- | The maximum number of response records to return in each call. If the+-- number of remaining response records exceeds the specified MaxRecords+-- value, a value is returned in a marker field of the response. You can+-- retrieve the next set of records by retrying the command with the+-- returned marker value. Default: 100 Constraints: minimum 20, maximum 100.+dcp1MaxRecords :: Lens' DescribeClusterParameters (Maybe Int)+dcp1MaxRecords = lens _dcp1MaxRecords (\s a -> s { _dcp1MaxRecords = a })++-- | The name of a cluster parameter group for which to return details.+dcp1ParameterGroupName :: Lens' DescribeClusterParameters Text+dcp1ParameterGroupName =+ lens _dcp1ParameterGroupName (\s a -> s { _dcp1ParameterGroupName = a })++-- | The parameter types to return. Specify user to show parameters that are+-- different form the default. Similarly, specify engine-default to show+-- parameters that are the same as the default parameter group. Default: All+-- parameter types returned. Valid Values: user | engine-default.+dcp1Source :: Lens' DescribeClusterParameters (Maybe Text)+dcp1Source = lens _dcp1Source (\s a -> s { _dcp1Source = a })++data DescribeClusterParametersResponse = DescribeClusterParametersResponse+ { _dcprMarker :: Maybe Text+ , _dcprParameters :: List "Parameter" Parameter+ } deriving (Eq, Show)++-- | 'DescribeClusterParametersResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcprMarker' @::@ 'Maybe' 'Text'+--+-- * 'dcprParameters' @::@ ['Parameter']+--+describeClusterParametersResponse :: DescribeClusterParametersResponse+describeClusterParametersResponse = DescribeClusterParametersResponse+ { _dcprParameters = mempty+ , _dcprMarker = Nothing+ }++-- | A value that indicates the starting point for the next set of response+-- records in a subsequent request. If a value is returned in a response,+-- you can retrieve the next set of records by providing this returned+-- marker value in the Marker parameter and retrying the command. If the+-- Marker field is empty, all response records have been retrieved for the+-- request.+dcprMarker :: Lens' DescribeClusterParametersResponse (Maybe Text)+dcprMarker = lens _dcprMarker (\s a -> s { _dcprMarker = a })++-- | A list of Parameter instances. Each instance lists the parameters of one+-- cluster parameter group.+dcprParameters :: Lens' DescribeClusterParametersResponse [Parameter]+dcprParameters = lens _dcprParameters (\s a -> s { _dcprParameters = a }) . _List++instance ToPath DescribeClusterParameters where+ toPath = const "/"++instance ToQuery DescribeClusterParameters where+ toQuery DescribeClusterParameters{..} = mconcat+ [ "Marker" =? _dcp1Marker+ , "MaxRecords" =? _dcp1MaxRecords+ , "ParameterGroupName" =? _dcp1ParameterGroupName+ , "Source" =? _dcp1Source+ ]++instance ToHeaders DescribeClusterParameters++instance AWSRequest DescribeClusterParameters where+ type Sv DescribeClusterParameters = Redshift+ type Rs DescribeClusterParameters = DescribeClusterParametersResponse++ request = post "DescribeClusterParameters"+ response = xmlResponse++instance FromXML DescribeClusterParametersResponse where+ parseXML = withElement "DescribeClusterParametersResult" $ \x -> DescribeClusterParametersResponse+ <$> x .@? "Marker"+ <*> x .@ "Parameters"++instance AWSPager DescribeClusterParameters where+ page rq rs+ | stop (rq ^. dcp1Marker) = Nothing+ | otherwise = (\x -> rq & dcp1Marker ?~ x)+ <$> (rs ^. dcprMarker)
+ gen/Network/AWS/Redshift/DescribeClusterSecurityGroups.hs view
@@ -0,0 +1,207 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DescribeClusterSecurityGroups+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Returns information about Amazon Redshift security groups. If the name of a+-- security group is specified, the response will contain only information+-- about only that security group. For information about managing security+-- groups, go to Amazon Redshift Cluster Security Groups in the Amazon+-- Redshift Cluster Management Guide. If you specify both tag keys and tag+-- values in the same request, Amazon Redshift returns all security groups+-- that match any combination of the specified keys and values. For example,+-- if you have owner and environment for tag keys, and admin and test for tag+-- values, all security groups that have any combination of those values are+-- returned. If both tag keys and values are omitted from the request,+-- security groups are returned regardless of whether they have tag keys or+-- values associated with them.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeClusterSecurityGroups.html>+module Network.AWS.Redshift.DescribeClusterSecurityGroups+ (+ -- * Request+ DescribeClusterSecurityGroups+ -- ** Request constructor+ , describeClusterSecurityGroups+ -- ** Request lenses+ , dcsgClusterSecurityGroupName+ , dcsgMarker+ , dcsgMaxRecords+ , dcsgTagKeys+ , dcsgTagValues++ -- * Response+ , DescribeClusterSecurityGroupsResponse+ -- ** Response constructor+ , describeClusterSecurityGroupsResponse+ -- ** Response lenses+ , dcsgr1ClusterSecurityGroups+ , dcsgr1Marker+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data DescribeClusterSecurityGroups = DescribeClusterSecurityGroups+ { _dcsgClusterSecurityGroupName :: Maybe Text+ , _dcsgMarker :: Maybe Text+ , _dcsgMaxRecords :: Maybe Int+ , _dcsgTagKeys :: List "TagKey" Text+ , _dcsgTagValues :: List "TagValue" Text+ } deriving (Eq, Ord, Show)++-- | 'DescribeClusterSecurityGroups' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcsgClusterSecurityGroupName' @::@ 'Maybe' 'Text'+--+-- * 'dcsgMarker' @::@ 'Maybe' 'Text'+--+-- * 'dcsgMaxRecords' @::@ 'Maybe' 'Int'+--+-- * 'dcsgTagKeys' @::@ ['Text']+--+-- * 'dcsgTagValues' @::@ ['Text']+--+describeClusterSecurityGroups :: DescribeClusterSecurityGroups+describeClusterSecurityGroups = DescribeClusterSecurityGroups+ { _dcsgClusterSecurityGroupName = Nothing+ , _dcsgMaxRecords = Nothing+ , _dcsgMarker = Nothing+ , _dcsgTagKeys = mempty+ , _dcsgTagValues = mempty+ }++-- | The name of a cluster security group for which you are requesting+-- details. You can specify either the Marker parameter or a+-- ClusterSecurityGroupName parameter, but not both. Example:+-- securitygroup1.+dcsgClusterSecurityGroupName :: Lens' DescribeClusterSecurityGroups (Maybe Text)+dcsgClusterSecurityGroupName =+ lens _dcsgClusterSecurityGroupName+ (\s a -> s { _dcsgClusterSecurityGroupName = a })++-- | An optional parameter that specifies the starting point to return a set+-- of response records. When the results of a DescribeClusterSecurityGroups+-- request exceed the value specified in MaxRecords, AWS returns a value in+-- the Marker field of the response. You can retrieve the next set of+-- response records by providing the returned marker value in the Marker+-- parameter and retrying the request. Constraints: You can specify either+-- the ClusterSecurityGroupName parameter or the Marker parameter, but not+-- both.+dcsgMarker :: Lens' DescribeClusterSecurityGroups (Maybe Text)+dcsgMarker = lens _dcsgMarker (\s a -> s { _dcsgMarker = a })++-- | The maximum number of response records to return in each call. If the+-- number of remaining response records exceeds the specified MaxRecords+-- value, a value is returned in a marker field of the response. You can+-- retrieve the next set of records by retrying the command with the+-- returned marker value. Default: 100 Constraints: minimum 20, maximum 100.+dcsgMaxRecords :: Lens' DescribeClusterSecurityGroups (Maybe Int)+dcsgMaxRecords = lens _dcsgMaxRecords (\s a -> s { _dcsgMaxRecords = a })++-- | A tag key or keys for which you want to return all matching cluster+-- security groups that are associated with the specified key or keys. For+-- example, suppose that you have security groups that are tagged with keys+-- called owner and environment. If you specify both of these tag keys in+-- the request, Amazon Redshift returns a response with the security groups+-- that have either or both of these tag keys associated with them.+dcsgTagKeys :: Lens' DescribeClusterSecurityGroups [Text]+dcsgTagKeys = lens _dcsgTagKeys (\s a -> s { _dcsgTagKeys = a }) . _List++-- | A tag value or values for which you want to return all matching cluster+-- security groups that are associated with the specified tag value or+-- values. For example, suppose that you have security groups that are+-- tagged with values called admin and test. If you specify both of these+-- tag values in the request, Amazon Redshift returns a response with the+-- security groups that have either or both of these tag values associated+-- with them.+dcsgTagValues :: Lens' DescribeClusterSecurityGroups [Text]+dcsgTagValues = lens _dcsgTagValues (\s a -> s { _dcsgTagValues = a }) . _List++data DescribeClusterSecurityGroupsResponse = DescribeClusterSecurityGroupsResponse+ { _dcsgr1ClusterSecurityGroups :: List "ClusterSecurityGroup" ClusterSecurityGroup+ , _dcsgr1Marker :: Maybe Text+ } deriving (Eq, Show)++-- | 'DescribeClusterSecurityGroupsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcsgr1ClusterSecurityGroups' @::@ ['ClusterSecurityGroup']+--+-- * 'dcsgr1Marker' @::@ 'Maybe' 'Text'+--+describeClusterSecurityGroupsResponse :: DescribeClusterSecurityGroupsResponse+describeClusterSecurityGroupsResponse = DescribeClusterSecurityGroupsResponse+ { _dcsgr1Marker = Nothing+ , _dcsgr1ClusterSecurityGroups = mempty+ }++-- | A list of ClusterSecurityGroup instances.+dcsgr1ClusterSecurityGroups :: Lens' DescribeClusterSecurityGroupsResponse [ClusterSecurityGroup]+dcsgr1ClusterSecurityGroups =+ lens _dcsgr1ClusterSecurityGroups+ (\s a -> s { _dcsgr1ClusterSecurityGroups = a })+ . _List++-- | A value that indicates the starting point for the next set of response+-- records in a subsequent request. If a value is returned in a response,+-- you can retrieve the next set of records by providing this returned+-- marker value in the Marker parameter and retrying the command. If the+-- Marker field is empty, all response records have been retrieved for the+-- request.+dcsgr1Marker :: Lens' DescribeClusterSecurityGroupsResponse (Maybe Text)+dcsgr1Marker = lens _dcsgr1Marker (\s a -> s { _dcsgr1Marker = a })++instance ToPath DescribeClusterSecurityGroups where+ toPath = const "/"++instance ToQuery DescribeClusterSecurityGroups where+ toQuery DescribeClusterSecurityGroups{..} = mconcat+ [ "ClusterSecurityGroupName" =? _dcsgClusterSecurityGroupName+ , "Marker" =? _dcsgMarker+ , "MaxRecords" =? _dcsgMaxRecords+ , "TagKeys" =? _dcsgTagKeys+ , "TagValues" =? _dcsgTagValues+ ]++instance ToHeaders DescribeClusterSecurityGroups++instance AWSRequest DescribeClusterSecurityGroups where+ type Sv DescribeClusterSecurityGroups = Redshift+ type Rs DescribeClusterSecurityGroups = DescribeClusterSecurityGroupsResponse++ request = post "DescribeClusterSecurityGroups"+ response = xmlResponse++instance FromXML DescribeClusterSecurityGroupsResponse where+ parseXML = withElement "DescribeClusterSecurityGroupsResult" $ \x -> DescribeClusterSecurityGroupsResponse+ <$> x .@ "ClusterSecurityGroups"+ <*> x .@? "Marker"++instance AWSPager DescribeClusterSecurityGroups where+ page rq rs+ | stop (rq ^. dcsgMarker) = Nothing+ | otherwise = (\x -> rq & dcsgMarker ?~ x)+ <$> (rs ^. dcsgr1Marker)
+ gen/Network/AWS/Redshift/DescribeClusterSnapshots.hs view
@@ -0,0 +1,262 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DescribeClusterSnapshots+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Returns one or more snapshot objects, which contain metadata about your+-- cluster snapshots. By default, this operation returns information about all+-- snapshots of all clusters that are owned by you AWS customer account. No+-- information is returned for snapshots owned by inactive AWS customer+-- accounts. If you specify both tag keys and tag values in the same request,+-- Amazon Redshift returns all snapshots that match any combination of the+-- specified keys and values. For example, if you have owner and environment+-- for tag keys, and admin and test for tag values, all snapshots that have+-- any combination of those values are returned. Only snapshots that you own+-- are returned in the response; shared snapshots are not returned with the+-- tag key and tag value request parameters. If both tag keys and values are+-- omitted from the request, snapshots are returned regardless of whether they+-- have tag keys or values associated with them.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeClusterSnapshots.html>+module Network.AWS.Redshift.DescribeClusterSnapshots+ (+ -- * Request+ DescribeClusterSnapshots+ -- ** Request constructor+ , describeClusterSnapshots+ -- ** Request lenses+ , dcs1ClusterIdentifier+ , dcs1EndTime+ , dcs1Marker+ , dcs1MaxRecords+ , dcs1OwnerAccount+ , dcs1SnapshotIdentifier+ , dcs1SnapshotType+ , dcs1StartTime+ , dcs1TagKeys+ , dcs1TagValues++ -- * Response+ , DescribeClusterSnapshotsResponse+ -- ** Response constructor+ , describeClusterSnapshotsResponse+ -- ** Response lenses+ , dcsrMarker+ , dcsrSnapshots+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data DescribeClusterSnapshots = DescribeClusterSnapshots+ { _dcs1ClusterIdentifier :: Maybe Text+ , _dcs1EndTime :: Maybe RFC822+ , _dcs1Marker :: Maybe Text+ , _dcs1MaxRecords :: Maybe Int+ , _dcs1OwnerAccount :: Maybe Text+ , _dcs1SnapshotIdentifier :: Maybe Text+ , _dcs1SnapshotType :: Maybe Text+ , _dcs1StartTime :: Maybe RFC822+ , _dcs1TagKeys :: List "TagKey" Text+ , _dcs1TagValues :: List "TagValue" Text+ } deriving (Eq, Ord, Show)++-- | 'DescribeClusterSnapshots' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcs1ClusterIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'dcs1EndTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'dcs1Marker' @::@ 'Maybe' 'Text'+--+-- * 'dcs1MaxRecords' @::@ 'Maybe' 'Int'+--+-- * 'dcs1OwnerAccount' @::@ 'Maybe' 'Text'+--+-- * 'dcs1SnapshotIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'dcs1SnapshotType' @::@ 'Maybe' 'Text'+--+-- * 'dcs1StartTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'dcs1TagKeys' @::@ ['Text']+--+-- * 'dcs1TagValues' @::@ ['Text']+--+describeClusterSnapshots :: DescribeClusterSnapshots+describeClusterSnapshots = DescribeClusterSnapshots+ { _dcs1ClusterIdentifier = Nothing+ , _dcs1SnapshotIdentifier = Nothing+ , _dcs1SnapshotType = Nothing+ , _dcs1StartTime = Nothing+ , _dcs1EndTime = Nothing+ , _dcs1MaxRecords = Nothing+ , _dcs1Marker = Nothing+ , _dcs1OwnerAccount = Nothing+ , _dcs1TagKeys = mempty+ , _dcs1TagValues = mempty+ }++-- | The identifier of the cluster for which information about snapshots is+-- requested.+dcs1ClusterIdentifier :: Lens' DescribeClusterSnapshots (Maybe Text)+dcs1ClusterIdentifier =+ lens _dcs1ClusterIdentifier (\s a -> s { _dcs1ClusterIdentifier = a })++-- | A time value that requests only snapshots created at or before the+-- specified time. The time value is specified in ISO 8601 format. For more+-- information about ISO 8601, go to the ISO8601 Wikipedia page. Example:+-- 2012-07-16T18:00:00Z.+dcs1EndTime :: Lens' DescribeClusterSnapshots (Maybe UTCTime)+dcs1EndTime = lens _dcs1EndTime (\s a -> s { _dcs1EndTime = a }) . mapping _Time++-- | An optional parameter that specifies the starting point to return a set+-- of response records. When the results of a DescribeClusterSnapshots+-- request exceed the value specified in MaxRecords, AWS returns a value in+-- the Marker field of the response. You can retrieve the next set of+-- response records by providing the returned marker value in the Marker+-- parameter and retrying the request.+dcs1Marker :: Lens' DescribeClusterSnapshots (Maybe Text)+dcs1Marker = lens _dcs1Marker (\s a -> s { _dcs1Marker = a })++-- | The maximum number of response records to return in each call. If the+-- number of remaining response records exceeds the specified MaxRecords+-- value, a value is returned in a marker field of the response. You can+-- retrieve the next set of records by retrying the command with the+-- returned marker value. Default: 100 Constraints: minimum 20, maximum 100.+dcs1MaxRecords :: Lens' DescribeClusterSnapshots (Maybe Int)+dcs1MaxRecords = lens _dcs1MaxRecords (\s a -> s { _dcs1MaxRecords = a })++-- | The AWS customer account used to create or copy the snapshot. Use this+-- field to filter the results to snapshots owned by a particular account.+-- To describe snapshots you own, either specify your AWS customer account,+-- or do not specify the parameter.+dcs1OwnerAccount :: Lens' DescribeClusterSnapshots (Maybe Text)+dcs1OwnerAccount = lens _dcs1OwnerAccount (\s a -> s { _dcs1OwnerAccount = a })++-- | The snapshot identifier of the snapshot about which to return+-- information.+dcs1SnapshotIdentifier :: Lens' DescribeClusterSnapshots (Maybe Text)+dcs1SnapshotIdentifier =+ lens _dcs1SnapshotIdentifier (\s a -> s { _dcs1SnapshotIdentifier = a })++-- | The type of snapshots for which you are requesting information. By+-- default, snapshots of all types are returned. Valid Values: automated |+-- manual.+dcs1SnapshotType :: Lens' DescribeClusterSnapshots (Maybe Text)+dcs1SnapshotType = lens _dcs1SnapshotType (\s a -> s { _dcs1SnapshotType = a })++-- | A value that requests only snapshots created at or after the specified+-- time. The time value is specified in ISO 8601 format. For more+-- information about ISO 8601, go to the ISO8601 Wikipedia page. Example:+-- 2012-07-16T18:00:00Z.+dcs1StartTime :: Lens' DescribeClusterSnapshots (Maybe UTCTime)+dcs1StartTime = lens _dcs1StartTime (\s a -> s { _dcs1StartTime = a }) . mapping _Time++-- | A tag key or keys for which you want to return all matching cluster+-- snapshots that are associated with the specified key or keys. For+-- example, suppose that you have snapshots that are tagged with keys called+-- owner and environment. If you specify both of these tag keys in the+-- request, Amazon Redshift returns a response with the snapshots that have+-- either or both of these tag keys associated with them.+dcs1TagKeys :: Lens' DescribeClusterSnapshots [Text]+dcs1TagKeys = lens _dcs1TagKeys (\s a -> s { _dcs1TagKeys = a }) . _List++-- | A tag value or values for which you want to return all matching cluster+-- snapshots that are associated with the specified tag value or values. For+-- example, suppose that you have snapshots that are tagged with values+-- called admin and test. If you specify both of these tag values in the+-- request, Amazon Redshift returns a response with the snapshots that have+-- either or both of these tag values associated with them.+dcs1TagValues :: Lens' DescribeClusterSnapshots [Text]+dcs1TagValues = lens _dcs1TagValues (\s a -> s { _dcs1TagValues = a }) . _List++data DescribeClusterSnapshotsResponse = DescribeClusterSnapshotsResponse+ { _dcsrMarker :: Maybe Text+ , _dcsrSnapshots :: List "Snapshot" Snapshot+ } deriving (Eq, Show)++-- | 'DescribeClusterSnapshotsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcsrMarker' @::@ 'Maybe' 'Text'+--+-- * 'dcsrSnapshots' @::@ ['Snapshot']+--+describeClusterSnapshotsResponse :: DescribeClusterSnapshotsResponse+describeClusterSnapshotsResponse = DescribeClusterSnapshotsResponse+ { _dcsrMarker = Nothing+ , _dcsrSnapshots = mempty+ }++-- | A value that indicates the starting point for the next set of response+-- records in a subsequent request. If a value is returned in a response,+-- you can retrieve the next set of records by providing this returned+-- marker value in the Marker parameter and retrying the command. If the+-- Marker field is empty, all response records have been retrieved for the+-- request.+dcsrMarker :: Lens' DescribeClusterSnapshotsResponse (Maybe Text)+dcsrMarker = lens _dcsrMarker (\s a -> s { _dcsrMarker = a })++-- | A list of Snapshot instances.+dcsrSnapshots :: Lens' DescribeClusterSnapshotsResponse [Snapshot]+dcsrSnapshots = lens _dcsrSnapshots (\s a -> s { _dcsrSnapshots = a }) . _List++instance ToPath DescribeClusterSnapshots where+ toPath = const "/"++instance ToQuery DescribeClusterSnapshots where+ toQuery DescribeClusterSnapshots{..} = mconcat+ [ "ClusterIdentifier" =? _dcs1ClusterIdentifier+ , "EndTime" =? _dcs1EndTime+ , "Marker" =? _dcs1Marker+ , "MaxRecords" =? _dcs1MaxRecords+ , "OwnerAccount" =? _dcs1OwnerAccount+ , "SnapshotIdentifier" =? _dcs1SnapshotIdentifier+ , "SnapshotType" =? _dcs1SnapshotType+ , "StartTime" =? _dcs1StartTime+ , "TagKeys" =? _dcs1TagKeys+ , "TagValues" =? _dcs1TagValues+ ]++instance ToHeaders DescribeClusterSnapshots++instance AWSRequest DescribeClusterSnapshots where+ type Sv DescribeClusterSnapshots = Redshift+ type Rs DescribeClusterSnapshots = DescribeClusterSnapshotsResponse++ request = post "DescribeClusterSnapshots"+ response = xmlResponse++instance FromXML DescribeClusterSnapshotsResponse where+ parseXML = withElement "DescribeClusterSnapshotsResult" $ \x -> DescribeClusterSnapshotsResponse+ <$> x .@? "Marker"+ <*> x .@ "Snapshots"++instance AWSPager DescribeClusterSnapshots where+ page rq rs+ | stop (rq ^. dcs1Marker) = Nothing+ | otherwise = (\x -> rq & dcs1Marker ?~ x)+ <$> (rs ^. dcsrMarker)
+ gen/Network/AWS/Redshift/DescribeClusterSubnetGroups.hs view
@@ -0,0 +1,199 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DescribeClusterSubnetGroups+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Returns one or more cluster subnet group objects, which contain metadata+-- about your cluster subnet groups. By default, this operation returns+-- information about all cluster subnet groups that are defined in you AWS+-- account. If you specify both tag keys and tag values in the same request,+-- Amazon Redshift returns all subnet groups that match any combination of the+-- specified keys and values. For example, if you have owner and environment+-- for tag keys, and admin and test for tag values, all subnet groups that+-- have any combination of those values are returned. If both tag keys and+-- values are omitted from the request, subnet groups are returned regardless+-- of whether they have tag keys or values associated with them.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeClusterSubnetGroups.html>+module Network.AWS.Redshift.DescribeClusterSubnetGroups+ (+ -- * Request+ DescribeClusterSubnetGroups+ -- ** Request constructor+ , describeClusterSubnetGroups+ -- ** Request lenses+ , dcsg1ClusterSubnetGroupName+ , dcsg1Marker+ , dcsg1MaxRecords+ , dcsg1TagKeys+ , dcsg1TagValues++ -- * Response+ , DescribeClusterSubnetGroupsResponse+ -- ** Response constructor+ , describeClusterSubnetGroupsResponse+ -- ** Response lenses+ , dcsgrClusterSubnetGroups+ , dcsgrMarker+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data DescribeClusterSubnetGroups = DescribeClusterSubnetGroups+ { _dcsg1ClusterSubnetGroupName :: Maybe Text+ , _dcsg1Marker :: Maybe Text+ , _dcsg1MaxRecords :: Maybe Int+ , _dcsg1TagKeys :: List "TagKey" Text+ , _dcsg1TagValues :: List "TagValue" Text+ } deriving (Eq, Ord, Show)++-- | 'DescribeClusterSubnetGroups' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcsg1ClusterSubnetGroupName' @::@ 'Maybe' 'Text'+--+-- * 'dcsg1Marker' @::@ 'Maybe' 'Text'+--+-- * 'dcsg1MaxRecords' @::@ 'Maybe' 'Int'+--+-- * 'dcsg1TagKeys' @::@ ['Text']+--+-- * 'dcsg1TagValues' @::@ ['Text']+--+describeClusterSubnetGroups :: DescribeClusterSubnetGroups+describeClusterSubnetGroups = DescribeClusterSubnetGroups+ { _dcsg1ClusterSubnetGroupName = Nothing+ , _dcsg1MaxRecords = Nothing+ , _dcsg1Marker = Nothing+ , _dcsg1TagKeys = mempty+ , _dcsg1TagValues = mempty+ }++-- | The name of the cluster subnet group for which information is requested.+dcsg1ClusterSubnetGroupName :: Lens' DescribeClusterSubnetGroups (Maybe Text)+dcsg1ClusterSubnetGroupName =+ lens _dcsg1ClusterSubnetGroupName+ (\s a -> s { _dcsg1ClusterSubnetGroupName = a })++-- | An optional parameter that specifies the starting point to return a set+-- of response records. When the results of a DescribeClusterSubnetGroups+-- request exceed the value specified in MaxRecords, AWS returns a value in+-- the Marker field of the response. You can retrieve the next set of+-- response records by providing the returned marker value in the Marker+-- parameter and retrying the request.+dcsg1Marker :: Lens' DescribeClusterSubnetGroups (Maybe Text)+dcsg1Marker = lens _dcsg1Marker (\s a -> s { _dcsg1Marker = a })++-- | The maximum number of response records to return in each call. If the+-- number of remaining response records exceeds the specified MaxRecords+-- value, a value is returned in a marker field of the response. You can+-- retrieve the next set of records by retrying the command with the+-- returned marker value. Default: 100 Constraints: minimum 20, maximum 100.+dcsg1MaxRecords :: Lens' DescribeClusterSubnetGroups (Maybe Int)+dcsg1MaxRecords = lens _dcsg1MaxRecords (\s a -> s { _dcsg1MaxRecords = a })++-- | A tag key or keys for which you want to return all matching cluster+-- subnet groups that are associated with the specified key or keys. For+-- example, suppose that you have subnet groups that are tagged with keys+-- called owner and environment. If you specify both of these tag keys in+-- the request, Amazon Redshift returns a response with the subnet groups+-- that have either or both of these tag keys associated with them.+dcsg1TagKeys :: Lens' DescribeClusterSubnetGroups [Text]+dcsg1TagKeys = lens _dcsg1TagKeys (\s a -> s { _dcsg1TagKeys = a }) . _List++-- | A tag value or values for which you want to return all matching cluster+-- subnet groups that are associated with the specified tag value or values.+-- For example, suppose that you have subnet groups that are tagged with+-- values called admin and test. If you specify both of these tag values in+-- the request, Amazon Redshift returns a response with the subnet groups+-- that have either or both of these tag values associated with them.+dcsg1TagValues :: Lens' DescribeClusterSubnetGroups [Text]+dcsg1TagValues = lens _dcsg1TagValues (\s a -> s { _dcsg1TagValues = a }) . _List++data DescribeClusterSubnetGroupsResponse = DescribeClusterSubnetGroupsResponse+ { _dcsgrClusterSubnetGroups :: List "ClusterSubnetGroup" ClusterSubnetGroup+ , _dcsgrMarker :: Maybe Text+ } deriving (Eq, Show)++-- | 'DescribeClusterSubnetGroupsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcsgrClusterSubnetGroups' @::@ ['ClusterSubnetGroup']+--+-- * 'dcsgrMarker' @::@ 'Maybe' 'Text'+--+describeClusterSubnetGroupsResponse :: DescribeClusterSubnetGroupsResponse+describeClusterSubnetGroupsResponse = DescribeClusterSubnetGroupsResponse+ { _dcsgrMarker = Nothing+ , _dcsgrClusterSubnetGroups = mempty+ }++-- | A list of ClusterSubnetGroup instances.+dcsgrClusterSubnetGroups :: Lens' DescribeClusterSubnetGroupsResponse [ClusterSubnetGroup]+dcsgrClusterSubnetGroups =+ lens _dcsgrClusterSubnetGroups+ (\s a -> s { _dcsgrClusterSubnetGroups = a })+ . _List++-- | A value that indicates the starting point for the next set of response+-- records in a subsequent request. If a value is returned in a response,+-- you can retrieve the next set of records by providing this returned+-- marker value in the Marker parameter and retrying the command. If the+-- Marker field is empty, all response records have been retrieved for the+-- request.+dcsgrMarker :: Lens' DescribeClusterSubnetGroupsResponse (Maybe Text)+dcsgrMarker = lens _dcsgrMarker (\s a -> s { _dcsgrMarker = a })++instance ToPath DescribeClusterSubnetGroups where+ toPath = const "/"++instance ToQuery DescribeClusterSubnetGroups where+ toQuery DescribeClusterSubnetGroups{..} = mconcat+ [ "ClusterSubnetGroupName" =? _dcsg1ClusterSubnetGroupName+ , "Marker" =? _dcsg1Marker+ , "MaxRecords" =? _dcsg1MaxRecords+ , "TagKeys" =? _dcsg1TagKeys+ , "TagValues" =? _dcsg1TagValues+ ]++instance ToHeaders DescribeClusterSubnetGroups++instance AWSRequest DescribeClusterSubnetGroups where+ type Sv DescribeClusterSubnetGroups = Redshift+ type Rs DescribeClusterSubnetGroups = DescribeClusterSubnetGroupsResponse++ request = post "DescribeClusterSubnetGroups"+ response = xmlResponse++instance FromXML DescribeClusterSubnetGroupsResponse where+ parseXML = withElement "DescribeClusterSubnetGroupsResult" $ \x -> DescribeClusterSubnetGroupsResponse+ <$> x .@ "ClusterSubnetGroups"+ <*> x .@? "Marker"++instance AWSPager DescribeClusterSubnetGroups where+ page rq rs+ | stop (rq ^. dcsg1Marker) = Nothing+ | otherwise = (\x -> rq & dcsg1Marker ?~ x)+ <$> (rs ^. dcsgrMarker)
+ gen/Network/AWS/Redshift/DescribeClusterVersions.hs view
@@ -0,0 +1,177 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DescribeClusterVersions+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Returns descriptions of the available Amazon Redshift cluster versions. You+-- can call this operation even before creating any clusters to learn more+-- about the Amazon Redshift versions. For more information about managing+-- clusters, go to Amazon Redshift Clusters in the Amazon Redshift Cluster+-- Management Guide.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeClusterVersions.html>+module Network.AWS.Redshift.DescribeClusterVersions+ (+ -- * Request+ DescribeClusterVersions+ -- ** Request constructor+ , describeClusterVersions+ -- ** Request lenses+ , dcvClusterParameterGroupFamily+ , dcvClusterVersion+ , dcvMarker+ , dcvMaxRecords++ -- * Response+ , DescribeClusterVersionsResponse+ -- ** Response constructor+ , describeClusterVersionsResponse+ -- ** Response lenses+ , dcvrClusterVersions+ , dcvrMarker+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data DescribeClusterVersions = DescribeClusterVersions+ { _dcvClusterParameterGroupFamily :: Maybe Text+ , _dcvClusterVersion :: Maybe Text+ , _dcvMarker :: Maybe Text+ , _dcvMaxRecords :: Maybe Int+ } deriving (Eq, Ord, Show)++-- | 'DescribeClusterVersions' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcvClusterParameterGroupFamily' @::@ 'Maybe' 'Text'+--+-- * 'dcvClusterVersion' @::@ 'Maybe' 'Text'+--+-- * 'dcvMarker' @::@ 'Maybe' 'Text'+--+-- * 'dcvMaxRecords' @::@ 'Maybe' 'Int'+--+describeClusterVersions :: DescribeClusterVersions+describeClusterVersions = DescribeClusterVersions+ { _dcvClusterVersion = Nothing+ , _dcvClusterParameterGroupFamily = Nothing+ , _dcvMaxRecords = Nothing+ , _dcvMarker = Nothing+ }++-- | The name of a specific cluster parameter group family to return details+-- for. Constraints: Must be 1 to 255 alphanumeric characters First+-- character must be a letter Cannot end with a hyphen or contain two+-- consecutive hyphens.+dcvClusterParameterGroupFamily :: Lens' DescribeClusterVersions (Maybe Text)+dcvClusterParameterGroupFamily =+ lens _dcvClusterParameterGroupFamily+ (\s a -> s { _dcvClusterParameterGroupFamily = a })++-- | The specific cluster version to return. Example: 1.0.+dcvClusterVersion :: Lens' DescribeClusterVersions (Maybe Text)+dcvClusterVersion =+ lens _dcvClusterVersion (\s a -> s { _dcvClusterVersion = a })++-- | An optional parameter that specifies the starting point to return a set+-- of response records. When the results of a DescribeClusterVersions+-- request exceed the value specified in MaxRecords, AWS returns a value in+-- the Marker field of the response. You can retrieve the next set of+-- response records by providing the returned marker value in the Marker+-- parameter and retrying the request.+dcvMarker :: Lens' DescribeClusterVersions (Maybe Text)+dcvMarker = lens _dcvMarker (\s a -> s { _dcvMarker = a })++-- | The maximum number of response records to return in each call. If the+-- number of remaining response records exceeds the specified MaxRecords+-- value, a value is returned in a marker field of the response. You can+-- retrieve the next set of records by retrying the command with the+-- returned marker value. Default: 100 Constraints: minimum 20, maximum 100.+dcvMaxRecords :: Lens' DescribeClusterVersions (Maybe Int)+dcvMaxRecords = lens _dcvMaxRecords (\s a -> s { _dcvMaxRecords = a })++data DescribeClusterVersionsResponse = DescribeClusterVersionsResponse+ { _dcvrClusterVersions :: List "ClusterVersion" ClusterVersion+ , _dcvrMarker :: Maybe Text+ } deriving (Eq, Show)++-- | 'DescribeClusterVersionsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcvrClusterVersions' @::@ ['ClusterVersion']+--+-- * 'dcvrMarker' @::@ 'Maybe' 'Text'+--+describeClusterVersionsResponse :: DescribeClusterVersionsResponse+describeClusterVersionsResponse = DescribeClusterVersionsResponse+ { _dcvrMarker = Nothing+ , _dcvrClusterVersions = mempty+ }++-- | A list of Version elements.+dcvrClusterVersions :: Lens' DescribeClusterVersionsResponse [ClusterVersion]+dcvrClusterVersions =+ lens _dcvrClusterVersions (\s a -> s { _dcvrClusterVersions = a })+ . _List++-- | A value that indicates the starting point for the next set of response+-- records in a subsequent request. If a value is returned in a response,+-- you can retrieve the next set of records by providing this returned+-- marker value in the Marker parameter and retrying the command. If the+-- Marker field is empty, all response records have been retrieved for the+-- request.+dcvrMarker :: Lens' DescribeClusterVersionsResponse (Maybe Text)+dcvrMarker = lens _dcvrMarker (\s a -> s { _dcvrMarker = a })++instance ToPath DescribeClusterVersions where+ toPath = const "/"++instance ToQuery DescribeClusterVersions where+ toQuery DescribeClusterVersions{..} = mconcat+ [ "ClusterParameterGroupFamily" =? _dcvClusterParameterGroupFamily+ , "ClusterVersion" =? _dcvClusterVersion+ , "Marker" =? _dcvMarker+ , "MaxRecords" =? _dcvMaxRecords+ ]++instance ToHeaders DescribeClusterVersions++instance AWSRequest DescribeClusterVersions where+ type Sv DescribeClusterVersions = Redshift+ type Rs DescribeClusterVersions = DescribeClusterVersionsResponse++ request = post "DescribeClusterVersions"+ response = xmlResponse++instance FromXML DescribeClusterVersionsResponse where+ parseXML = withElement "DescribeClusterVersionsResult" $ \x -> DescribeClusterVersionsResponse+ <$> x .@ "ClusterVersions"+ <*> x .@? "Marker"++instance AWSPager DescribeClusterVersions where+ page rq rs+ | stop (rq ^. dcvMarker) = Nothing+ | otherwise = (\x -> rq & dcvMarker ?~ x)+ <$> (rs ^. dcvrMarker)
+ gen/Network/AWS/Redshift/DescribeClusters.hs view
@@ -0,0 +1,200 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DescribeClusters+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Returns properties of provisioned clusters including general cluster+-- properties, cluster database properties, maintenance and backup properties,+-- and security and access properties. This operation supports pagination. For+-- more information about managing clusters, go to Amazon Redshift Clusters in+-- the Amazon Redshift Cluster Management Guide . If you specify both tag keys+-- and tag values in the same request, Amazon Redshift returns all clusters+-- that match any combination of the specified keys and values. For example,+-- if you have owner and environment for tag keys, and admin and test for tag+-- values, all clusters that have any combination of those values are+-- returned. If both tag keys and values are omitted from the request,+-- clusters are returned regardless of whether they have tag keys or values+-- associated with them.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeClusters.html>+module Network.AWS.Redshift.DescribeClusters+ (+ -- * Request+ DescribeClusters+ -- ** Request constructor+ , describeClusters+ -- ** Request lenses+ , dcClusterIdentifier+ , dcMarker+ , dcMaxRecords+ , dcTagKeys+ , dcTagValues++ -- * Response+ , DescribeClustersResponse+ -- ** Response constructor+ , describeClustersResponse+ -- ** Response lenses+ , dcrClusters+ , dcrMarker+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data DescribeClusters = DescribeClusters+ { _dcClusterIdentifier :: Maybe Text+ , _dcMarker :: Maybe Text+ , _dcMaxRecords :: Maybe Int+ , _dcTagKeys :: List "TagKey" Text+ , _dcTagValues :: List "TagValue" Text+ } deriving (Eq, Ord, Show)++-- | 'DescribeClusters' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcClusterIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'dcMarker' @::@ 'Maybe' 'Text'+--+-- * 'dcMaxRecords' @::@ 'Maybe' 'Int'+--+-- * 'dcTagKeys' @::@ ['Text']+--+-- * 'dcTagValues' @::@ ['Text']+--+describeClusters :: DescribeClusters+describeClusters = DescribeClusters+ { _dcClusterIdentifier = Nothing+ , _dcMaxRecords = Nothing+ , _dcMarker = Nothing+ , _dcTagKeys = mempty+ , _dcTagValues = mempty+ }++-- | The unique identifier of a cluster whose properties you are requesting.+-- This parameter is case sensitive. The default is that all clusters+-- defined for an account are returned.+dcClusterIdentifier :: Lens' DescribeClusters (Maybe Text)+dcClusterIdentifier =+ lens _dcClusterIdentifier (\s a -> s { _dcClusterIdentifier = a })++-- | An optional parameter that specifies the starting point to return a set+-- of response records. When the results of a DescribeClusters request+-- exceed the value specified in MaxRecords, AWS returns a value in the+-- Marker field of the response. You can retrieve the next set of response+-- records by providing the returned marker value in the Marker parameter+-- and retrying the request. Constraints: You can specify either the+-- ClusterIdentifier parameter or the Marker parameter, but not both.+dcMarker :: Lens' DescribeClusters (Maybe Text)+dcMarker = lens _dcMarker (\s a -> s { _dcMarker = a })++-- | The maximum number of response records to return in each call. If the+-- number of remaining response records exceeds the specified MaxRecords+-- value, a value is returned in a marker field of the response. You can+-- retrieve the next set of records by retrying the command with the+-- returned marker value. Default: 100 Constraints: minimum 20, maximum 100.+dcMaxRecords :: Lens' DescribeClusters (Maybe Int)+dcMaxRecords = lens _dcMaxRecords (\s a -> s { _dcMaxRecords = a })++-- | A tag key or keys for which you want to return all matching clusters that+-- are associated with the specified key or keys. For example, suppose that+-- you have clusters that are tagged with keys called owner and environment.+-- If you specify both of these tag keys in the request, Amazon Redshift+-- returns a response with the clusters that have either or both of these+-- tag keys associated with them.+dcTagKeys :: Lens' DescribeClusters [Text]+dcTagKeys = lens _dcTagKeys (\s a -> s { _dcTagKeys = a }) . _List++-- | A tag value or values for which you want to return all matching clusters+-- that are associated with the specified tag value or values. For example,+-- suppose that you have clusters that are tagged with values called admin+-- and test. If you specify both of these tag values in the request, Amazon+-- Redshift returns a response with the clusters that have either or both of+-- these tag values associated with them.+dcTagValues :: Lens' DescribeClusters [Text]+dcTagValues = lens _dcTagValues (\s a -> s { _dcTagValues = a }) . _List++data DescribeClustersResponse = DescribeClustersResponse+ { _dcrClusters :: List "Cluster" Cluster+ , _dcrMarker :: Maybe Text+ } deriving (Eq, Show)++-- | 'DescribeClustersResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcrClusters' @::@ ['Cluster']+--+-- * 'dcrMarker' @::@ 'Maybe' 'Text'+--+describeClustersResponse :: DescribeClustersResponse+describeClustersResponse = DescribeClustersResponse+ { _dcrMarker = Nothing+ , _dcrClusters = mempty+ }++-- | A list of Cluster objects, where each object describes one cluster.+dcrClusters :: Lens' DescribeClustersResponse [Cluster]+dcrClusters = lens _dcrClusters (\s a -> s { _dcrClusters = a }) . _List++-- | A value that indicates the starting point for the next set of response+-- records in a subsequent request. If a value is returned in a response,+-- you can retrieve the next set of records by providing this returned+-- marker value in the Marker parameter and retrying the command. If the+-- Marker field is empty, all response records have been retrieved for the+-- request.+dcrMarker :: Lens' DescribeClustersResponse (Maybe Text)+dcrMarker = lens _dcrMarker (\s a -> s { _dcrMarker = a })++instance ToPath DescribeClusters where+ toPath = const "/"++instance ToQuery DescribeClusters where+ toQuery DescribeClusters{..} = mconcat+ [ "ClusterIdentifier" =? _dcClusterIdentifier+ , "Marker" =? _dcMarker+ , "MaxRecords" =? _dcMaxRecords+ , "TagKeys" =? _dcTagKeys+ , "TagValues" =? _dcTagValues+ ]++instance ToHeaders DescribeClusters++instance AWSRequest DescribeClusters where+ type Sv DescribeClusters = Redshift+ type Rs DescribeClusters = DescribeClustersResponse++ request = post "DescribeClusters"+ response = xmlResponse++instance FromXML DescribeClustersResponse where+ parseXML = withElement "DescribeClustersResult" $ \x -> DescribeClustersResponse+ <$> x .@ "Clusters"+ <*> x .@? "Marker"++instance AWSPager DescribeClusters where+ page rq rs+ | stop (rq ^. dcMarker) = Nothing+ | otherwise = (\x -> rq & dcMarker ?~ x)+ <$> (rs ^. dcrMarker)
+ gen/Network/AWS/Redshift/DescribeDefaultClusterParameters.hs view
@@ -0,0 +1,147 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DescribeDefaultClusterParameters+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Returns a list of parameter settings for the specified parameter group+-- family. For more information about managing parameter groups, go to Amazon+-- Redshift Parameter Groups in the Amazon Redshift Cluster Management Guide.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeDefaultClusterParameters.html>+module Network.AWS.Redshift.DescribeDefaultClusterParameters+ (+ -- * Request+ DescribeDefaultClusterParameters+ -- ** Request constructor+ , describeDefaultClusterParameters+ -- ** Request lenses+ , ddcpMarker+ , ddcpMaxRecords+ , ddcpParameterGroupFamily++ -- * Response+ , DescribeDefaultClusterParametersResponse+ -- ** Response constructor+ , describeDefaultClusterParametersResponse+ -- ** Response lenses+ , ddcprDefaultClusterParameters+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data DescribeDefaultClusterParameters = DescribeDefaultClusterParameters+ { _ddcpMarker :: Maybe Text+ , _ddcpMaxRecords :: Maybe Int+ , _ddcpParameterGroupFamily :: Text+ } deriving (Eq, Ord, Show)++-- | 'DescribeDefaultClusterParameters' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ddcpMarker' @::@ 'Maybe' 'Text'+--+-- * 'ddcpMaxRecords' @::@ 'Maybe' 'Int'+--+-- * 'ddcpParameterGroupFamily' @::@ 'Text'+--+describeDefaultClusterParameters :: Text -- ^ 'ddcpParameterGroupFamily'+ -> DescribeDefaultClusterParameters+describeDefaultClusterParameters p1 = DescribeDefaultClusterParameters+ { _ddcpParameterGroupFamily = p1+ , _ddcpMaxRecords = Nothing+ , _ddcpMarker = Nothing+ }++-- | An optional parameter that specifies the starting point to return a set+-- of response records. When the results of a+-- DescribeDefaultClusterParameters request exceed the value specified in+-- MaxRecords, AWS returns a value in the Marker field of the response. You+-- can retrieve the next set of response records by providing the returned+-- marker value in the Marker parameter and retrying the request.+ddcpMarker :: Lens' DescribeDefaultClusterParameters (Maybe Text)+ddcpMarker = lens _ddcpMarker (\s a -> s { _ddcpMarker = a })++-- | The maximum number of response records to return in each call. If the+-- number of remaining response records exceeds the specified MaxRecords+-- value, a value is returned in a marker field of the response. You can+-- retrieve the next set of records by retrying the command with the+-- returned marker value. Default: 100 Constraints: minimum 20, maximum 100.+ddcpMaxRecords :: Lens' DescribeDefaultClusterParameters (Maybe Int)+ddcpMaxRecords = lens _ddcpMaxRecords (\s a -> s { _ddcpMaxRecords = a })++-- | The name of the cluster parameter group family.+ddcpParameterGroupFamily :: Lens' DescribeDefaultClusterParameters Text+ddcpParameterGroupFamily =+ lens _ddcpParameterGroupFamily+ (\s a -> s { _ddcpParameterGroupFamily = a })++newtype DescribeDefaultClusterParametersResponse = DescribeDefaultClusterParametersResponse+ { _ddcprDefaultClusterParameters :: DefaultClusterParameters+ } deriving (Eq, Show)++-- | 'DescribeDefaultClusterParametersResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ddcprDefaultClusterParameters' @::@ 'DefaultClusterParameters'+--+describeDefaultClusterParametersResponse :: DefaultClusterParameters -- ^ 'ddcprDefaultClusterParameters'+ -> DescribeDefaultClusterParametersResponse+describeDefaultClusterParametersResponse p1 = DescribeDefaultClusterParametersResponse+ { _ddcprDefaultClusterParameters = p1+ }++ddcprDefaultClusterParameters :: Lens' DescribeDefaultClusterParametersResponse DefaultClusterParameters+ddcprDefaultClusterParameters =+ lens _ddcprDefaultClusterParameters+ (\s a -> s { _ddcprDefaultClusterParameters = a })++instance ToPath DescribeDefaultClusterParameters where+ toPath = const "/"++instance ToQuery DescribeDefaultClusterParameters where+ toQuery DescribeDefaultClusterParameters{..} = mconcat+ [ "Marker" =? _ddcpMarker+ , "MaxRecords" =? _ddcpMaxRecords+ , "ParameterGroupFamily" =? _ddcpParameterGroupFamily+ ]++instance ToHeaders DescribeDefaultClusterParameters++instance AWSRequest DescribeDefaultClusterParameters where+ type Sv DescribeDefaultClusterParameters = Redshift+ type Rs DescribeDefaultClusterParameters = DescribeDefaultClusterParametersResponse++ request = post "DescribeDefaultClusterParameters"+ response = xmlResponse++instance FromXML DescribeDefaultClusterParametersResponse where+ parseXML = withElement "DescribeDefaultClusterParametersResult" $ \x -> DescribeDefaultClusterParametersResponse+ <$> x .@ "DefaultClusterParameters"++instance AWSPager DescribeDefaultClusterParameters where+ page rq rs+ | stop (rq ^. ddcpMarker) = Nothing+ | otherwise = (\x -> rq & ddcpMarker ?~ x)+ <$> (rs ^. ddcprDefaultClusterParameters . dcpMarker)
+ gen/Network/AWS/Redshift/DescribeEventCategories.hs view
@@ -0,0 +1,118 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DescribeEventCategories+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Displays a list of event categories for all event source types, or for a+-- specified source type. For a list of the event categories and source types,+-- go to Amazon Redshift Event Notifications.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeEventCategories.html>+module Network.AWS.Redshift.DescribeEventCategories+ (+ -- * Request+ DescribeEventCategories+ -- ** Request constructor+ , describeEventCategories+ -- ** Request lenses+ , decSourceType++ -- * Response+ , DescribeEventCategoriesResponse+ -- ** Response constructor+ , describeEventCategoriesResponse+ -- ** Response lenses+ , decrEventCategoriesMapList+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++newtype DescribeEventCategories = DescribeEventCategories+ { _decSourceType :: Maybe Text+ } deriving (Eq, Ord, Show, Monoid)++-- | 'DescribeEventCategories' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'decSourceType' @::@ 'Maybe' 'Text'+--+describeEventCategories :: DescribeEventCategories+describeEventCategories = DescribeEventCategories+ { _decSourceType = Nothing+ }++-- | The source type, such as cluster or parameter group, to which the+-- described event categories apply. Valid values: cluster, snapshot,+-- parameter group, and security group.+decSourceType :: Lens' DescribeEventCategories (Maybe Text)+decSourceType = lens _decSourceType (\s a -> s { _decSourceType = a })++newtype DescribeEventCategoriesResponse = DescribeEventCategoriesResponse+ { _decrEventCategoriesMapList :: List "EventCategoriesMap" EventCategoriesMap+ } deriving (Eq, Show, Monoid, Semigroup)++instance GHC.Exts.IsList DescribeEventCategoriesResponse where+ type Item DescribeEventCategoriesResponse = EventCategoriesMap++ fromList = DescribeEventCategoriesResponse . GHC.Exts.fromList+ toList = GHC.Exts.toList . _decrEventCategoriesMapList++-- | 'DescribeEventCategoriesResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'decrEventCategoriesMapList' @::@ ['EventCategoriesMap']+--+describeEventCategoriesResponse :: DescribeEventCategoriesResponse+describeEventCategoriesResponse = DescribeEventCategoriesResponse+ { _decrEventCategoriesMapList = mempty+ }++-- | A list of event categories descriptions.+decrEventCategoriesMapList :: Lens' DescribeEventCategoriesResponse [EventCategoriesMap]+decrEventCategoriesMapList =+ lens _decrEventCategoriesMapList+ (\s a -> s { _decrEventCategoriesMapList = a })+ . _List++instance ToPath DescribeEventCategories where+ toPath = const "/"++instance ToQuery DescribeEventCategories where+ toQuery DescribeEventCategories{..} = mconcat+ [ "SourceType" =? _decSourceType+ ]++instance ToHeaders DescribeEventCategories++instance AWSRequest DescribeEventCategories where+ type Sv DescribeEventCategories = Redshift+ type Rs DescribeEventCategories = DescribeEventCategoriesResponse++ request = post "DescribeEventCategories"+ response = xmlResponse++instance FromXML DescribeEventCategoriesResponse where+ parseXML = withElement "DescribeEventCategoriesResult" $ \x -> DescribeEventCategoriesResponse+ <$> x .@ "EventCategoriesMapList"
+ gen/Network/AWS/Redshift/DescribeEventSubscriptions.hs view
@@ -0,0 +1,162 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DescribeEventSubscriptions+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Lists descriptions of all the Amazon Redshift event notifications+-- subscription for a customer account. If you specify a subscription name,+-- lists the description for that subscription.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeEventSubscriptions.html>+module Network.AWS.Redshift.DescribeEventSubscriptions+ (+ -- * Request+ DescribeEventSubscriptions+ -- ** Request constructor+ , describeEventSubscriptions+ -- ** Request lenses+ , des1Marker+ , des1MaxRecords+ , des1SubscriptionName++ -- * Response+ , DescribeEventSubscriptionsResponse+ -- ** Response constructor+ , describeEventSubscriptionsResponse+ -- ** Response lenses+ , desrEventSubscriptionsList+ , desrMarker+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data DescribeEventSubscriptions = DescribeEventSubscriptions+ { _des1Marker :: Maybe Text+ , _des1MaxRecords :: Maybe Int+ , _des1SubscriptionName :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'DescribeEventSubscriptions' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'des1Marker' @::@ 'Maybe' 'Text'+--+-- * 'des1MaxRecords' @::@ 'Maybe' 'Int'+--+-- * 'des1SubscriptionName' @::@ 'Maybe' 'Text'+--+describeEventSubscriptions :: DescribeEventSubscriptions+describeEventSubscriptions = DescribeEventSubscriptions+ { _des1SubscriptionName = Nothing+ , _des1MaxRecords = Nothing+ , _des1Marker = Nothing+ }++-- | An optional parameter that specifies the starting point to return a set+-- of response records. When the results of a DescribeEventSubscriptions+-- request exceed the value specified in MaxRecords, AWS returns a value in+-- the Marker field of the response. You can retrieve the next set of+-- response records by providing the returned marker value in the Marker+-- parameter and retrying the request.+des1Marker :: Lens' DescribeEventSubscriptions (Maybe Text)+des1Marker = lens _des1Marker (\s a -> s { _des1Marker = a })++-- | The maximum number of response records to return in each call. If the+-- number of remaining response records exceeds the specified MaxRecords+-- value, a value is returned in a marker field of the response. You can+-- retrieve the next set of records by retrying the command with the+-- returned marker value. Default: 100 Constraints: minimum 20, maximum 100.+des1MaxRecords :: Lens' DescribeEventSubscriptions (Maybe Int)+des1MaxRecords = lens _des1MaxRecords (\s a -> s { _des1MaxRecords = a })++-- | The name of the Amazon Redshift event notification subscription to be+-- described.+des1SubscriptionName :: Lens' DescribeEventSubscriptions (Maybe Text)+des1SubscriptionName =+ lens _des1SubscriptionName (\s a -> s { _des1SubscriptionName = a })++data DescribeEventSubscriptionsResponse = DescribeEventSubscriptionsResponse+ { _desrEventSubscriptionsList :: List "EventSubscription" EventSubscription+ , _desrMarker :: Maybe Text+ } deriving (Eq, Show)++-- | 'DescribeEventSubscriptionsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'desrEventSubscriptionsList' @::@ ['EventSubscription']+--+-- * 'desrMarker' @::@ 'Maybe' 'Text'+--+describeEventSubscriptionsResponse :: DescribeEventSubscriptionsResponse+describeEventSubscriptionsResponse = DescribeEventSubscriptionsResponse+ { _desrMarker = Nothing+ , _desrEventSubscriptionsList = mempty+ }++-- | A list of event subscriptions.+desrEventSubscriptionsList :: Lens' DescribeEventSubscriptionsResponse [EventSubscription]+desrEventSubscriptionsList =+ lens _desrEventSubscriptionsList+ (\s a -> s { _desrEventSubscriptionsList = a })+ . _List++-- | A value that indicates the starting point for the next set of response+-- records in a subsequent request. If a value is returned in a response,+-- you can retrieve the next set of records by providing this returned+-- marker value in the Marker parameter and retrying the command. If the+-- Marker field is empty, all response records have been retrieved for the+-- request.+desrMarker :: Lens' DescribeEventSubscriptionsResponse (Maybe Text)+desrMarker = lens _desrMarker (\s a -> s { _desrMarker = a })++instance ToPath DescribeEventSubscriptions where+ toPath = const "/"++instance ToQuery DescribeEventSubscriptions where+ toQuery DescribeEventSubscriptions{..} = mconcat+ [ "Marker" =? _des1Marker+ , "MaxRecords" =? _des1MaxRecords+ , "SubscriptionName" =? _des1SubscriptionName+ ]++instance ToHeaders DescribeEventSubscriptions++instance AWSRequest DescribeEventSubscriptions where+ type Sv DescribeEventSubscriptions = Redshift+ type Rs DescribeEventSubscriptions = DescribeEventSubscriptionsResponse++ request = post "DescribeEventSubscriptions"+ response = xmlResponse++instance FromXML DescribeEventSubscriptionsResponse where+ parseXML = withElement "DescribeEventSubscriptionsResult" $ \x -> DescribeEventSubscriptionsResponse+ <$> x .@ "EventSubscriptionsList"+ <*> x .@? "Marker"++instance AWSPager DescribeEventSubscriptions where+ page rq rs+ | stop (rq ^. des1Marker) = Nothing+ | otherwise = (\x -> rq & des1Marker ?~ x)+ <$> (rs ^. desrMarker)
+ gen/Network/AWS/Redshift/DescribeEvents.hs view
@@ -0,0 +1,221 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DescribeEvents+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Returns events related to clusters, security groups, snapshots, and+-- parameter groups for the past 14 days. Events specific to a particular+-- cluster, security group, snapshot or parameter group can be obtained by+-- providing the name as a parameter. By default, the past hour of events are+-- returned.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeEvents.html>+module Network.AWS.Redshift.DescribeEvents+ (+ -- * Request+ DescribeEvents+ -- ** Request constructor+ , describeEvents+ -- ** Request lenses+ , deDuration+ , deEndTime+ , deMarker+ , deMaxRecords+ , deSourceIdentifier+ , deSourceType+ , deStartTime++ -- * Response+ , DescribeEventsResponse+ -- ** Response constructor+ , describeEventsResponse+ -- ** Response lenses+ , derEvents+ , derMarker+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data DescribeEvents = DescribeEvents+ { _deDuration :: Maybe Int+ , _deEndTime :: Maybe RFC822+ , _deMarker :: Maybe Text+ , _deMaxRecords :: Maybe Int+ , _deSourceIdentifier :: Maybe Text+ , _deSourceType :: Maybe Text+ , _deStartTime :: Maybe RFC822+ } deriving (Eq, Ord, Show)++-- | 'DescribeEvents' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'deDuration' @::@ 'Maybe' 'Int'+--+-- * 'deEndTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'deMarker' @::@ 'Maybe' 'Text'+--+-- * 'deMaxRecords' @::@ 'Maybe' 'Int'+--+-- * 'deSourceIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'deSourceType' @::@ 'Maybe' 'Text'+--+-- * 'deStartTime' @::@ 'Maybe' 'UTCTime'+--+describeEvents :: DescribeEvents+describeEvents = DescribeEvents+ { _deSourceIdentifier = Nothing+ , _deSourceType = Nothing+ , _deStartTime = Nothing+ , _deEndTime = Nothing+ , _deDuration = Nothing+ , _deMaxRecords = Nothing+ , _deMarker = Nothing+ }++-- | The number of minutes prior to the time of the request for which to+-- retrieve events. For example, if the request is sent at 18:00 and you+-- specify a duration of 60, then only events which have occurred after+-- 17:00 will be returned. Default: 60.+deDuration :: Lens' DescribeEvents (Maybe Int)+deDuration = lens _deDuration (\s a -> s { _deDuration = a })++-- | The end of the time interval for which to retrieve events, specified in+-- ISO 8601 format. For more information about ISO 8601, go to the ISO8601+-- Wikipedia page. Example: 2009-07-08T18:00Z.+deEndTime :: Lens' DescribeEvents (Maybe UTCTime)+deEndTime = lens _deEndTime (\s a -> s { _deEndTime = a }) . mapping _Time++-- | An optional parameter that specifies the starting point to return a set+-- of response records. When the results of a DescribeEvents request exceed+-- the value specified in MaxRecords, AWS returns a value in the Marker+-- field of the response. You can retrieve the next set of response records+-- by providing the returned marker value in the Marker parameter and+-- retrying the request.+deMarker :: Lens' DescribeEvents (Maybe Text)+deMarker = lens _deMarker (\s a -> s { _deMarker = a })++-- | The maximum number of response records to return in each call. If the+-- number of remaining response records exceeds the specified MaxRecords+-- value, a value is returned in a marker field of the response. You can+-- retrieve the next set of records by retrying the command with the+-- returned marker value. Default: 100 Constraints: minimum 20, maximum 100.+deMaxRecords :: Lens' DescribeEvents (Maybe Int)+deMaxRecords = lens _deMaxRecords (\s a -> s { _deMaxRecords = a })++-- | The identifier of the event source for which events will be returned. If+-- this parameter is not specified, then all sources are included in the+-- response. Constraints: If SourceIdentifier is supplied, SourceType must+-- also be provided. Specify a cluster identifier when SourceType is+-- cluster. Specify a cluster security group name when SourceType is+-- cluster-security-group. Specify a cluster parameter group name when+-- SourceType is cluster-parameter-group. Specify a cluster snapshot+-- identifier when SourceType is cluster-snapshot.+deSourceIdentifier :: Lens' DescribeEvents (Maybe Text)+deSourceIdentifier =+ lens _deSourceIdentifier (\s a -> s { _deSourceIdentifier = a })++-- | The event source to retrieve events for. If no value is specified, all+-- events are returned. Constraints: If SourceType is supplied,+-- SourceIdentifier must also be provided. Specify cluster when+-- SourceIdentifier is a cluster identifier. Specify cluster-security-group+-- when SourceIdentifier is a cluster security group name. Specify+-- cluster-parameter-group when SourceIdentifier is a cluster parameter+-- group name. Specify cluster-snapshot when SourceIdentifier is a cluster+-- snapshot identifier.+deSourceType :: Lens' DescribeEvents (Maybe Text)+deSourceType = lens _deSourceType (\s a -> s { _deSourceType = a })++-- | The beginning of the time interval to retrieve events for, specified in+-- ISO 8601 format. For more information about ISO 8601, go to the ISO8601+-- Wikipedia page. Example: 2009-07-08T18:00Z.+deStartTime :: Lens' DescribeEvents (Maybe UTCTime)+deStartTime = lens _deStartTime (\s a -> s { _deStartTime = a }) . mapping _Time++data DescribeEventsResponse = DescribeEventsResponse+ { _derEvents :: List "Event" Event+ , _derMarker :: Maybe Text+ } deriving (Eq, Show)++-- | 'DescribeEventsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'derEvents' @::@ ['Event']+--+-- * 'derMarker' @::@ 'Maybe' 'Text'+--+describeEventsResponse :: DescribeEventsResponse+describeEventsResponse = DescribeEventsResponse+ { _derMarker = Nothing+ , _derEvents = mempty+ }++-- | A list of Event instances.+derEvents :: Lens' DescribeEventsResponse [Event]+derEvents = lens _derEvents (\s a -> s { _derEvents = a }) . _List++-- | A value that indicates the starting point for the next set of response+-- records in a subsequent request. If a value is returned in a response,+-- you can retrieve the next set of records by providing this returned+-- marker value in the Marker parameter and retrying the command. If the+-- Marker field is empty, all response records have been retrieved for the+-- request.+derMarker :: Lens' DescribeEventsResponse (Maybe Text)+derMarker = lens _derMarker (\s a -> s { _derMarker = a })++instance ToPath DescribeEvents where+ toPath = const "/"++instance ToQuery DescribeEvents where+ toQuery DescribeEvents{..} = mconcat+ [ "Duration" =? _deDuration+ , "EndTime" =? _deEndTime+ , "Marker" =? _deMarker+ , "MaxRecords" =? _deMaxRecords+ , "SourceIdentifier" =? _deSourceIdentifier+ , "SourceType" =? _deSourceType+ , "StartTime" =? _deStartTime+ ]++instance ToHeaders DescribeEvents++instance AWSRequest DescribeEvents where+ type Sv DescribeEvents = Redshift+ type Rs DescribeEvents = DescribeEventsResponse++ request = post "DescribeEvents"+ response = xmlResponse++instance FromXML DescribeEventsResponse where+ parseXML = withElement "DescribeEventsResult" $ \x -> DescribeEventsResponse+ <$> x .@ "Events"+ <*> x .@? "Marker"++instance AWSPager DescribeEvents where+ page rq rs+ | stop (rq ^. deMarker) = Nothing+ | otherwise = (\x -> rq & deMarker ?~ x)+ <$> (rs ^. derMarker)
+ gen/Network/AWS/Redshift/DescribeHsmClientCertificates.hs view
@@ -0,0 +1,205 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DescribeHsmClientCertificates+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Returns information about the specified HSM client certificate. If no+-- certificate ID is specified, returns information about all the HSM+-- certificates owned by your AWS customer account. If you specify both tag+-- keys and tag values in the same request, Amazon Redshift returns all HSM+-- client certificates that match any combination of the specified keys and+-- values. For example, if you have owner and environment for tag keys, and+-- admin and test for tag values, all HSM client certificates that have any+-- combination of those values are returned. If both tag keys and values are+-- omitted from the request, HSM client certificates are returned regardless+-- of whether they have tag keys or values associated with them.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeHsmClientCertificates.html>+module Network.AWS.Redshift.DescribeHsmClientCertificates+ (+ -- * Request+ DescribeHsmClientCertificates+ -- ** Request constructor+ , describeHsmClientCertificates+ -- ** Request lenses+ , dhccHsmClientCertificateIdentifier+ , dhccMarker+ , dhccMaxRecords+ , dhccTagKeys+ , dhccTagValues++ -- * Response+ , DescribeHsmClientCertificatesResponse+ -- ** Response constructor+ , describeHsmClientCertificatesResponse+ -- ** Response lenses+ , dhccrHsmClientCertificates+ , dhccrMarker+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data DescribeHsmClientCertificates = DescribeHsmClientCertificates+ { _dhccHsmClientCertificateIdentifier :: Maybe Text+ , _dhccMarker :: Maybe Text+ , _dhccMaxRecords :: Maybe Int+ , _dhccTagKeys :: List "TagKey" Text+ , _dhccTagValues :: List "TagValue" Text+ } deriving (Eq, Ord, Show)++-- | 'DescribeHsmClientCertificates' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dhccHsmClientCertificateIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'dhccMarker' @::@ 'Maybe' 'Text'+--+-- * 'dhccMaxRecords' @::@ 'Maybe' 'Int'+--+-- * 'dhccTagKeys' @::@ ['Text']+--+-- * 'dhccTagValues' @::@ ['Text']+--+describeHsmClientCertificates :: DescribeHsmClientCertificates+describeHsmClientCertificates = DescribeHsmClientCertificates+ { _dhccHsmClientCertificateIdentifier = Nothing+ , _dhccMaxRecords = Nothing+ , _dhccMarker = Nothing+ , _dhccTagKeys = mempty+ , _dhccTagValues = mempty+ }++-- | The identifier of a specific HSM client certificate for which you want+-- information. If no identifier is specified, information is returned for+-- all HSM client certificates owned by your AWS customer account.+dhccHsmClientCertificateIdentifier :: Lens' DescribeHsmClientCertificates (Maybe Text)+dhccHsmClientCertificateIdentifier =+ lens _dhccHsmClientCertificateIdentifier+ (\s a -> s { _dhccHsmClientCertificateIdentifier = a })++-- | An optional parameter that specifies the starting point to return a set+-- of response records. When the results of a DescribeHsmClientCertificates+-- request exceed the value specified in MaxRecords, AWS returns a value in+-- the Marker field of the response. You can retrieve the next set of+-- response records by providing the returned marker value in the Marker+-- parameter and retrying the request.+dhccMarker :: Lens' DescribeHsmClientCertificates (Maybe Text)+dhccMarker = lens _dhccMarker (\s a -> s { _dhccMarker = a })++-- | The maximum number of response records to return in each call. If the+-- number of remaining response records exceeds the specified MaxRecords+-- value, a value is returned in a marker field of the response. You can+-- retrieve the next set of records by retrying the command with the+-- returned marker value. Default: 100 Constraints: minimum 20, maximum 100.+dhccMaxRecords :: Lens' DescribeHsmClientCertificates (Maybe Int)+dhccMaxRecords = lens _dhccMaxRecords (\s a -> s { _dhccMaxRecords = a })++-- | A tag key or keys for which you want to return all matching HSM client+-- certificates that are associated with the specified key or keys. For+-- example, suppose that you have HSM client certificates that are tagged+-- with keys called owner and environment. If you specify both of these tag+-- keys in the request, Amazon Redshift returns a response with the HSM+-- client certificates that have either or both of these tag keys associated+-- with them.+dhccTagKeys :: Lens' DescribeHsmClientCertificates [Text]+dhccTagKeys = lens _dhccTagKeys (\s a -> s { _dhccTagKeys = a }) . _List++-- | A tag value or values for which you want to return all matching HSM+-- client certificates that are associated with the specified tag value or+-- values. For example, suppose that you have HSM client certificates that+-- are tagged with values called admin and test. If you specify both of+-- these tag values in the request, Amazon Redshift returns a response with+-- the HSM client certificates that have either or both of these tag values+-- associated with them.+dhccTagValues :: Lens' DescribeHsmClientCertificates [Text]+dhccTagValues = lens _dhccTagValues (\s a -> s { _dhccTagValues = a }) . _List++data DescribeHsmClientCertificatesResponse = DescribeHsmClientCertificatesResponse+ { _dhccrHsmClientCertificates :: List "HsmClientCertificate" HsmClientCertificate+ , _dhccrMarker :: Maybe Text+ } deriving (Eq, Show)++-- | 'DescribeHsmClientCertificatesResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dhccrHsmClientCertificates' @::@ ['HsmClientCertificate']+--+-- * 'dhccrMarker' @::@ 'Maybe' 'Text'+--+describeHsmClientCertificatesResponse :: DescribeHsmClientCertificatesResponse+describeHsmClientCertificatesResponse = DescribeHsmClientCertificatesResponse+ { _dhccrMarker = Nothing+ , _dhccrHsmClientCertificates = mempty+ }++-- | A list of the identifiers for one or more HSM client certificates used by+-- Amazon Redshift clusters to store and retrieve database encryption keys+-- in an HSM.+dhccrHsmClientCertificates :: Lens' DescribeHsmClientCertificatesResponse [HsmClientCertificate]+dhccrHsmClientCertificates =+ lens _dhccrHsmClientCertificates+ (\s a -> s { _dhccrHsmClientCertificates = a })+ . _List++-- | A value that indicates the starting point for the next set of response+-- records in a subsequent request. If a value is returned in a response,+-- you can retrieve the next set of records by providing this returned+-- marker value in the Marker parameter and retrying the command. If the+-- Marker field is empty, all response records have been retrieved for the+-- request.+dhccrMarker :: Lens' DescribeHsmClientCertificatesResponse (Maybe Text)+dhccrMarker = lens _dhccrMarker (\s a -> s { _dhccrMarker = a })++instance ToPath DescribeHsmClientCertificates where+ toPath = const "/"++instance ToQuery DescribeHsmClientCertificates where+ toQuery DescribeHsmClientCertificates{..} = mconcat+ [ "HsmClientCertificateIdentifier" =? _dhccHsmClientCertificateIdentifier+ , "Marker" =? _dhccMarker+ , "MaxRecords" =? _dhccMaxRecords+ , "TagKeys" =? _dhccTagKeys+ , "TagValues" =? _dhccTagValues+ ]++instance ToHeaders DescribeHsmClientCertificates++instance AWSRequest DescribeHsmClientCertificates where+ type Sv DescribeHsmClientCertificates = Redshift+ type Rs DescribeHsmClientCertificates = DescribeHsmClientCertificatesResponse++ request = post "DescribeHsmClientCertificates"+ response = xmlResponse++instance FromXML DescribeHsmClientCertificatesResponse where+ parseXML = withElement "DescribeHsmClientCertificatesResult" $ \x -> DescribeHsmClientCertificatesResponse+ <$> x .@ "HsmClientCertificates"+ <*> x .@? "Marker"++instance AWSPager DescribeHsmClientCertificates where+ page rq rs+ | stop (rq ^. dhccMarker) = Nothing+ | otherwise = (\x -> rq & dhccMarker ?~ x)+ <$> (rs ^. dhccrMarker)
+ gen/Network/AWS/Redshift/DescribeHsmConfigurations.hs view
@@ -0,0 +1,202 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DescribeHsmConfigurations+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Returns information about the specified Amazon Redshift HSM configuration.+-- If no configuration ID is specified, returns information about all the HSM+-- configurations owned by your AWS customer account. If you specify both tag+-- keys and tag values in the same request, Amazon Redshift returns all HSM+-- connections that match any combination of the specified keys and values.+-- For example, if you have owner and environment for tag keys, and admin and+-- test for tag values, all HSM connections that have any combination of those+-- values are returned. If both tag keys and values are omitted from the+-- request, HSM connections are returned regardless of whether they have tag+-- keys or values associated with them.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeHsmConfigurations.html>+module Network.AWS.Redshift.DescribeHsmConfigurations+ (+ -- * Request+ DescribeHsmConfigurations+ -- ** Request constructor+ , describeHsmConfigurations+ -- ** Request lenses+ , dhc1HsmConfigurationIdentifier+ , dhc1Marker+ , dhc1MaxRecords+ , dhc1TagKeys+ , dhc1TagValues++ -- * Response+ , DescribeHsmConfigurationsResponse+ -- ** Response constructor+ , describeHsmConfigurationsResponse+ -- ** Response lenses+ , dhcrHsmConfigurations+ , dhcrMarker+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data DescribeHsmConfigurations = DescribeHsmConfigurations+ { _dhc1HsmConfigurationIdentifier :: Maybe Text+ , _dhc1Marker :: Maybe Text+ , _dhc1MaxRecords :: Maybe Int+ , _dhc1TagKeys :: List "TagKey" Text+ , _dhc1TagValues :: List "TagValue" Text+ } deriving (Eq, Ord, Show)++-- | 'DescribeHsmConfigurations' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dhc1HsmConfigurationIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'dhc1Marker' @::@ 'Maybe' 'Text'+--+-- * 'dhc1MaxRecords' @::@ 'Maybe' 'Int'+--+-- * 'dhc1TagKeys' @::@ ['Text']+--+-- * 'dhc1TagValues' @::@ ['Text']+--+describeHsmConfigurations :: DescribeHsmConfigurations+describeHsmConfigurations = DescribeHsmConfigurations+ { _dhc1HsmConfigurationIdentifier = Nothing+ , _dhc1MaxRecords = Nothing+ , _dhc1Marker = Nothing+ , _dhc1TagKeys = mempty+ , _dhc1TagValues = mempty+ }++-- | The identifier of a specific Amazon Redshift HSM configuration to be+-- described. If no identifier is specified, information is returned for all+-- HSM configurations owned by your AWS customer account.+dhc1HsmConfigurationIdentifier :: Lens' DescribeHsmConfigurations (Maybe Text)+dhc1HsmConfigurationIdentifier =+ lens _dhc1HsmConfigurationIdentifier+ (\s a -> s { _dhc1HsmConfigurationIdentifier = a })++-- | An optional parameter that specifies the starting point to return a set+-- of response records. When the results of a DescribeHsmConfigurations+-- request exceed the value specified in MaxRecords, AWS returns a value in+-- the Marker field of the response. You can retrieve the next set of+-- response records by providing the returned marker value in the Marker+-- parameter and retrying the request.+dhc1Marker :: Lens' DescribeHsmConfigurations (Maybe Text)+dhc1Marker = lens _dhc1Marker (\s a -> s { _dhc1Marker = a })++-- | The maximum number of response records to return in each call. If the+-- number of remaining response records exceeds the specified MaxRecords+-- value, a value is returned in a marker field of the response. You can+-- retrieve the next set of records by retrying the command with the+-- returned marker value. Default: 100 Constraints: minimum 20, maximum 100.+dhc1MaxRecords :: Lens' DescribeHsmConfigurations (Maybe Int)+dhc1MaxRecords = lens _dhc1MaxRecords (\s a -> s { _dhc1MaxRecords = a })++-- | A tag key or keys for which you want to return all matching HSM+-- configurations that are associated with the specified key or keys. For+-- example, suppose that you have HSM configurations that are tagged with+-- keys called owner and environment. If you specify both of these tag keys+-- in the request, Amazon Redshift returns a response with the HSM+-- configurations that have either or both of these tag keys associated with+-- them.+dhc1TagKeys :: Lens' DescribeHsmConfigurations [Text]+dhc1TagKeys = lens _dhc1TagKeys (\s a -> s { _dhc1TagKeys = a }) . _List++-- | A tag value or values for which you want to return all matching HSM+-- configurations that are associated with the specified tag value or+-- values. For example, suppose that you have HSM configurations that are+-- tagged with values called admin and test. If you specify both of these+-- tag values in the request, Amazon Redshift returns a response with the+-- HSM configurations that have either or both of these tag values+-- associated with them.+dhc1TagValues :: Lens' DescribeHsmConfigurations [Text]+dhc1TagValues = lens _dhc1TagValues (\s a -> s { _dhc1TagValues = a }) . _List++data DescribeHsmConfigurationsResponse = DescribeHsmConfigurationsResponse+ { _dhcrHsmConfigurations :: List "HsmConfiguration" HsmConfiguration+ , _dhcrMarker :: Maybe Text+ } deriving (Eq, Show)++-- | 'DescribeHsmConfigurationsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dhcrHsmConfigurations' @::@ ['HsmConfiguration']+--+-- * 'dhcrMarker' @::@ 'Maybe' 'Text'+--+describeHsmConfigurationsResponse :: DescribeHsmConfigurationsResponse+describeHsmConfigurationsResponse = DescribeHsmConfigurationsResponse+ { _dhcrMarker = Nothing+ , _dhcrHsmConfigurations = mempty+ }++-- | A list of Amazon Redshift HSM configurations.+dhcrHsmConfigurations :: Lens' DescribeHsmConfigurationsResponse [HsmConfiguration]+dhcrHsmConfigurations =+ lens _dhcrHsmConfigurations (\s a -> s { _dhcrHsmConfigurations = a })+ . _List++-- | A value that indicates the starting point for the next set of response+-- records in a subsequent request. If a value is returned in a response,+-- you can retrieve the next set of records by providing this returned+-- marker value in the Marker parameter and retrying the command. If the+-- Marker field is empty, all response records have been retrieved for the+-- request.+dhcrMarker :: Lens' DescribeHsmConfigurationsResponse (Maybe Text)+dhcrMarker = lens _dhcrMarker (\s a -> s { _dhcrMarker = a })++instance ToPath DescribeHsmConfigurations where+ toPath = const "/"++instance ToQuery DescribeHsmConfigurations where+ toQuery DescribeHsmConfigurations{..} = mconcat+ [ "HsmConfigurationIdentifier" =? _dhc1HsmConfigurationIdentifier+ , "Marker" =? _dhc1Marker+ , "MaxRecords" =? _dhc1MaxRecords+ , "TagKeys" =? _dhc1TagKeys+ , "TagValues" =? _dhc1TagValues+ ]++instance ToHeaders DescribeHsmConfigurations++instance AWSRequest DescribeHsmConfigurations where+ type Sv DescribeHsmConfigurations = Redshift+ type Rs DescribeHsmConfigurations = DescribeHsmConfigurationsResponse++ request = post "DescribeHsmConfigurations"+ response = xmlResponse++instance FromXML DescribeHsmConfigurationsResponse where+ parseXML = withElement "DescribeHsmConfigurationsResult" $ \x -> DescribeHsmConfigurationsResponse+ <$> x .@ "HsmConfigurations"+ <*> x .@? "Marker"++instance AWSPager DescribeHsmConfigurations where+ page rq rs+ | stop (rq ^. dhc1Marker) = Nothing+ | otherwise = (\x -> rq & dhc1Marker ?~ x)+ <$> (rs ^. dhcrMarker)
+ gen/Network/AWS/Redshift/DescribeLoggingStatus.hs view
@@ -0,0 +1,166 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DescribeLoggingStatus+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Describes whether information, such as queries and connection attempts, is+-- being logged for the specified Amazon Redshift cluster.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeLoggingStatus.html>+module Network.AWS.Redshift.DescribeLoggingStatus+ (+ -- * Request+ DescribeLoggingStatus+ -- ** Request constructor+ , describeLoggingStatus+ -- ** Request lenses+ , dlsClusterIdentifier++ -- * Response+ , DescribeLoggingStatusResponse+ -- ** Response constructor+ , describeLoggingStatusResponse+ -- ** Response lenses+ , dlsrBucketName+ , dlsrLastFailureMessage+ , dlsrLastFailureTime+ , dlsrLastSuccessfulDeliveryTime+ , dlsrLoggingEnabled+ , dlsrS3KeyPrefix+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++newtype DescribeLoggingStatus = DescribeLoggingStatus+ { _dlsClusterIdentifier :: Text+ } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DescribeLoggingStatus' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dlsClusterIdentifier' @::@ 'Text'+--+describeLoggingStatus :: Text -- ^ 'dlsClusterIdentifier'+ -> DescribeLoggingStatus+describeLoggingStatus p1 = DescribeLoggingStatus+ { _dlsClusterIdentifier = p1+ }++-- | The identifier of the cluster to get the logging status from. Example:+-- examplecluster.+dlsClusterIdentifier :: Lens' DescribeLoggingStatus Text+dlsClusterIdentifier =+ lens _dlsClusterIdentifier (\s a -> s { _dlsClusterIdentifier = a })++data DescribeLoggingStatusResponse = DescribeLoggingStatusResponse+ { _dlsrBucketName :: Maybe Text+ , _dlsrLastFailureMessage :: Maybe Text+ , _dlsrLastFailureTime :: Maybe RFC822+ , _dlsrLastSuccessfulDeliveryTime :: Maybe RFC822+ , _dlsrLoggingEnabled :: Maybe Bool+ , _dlsrS3KeyPrefix :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'DescribeLoggingStatusResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dlsrBucketName' @::@ 'Maybe' 'Text'+--+-- * 'dlsrLastFailureMessage' @::@ 'Maybe' 'Text'+--+-- * 'dlsrLastFailureTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'dlsrLastSuccessfulDeliveryTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'dlsrLoggingEnabled' @::@ 'Maybe' 'Bool'+--+-- * 'dlsrS3KeyPrefix' @::@ 'Maybe' 'Text'+--+describeLoggingStatusResponse :: DescribeLoggingStatusResponse+describeLoggingStatusResponse = DescribeLoggingStatusResponse+ { _dlsrLoggingEnabled = Nothing+ , _dlsrBucketName = Nothing+ , _dlsrS3KeyPrefix = Nothing+ , _dlsrLastSuccessfulDeliveryTime = Nothing+ , _dlsrLastFailureTime = Nothing+ , _dlsrLastFailureMessage = Nothing+ }++-- | The name of the S3 bucket where the log files are stored.+dlsrBucketName :: Lens' DescribeLoggingStatusResponse (Maybe Text)+dlsrBucketName = lens _dlsrBucketName (\s a -> s { _dlsrBucketName = a })++-- | The message indicating that logs failed to be delivered.+dlsrLastFailureMessage :: Lens' DescribeLoggingStatusResponse (Maybe Text)+dlsrLastFailureMessage =+ lens _dlsrLastFailureMessage (\s a -> s { _dlsrLastFailureMessage = a })++-- | The last time when logs failed to be delivered.+dlsrLastFailureTime :: Lens' DescribeLoggingStatusResponse (Maybe UTCTime)+dlsrLastFailureTime =+ lens _dlsrLastFailureTime (\s a -> s { _dlsrLastFailureTime = a })+ . mapping _Time++-- | The last time when logs were delivered.+dlsrLastSuccessfulDeliveryTime :: Lens' DescribeLoggingStatusResponse (Maybe UTCTime)+dlsrLastSuccessfulDeliveryTime =+ lens _dlsrLastSuccessfulDeliveryTime+ (\s a -> s { _dlsrLastSuccessfulDeliveryTime = a })+ . mapping _Time++-- | true if logging is on, false if logging is off.+dlsrLoggingEnabled :: Lens' DescribeLoggingStatusResponse (Maybe Bool)+dlsrLoggingEnabled =+ lens _dlsrLoggingEnabled (\s a -> s { _dlsrLoggingEnabled = a })++-- | The prefix applied to the log file names.+dlsrS3KeyPrefix :: Lens' DescribeLoggingStatusResponse (Maybe Text)+dlsrS3KeyPrefix = lens _dlsrS3KeyPrefix (\s a -> s { _dlsrS3KeyPrefix = a })++instance ToPath DescribeLoggingStatus where+ toPath = const "/"++instance ToQuery DescribeLoggingStatus where+ toQuery DescribeLoggingStatus{..} = mconcat+ [ "ClusterIdentifier" =? _dlsClusterIdentifier+ ]++instance ToHeaders DescribeLoggingStatus++instance AWSRequest DescribeLoggingStatus where+ type Sv DescribeLoggingStatus = Redshift+ type Rs DescribeLoggingStatus = DescribeLoggingStatusResponse++ request = post "DescribeLoggingStatus"+ response = xmlResponse++instance FromXML DescribeLoggingStatusResponse where+ parseXML = withElement "DescribeLoggingStatusResult" $ \x -> DescribeLoggingStatusResponse+ <$> x .@? "BucketName"+ <*> x .@? "LastFailureMessage"+ <*> x .@? "LastFailureTime"+ <*> x .@? "LastSuccessfulDeliveryTime"+ <*> x .@? "LoggingEnabled"+ <*> x .@? "S3KeyPrefix"
+ gen/Network/AWS/Redshift/DescribeOrderableClusterOptions.hs view
@@ -0,0 +1,182 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DescribeOrderableClusterOptions+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Returns a list of orderable cluster options. Before you create a new+-- cluster you can use this operation to find what options are available, such+-- as the EC2 Availability Zones (AZ) in the specific AWS region that you can+-- specify, and the node types you can request. The node types differ by+-- available storage, memory, CPU and price. With the cost involved you might+-- want to obtain a list of cluster options in the specific region and specify+-- values when creating a cluster. For more information about managing+-- clusters, go to Amazon Redshift Clusters in the Amazon Redshift Cluster+-- Management Guide.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeOrderableClusterOptions.html>+module Network.AWS.Redshift.DescribeOrderableClusterOptions+ (+ -- * Request+ DescribeOrderableClusterOptions+ -- ** Request constructor+ , describeOrderableClusterOptions+ -- ** Request lenses+ , docoClusterVersion+ , docoMarker+ , docoMaxRecords+ , docoNodeType++ -- * Response+ , DescribeOrderableClusterOptionsResponse+ -- ** Response constructor+ , describeOrderableClusterOptionsResponse+ -- ** Response lenses+ , docorMarker+ , docorOrderableClusterOptions+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data DescribeOrderableClusterOptions = DescribeOrderableClusterOptions+ { _docoClusterVersion :: Maybe Text+ , _docoMarker :: Maybe Text+ , _docoMaxRecords :: Maybe Int+ , _docoNodeType :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'DescribeOrderableClusterOptions' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'docoClusterVersion' @::@ 'Maybe' 'Text'+--+-- * 'docoMarker' @::@ 'Maybe' 'Text'+--+-- * 'docoMaxRecords' @::@ 'Maybe' 'Int'+--+-- * 'docoNodeType' @::@ 'Maybe' 'Text'+--+describeOrderableClusterOptions :: DescribeOrderableClusterOptions+describeOrderableClusterOptions = DescribeOrderableClusterOptions+ { _docoClusterVersion = Nothing+ , _docoNodeType = Nothing+ , _docoMaxRecords = Nothing+ , _docoMarker = Nothing+ }++-- | The version filter value. Specify this parameter to show only the+-- available offerings matching the specified version. Default: All+-- versions. Constraints: Must be one of the version returned from+-- DescribeClusterVersions.+docoClusterVersion :: Lens' DescribeOrderableClusterOptions (Maybe Text)+docoClusterVersion =+ lens _docoClusterVersion (\s a -> s { _docoClusterVersion = a })++-- | An optional parameter that specifies the starting point to return a set+-- of response records. When the results of a+-- DescribeOrderableClusterOptions request exceed the value specified in+-- MaxRecords, AWS returns a value in the Marker field of the response. You+-- can retrieve the next set of response records by providing the returned+-- marker value in the Marker parameter and retrying the request.+docoMarker :: Lens' DescribeOrderableClusterOptions (Maybe Text)+docoMarker = lens _docoMarker (\s a -> s { _docoMarker = a })++-- | The maximum number of response records to return in each call. If the+-- number of remaining response records exceeds the specified MaxRecords+-- value, a value is returned in a marker field of the response. You can+-- retrieve the next set of records by retrying the command with the+-- returned marker value. Default: 100 Constraints: minimum 20, maximum 100.+docoMaxRecords :: Lens' DescribeOrderableClusterOptions (Maybe Int)+docoMaxRecords = lens _docoMaxRecords (\s a -> s { _docoMaxRecords = a })++-- | The node type filter value. Specify this parameter to show only the+-- available offerings matching the specified node type.+docoNodeType :: Lens' DescribeOrderableClusterOptions (Maybe Text)+docoNodeType = lens _docoNodeType (\s a -> s { _docoNodeType = a })++data DescribeOrderableClusterOptionsResponse = DescribeOrderableClusterOptionsResponse+ { _docorMarker :: Maybe Text+ , _docorOrderableClusterOptions :: List "OrderableClusterOption" OrderableClusterOption+ } deriving (Eq, Show)++-- | 'DescribeOrderableClusterOptionsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'docorMarker' @::@ 'Maybe' 'Text'+--+-- * 'docorOrderableClusterOptions' @::@ ['OrderableClusterOption']+--+describeOrderableClusterOptionsResponse :: DescribeOrderableClusterOptionsResponse+describeOrderableClusterOptionsResponse = DescribeOrderableClusterOptionsResponse+ { _docorOrderableClusterOptions = mempty+ , _docorMarker = Nothing+ }++-- | A value that indicates the starting point for the next set of response+-- records in a subsequent request. If a value is returned in a response,+-- you can retrieve the next set of records by providing this returned+-- marker value in the Marker parameter and retrying the command. If the+-- Marker field is empty, all response records have been retrieved for the+-- request.+docorMarker :: Lens' DescribeOrderableClusterOptionsResponse (Maybe Text)+docorMarker = lens _docorMarker (\s a -> s { _docorMarker = a })++-- | An OrderableClusterOption structure containing information about+-- orderable options for the Cluster.+docorOrderableClusterOptions :: Lens' DescribeOrderableClusterOptionsResponse [OrderableClusterOption]+docorOrderableClusterOptions =+ lens _docorOrderableClusterOptions+ (\s a -> s { _docorOrderableClusterOptions = a })+ . _List++instance ToPath DescribeOrderableClusterOptions where+ toPath = const "/"++instance ToQuery DescribeOrderableClusterOptions where+ toQuery DescribeOrderableClusterOptions{..} = mconcat+ [ "ClusterVersion" =? _docoClusterVersion+ , "Marker" =? _docoMarker+ , "MaxRecords" =? _docoMaxRecords+ , "NodeType" =? _docoNodeType+ ]++instance ToHeaders DescribeOrderableClusterOptions++instance AWSRequest DescribeOrderableClusterOptions where+ type Sv DescribeOrderableClusterOptions = Redshift+ type Rs DescribeOrderableClusterOptions = DescribeOrderableClusterOptionsResponse++ request = post "DescribeOrderableClusterOptions"+ response = xmlResponse++instance FromXML DescribeOrderableClusterOptionsResponse where+ parseXML = withElement "DescribeOrderableClusterOptionsResult" $ \x -> DescribeOrderableClusterOptionsResponse+ <$> x .@? "Marker"+ <*> x .@ "OrderableClusterOptions"++instance AWSPager DescribeOrderableClusterOptions where+ page rq rs+ | stop (rq ^. docoMarker) = Nothing+ | otherwise = (\x -> rq & docoMarker ?~ x)+ <$> (rs ^. docorMarker)
+ gen/Network/AWS/Redshift/DescribeReservedNodeOfferings.hs view
@@ -0,0 +1,168 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DescribeReservedNodeOfferings+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Returns a list of the available reserved node offerings by Amazon Redshift+-- with their descriptions including the node type, the fixed and recurring+-- costs of reserving the node and duration the node will be reserved for you.+-- These descriptions help you determine which reserve node offering you want+-- to purchase. You then use the unique offering ID in you call to+-- PurchaseReservedNodeOffering to reserve one or more nodes for your Amazon+-- Redshift cluster. For more information about managing parameter groups, go+-- to Purchasing Reserved Nodes in the Amazon Redshift Cluster Management+-- Guide.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeReservedNodeOfferings.html>+module Network.AWS.Redshift.DescribeReservedNodeOfferings+ (+ -- * Request+ DescribeReservedNodeOfferings+ -- ** Request constructor+ , describeReservedNodeOfferings+ -- ** Request lenses+ , drnoMarker+ , drnoMaxRecords+ , drnoReservedNodeOfferingId++ -- * Response+ , DescribeReservedNodeOfferingsResponse+ -- ** Response constructor+ , describeReservedNodeOfferingsResponse+ -- ** Response lenses+ , drnorMarker+ , drnorReservedNodeOfferings+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data DescribeReservedNodeOfferings = DescribeReservedNodeOfferings+ { _drnoMarker :: Maybe Text+ , _drnoMaxRecords :: Maybe Int+ , _drnoReservedNodeOfferingId :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'DescribeReservedNodeOfferings' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'drnoMarker' @::@ 'Maybe' 'Text'+--+-- * 'drnoMaxRecords' @::@ 'Maybe' 'Int'+--+-- * 'drnoReservedNodeOfferingId' @::@ 'Maybe' 'Text'+--+describeReservedNodeOfferings :: DescribeReservedNodeOfferings+describeReservedNodeOfferings = DescribeReservedNodeOfferings+ { _drnoReservedNodeOfferingId = Nothing+ , _drnoMaxRecords = Nothing+ , _drnoMarker = Nothing+ }++-- | An optional parameter that specifies the starting point to return a set+-- of response records. When the results of a DescribeReservedNodeOfferings+-- request exceed the value specified in MaxRecords, AWS returns a value in+-- the Marker field of the response. You can retrieve the next set of+-- response records by providing the returned marker value in the Marker+-- parameter and retrying the request.+drnoMarker :: Lens' DescribeReservedNodeOfferings (Maybe Text)+drnoMarker = lens _drnoMarker (\s a -> s { _drnoMarker = a })++-- | The maximum number of response records to return in each call. If the+-- number of remaining response records exceeds the specified MaxRecords+-- value, a value is returned in a marker field of the response. You can+-- retrieve the next set of records by retrying the command with the+-- returned marker value. Default: 100 Constraints: minimum 20, maximum 100.+drnoMaxRecords :: Lens' DescribeReservedNodeOfferings (Maybe Int)+drnoMaxRecords = lens _drnoMaxRecords (\s a -> s { _drnoMaxRecords = a })++-- | The unique identifier for the offering.+drnoReservedNodeOfferingId :: Lens' DescribeReservedNodeOfferings (Maybe Text)+drnoReservedNodeOfferingId =+ lens _drnoReservedNodeOfferingId+ (\s a -> s { _drnoReservedNodeOfferingId = a })++data DescribeReservedNodeOfferingsResponse = DescribeReservedNodeOfferingsResponse+ { _drnorMarker :: Maybe Text+ , _drnorReservedNodeOfferings :: List "ReservedNodeOffering" ReservedNodeOffering+ } deriving (Eq, Show)++-- | 'DescribeReservedNodeOfferingsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'drnorMarker' @::@ 'Maybe' 'Text'+--+-- * 'drnorReservedNodeOfferings' @::@ ['ReservedNodeOffering']+--+describeReservedNodeOfferingsResponse :: DescribeReservedNodeOfferingsResponse+describeReservedNodeOfferingsResponse = DescribeReservedNodeOfferingsResponse+ { _drnorMarker = Nothing+ , _drnorReservedNodeOfferings = mempty+ }++-- | A value that indicates the starting point for the next set of response+-- records in a subsequent request. If a value is returned in a response,+-- you can retrieve the next set of records by providing this returned+-- marker value in the Marker parameter and retrying the command. If the+-- Marker field is empty, all response records have been retrieved for the+-- request.+drnorMarker :: Lens' DescribeReservedNodeOfferingsResponse (Maybe Text)+drnorMarker = lens _drnorMarker (\s a -> s { _drnorMarker = a })++-- | A list of reserved node offerings.+drnorReservedNodeOfferings :: Lens' DescribeReservedNodeOfferingsResponse [ReservedNodeOffering]+drnorReservedNodeOfferings =+ lens _drnorReservedNodeOfferings+ (\s a -> s { _drnorReservedNodeOfferings = a })+ . _List++instance ToPath DescribeReservedNodeOfferings where+ toPath = const "/"++instance ToQuery DescribeReservedNodeOfferings where+ toQuery DescribeReservedNodeOfferings{..} = mconcat+ [ "Marker" =? _drnoMarker+ , "MaxRecords" =? _drnoMaxRecords+ , "ReservedNodeOfferingId" =? _drnoReservedNodeOfferingId+ ]++instance ToHeaders DescribeReservedNodeOfferings++instance AWSRequest DescribeReservedNodeOfferings where+ type Sv DescribeReservedNodeOfferings = Redshift+ type Rs DescribeReservedNodeOfferings = DescribeReservedNodeOfferingsResponse++ request = post "DescribeReservedNodeOfferings"+ response = xmlResponse++instance FromXML DescribeReservedNodeOfferingsResponse where+ parseXML = withElement "DescribeReservedNodeOfferingsResult" $ \x -> DescribeReservedNodeOfferingsResponse+ <$> x .@? "Marker"+ <*> x .@ "ReservedNodeOfferings"++instance AWSPager DescribeReservedNodeOfferings where+ page rq rs+ | stop (rq ^. drnoMarker) = Nothing+ | otherwise = (\x -> rq & drnoMarker ?~ x)+ <$> (rs ^. drnorMarker)
+ gen/Network/AWS/Redshift/DescribeReservedNodes.hs view
@@ -0,0 +1,158 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DescribeReservedNodes+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Returns the descriptions of the reserved nodes.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeReservedNodes.html>+module Network.AWS.Redshift.DescribeReservedNodes+ (+ -- * Request+ DescribeReservedNodes+ -- ** Request constructor+ , describeReservedNodes+ -- ** Request lenses+ , drnMarker+ , drnMaxRecords+ , drnReservedNodeId++ -- * Response+ , DescribeReservedNodesResponse+ -- ** Response constructor+ , describeReservedNodesResponse+ -- ** Response lenses+ , drnrMarker+ , drnrReservedNodes+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data DescribeReservedNodes = DescribeReservedNodes+ { _drnMarker :: Maybe Text+ , _drnMaxRecords :: Maybe Int+ , _drnReservedNodeId :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'DescribeReservedNodes' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'drnMarker' @::@ 'Maybe' 'Text'+--+-- * 'drnMaxRecords' @::@ 'Maybe' 'Int'+--+-- * 'drnReservedNodeId' @::@ 'Maybe' 'Text'+--+describeReservedNodes :: DescribeReservedNodes+describeReservedNodes = DescribeReservedNodes+ { _drnReservedNodeId = Nothing+ , _drnMaxRecords = Nothing+ , _drnMarker = Nothing+ }++-- | An optional parameter that specifies the starting point to return a set+-- of response records. When the results of a DescribeReservedNodes request+-- exceed the value specified in MaxRecords, AWS returns a value in the+-- Marker field of the response. You can retrieve the next set of response+-- records by providing the returned marker value in the Marker parameter+-- and retrying the request.+drnMarker :: Lens' DescribeReservedNodes (Maybe Text)+drnMarker = lens _drnMarker (\s a -> s { _drnMarker = a })++-- | The maximum number of response records to return in each call. If the+-- number of remaining response records exceeds the specified MaxRecords+-- value, a value is returned in a marker field of the response. You can+-- retrieve the next set of records by retrying the command with the+-- returned marker value. Default: 100 Constraints: minimum 20, maximum 100.+drnMaxRecords :: Lens' DescribeReservedNodes (Maybe Int)+drnMaxRecords = lens _drnMaxRecords (\s a -> s { _drnMaxRecords = a })++-- | Identifier for the node reservation.+drnReservedNodeId :: Lens' DescribeReservedNodes (Maybe Text)+drnReservedNodeId =+ lens _drnReservedNodeId (\s a -> s { _drnReservedNodeId = a })++data DescribeReservedNodesResponse = DescribeReservedNodesResponse+ { _drnrMarker :: Maybe Text+ , _drnrReservedNodes :: List "ReservedNode" ReservedNode+ } deriving (Eq, Show)++-- | 'DescribeReservedNodesResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'drnrMarker' @::@ 'Maybe' 'Text'+--+-- * 'drnrReservedNodes' @::@ ['ReservedNode']+--+describeReservedNodesResponse :: DescribeReservedNodesResponse+describeReservedNodesResponse = DescribeReservedNodesResponse+ { _drnrMarker = Nothing+ , _drnrReservedNodes = mempty+ }++-- | A value that indicates the starting point for the next set of response+-- records in a subsequent request. If a value is returned in a response,+-- you can retrieve the next set of records by providing this returned+-- marker value in the Marker parameter and retrying the command. If the+-- Marker field is empty, all response records have been retrieved for the+-- request.+drnrMarker :: Lens' DescribeReservedNodesResponse (Maybe Text)+drnrMarker = lens _drnrMarker (\s a -> s { _drnrMarker = a })++-- | The list of reserved nodes.+drnrReservedNodes :: Lens' DescribeReservedNodesResponse [ReservedNode]+drnrReservedNodes =+ lens _drnrReservedNodes (\s a -> s { _drnrReservedNodes = a })+ . _List++instance ToPath DescribeReservedNodes where+ toPath = const "/"++instance ToQuery DescribeReservedNodes where+ toQuery DescribeReservedNodes{..} = mconcat+ [ "Marker" =? _drnMarker+ , "MaxRecords" =? _drnMaxRecords+ , "ReservedNodeId" =? _drnReservedNodeId+ ]++instance ToHeaders DescribeReservedNodes++instance AWSRequest DescribeReservedNodes where+ type Sv DescribeReservedNodes = Redshift+ type Rs DescribeReservedNodes = DescribeReservedNodesResponse++ request = post "DescribeReservedNodes"+ response = xmlResponse++instance FromXML DescribeReservedNodesResponse where+ parseXML = withElement "DescribeReservedNodesResult" $ \x -> DescribeReservedNodesResponse+ <$> x .@? "Marker"+ <*> x .@ "ReservedNodes"++instance AWSPager DescribeReservedNodes where+ page rq rs+ | stop (rq ^. drnMarker) = Nothing+ | otherwise = (\x -> rq & drnMarker ?~ x)+ <$> (rs ^. drnrMarker)
+ gen/Network/AWS/Redshift/DescribeResize.hs view
@@ -0,0 +1,264 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DescribeResize+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Returns information about the last resize operation for the specified+-- cluster. If no resize operation has ever been initiated for the specified+-- cluster, a HTTP 404 error is returned. If a resize operation was initiated+-- and completed, the status of the resize remains as SUCCEEDED until the next+-- resize. A resize operation can be requested using ModifyCluster and+-- specifying a different number or type of nodes for the cluster.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeResize.html>+module Network.AWS.Redshift.DescribeResize+ (+ -- * Request+ DescribeResize+ -- ** Request constructor+ , describeResize+ -- ** Request lenses+ , drClusterIdentifier++ -- * Response+ , DescribeResizeResponse+ -- ** Response constructor+ , describeResizeResponse+ -- ** Response lenses+ , drrAvgResizeRateInMegaBytesPerSecond+ , drrElapsedTimeInSeconds+ , drrEstimatedTimeToCompletionInSeconds+ , drrImportTablesCompleted+ , drrImportTablesInProgress+ , drrImportTablesNotStarted+ , drrProgressInMegaBytes+ , drrStatus+ , drrTargetClusterType+ , drrTargetNodeType+ , drrTargetNumberOfNodes+ , drrTotalResizeDataInMegaBytes+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++newtype DescribeResize = DescribeResize+ { _drClusterIdentifier :: Text+ } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DescribeResize' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'drClusterIdentifier' @::@ 'Text'+--+describeResize :: Text -- ^ 'drClusterIdentifier'+ -> DescribeResize+describeResize p1 = DescribeResize+ { _drClusterIdentifier = p1+ }++-- | The unique identifier of a cluster whose resize progress you are+-- requesting. This parameter is case-sensitive. By default, resize+-- operations for all clusters defined for an AWS account are returned.+drClusterIdentifier :: Lens' DescribeResize Text+drClusterIdentifier =+ lens _drClusterIdentifier (\s a -> s { _drClusterIdentifier = a })++data DescribeResizeResponse = DescribeResizeResponse+ { _drrAvgResizeRateInMegaBytesPerSecond :: Maybe Double+ , _drrElapsedTimeInSeconds :: Maybe Integer+ , _drrEstimatedTimeToCompletionInSeconds :: Maybe Integer+ , _drrImportTablesCompleted :: List "ImportTablesCompleted" Text+ , _drrImportTablesInProgress :: List "ImportTablesInProgress" Text+ , _drrImportTablesNotStarted :: List "ImportTablesNotStarted" Text+ , _drrProgressInMegaBytes :: Maybe Integer+ , _drrStatus :: Maybe Text+ , _drrTargetClusterType :: Maybe Text+ , _drrTargetNodeType :: Maybe Text+ , _drrTargetNumberOfNodes :: Maybe Int+ , _drrTotalResizeDataInMegaBytes :: Maybe Integer+ } deriving (Eq, Ord, Show)++-- | 'DescribeResizeResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'drrAvgResizeRateInMegaBytesPerSecond' @::@ 'Maybe' 'Double'+--+-- * 'drrElapsedTimeInSeconds' @::@ 'Maybe' 'Integer'+--+-- * 'drrEstimatedTimeToCompletionInSeconds' @::@ 'Maybe' 'Integer'+--+-- * 'drrImportTablesCompleted' @::@ ['Text']+--+-- * 'drrImportTablesInProgress' @::@ ['Text']+--+-- * 'drrImportTablesNotStarted' @::@ ['Text']+--+-- * 'drrProgressInMegaBytes' @::@ 'Maybe' 'Integer'+--+-- * 'drrStatus' @::@ 'Maybe' 'Text'+--+-- * 'drrTargetClusterType' @::@ 'Maybe' 'Text'+--+-- * 'drrTargetNodeType' @::@ 'Maybe' 'Text'+--+-- * 'drrTargetNumberOfNodes' @::@ 'Maybe' 'Int'+--+-- * 'drrTotalResizeDataInMegaBytes' @::@ 'Maybe' 'Integer'+--+describeResizeResponse :: DescribeResizeResponse+describeResizeResponse = DescribeResizeResponse+ { _drrTargetNodeType = Nothing+ , _drrTargetNumberOfNodes = Nothing+ , _drrTargetClusterType = Nothing+ , _drrStatus = Nothing+ , _drrImportTablesCompleted = mempty+ , _drrImportTablesInProgress = mempty+ , _drrImportTablesNotStarted = mempty+ , _drrAvgResizeRateInMegaBytesPerSecond = Nothing+ , _drrTotalResizeDataInMegaBytes = Nothing+ , _drrProgressInMegaBytes = Nothing+ , _drrElapsedTimeInSeconds = Nothing+ , _drrEstimatedTimeToCompletionInSeconds = Nothing+ }++-- | The average rate of the resize operation over the last few minutes,+-- measured in megabytes per second. After the resize operation completes,+-- this value shows the average rate of the entire resize operation.+drrAvgResizeRateInMegaBytesPerSecond :: Lens' DescribeResizeResponse (Maybe Double)+drrAvgResizeRateInMegaBytesPerSecond =+ lens _drrAvgResizeRateInMegaBytesPerSecond+ (\s a -> s { _drrAvgResizeRateInMegaBytesPerSecond = a })++-- | The amount of seconds that have elapsed since the resize operation began.+-- After the resize operation completes, this value shows the total actual+-- time, in seconds, for the resize operation.+drrElapsedTimeInSeconds :: Lens' DescribeResizeResponse (Maybe Integer)+drrElapsedTimeInSeconds =+ lens _drrElapsedTimeInSeconds (\s a -> s { _drrElapsedTimeInSeconds = a })++-- | The estimated time remaining, in seconds, until the resize operation is+-- complete. This value is calculated based on the average resize rate and+-- the estimated amount of data remaining to be processed. Once the resize+-- operation is complete, this value will be 0.+drrEstimatedTimeToCompletionInSeconds :: Lens' DescribeResizeResponse (Maybe Integer)+drrEstimatedTimeToCompletionInSeconds =+ lens _drrEstimatedTimeToCompletionInSeconds+ (\s a -> s { _drrEstimatedTimeToCompletionInSeconds = a })++-- | The names of tables that have been completely imported . Valid Values:+-- List of table names.+drrImportTablesCompleted :: Lens' DescribeResizeResponse [Text]+drrImportTablesCompleted =+ lens _drrImportTablesCompleted+ (\s a -> s { _drrImportTablesCompleted = a })+ . _List++-- | The names of tables that are being currently imported. Valid Values: List+-- of table names.+drrImportTablesInProgress :: Lens' DescribeResizeResponse [Text]+drrImportTablesInProgress =+ lens _drrImportTablesInProgress+ (\s a -> s { _drrImportTablesInProgress = a })+ . _List++-- | The names of tables that have not been yet imported. Valid Values: List+-- of table names.+drrImportTablesNotStarted :: Lens' DescribeResizeResponse [Text]+drrImportTablesNotStarted =+ lens _drrImportTablesNotStarted+ (\s a -> s { _drrImportTablesNotStarted = a })+ . _List++-- | While the resize operation is in progress, this value shows the current+-- amount of data, in megabytes, that has been processed so far. When the+-- resize operation is complete, this value shows the total amount of data,+-- in megabytes, on the cluster, which may be more or less than+-- TotalResizeDataInMegaBytes (the estimated total amount of data before+-- resize).+drrProgressInMegaBytes :: Lens' DescribeResizeResponse (Maybe Integer)+drrProgressInMegaBytes =+ lens _drrProgressInMegaBytes (\s a -> s { _drrProgressInMegaBytes = a })++-- | The status of the resize operation. Valid Values: NONE | IN_PROGRESS |+-- FAILED | SUCCEEDED.+drrStatus :: Lens' DescribeResizeResponse (Maybe Text)+drrStatus = lens _drrStatus (\s a -> s { _drrStatus = a })++-- | The cluster type after the resize operation is complete. Valid Values:+-- multi-node | single-node.+drrTargetClusterType :: Lens' DescribeResizeResponse (Maybe Text)+drrTargetClusterType =+ lens _drrTargetClusterType (\s a -> s { _drrTargetClusterType = a })++-- | The node type that the cluster will have after the resize operation is+-- complete.+drrTargetNodeType :: Lens' DescribeResizeResponse (Maybe Text)+drrTargetNodeType =+ lens _drrTargetNodeType (\s a -> s { _drrTargetNodeType = a })++-- | The number of nodes that the cluster will have after the resize operation+-- is complete.+drrTargetNumberOfNodes :: Lens' DescribeResizeResponse (Maybe Int)+drrTargetNumberOfNodes =+ lens _drrTargetNumberOfNodes (\s a -> s { _drrTargetNumberOfNodes = a })++-- | The estimated total amount of data, in megabytes, on the cluster before+-- the resize operation began.+drrTotalResizeDataInMegaBytes :: Lens' DescribeResizeResponse (Maybe Integer)+drrTotalResizeDataInMegaBytes =+ lens _drrTotalResizeDataInMegaBytes+ (\s a -> s { _drrTotalResizeDataInMegaBytes = a })++instance ToPath DescribeResize where+ toPath = const "/"++instance ToQuery DescribeResize where+ toQuery DescribeResize{..} = mconcat+ [ "ClusterIdentifier" =? _drClusterIdentifier+ ]++instance ToHeaders DescribeResize++instance AWSRequest DescribeResize where+ type Sv DescribeResize = Redshift+ type Rs DescribeResize = DescribeResizeResponse++ request = post "DescribeResize"+ response = xmlResponse++instance FromXML DescribeResizeResponse where+ parseXML = withElement "DescribeResizeResult" $ \x -> DescribeResizeResponse+ <$> x .@? "AvgResizeRateInMegaBytesPerSecond"+ <*> x .@? "ElapsedTimeInSeconds"+ <*> x .@? "EstimatedTimeToCompletionInSeconds"+ <*> x .@ "ImportTablesCompleted"+ <*> x .@ "ImportTablesInProgress"+ <*> x .@ "ImportTablesNotStarted"+ <*> x .@? "ProgressInMegaBytes"+ <*> x .@? "Status"+ <*> x .@? "TargetClusterType"+ <*> x .@? "TargetNodeType"+ <*> x .@? "TargetNumberOfNodes"+ <*> x .@? "TotalResizeDataInMegaBytes"
+ gen/Network/AWS/Redshift/DescribeTags.hs view
@@ -0,0 +1,210 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DescribeTags+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Returns a list of tags. You can return tags from a specific resource by+-- specifying an ARN, or you can return all tags for a given type of resource,+-- such as clusters, snapshots, and so on. The following are limitations for+-- DescribeTags: You cannot specify an ARN and a resource-type value together+-- in the same request. You cannot use the MaxRecords and Marker parameters+-- together with the ARN parameter. The MaxRecords parameter can be a range+-- from 10 to 50 results to return in a request. If you specify both tag keys+-- and tag values in the same request, Amazon Redshift returns all resources+-- that match any combination of the specified keys and values. For example,+-- if you have owner and environment for tag keys, and admin and test for tag+-- values, all resources that have any combination of those values are+-- returned. If both tag keys and values are omitted from the request,+-- resources are returned regardless of whether they have tag keys or values+-- associated with them.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DescribeTags.html>+module Network.AWS.Redshift.DescribeTags+ (+ -- * Request+ DescribeTags+ -- ** Request constructor+ , describeTags+ -- ** Request lenses+ , dtMarker+ , dtMaxRecords+ , dtResourceName+ , dtResourceType+ , dtTagKeys+ , dtTagValues++ -- * Response+ , DescribeTagsResponse+ -- ** Response constructor+ , describeTagsResponse+ -- ** Response lenses+ , dtrMarker+ , dtrTaggedResources+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data DescribeTags = DescribeTags+ { _dtMarker :: Maybe Text+ , _dtMaxRecords :: Maybe Int+ , _dtResourceName :: Maybe Text+ , _dtResourceType :: Maybe Text+ , _dtTagKeys :: List "TagKey" Text+ , _dtTagValues :: List "TagValue" Text+ } deriving (Eq, Ord, Show)++-- | 'DescribeTags' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dtMarker' @::@ 'Maybe' 'Text'+--+-- * 'dtMaxRecords' @::@ 'Maybe' 'Int'+--+-- * 'dtResourceName' @::@ 'Maybe' 'Text'+--+-- * 'dtResourceType' @::@ 'Maybe' 'Text'+--+-- * 'dtTagKeys' @::@ ['Text']+--+-- * 'dtTagValues' @::@ ['Text']+--+describeTags :: DescribeTags+describeTags = DescribeTags+ { _dtResourceName = Nothing+ , _dtResourceType = Nothing+ , _dtMaxRecords = Nothing+ , _dtMarker = Nothing+ , _dtTagKeys = mempty+ , _dtTagValues = mempty+ }++-- | A value that indicates the starting point for the next set of response+-- records in a subsequent request. If a value is returned in a response,+-- you can retrieve the next set of records by providing this returned+-- marker value in the marker parameter and retrying the command. If the+-- marker field is empty, all response records have been retrieved for the+-- request.+dtMarker :: Lens' DescribeTags (Maybe Text)+dtMarker = lens _dtMarker (\s a -> s { _dtMarker = a })++-- | The maximum number or response records to return in each call. If the+-- number of remaining response records exceeds the specified MaxRecords+-- value, a value is returned in a marker field of the response. You can+-- retrieve the next set of records by retrying the command with the+-- returned marker value.+dtMaxRecords :: Lens' DescribeTags (Maybe Int)+dtMaxRecords = lens _dtMaxRecords (\s a -> s { _dtMaxRecords = a })++-- | The Amazon Resource Name (ARN) for which you want to describe the tag or+-- tags. For example, arn:aws:redshift:us-east-1:123456789:cluster:t1.+dtResourceName :: Lens' DescribeTags (Maybe Text)+dtResourceName = lens _dtResourceName (\s a -> s { _dtResourceName = a })++-- | The type of resource with which you want to view tags. Valid resource+-- types are: Cluster CIDR/IP EC2 security group Snapshot Cluster security+-- group Subnet group HSM connection HSM certificate Parameter group For+-- more information about Amazon Redshift resource types and constructing+-- ARNs, go to Constructing an Amazon Redshift Amazon Resource Name (ARN) in+-- the Amazon Redshift Cluster Management Guide.+dtResourceType :: Lens' DescribeTags (Maybe Text)+dtResourceType = lens _dtResourceType (\s a -> s { _dtResourceType = a })++-- | A tag key or keys for which you want to return all matching resources+-- that are associated with the specified key or keys. For example, suppose+-- that you have resources tagged with keys called owner and environment. If+-- you specify both of these tag keys in the request, Amazon Redshift+-- returns a response with all resources that have either or both of these+-- tag keys associated with them.+dtTagKeys :: Lens' DescribeTags [Text]+dtTagKeys = lens _dtTagKeys (\s a -> s { _dtTagKeys = a }) . _List++-- | A tag value or values for which you want to return all matching resources+-- that are associated with the specified value or values. For example,+-- suppose that you have resources tagged with values called admin and test.+-- If you specify both of these tag values in the request, Amazon Redshift+-- returns a response with all resources that have either or both of these+-- tag values associated with them.+dtTagValues :: Lens' DescribeTags [Text]+dtTagValues = lens _dtTagValues (\s a -> s { _dtTagValues = a }) . _List++data DescribeTagsResponse = DescribeTagsResponse+ { _dtrMarker :: Maybe Text+ , _dtrTaggedResources :: List "TaggedResource" TaggedResource+ } deriving (Eq, Show)++-- | 'DescribeTagsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dtrMarker' @::@ 'Maybe' 'Text'+--+-- * 'dtrTaggedResources' @::@ ['TaggedResource']+--+describeTagsResponse :: DescribeTagsResponse+describeTagsResponse = DescribeTagsResponse+ { _dtrTaggedResources = mempty+ , _dtrMarker = Nothing+ }++-- | A value that indicates the starting point for the next set of response+-- records in a subsequent request. If a value is returned in a response,+-- you can retrieve the next set of records by providing this returned+-- marker value in the Marker parameter and retrying the command. If the+-- Marker field is empty, all response records have been retrieved for the+-- request.+dtrMarker :: Lens' DescribeTagsResponse (Maybe Text)+dtrMarker = lens _dtrMarker (\s a -> s { _dtrMarker = a })++-- | A list of tags with their associated resources.+dtrTaggedResources :: Lens' DescribeTagsResponse [TaggedResource]+dtrTaggedResources =+ lens _dtrTaggedResources (\s a -> s { _dtrTaggedResources = a })+ . _List++instance ToPath DescribeTags where+ toPath = const "/"++instance ToQuery DescribeTags where+ toQuery DescribeTags{..} = mconcat+ [ "Marker" =? _dtMarker+ , "MaxRecords" =? _dtMaxRecords+ , "ResourceName" =? _dtResourceName+ , "ResourceType" =? _dtResourceType+ , "TagKeys" =? _dtTagKeys+ , "TagValues" =? _dtTagValues+ ]++instance ToHeaders DescribeTags++instance AWSRequest DescribeTags where+ type Sv DescribeTags = Redshift+ type Rs DescribeTags = DescribeTagsResponse++ request = post "DescribeTags"+ response = xmlResponse++instance FromXML DescribeTagsResponse where+ parseXML = withElement "DescribeTagsResult" $ \x -> DescribeTagsResponse+ <$> x .@? "Marker"+ <*> x .@ "TaggedResources"
+ gen/Network/AWS/Redshift/DisableLogging.hs view
@@ -0,0 +1,166 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DisableLogging+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Stops logging information, such as queries and connection attempts, for the+-- specified Amazon Redshift cluster.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DisableLogging.html>+module Network.AWS.Redshift.DisableLogging+ (+ -- * Request+ DisableLogging+ -- ** Request constructor+ , disableLogging+ -- ** Request lenses+ , dlClusterIdentifier++ -- * Response+ , DisableLoggingResponse+ -- ** Response constructor+ , disableLoggingResponse+ -- ** Response lenses+ , dlrBucketName+ , dlrLastFailureMessage+ , dlrLastFailureTime+ , dlrLastSuccessfulDeliveryTime+ , dlrLoggingEnabled+ , dlrS3KeyPrefix+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++newtype DisableLogging = DisableLogging+ { _dlClusterIdentifier :: Text+ } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DisableLogging' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dlClusterIdentifier' @::@ 'Text'+--+disableLogging :: Text -- ^ 'dlClusterIdentifier'+ -> DisableLogging+disableLogging p1 = DisableLogging+ { _dlClusterIdentifier = p1+ }++-- | The identifier of the cluster on which logging is to be stopped. Example:+-- examplecluster.+dlClusterIdentifier :: Lens' DisableLogging Text+dlClusterIdentifier =+ lens _dlClusterIdentifier (\s a -> s { _dlClusterIdentifier = a })++data DisableLoggingResponse = DisableLoggingResponse+ { _dlrBucketName :: Maybe Text+ , _dlrLastFailureMessage :: Maybe Text+ , _dlrLastFailureTime :: Maybe RFC822+ , _dlrLastSuccessfulDeliveryTime :: Maybe RFC822+ , _dlrLoggingEnabled :: Maybe Bool+ , _dlrS3KeyPrefix :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'DisableLoggingResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dlrBucketName' @::@ 'Maybe' 'Text'+--+-- * 'dlrLastFailureMessage' @::@ 'Maybe' 'Text'+--+-- * 'dlrLastFailureTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'dlrLastSuccessfulDeliveryTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'dlrLoggingEnabled' @::@ 'Maybe' 'Bool'+--+-- * 'dlrS3KeyPrefix' @::@ 'Maybe' 'Text'+--+disableLoggingResponse :: DisableLoggingResponse+disableLoggingResponse = DisableLoggingResponse+ { _dlrLoggingEnabled = Nothing+ , _dlrBucketName = Nothing+ , _dlrS3KeyPrefix = Nothing+ , _dlrLastSuccessfulDeliveryTime = Nothing+ , _dlrLastFailureTime = Nothing+ , _dlrLastFailureMessage = Nothing+ }++-- | The name of the S3 bucket where the log files are stored.+dlrBucketName :: Lens' DisableLoggingResponse (Maybe Text)+dlrBucketName = lens _dlrBucketName (\s a -> s { _dlrBucketName = a })++-- | The message indicating that logs failed to be delivered.+dlrLastFailureMessage :: Lens' DisableLoggingResponse (Maybe Text)+dlrLastFailureMessage =+ lens _dlrLastFailureMessage (\s a -> s { _dlrLastFailureMessage = a })++-- | The last time when logs failed to be delivered.+dlrLastFailureTime :: Lens' DisableLoggingResponse (Maybe UTCTime)+dlrLastFailureTime =+ lens _dlrLastFailureTime (\s a -> s { _dlrLastFailureTime = a })+ . mapping _Time++-- | The last time when logs were delivered.+dlrLastSuccessfulDeliveryTime :: Lens' DisableLoggingResponse (Maybe UTCTime)+dlrLastSuccessfulDeliveryTime =+ lens _dlrLastSuccessfulDeliveryTime+ (\s a -> s { _dlrLastSuccessfulDeliveryTime = a })+ . mapping _Time++-- | true if logging is on, false if logging is off.+dlrLoggingEnabled :: Lens' DisableLoggingResponse (Maybe Bool)+dlrLoggingEnabled =+ lens _dlrLoggingEnabled (\s a -> s { _dlrLoggingEnabled = a })++-- | The prefix applied to the log file names.+dlrS3KeyPrefix :: Lens' DisableLoggingResponse (Maybe Text)+dlrS3KeyPrefix = lens _dlrS3KeyPrefix (\s a -> s { _dlrS3KeyPrefix = a })++instance ToPath DisableLogging where+ toPath = const "/"++instance ToQuery DisableLogging where+ toQuery DisableLogging{..} = mconcat+ [ "ClusterIdentifier" =? _dlClusterIdentifier+ ]++instance ToHeaders DisableLogging++instance AWSRequest DisableLogging where+ type Sv DisableLogging = Redshift+ type Rs DisableLogging = DisableLoggingResponse++ request = post "DisableLogging"+ response = xmlResponse++instance FromXML DisableLoggingResponse where+ parseXML = withElement "DisableLoggingResult" $ \x -> DisableLoggingResponse+ <$> x .@? "BucketName"+ <*> x .@? "LastFailureMessage"+ <*> x .@? "LastFailureTime"+ <*> x .@? "LastSuccessfulDeliveryTime"+ <*> x .@? "LoggingEnabled"+ <*> x .@? "S3KeyPrefix"
+ gen/Network/AWS/Redshift/DisableSnapshotCopy.hs view
@@ -0,0 +1,110 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.DisableSnapshotCopy+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Disables the automatic copying of snapshots from one region to another+-- region for a specified cluster.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_DisableSnapshotCopy.html>+module Network.AWS.Redshift.DisableSnapshotCopy+ (+ -- * Request+ DisableSnapshotCopy+ -- ** Request constructor+ , disableSnapshotCopy+ -- ** Request lenses+ , dscClusterIdentifier++ -- * Response+ , DisableSnapshotCopyResponse+ -- ** Response constructor+ , disableSnapshotCopyResponse+ -- ** Response lenses+ , dscrCluster+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++newtype DisableSnapshotCopy = DisableSnapshotCopy+ { _dscClusterIdentifier :: Text+ } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DisableSnapshotCopy' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dscClusterIdentifier' @::@ 'Text'+--+disableSnapshotCopy :: Text -- ^ 'dscClusterIdentifier'+ -> DisableSnapshotCopy+disableSnapshotCopy p1 = DisableSnapshotCopy+ { _dscClusterIdentifier = p1+ }++-- | The unique identifier of the source cluster that you want to disable+-- copying of snapshots to a destination region. Constraints: Must be the+-- valid name of an existing cluster that has cross-region snapshot copy+-- enabled.+dscClusterIdentifier :: Lens' DisableSnapshotCopy Text+dscClusterIdentifier =+ lens _dscClusterIdentifier (\s a -> s { _dscClusterIdentifier = a })++newtype DisableSnapshotCopyResponse = DisableSnapshotCopyResponse+ { _dscrCluster :: Maybe Cluster+ } deriving (Eq, Show)++-- | 'DisableSnapshotCopyResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dscrCluster' @::@ 'Maybe' 'Cluster'+--+disableSnapshotCopyResponse :: DisableSnapshotCopyResponse+disableSnapshotCopyResponse = DisableSnapshotCopyResponse+ { _dscrCluster = Nothing+ }++dscrCluster :: Lens' DisableSnapshotCopyResponse (Maybe Cluster)+dscrCluster = lens _dscrCluster (\s a -> s { _dscrCluster = a })++instance ToPath DisableSnapshotCopy where+ toPath = const "/"++instance ToQuery DisableSnapshotCopy where+ toQuery DisableSnapshotCopy{..} = mconcat+ [ "ClusterIdentifier" =? _dscClusterIdentifier+ ]++instance ToHeaders DisableSnapshotCopy++instance AWSRequest DisableSnapshotCopy where+ type Sv DisableSnapshotCopy = Redshift+ type Rs DisableSnapshotCopy = DisableSnapshotCopyResponse++ request = post "DisableSnapshotCopy"+ response = xmlResponse++instance FromXML DisableSnapshotCopyResponse where+ parseXML = withElement "DisableSnapshotCopyResult" $ \x -> DisableSnapshotCopyResponse+ <$> x .@? "Cluster"
+ gen/Network/AWS/Redshift/EnableLogging.hs view
@@ -0,0 +1,192 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.EnableLogging+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Starts logging information, such as queries and connection attempts, for+-- the specified Amazon Redshift cluster.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_EnableLogging.html>+module Network.AWS.Redshift.EnableLogging+ (+ -- * Request+ EnableLogging+ -- ** Request constructor+ , enableLogging+ -- ** Request lenses+ , elBucketName+ , elClusterIdentifier+ , elS3KeyPrefix++ -- * Response+ , EnableLoggingResponse+ -- ** Response constructor+ , enableLoggingResponse+ -- ** Response lenses+ , elrBucketName+ , elrLastFailureMessage+ , elrLastFailureTime+ , elrLastSuccessfulDeliveryTime+ , elrLoggingEnabled+ , elrS3KeyPrefix+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data EnableLogging = EnableLogging+ { _elBucketName :: Text+ , _elClusterIdentifier :: Text+ , _elS3KeyPrefix :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'EnableLogging' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'elBucketName' @::@ 'Text'+--+-- * 'elClusterIdentifier' @::@ 'Text'+--+-- * 'elS3KeyPrefix' @::@ 'Maybe' 'Text'+--+enableLogging :: Text -- ^ 'elClusterIdentifier'+ -> Text -- ^ 'elBucketName'+ -> EnableLogging+enableLogging p1 p2 = EnableLogging+ { _elClusterIdentifier = p1+ , _elBucketName = p2+ , _elS3KeyPrefix = Nothing+ }++-- | The name of an existing S3 bucket where the log files are to be stored.+-- Constraints: Must be in the same region as the cluster The cluster must+-- have read bucket and put object permissions.+elBucketName :: Lens' EnableLogging Text+elBucketName = lens _elBucketName (\s a -> s { _elBucketName = a })++-- | The identifier of the cluster on which logging is to be started. Example:+-- examplecluster.+elClusterIdentifier :: Lens' EnableLogging Text+elClusterIdentifier =+ lens _elClusterIdentifier (\s a -> s { _elClusterIdentifier = a })++-- | The prefix applied to the log file names. Constraints: Cannot exceed 512+-- characters Cannot contain spaces( ), double quotes ("), single quotes+-- ('), a backslash (\), or control characters. The hexadecimal codes for+-- invalid characters are: x00 to x20 x22 x27 x5c x7f or larger.+elS3KeyPrefix :: Lens' EnableLogging (Maybe Text)+elS3KeyPrefix = lens _elS3KeyPrefix (\s a -> s { _elS3KeyPrefix = a })++data EnableLoggingResponse = EnableLoggingResponse+ { _elrBucketName :: Maybe Text+ , _elrLastFailureMessage :: Maybe Text+ , _elrLastFailureTime :: Maybe RFC822+ , _elrLastSuccessfulDeliveryTime :: Maybe RFC822+ , _elrLoggingEnabled :: Maybe Bool+ , _elrS3KeyPrefix :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'EnableLoggingResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'elrBucketName' @::@ 'Maybe' 'Text'+--+-- * 'elrLastFailureMessage' @::@ 'Maybe' 'Text'+--+-- * 'elrLastFailureTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'elrLastSuccessfulDeliveryTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'elrLoggingEnabled' @::@ 'Maybe' 'Bool'+--+-- * 'elrS3KeyPrefix' @::@ 'Maybe' 'Text'+--+enableLoggingResponse :: EnableLoggingResponse+enableLoggingResponse = EnableLoggingResponse+ { _elrLoggingEnabled = Nothing+ , _elrBucketName = Nothing+ , _elrS3KeyPrefix = Nothing+ , _elrLastSuccessfulDeliveryTime = Nothing+ , _elrLastFailureTime = Nothing+ , _elrLastFailureMessage = Nothing+ }++-- | The name of the S3 bucket where the log files are stored.+elrBucketName :: Lens' EnableLoggingResponse (Maybe Text)+elrBucketName = lens _elrBucketName (\s a -> s { _elrBucketName = a })++-- | The message indicating that logs failed to be delivered.+elrLastFailureMessage :: Lens' EnableLoggingResponse (Maybe Text)+elrLastFailureMessage =+ lens _elrLastFailureMessage (\s a -> s { _elrLastFailureMessage = a })++-- | The last time when logs failed to be delivered.+elrLastFailureTime :: Lens' EnableLoggingResponse (Maybe UTCTime)+elrLastFailureTime =+ lens _elrLastFailureTime (\s a -> s { _elrLastFailureTime = a })+ . mapping _Time++-- | The last time when logs were delivered.+elrLastSuccessfulDeliveryTime :: Lens' EnableLoggingResponse (Maybe UTCTime)+elrLastSuccessfulDeliveryTime =+ lens _elrLastSuccessfulDeliveryTime+ (\s a -> s { _elrLastSuccessfulDeliveryTime = a })+ . mapping _Time++-- | true if logging is on, false if logging is off.+elrLoggingEnabled :: Lens' EnableLoggingResponse (Maybe Bool)+elrLoggingEnabled =+ lens _elrLoggingEnabled (\s a -> s { _elrLoggingEnabled = a })++-- | The prefix applied to the log file names.+elrS3KeyPrefix :: Lens' EnableLoggingResponse (Maybe Text)+elrS3KeyPrefix = lens _elrS3KeyPrefix (\s a -> s { _elrS3KeyPrefix = a })++instance ToPath EnableLogging where+ toPath = const "/"++instance ToQuery EnableLogging where+ toQuery EnableLogging{..} = mconcat+ [ "BucketName" =? _elBucketName+ , "ClusterIdentifier" =? _elClusterIdentifier+ , "S3KeyPrefix" =? _elS3KeyPrefix+ ]++instance ToHeaders EnableLogging++instance AWSRequest EnableLogging where+ type Sv EnableLogging = Redshift+ type Rs EnableLogging = EnableLoggingResponse++ request = post "EnableLogging"+ response = xmlResponse++instance FromXML EnableLoggingResponse where+ parseXML = withElement "EnableLoggingResult" $ \x -> EnableLoggingResponse+ <$> x .@? "BucketName"+ <*> x .@? "LastFailureMessage"+ <*> x .@? "LastFailureTime"+ <*> x .@? "LastSuccessfulDeliveryTime"+ <*> x .@? "LoggingEnabled"+ <*> x .@? "S3KeyPrefix"
+ gen/Network/AWS/Redshift/EnableSnapshotCopy.hs view
@@ -0,0 +1,136 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.EnableSnapshotCopy+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Enables the automatic copy of snapshots from one region to another region+-- for a specified cluster.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_EnableSnapshotCopy.html>+module Network.AWS.Redshift.EnableSnapshotCopy+ (+ -- * Request+ EnableSnapshotCopy+ -- ** Request constructor+ , enableSnapshotCopy+ -- ** Request lenses+ , escClusterIdentifier+ , escDestinationRegion+ , escRetentionPeriod++ -- * Response+ , EnableSnapshotCopyResponse+ -- ** Response constructor+ , enableSnapshotCopyResponse+ -- ** Response lenses+ , escrCluster+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data EnableSnapshotCopy = EnableSnapshotCopy+ { _escClusterIdentifier :: Text+ , _escDestinationRegion :: Text+ , _escRetentionPeriod :: Maybe Int+ } deriving (Eq, Ord, Show)++-- | 'EnableSnapshotCopy' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'escClusterIdentifier' @::@ 'Text'+--+-- * 'escDestinationRegion' @::@ 'Text'+--+-- * 'escRetentionPeriod' @::@ 'Maybe' 'Int'+--+enableSnapshotCopy :: Text -- ^ 'escClusterIdentifier'+ -> Text -- ^ 'escDestinationRegion'+ -> EnableSnapshotCopy+enableSnapshotCopy p1 p2 = EnableSnapshotCopy+ { _escClusterIdentifier = p1+ , _escDestinationRegion = p2+ , _escRetentionPeriod = Nothing+ }++-- | The unique identifier of the source cluster to copy snapshots from.+-- Constraints: Must be the valid name of an existing cluster that does not+-- already have cross-region snapshot copy enabled.+escClusterIdentifier :: Lens' EnableSnapshotCopy Text+escClusterIdentifier =+ lens _escClusterIdentifier (\s a -> s { _escClusterIdentifier = a })++-- | The destination region that you want to copy snapshots to. Constraints:+-- Must be the name of a valid region. For more information, see Regions and+-- Endpoints in the Amazon Web Services General Reference.+escDestinationRegion :: Lens' EnableSnapshotCopy Text+escDestinationRegion =+ lens _escDestinationRegion (\s a -> s { _escDestinationRegion = a })++-- | The number of days to retain automated snapshots in the destination+-- region after they are copied from the source region. Default: 7.+-- Constraints: Must be at least 1 and no more than 35.+escRetentionPeriod :: Lens' EnableSnapshotCopy (Maybe Int)+escRetentionPeriod =+ lens _escRetentionPeriod (\s a -> s { _escRetentionPeriod = a })++newtype EnableSnapshotCopyResponse = EnableSnapshotCopyResponse+ { _escrCluster :: Maybe Cluster+ } deriving (Eq, Show)++-- | 'EnableSnapshotCopyResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'escrCluster' @::@ 'Maybe' 'Cluster'+--+enableSnapshotCopyResponse :: EnableSnapshotCopyResponse+enableSnapshotCopyResponse = EnableSnapshotCopyResponse+ { _escrCluster = Nothing+ }++escrCluster :: Lens' EnableSnapshotCopyResponse (Maybe Cluster)+escrCluster = lens _escrCluster (\s a -> s { _escrCluster = a })++instance ToPath EnableSnapshotCopy where+ toPath = const "/"++instance ToQuery EnableSnapshotCopy where+ toQuery EnableSnapshotCopy{..} = mconcat+ [ "ClusterIdentifier" =? _escClusterIdentifier+ , "DestinationRegion" =? _escDestinationRegion+ , "RetentionPeriod" =? _escRetentionPeriod+ ]++instance ToHeaders EnableSnapshotCopy++instance AWSRequest EnableSnapshotCopy where+ type Sv EnableSnapshotCopy = Redshift+ type Rs EnableSnapshotCopy = EnableSnapshotCopyResponse++ request = post "EnableSnapshotCopy"+ response = xmlResponse++instance FromXML EnableSnapshotCopyResponse where+ parseXML = withElement "EnableSnapshotCopyResult" $ \x -> EnableSnapshotCopyResponse+ <$> x .@? "Cluster"
+ gen/Network/AWS/Redshift/ModifyCluster.hs view
@@ -0,0 +1,344 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.ModifyCluster+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Modifies the settings for a cluster. For example, you can add another+-- security or parameter group, update the preferred maintenance window, or+-- change the master user password. Resetting a cluster password or modifying+-- the security groups associated with a cluster do not need a reboot.+-- However, modifying a parameter group requires a reboot for parameters to+-- take effect. For more information about managing clusters, go to Amazon+-- Redshift Clusters in the Amazon Redshift Cluster Management Guide . You can+-- also change node type and the number of nodes to scale up or down the+-- cluster. When resizing a cluster, you must specify both the number of nodes+-- and the node type even if one of the parameters does not change.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_ModifyCluster.html>+module Network.AWS.Redshift.ModifyCluster+ (+ -- * Request+ ModifyCluster+ -- ** Request constructor+ , modifyCluster+ -- ** Request lenses+ , mcAllowVersionUpgrade+ , mcAutomatedSnapshotRetentionPeriod+ , mcClusterIdentifier+ , mcClusterParameterGroupName+ , mcClusterSecurityGroups+ , mcClusterType+ , mcClusterVersion+ , mcHsmClientCertificateIdentifier+ , mcHsmConfigurationIdentifier+ , mcMasterUserPassword+ , mcNewClusterIdentifier+ , mcNodeType+ , mcNumberOfNodes+ , mcPreferredMaintenanceWindow+ , mcVpcSecurityGroupIds++ -- * Response+ , ModifyClusterResponse+ -- ** Response constructor+ , modifyClusterResponse+ -- ** Response lenses+ , mcrCluster+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data ModifyCluster = ModifyCluster+ { _mcAllowVersionUpgrade :: Maybe Bool+ , _mcAutomatedSnapshotRetentionPeriod :: Maybe Int+ , _mcClusterIdentifier :: Text+ , _mcClusterParameterGroupName :: Maybe Text+ , _mcClusterSecurityGroups :: List "ClusterSecurityGroupName" Text+ , _mcClusterType :: Maybe Text+ , _mcClusterVersion :: Maybe Text+ , _mcHsmClientCertificateIdentifier :: Maybe Text+ , _mcHsmConfigurationIdentifier :: Maybe Text+ , _mcMasterUserPassword :: Maybe Text+ , _mcNewClusterIdentifier :: Maybe Text+ , _mcNodeType :: Maybe Text+ , _mcNumberOfNodes :: Maybe Int+ , _mcPreferredMaintenanceWindow :: Maybe Text+ , _mcVpcSecurityGroupIds :: List "VpcSecurityGroupId" Text+ } deriving (Eq, Ord, Show)++-- | 'ModifyCluster' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'mcAllowVersionUpgrade' @::@ 'Maybe' 'Bool'+--+-- * 'mcAutomatedSnapshotRetentionPeriod' @::@ 'Maybe' 'Int'+--+-- * 'mcClusterIdentifier' @::@ 'Text'+--+-- * 'mcClusterParameterGroupName' @::@ 'Maybe' 'Text'+--+-- * 'mcClusterSecurityGroups' @::@ ['Text']+--+-- * 'mcClusterType' @::@ 'Maybe' 'Text'+--+-- * 'mcClusterVersion' @::@ 'Maybe' 'Text'+--+-- * 'mcHsmClientCertificateIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'mcHsmConfigurationIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'mcMasterUserPassword' @::@ 'Maybe' 'Text'+--+-- * 'mcNewClusterIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'mcNodeType' @::@ 'Maybe' 'Text'+--+-- * 'mcNumberOfNodes' @::@ 'Maybe' 'Int'+--+-- * 'mcPreferredMaintenanceWindow' @::@ 'Maybe' 'Text'+--+-- * 'mcVpcSecurityGroupIds' @::@ ['Text']+--+modifyCluster :: Text -- ^ 'mcClusterIdentifier'+ -> ModifyCluster+modifyCluster p1 = ModifyCluster+ { _mcClusterIdentifier = p1+ , _mcClusterType = Nothing+ , _mcNodeType = Nothing+ , _mcNumberOfNodes = Nothing+ , _mcClusterSecurityGroups = mempty+ , _mcVpcSecurityGroupIds = mempty+ , _mcMasterUserPassword = Nothing+ , _mcClusterParameterGroupName = Nothing+ , _mcAutomatedSnapshotRetentionPeriod = Nothing+ , _mcPreferredMaintenanceWindow = Nothing+ , _mcClusterVersion = Nothing+ , _mcAllowVersionUpgrade = Nothing+ , _mcHsmClientCertificateIdentifier = Nothing+ , _mcHsmConfigurationIdentifier = Nothing+ , _mcNewClusterIdentifier = Nothing+ }++-- | If true, major version upgrades will be applied automatically to the+-- cluster during the maintenance window. Default: false.+mcAllowVersionUpgrade :: Lens' ModifyCluster (Maybe Bool)+mcAllowVersionUpgrade =+ lens _mcAllowVersionUpgrade (\s a -> s { _mcAllowVersionUpgrade = a })++-- | The number of days that automated snapshots are retained. If the value is+-- 0, automated snapshots are disabled. Even if automated snapshots are+-- disabled, you can still create manual snapshots when you want with+-- CreateClusterSnapshot. If you decrease the automated snapshot retention+-- period from its current value, existing automated snapshots that fall+-- outside of the new retention period will be immediately deleted. Default:+-- Uses existing setting. Constraints: Must be a value from 0 to 35.+mcAutomatedSnapshotRetentionPeriod :: Lens' ModifyCluster (Maybe Int)+mcAutomatedSnapshotRetentionPeriod =+ lens _mcAutomatedSnapshotRetentionPeriod+ (\s a -> s { _mcAutomatedSnapshotRetentionPeriod = a })++-- | The unique identifier of the cluster to be modified. Example:+-- examplecluster.+mcClusterIdentifier :: Lens' ModifyCluster Text+mcClusterIdentifier =+ lens _mcClusterIdentifier (\s a -> s { _mcClusterIdentifier = a })++-- | The name of the cluster parameter group to apply to this cluster. This+-- change is applied only after the cluster is rebooted. To reboot a cluster+-- use RebootCluster. Default: Uses existing setting. Constraints: The+-- cluster parameter group must be in the same parameter group family that+-- matches the cluster version.+mcClusterParameterGroupName :: Lens' ModifyCluster (Maybe Text)+mcClusterParameterGroupName =+ lens _mcClusterParameterGroupName+ (\s a -> s { _mcClusterParameterGroupName = a })++-- | A list of cluster security groups to be authorized on this cluster. This+-- change is asynchronously applied as soon as possible. Security groups+-- currently associated with the cluster, and not in the list of groups to+-- apply, will be revoked from the cluster. Constraints: Must be 1 to 255+-- alphanumeric characters or hyphens First character must be a letter+-- Cannot end with a hyphen or contain two consecutive hyphens.+mcClusterSecurityGroups :: Lens' ModifyCluster [Text]+mcClusterSecurityGroups =+ lens _mcClusterSecurityGroups (\s a -> s { _mcClusterSecurityGroups = a })+ . _List++-- | The new cluster type. When you submit your cluster resize request, your+-- existing cluster goes into a read-only mode. After Amazon Redshift+-- provisions a new cluster based on your resize requirements, there will be+-- outage for a period while the old cluster is deleted and your connection+-- is switched to the new cluster. You can use DescribeResize to track the+-- progress of the resize request. Valid Values: multi-node | single-node.+mcClusterType :: Lens' ModifyCluster (Maybe Text)+mcClusterType = lens _mcClusterType (\s a -> s { _mcClusterType = a })++-- | The new version number of the Amazon Redshift engine to upgrade to. For+-- major version upgrades, if a non-default cluster parameter group is+-- currently in use, a new cluster parameter group in the cluster parameter+-- group family for the new version must be specified. The new cluster+-- parameter group can be the default for that cluster parameter group+-- family. For more information about managing parameter groups, go to+-- Amazon Redshift Parameter Groups in the Amazon Redshift Cluster+-- Management Guide. Example: 1.0.+mcClusterVersion :: Lens' ModifyCluster (Maybe Text)+mcClusterVersion = lens _mcClusterVersion (\s a -> s { _mcClusterVersion = a })++-- | Specifies the name of the HSM client certificate the Amazon Redshift+-- cluster uses to retrieve the data encryption keys stored in an HSM.+mcHsmClientCertificateIdentifier :: Lens' ModifyCluster (Maybe Text)+mcHsmClientCertificateIdentifier =+ lens _mcHsmClientCertificateIdentifier+ (\s a -> s { _mcHsmClientCertificateIdentifier = a })++-- | Specifies the name of the HSM configuration that contains the information+-- the Amazon Redshift cluster can use to retrieve and store keys in an HSM.+mcHsmConfigurationIdentifier :: Lens' ModifyCluster (Maybe Text)+mcHsmConfigurationIdentifier =+ lens _mcHsmConfigurationIdentifier+ (\s a -> s { _mcHsmConfigurationIdentifier = a })++-- | The new password for the cluster master user. This change is+-- asynchronously applied as soon as possible. Between the time of the+-- request and the completion of the request, the MasterUserPassword element+-- exists in the PendingModifiedValues element of the operation response.+-- Operations never return the password, so this operation provides a way to+-- regain access to the master user account for a cluster if the password is+-- lost. Default: Uses existing setting. Constraints: Must be between 8 and+-- 64 characters in length. Must contain at least one uppercase letter. Must+-- contain at least one lowercase letter. Must contain one number. Can be+-- any printable ASCII character (ASCII code 33 to 126) except ' (single+-- quote), " (double quote), \, /, @, or space.+mcMasterUserPassword :: Lens' ModifyCluster (Maybe Text)+mcMasterUserPassword =+ lens _mcMasterUserPassword (\s a -> s { _mcMasterUserPassword = a })++-- | The new identifier for the cluster. Constraints: Must contain from 1 to+-- 63 alphanumeric characters or hyphens. Alphabetic characters must be+-- lowercase. First character must be a letter. Cannot end with a hyphen or+-- contain two consecutive hyphens. Must be unique for all clusters within+-- an AWS account. Example: examplecluster.+mcNewClusterIdentifier :: Lens' ModifyCluster (Maybe Text)+mcNewClusterIdentifier =+ lens _mcNewClusterIdentifier (\s a -> s { _mcNewClusterIdentifier = a })++-- | The new node type of the cluster. If you specify a new node type, you+-- must also specify the number of nodes parameter. When you submit your+-- request to resize a cluster, Amazon Redshift sets access permissions for+-- the cluster to read-only. After Amazon Redshift provisions a new cluster+-- according to your resize requirements, there will be a temporary outage+-- while the old cluster is deleted and your connection is switched to the+-- new cluster. When the new connection is complete, the original access+-- permissions for the cluster are restored. You can use DescribeResize to+-- track the progress of the resize request. Valid Values: dw1.xlarge |+-- dw1.8xlarge | dw2.large | dw2.8xlarge.+mcNodeType :: Lens' ModifyCluster (Maybe Text)+mcNodeType = lens _mcNodeType (\s a -> s { _mcNodeType = a })++-- | The new number of nodes of the cluster. If you specify a new number of+-- nodes, you must also specify the node type parameter. When you submit+-- your request to resize a cluster, Amazon Redshift sets access permissions+-- for the cluster to read-only. After Amazon Redshift provisions a new+-- cluster according to your resize requirements, there will be a temporary+-- outage while the old cluster is deleted and your connection is switched+-- to the new cluster. When the new connection is complete, the original+-- access permissions for the cluster are restored. You can use+-- DescribeResize to track the progress of the resize request. Valid Values:+-- Integer greater than 0.+mcNumberOfNodes :: Lens' ModifyCluster (Maybe Int)+mcNumberOfNodes = lens _mcNumberOfNodes (\s a -> s { _mcNumberOfNodes = a })++-- | The weekly time range (in UTC) during which system maintenance can occur,+-- if necessary. If system maintenance is necessary during the window, it+-- may result in an outage. This maintenance window change is made+-- immediately. If the new maintenance window indicates the current time,+-- there must be at least 120 minutes between the current time and end of+-- the window in order to ensure that pending changes are applied. Default:+-- Uses existing setting. Format: ddd:hh24:mi-ddd:hh24:mi, for example+-- wed:07:30-wed:08:00. Valid Days: Mon | Tue | Wed | Thu | Fri | Sat | Sun+-- Constraints: Must be at least 30 minutes.+mcPreferredMaintenanceWindow :: Lens' ModifyCluster (Maybe Text)+mcPreferredMaintenanceWindow =+ lens _mcPreferredMaintenanceWindow+ (\s a -> s { _mcPreferredMaintenanceWindow = a })++-- | A list of virtual private cloud (VPC) security groups to be associated+-- with the cluster.+mcVpcSecurityGroupIds :: Lens' ModifyCluster [Text]+mcVpcSecurityGroupIds =+ lens _mcVpcSecurityGroupIds (\s a -> s { _mcVpcSecurityGroupIds = a })+ . _List++newtype ModifyClusterResponse = ModifyClusterResponse+ { _mcrCluster :: Maybe Cluster+ } deriving (Eq, Show)++-- | 'ModifyClusterResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'mcrCluster' @::@ 'Maybe' 'Cluster'+--+modifyClusterResponse :: ModifyClusterResponse+modifyClusterResponse = ModifyClusterResponse+ { _mcrCluster = Nothing+ }++mcrCluster :: Lens' ModifyClusterResponse (Maybe Cluster)+mcrCluster = lens _mcrCluster (\s a -> s { _mcrCluster = a })++instance ToPath ModifyCluster where+ toPath = const "/"++instance ToQuery ModifyCluster where+ toQuery ModifyCluster{..} = mconcat+ [ "AllowVersionUpgrade" =? _mcAllowVersionUpgrade+ , "AutomatedSnapshotRetentionPeriod" =? _mcAutomatedSnapshotRetentionPeriod+ , "ClusterIdentifier" =? _mcClusterIdentifier+ , "ClusterParameterGroupName" =? _mcClusterParameterGroupName+ , "ClusterSecurityGroups" =? _mcClusterSecurityGroups+ , "ClusterType" =? _mcClusterType+ , "ClusterVersion" =? _mcClusterVersion+ , "HsmClientCertificateIdentifier" =? _mcHsmClientCertificateIdentifier+ , "HsmConfigurationIdentifier" =? _mcHsmConfigurationIdentifier+ , "MasterUserPassword" =? _mcMasterUserPassword+ , "NewClusterIdentifier" =? _mcNewClusterIdentifier+ , "NodeType" =? _mcNodeType+ , "NumberOfNodes" =? _mcNumberOfNodes+ , "PreferredMaintenanceWindow" =? _mcPreferredMaintenanceWindow+ , "VpcSecurityGroupIds" =? _mcVpcSecurityGroupIds+ ]++instance ToHeaders ModifyCluster++instance AWSRequest ModifyCluster where+ type Sv ModifyCluster = Redshift+ type Rs ModifyCluster = ModifyClusterResponse++ request = post "ModifyCluster"+ response = xmlResponse++instance FromXML ModifyClusterResponse where+ parseXML = withElement "ModifyClusterResult" $ \x -> ModifyClusterResponse+ <$> x .@? "Cluster"
+ gen/Network/AWS/Redshift/ModifyClusterParameterGroup.hs view
@@ -0,0 +1,139 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.ModifyClusterParameterGroup+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Modifies the parameters of a parameter group. For more information about+-- managing parameter groups, go to Amazon Redshift Parameter Groups in the+-- Amazon Redshift Cluster Management Guide.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_ModifyClusterParameterGroup.html>+module Network.AWS.Redshift.ModifyClusterParameterGroup+ (+ -- * Request+ ModifyClusterParameterGroup+ -- ** Request constructor+ , modifyClusterParameterGroup+ -- ** Request lenses+ , mcpgParameterGroupName+ , mcpgParameters++ -- * Response+ , ModifyClusterParameterGroupResponse+ -- ** Response constructor+ , modifyClusterParameterGroupResponse+ -- ** Response lenses+ , mcpgrParameterGroupName+ , mcpgrParameterGroupStatus+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data ModifyClusterParameterGroup = ModifyClusterParameterGroup+ { _mcpgParameterGroupName :: Text+ , _mcpgParameters :: List "Parameter" Parameter+ } deriving (Eq, Show)++-- | 'ModifyClusterParameterGroup' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'mcpgParameterGroupName' @::@ 'Text'+--+-- * 'mcpgParameters' @::@ ['Parameter']+--+modifyClusterParameterGroup :: Text -- ^ 'mcpgParameterGroupName'+ -> ModifyClusterParameterGroup+modifyClusterParameterGroup p1 = ModifyClusterParameterGroup+ { _mcpgParameterGroupName = p1+ , _mcpgParameters = mempty+ }++-- | The name of the parameter group to be modified.+mcpgParameterGroupName :: Lens' ModifyClusterParameterGroup Text+mcpgParameterGroupName =+ lens _mcpgParameterGroupName (\s a -> s { _mcpgParameterGroupName = a })++-- | An array of parameters to be modified. A maximum of 20 parameters can be+-- modified in a single request. For each parameter to be modified, you must+-- supply at least the parameter name and parameter value; other name-value+-- pairs of the parameter are optional. For the workload management (WLM)+-- configuration, you must supply all the name-value pairs in the+-- wlm_json_configuration parameter.+mcpgParameters :: Lens' ModifyClusterParameterGroup [Parameter]+mcpgParameters = lens _mcpgParameters (\s a -> s { _mcpgParameters = a }) . _List++data ModifyClusterParameterGroupResponse = ModifyClusterParameterGroupResponse+ { _mcpgrParameterGroupName :: Maybe Text+ , _mcpgrParameterGroupStatus :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'ModifyClusterParameterGroupResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'mcpgrParameterGroupName' @::@ 'Maybe' 'Text'+--+-- * 'mcpgrParameterGroupStatus' @::@ 'Maybe' 'Text'+--+modifyClusterParameterGroupResponse :: ModifyClusterParameterGroupResponse+modifyClusterParameterGroupResponse = ModifyClusterParameterGroupResponse+ { _mcpgrParameterGroupName = Nothing+ , _mcpgrParameterGroupStatus = Nothing+ }++-- | The name of the cluster parameter group.+mcpgrParameterGroupName :: Lens' ModifyClusterParameterGroupResponse (Maybe Text)+mcpgrParameterGroupName =+ lens _mcpgrParameterGroupName (\s a -> s { _mcpgrParameterGroupName = a })++-- | The status of the parameter group. For example, if you made a change to a+-- parameter group name-value pair, then the change could be pending a+-- reboot of an associated cluster.+mcpgrParameterGroupStatus :: Lens' ModifyClusterParameterGroupResponse (Maybe Text)+mcpgrParameterGroupStatus =+ lens _mcpgrParameterGroupStatus+ (\s a -> s { _mcpgrParameterGroupStatus = a })++instance ToPath ModifyClusterParameterGroup where+ toPath = const "/"++instance ToQuery ModifyClusterParameterGroup where+ toQuery ModifyClusterParameterGroup{..} = mconcat+ [ "ParameterGroupName" =? _mcpgParameterGroupName+ , "Parameters" =? _mcpgParameters+ ]++instance ToHeaders ModifyClusterParameterGroup++instance AWSRequest ModifyClusterParameterGroup where+ type Sv ModifyClusterParameterGroup = Redshift+ type Rs ModifyClusterParameterGroup = ModifyClusterParameterGroupResponse++ request = post "ModifyClusterParameterGroup"+ response = xmlResponse++instance FromXML ModifyClusterParameterGroupResponse where+ parseXML = withElement "ModifyClusterParameterGroupResult" $ \x -> ModifyClusterParameterGroupResponse+ <$> x .@? "ParameterGroupName"+ <*> x .@? "ParameterGroupStatus"
+ gen/Network/AWS/Redshift/ModifyClusterSubnetGroup.hs view
@@ -0,0 +1,131 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.ModifyClusterSubnetGroup+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Modifies a cluster subnet group to include the specified list of VPC+-- subnets. The operation replaces the existing list of subnets with the new+-- list of subnets.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_ModifyClusterSubnetGroup.html>+module Network.AWS.Redshift.ModifyClusterSubnetGroup+ (+ -- * Request+ ModifyClusterSubnetGroup+ -- ** Request constructor+ , modifyClusterSubnetGroup+ -- ** Request lenses+ , mcsgClusterSubnetGroupName+ , mcsgDescription+ , mcsgSubnetIds++ -- * Response+ , ModifyClusterSubnetGroupResponse+ -- ** Response constructor+ , modifyClusterSubnetGroupResponse+ -- ** Response lenses+ , mcsgrClusterSubnetGroup+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data ModifyClusterSubnetGroup = ModifyClusterSubnetGroup+ { _mcsgClusterSubnetGroupName :: Text+ , _mcsgDescription :: Maybe Text+ , _mcsgSubnetIds :: List "SubnetIdentifier" Text+ } deriving (Eq, Ord, Show)++-- | 'ModifyClusterSubnetGroup' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'mcsgClusterSubnetGroupName' @::@ 'Text'+--+-- * 'mcsgDescription' @::@ 'Maybe' 'Text'+--+-- * 'mcsgSubnetIds' @::@ ['Text']+--+modifyClusterSubnetGroup :: Text -- ^ 'mcsgClusterSubnetGroupName'+ -> ModifyClusterSubnetGroup+modifyClusterSubnetGroup p1 = ModifyClusterSubnetGroup+ { _mcsgClusterSubnetGroupName = p1+ , _mcsgDescription = Nothing+ , _mcsgSubnetIds = mempty+ }++-- | The name of the subnet group to be modified.+mcsgClusterSubnetGroupName :: Lens' ModifyClusterSubnetGroup Text+mcsgClusterSubnetGroupName =+ lens _mcsgClusterSubnetGroupName+ (\s a -> s { _mcsgClusterSubnetGroupName = a })++-- | A text description of the subnet group to be modified.+mcsgDescription :: Lens' ModifyClusterSubnetGroup (Maybe Text)+mcsgDescription = lens _mcsgDescription (\s a -> s { _mcsgDescription = a })++-- | An array of VPC subnet IDs. A maximum of 20 subnets can be modified in a+-- single request.+mcsgSubnetIds :: Lens' ModifyClusterSubnetGroup [Text]+mcsgSubnetIds = lens _mcsgSubnetIds (\s a -> s { _mcsgSubnetIds = a }) . _List++newtype ModifyClusterSubnetGroupResponse = ModifyClusterSubnetGroupResponse+ { _mcsgrClusterSubnetGroup :: Maybe ClusterSubnetGroup+ } deriving (Eq, Show)++-- | 'ModifyClusterSubnetGroupResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'mcsgrClusterSubnetGroup' @::@ 'Maybe' 'ClusterSubnetGroup'+--+modifyClusterSubnetGroupResponse :: ModifyClusterSubnetGroupResponse+modifyClusterSubnetGroupResponse = ModifyClusterSubnetGroupResponse+ { _mcsgrClusterSubnetGroup = Nothing+ }++mcsgrClusterSubnetGroup :: Lens' ModifyClusterSubnetGroupResponse (Maybe ClusterSubnetGroup)+mcsgrClusterSubnetGroup =+ lens _mcsgrClusterSubnetGroup (\s a -> s { _mcsgrClusterSubnetGroup = a })++instance ToPath ModifyClusterSubnetGroup where+ toPath = const "/"++instance ToQuery ModifyClusterSubnetGroup where+ toQuery ModifyClusterSubnetGroup{..} = mconcat+ [ "ClusterSubnetGroupName" =? _mcsgClusterSubnetGroupName+ , "Description" =? _mcsgDescription+ , "SubnetIds" =? _mcsgSubnetIds+ ]++instance ToHeaders ModifyClusterSubnetGroup++instance AWSRequest ModifyClusterSubnetGroup where+ type Sv ModifyClusterSubnetGroup = Redshift+ type Rs ModifyClusterSubnetGroup = ModifyClusterSubnetGroupResponse++ request = post "ModifyClusterSubnetGroup"+ response = xmlResponse++instance FromXML ModifyClusterSubnetGroupResponse where+ parseXML = withElement "ModifyClusterSubnetGroupResult" $ \x -> ModifyClusterSubnetGroupResponse+ <$> x .@? "ClusterSubnetGroup"
+ gen/Network/AWS/Redshift/ModifyEventSubscription.hs view
@@ -0,0 +1,185 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.ModifyEventSubscription+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Modifies an existing Amazon Redshift event notification subscription.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_ModifyEventSubscription.html>+module Network.AWS.Redshift.ModifyEventSubscription+ (+ -- * Request+ ModifyEventSubscription+ -- ** Request constructor+ , modifyEventSubscription+ -- ** Request lenses+ , mesEnabled+ , mesEventCategories+ , mesSeverity+ , mesSnsTopicArn+ , mesSourceIds+ , mesSourceType+ , mesSubscriptionName++ -- * Response+ , ModifyEventSubscriptionResponse+ -- ** Response constructor+ , modifyEventSubscriptionResponse+ -- ** Response lenses+ , mesrEventSubscription+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data ModifyEventSubscription = ModifyEventSubscription+ { _mesEnabled :: Maybe Bool+ , _mesEventCategories :: List "EventCategory" Text+ , _mesSeverity :: Maybe Text+ , _mesSnsTopicArn :: Maybe Text+ , _mesSourceIds :: List "SourceId" Text+ , _mesSourceType :: Maybe Text+ , _mesSubscriptionName :: Text+ } deriving (Eq, Ord, Show)++-- | 'ModifyEventSubscription' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'mesEnabled' @::@ 'Maybe' 'Bool'+--+-- * 'mesEventCategories' @::@ ['Text']+--+-- * 'mesSeverity' @::@ 'Maybe' 'Text'+--+-- * 'mesSnsTopicArn' @::@ 'Maybe' 'Text'+--+-- * 'mesSourceIds' @::@ ['Text']+--+-- * 'mesSourceType' @::@ 'Maybe' 'Text'+--+-- * 'mesSubscriptionName' @::@ 'Text'+--+modifyEventSubscription :: Text -- ^ 'mesSubscriptionName'+ -> ModifyEventSubscription+modifyEventSubscription p1 = ModifyEventSubscription+ { _mesSubscriptionName = p1+ , _mesSnsTopicArn = Nothing+ , _mesSourceType = Nothing+ , _mesSourceIds = mempty+ , _mesEventCategories = mempty+ , _mesSeverity = Nothing+ , _mesEnabled = Nothing+ }++-- | A Boolean value indicating if the subscription is enabled. true indicates+-- the subscription is enabled.+mesEnabled :: Lens' ModifyEventSubscription (Maybe Bool)+mesEnabled = lens _mesEnabled (\s a -> s { _mesEnabled = a })++-- | Specifies the Amazon Redshift event categories to be published by the+-- event notification subscription. Values: Configuration, Management,+-- Monitoring, Security.+mesEventCategories :: Lens' ModifyEventSubscription [Text]+mesEventCategories =+ lens _mesEventCategories (\s a -> s { _mesEventCategories = a })+ . _List++-- | Specifies the Amazon Redshift event severity to be published by the event+-- notification subscription. Values: ERROR, INFO.+mesSeverity :: Lens' ModifyEventSubscription (Maybe Text)+mesSeverity = lens _mesSeverity (\s a -> s { _mesSeverity = a })++-- | The Amazon Resource Name (ARN) of the SNS topic to be used by the event+-- notification subscription.+mesSnsTopicArn :: Lens' ModifyEventSubscription (Maybe Text)+mesSnsTopicArn = lens _mesSnsTopicArn (\s a -> s { _mesSnsTopicArn = a })++-- | A list of one or more identifiers of Amazon Redshift source objects. All+-- of the objects must be of the same type as was specified in the source+-- type parameter. The event subscription will return only events generated+-- by the specified objects. If not specified, then events are returned for+-- all objects within the source type specified. Example: my-cluster-1,+-- my-cluster-2 Example: my-snapshot-20131010.+mesSourceIds :: Lens' ModifyEventSubscription [Text]+mesSourceIds = lens _mesSourceIds (\s a -> s { _mesSourceIds = a }) . _List++-- | The type of source that will be generating the events. For example, if+-- you want to be notified of events generated by a cluster, you would set+-- this parameter to cluster. If this value is not specified, events are+-- returned for all Amazon Redshift objects in your AWS account. You must+-- specify a source type in order to specify source IDs. Valid values:+-- cluster, cluster-parameter-group, cluster-security-group, and+-- cluster-snapshot.+mesSourceType :: Lens' ModifyEventSubscription (Maybe Text)+mesSourceType = lens _mesSourceType (\s a -> s { _mesSourceType = a })++-- | The name of the modified Amazon Redshift event notification subscription.+mesSubscriptionName :: Lens' ModifyEventSubscription Text+mesSubscriptionName =+ lens _mesSubscriptionName (\s a -> s { _mesSubscriptionName = a })++newtype ModifyEventSubscriptionResponse = ModifyEventSubscriptionResponse+ { _mesrEventSubscription :: Maybe EventSubscription+ } deriving (Eq, Show)++-- | 'ModifyEventSubscriptionResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'mesrEventSubscription' @::@ 'Maybe' 'EventSubscription'+--+modifyEventSubscriptionResponse :: ModifyEventSubscriptionResponse+modifyEventSubscriptionResponse = ModifyEventSubscriptionResponse+ { _mesrEventSubscription = Nothing+ }++mesrEventSubscription :: Lens' ModifyEventSubscriptionResponse (Maybe EventSubscription)+mesrEventSubscription =+ lens _mesrEventSubscription (\s a -> s { _mesrEventSubscription = a })++instance ToPath ModifyEventSubscription where+ toPath = const "/"++instance ToQuery ModifyEventSubscription where+ toQuery ModifyEventSubscription{..} = mconcat+ [ "Enabled" =? _mesEnabled+ , "EventCategories" =? _mesEventCategories+ , "Severity" =? _mesSeverity+ , "SnsTopicArn" =? _mesSnsTopicArn+ , "SourceIds" =? _mesSourceIds+ , "SourceType" =? _mesSourceType+ , "SubscriptionName" =? _mesSubscriptionName+ ]++instance ToHeaders ModifyEventSubscription++instance AWSRequest ModifyEventSubscription where+ type Sv ModifyEventSubscription = Redshift+ type Rs ModifyEventSubscription = ModifyEventSubscriptionResponse++ request = post "ModifyEventSubscription"+ response = xmlResponse++instance FromXML ModifyEventSubscriptionResponse where+ parseXML = withElement "ModifyEventSubscriptionResult" $ \x -> ModifyEventSubscriptionResponse+ <$> x .@? "EventSubscription"
+ gen/Network/AWS/Redshift/ModifySnapshotCopyRetentionPeriod.hs view
@@ -0,0 +1,127 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.ModifySnapshotCopyRetentionPeriod+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Modifies the number of days to retain automated snapshots in the+-- destination region after they are copied from the source region.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_ModifySnapshotCopyRetentionPeriod.html>+module Network.AWS.Redshift.ModifySnapshotCopyRetentionPeriod+ (+ -- * Request+ ModifySnapshotCopyRetentionPeriod+ -- ** Request constructor+ , modifySnapshotCopyRetentionPeriod+ -- ** Request lenses+ , mscrpClusterIdentifier+ , mscrpRetentionPeriod++ -- * Response+ , ModifySnapshotCopyRetentionPeriodResponse+ -- ** Response constructor+ , modifySnapshotCopyRetentionPeriodResponse+ -- ** Response lenses+ , mscrprCluster+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data ModifySnapshotCopyRetentionPeriod = ModifySnapshotCopyRetentionPeriod+ { _mscrpClusterIdentifier :: Text+ , _mscrpRetentionPeriod :: Int+ } deriving (Eq, Ord, Show)++-- | 'ModifySnapshotCopyRetentionPeriod' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'mscrpClusterIdentifier' @::@ 'Text'+--+-- * 'mscrpRetentionPeriod' @::@ 'Int'+--+modifySnapshotCopyRetentionPeriod :: Text -- ^ 'mscrpClusterIdentifier'+ -> Int -- ^ 'mscrpRetentionPeriod'+ -> ModifySnapshotCopyRetentionPeriod+modifySnapshotCopyRetentionPeriod p1 p2 = ModifySnapshotCopyRetentionPeriod+ { _mscrpClusterIdentifier = p1+ , _mscrpRetentionPeriod = p2+ }++-- | The unique identifier of the cluster for which you want to change the+-- retention period for automated snapshots that are copied to a destination+-- region. Constraints: Must be the valid name of an existing cluster that+-- has cross-region snapshot copy enabled.+mscrpClusterIdentifier :: Lens' ModifySnapshotCopyRetentionPeriod Text+mscrpClusterIdentifier =+ lens _mscrpClusterIdentifier (\s a -> s { _mscrpClusterIdentifier = a })++-- | The number of days to retain automated snapshots in the destination+-- region after they are copied from the source region. If you decrease the+-- retention period for automated snapshots that are copied to a destination+-- region, Amazon Redshift will delete any existing automated snapshots that+-- were copied to the destination region and that fall outside of the new+-- retention period. Constraints: Must be at least 1 and no more than 35.+mscrpRetentionPeriod :: Lens' ModifySnapshotCopyRetentionPeriod Int+mscrpRetentionPeriod =+ lens _mscrpRetentionPeriod (\s a -> s { _mscrpRetentionPeriod = a })++newtype ModifySnapshotCopyRetentionPeriodResponse = ModifySnapshotCopyRetentionPeriodResponse+ { _mscrprCluster :: Maybe Cluster+ } deriving (Eq, Show)++-- | 'ModifySnapshotCopyRetentionPeriodResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'mscrprCluster' @::@ 'Maybe' 'Cluster'+--+modifySnapshotCopyRetentionPeriodResponse :: ModifySnapshotCopyRetentionPeriodResponse+modifySnapshotCopyRetentionPeriodResponse = ModifySnapshotCopyRetentionPeriodResponse+ { _mscrprCluster = Nothing+ }++mscrprCluster :: Lens' ModifySnapshotCopyRetentionPeriodResponse (Maybe Cluster)+mscrprCluster = lens _mscrprCluster (\s a -> s { _mscrprCluster = a })++instance ToPath ModifySnapshotCopyRetentionPeriod where+ toPath = const "/"++instance ToQuery ModifySnapshotCopyRetentionPeriod where+ toQuery ModifySnapshotCopyRetentionPeriod{..} = mconcat+ [ "ClusterIdentifier" =? _mscrpClusterIdentifier+ , "RetentionPeriod" =? _mscrpRetentionPeriod+ ]++instance ToHeaders ModifySnapshotCopyRetentionPeriod++instance AWSRequest ModifySnapshotCopyRetentionPeriod where+ type Sv ModifySnapshotCopyRetentionPeriod = Redshift+ type Rs ModifySnapshotCopyRetentionPeriod = ModifySnapshotCopyRetentionPeriodResponse++ request = post "ModifySnapshotCopyRetentionPeriod"+ response = xmlResponse++instance FromXML ModifySnapshotCopyRetentionPeriodResponse where+ parseXML = withElement "ModifySnapshotCopyRetentionPeriodResult" $ \x -> ModifySnapshotCopyRetentionPeriodResponse+ <$> x .@? "Cluster"
+ gen/Network/AWS/Redshift/PurchaseReservedNodeOffering.hs view
@@ -0,0 +1,124 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.PurchaseReservedNodeOffering+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Allows you to purchase reserved nodes. Amazon Redshift offers a predefined+-- set of reserved node offerings. You can purchase one of the offerings. You+-- can call the DescribeReservedNodeOfferings API to obtain the available+-- reserved node offerings. You can call this API by providing a specific+-- reserved node offering and the number of nodes you want to reserve. For+-- more information about managing parameter groups, go to Purchasing Reserved+-- Nodes in the Amazon Redshift Cluster Management Guide.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_PurchaseReservedNodeOffering.html>+module Network.AWS.Redshift.PurchaseReservedNodeOffering+ (+ -- * Request+ PurchaseReservedNodeOffering+ -- ** Request constructor+ , purchaseReservedNodeOffering+ -- ** Request lenses+ , prnoNodeCount+ , prnoReservedNodeOfferingId++ -- * Response+ , PurchaseReservedNodeOfferingResponse+ -- ** Response constructor+ , purchaseReservedNodeOfferingResponse+ -- ** Response lenses+ , prnorReservedNode+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data PurchaseReservedNodeOffering = PurchaseReservedNodeOffering+ { _prnoNodeCount :: Maybe Int+ , _prnoReservedNodeOfferingId :: Text+ } deriving (Eq, Ord, Show)++-- | 'PurchaseReservedNodeOffering' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'prnoNodeCount' @::@ 'Maybe' 'Int'+--+-- * 'prnoReservedNodeOfferingId' @::@ 'Text'+--+purchaseReservedNodeOffering :: Text -- ^ 'prnoReservedNodeOfferingId'+ -> PurchaseReservedNodeOffering+purchaseReservedNodeOffering p1 = PurchaseReservedNodeOffering+ { _prnoReservedNodeOfferingId = p1+ , _prnoNodeCount = Nothing+ }++-- | The number of reserved nodes you want to purchase. Default: 1.+prnoNodeCount :: Lens' PurchaseReservedNodeOffering (Maybe Int)+prnoNodeCount = lens _prnoNodeCount (\s a -> s { _prnoNodeCount = a })++-- | The unique identifier of the reserved node offering you want to purchase.+prnoReservedNodeOfferingId :: Lens' PurchaseReservedNodeOffering Text+prnoReservedNodeOfferingId =+ lens _prnoReservedNodeOfferingId+ (\s a -> s { _prnoReservedNodeOfferingId = a })++newtype PurchaseReservedNodeOfferingResponse = PurchaseReservedNodeOfferingResponse+ { _prnorReservedNode :: Maybe ReservedNode+ } deriving (Eq, Show)++-- | 'PurchaseReservedNodeOfferingResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'prnorReservedNode' @::@ 'Maybe' 'ReservedNode'+--+purchaseReservedNodeOfferingResponse :: PurchaseReservedNodeOfferingResponse+purchaseReservedNodeOfferingResponse = PurchaseReservedNodeOfferingResponse+ { _prnorReservedNode = Nothing+ }++prnorReservedNode :: Lens' PurchaseReservedNodeOfferingResponse (Maybe ReservedNode)+prnorReservedNode =+ lens _prnorReservedNode (\s a -> s { _prnorReservedNode = a })++instance ToPath PurchaseReservedNodeOffering where+ toPath = const "/"++instance ToQuery PurchaseReservedNodeOffering where+ toQuery PurchaseReservedNodeOffering{..} = mconcat+ [ "NodeCount" =? _prnoNodeCount+ , "ReservedNodeOfferingId" =? _prnoReservedNodeOfferingId+ ]++instance ToHeaders PurchaseReservedNodeOffering++instance AWSRequest PurchaseReservedNodeOffering where+ type Sv PurchaseReservedNodeOffering = Redshift+ type Rs PurchaseReservedNodeOffering = PurchaseReservedNodeOfferingResponse++ request = post "PurchaseReservedNodeOffering"+ response = xmlResponse++instance FromXML PurchaseReservedNodeOfferingResponse where+ parseXML = withElement "PurchaseReservedNodeOfferingResult" $ \x -> PurchaseReservedNodeOfferingResponse+ <$> x .@? "ReservedNode"
+ gen/Network/AWS/Redshift/RebootCluster.hs view
@@ -0,0 +1,111 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.RebootCluster+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Reboots a cluster. This action is taken as soon as possible. It results in+-- a momentary outage to the cluster, during which the cluster status is set+-- to rebooting. A cluster event is created when the reboot is completed. Any+-- pending cluster modifications (see ModifyCluster) are applied at this+-- reboot. For more information about managing clusters, go to Amazon Redshift+-- Clusters in the Amazon Redshift Cluster Management Guide.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_RebootCluster.html>+module Network.AWS.Redshift.RebootCluster+ (+ -- * Request+ RebootCluster+ -- ** Request constructor+ , rebootCluster+ -- ** Request lenses+ , rcClusterIdentifier++ -- * Response+ , RebootClusterResponse+ -- ** Response constructor+ , rebootClusterResponse+ -- ** Response lenses+ , rcrCluster+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++newtype RebootCluster = RebootCluster+ { _rcClusterIdentifier :: Text+ } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'RebootCluster' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rcClusterIdentifier' @::@ 'Text'+--+rebootCluster :: Text -- ^ 'rcClusterIdentifier'+ -> RebootCluster+rebootCluster p1 = RebootCluster+ { _rcClusterIdentifier = p1+ }++-- | The cluster identifier.+rcClusterIdentifier :: Lens' RebootCluster Text+rcClusterIdentifier =+ lens _rcClusterIdentifier (\s a -> s { _rcClusterIdentifier = a })++newtype RebootClusterResponse = RebootClusterResponse+ { _rcrCluster :: Maybe Cluster+ } deriving (Eq, Show)++-- | 'RebootClusterResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rcrCluster' @::@ 'Maybe' 'Cluster'+--+rebootClusterResponse :: RebootClusterResponse+rebootClusterResponse = RebootClusterResponse+ { _rcrCluster = Nothing+ }++rcrCluster :: Lens' RebootClusterResponse (Maybe Cluster)+rcrCluster = lens _rcrCluster (\s a -> s { _rcrCluster = a })++instance ToPath RebootCluster where+ toPath = const "/"++instance ToQuery RebootCluster where+ toQuery RebootCluster{..} = mconcat+ [ "ClusterIdentifier" =? _rcClusterIdentifier+ ]++instance ToHeaders RebootCluster++instance AWSRequest RebootCluster where+ type Sv RebootCluster = Redshift+ type Rs RebootCluster = RebootClusterResponse++ request = post "RebootCluster"+ response = xmlResponse++instance FromXML RebootClusterResponse where+ parseXML = withElement "RebootClusterResult" $ \x -> RebootClusterResponse+ <$> x .@? "Cluster"
+ gen/Network/AWS/Redshift/ResetClusterParameterGroup.hs view
@@ -0,0 +1,150 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.ResetClusterParameterGroup+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Sets one or more parameters of the specified parameter group to their+-- default values and sets the source values of the parameters to+-- "engine-default". To reset the entire parameter group specify the+-- ResetAllParameters parameter. For parameter changes to take effect you must+-- reboot any associated clusters.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_ResetClusterParameterGroup.html>+module Network.AWS.Redshift.ResetClusterParameterGroup+ (+ -- * Request+ ResetClusterParameterGroup+ -- ** Request constructor+ , resetClusterParameterGroup+ -- ** Request lenses+ , rcpgParameterGroupName+ , rcpgParameters+ , rcpgResetAllParameters++ -- * Response+ , ResetClusterParameterGroupResponse+ -- ** Response constructor+ , resetClusterParameterGroupResponse+ -- ** Response lenses+ , rcpgrParameterGroupName+ , rcpgrParameterGroupStatus+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data ResetClusterParameterGroup = ResetClusterParameterGroup+ { _rcpgParameterGroupName :: Text+ , _rcpgParameters :: List "Parameter" Parameter+ , _rcpgResetAllParameters :: Maybe Bool+ } deriving (Eq, Show)++-- | 'ResetClusterParameterGroup' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rcpgParameterGroupName' @::@ 'Text'+--+-- * 'rcpgParameters' @::@ ['Parameter']+--+-- * 'rcpgResetAllParameters' @::@ 'Maybe' 'Bool'+--+resetClusterParameterGroup :: Text -- ^ 'rcpgParameterGroupName'+ -> ResetClusterParameterGroup+resetClusterParameterGroup p1 = ResetClusterParameterGroup+ { _rcpgParameterGroupName = p1+ , _rcpgResetAllParameters = Nothing+ , _rcpgParameters = mempty+ }++-- | The name of the cluster parameter group to be reset.+rcpgParameterGroupName :: Lens' ResetClusterParameterGroup Text+rcpgParameterGroupName =+ lens _rcpgParameterGroupName (\s a -> s { _rcpgParameterGroupName = a })++-- | An array of names of parameters to be reset. If ResetAllParameters option+-- is not used, then at least one parameter name must be supplied.+-- Constraints: A maximum of 20 parameters can be reset in a single request.+rcpgParameters :: Lens' ResetClusterParameterGroup [Parameter]+rcpgParameters = lens _rcpgParameters (\s a -> s { _rcpgParameters = a }) . _List++-- | If true, all parameters in the specified parameter group will be reset to+-- their default values. Default: true.+rcpgResetAllParameters :: Lens' ResetClusterParameterGroup (Maybe Bool)+rcpgResetAllParameters =+ lens _rcpgResetAllParameters (\s a -> s { _rcpgResetAllParameters = a })++data ResetClusterParameterGroupResponse = ResetClusterParameterGroupResponse+ { _rcpgrParameterGroupName :: Maybe Text+ , _rcpgrParameterGroupStatus :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'ResetClusterParameterGroupResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rcpgrParameterGroupName' @::@ 'Maybe' 'Text'+--+-- * 'rcpgrParameterGroupStatus' @::@ 'Maybe' 'Text'+--+resetClusterParameterGroupResponse :: ResetClusterParameterGroupResponse+resetClusterParameterGroupResponse = ResetClusterParameterGroupResponse+ { _rcpgrParameterGroupName = Nothing+ , _rcpgrParameterGroupStatus = Nothing+ }++-- | The name of the cluster parameter group.+rcpgrParameterGroupName :: Lens' ResetClusterParameterGroupResponse (Maybe Text)+rcpgrParameterGroupName =+ lens _rcpgrParameterGroupName (\s a -> s { _rcpgrParameterGroupName = a })++-- | The status of the parameter group. For example, if you made a change to a+-- parameter group name-value pair, then the change could be pending a+-- reboot of an associated cluster.+rcpgrParameterGroupStatus :: Lens' ResetClusterParameterGroupResponse (Maybe Text)+rcpgrParameterGroupStatus =+ lens _rcpgrParameterGroupStatus+ (\s a -> s { _rcpgrParameterGroupStatus = a })++instance ToPath ResetClusterParameterGroup where+ toPath = const "/"++instance ToQuery ResetClusterParameterGroup where+ toQuery ResetClusterParameterGroup{..} = mconcat+ [ "ParameterGroupName" =? _rcpgParameterGroupName+ , "Parameters" =? _rcpgParameters+ , "ResetAllParameters" =? _rcpgResetAllParameters+ ]++instance ToHeaders ResetClusterParameterGroup++instance AWSRequest ResetClusterParameterGroup where+ type Sv ResetClusterParameterGroup = Redshift+ type Rs ResetClusterParameterGroup = ResetClusterParameterGroupResponse++ request = post "ResetClusterParameterGroup"+ response = xmlResponse++instance FromXML ResetClusterParameterGroupResponse where+ parseXML = withElement "ResetClusterParameterGroupResult" $ \x -> ResetClusterParameterGroupResponse+ <$> x .@? "ParameterGroupName"+ <*> x .@? "ParameterGroupStatus"
+ gen/Network/AWS/Redshift/RestoreFromClusterSnapshot.hs view
@@ -0,0 +1,348 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.RestoreFromClusterSnapshot+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Creates a new cluster from a snapshot. Amazon Redshift creates the+-- resulting cluster with the same configuration as the original cluster from+-- which the snapshot was created, except that the new cluster is created with+-- the default cluster security and parameter group. After Amazon Redshift+-- creates the cluster you can use the ModifyCluster API to associate a+-- different security group and different parameter group with the restored+-- cluster. If you restore a cluster into a VPC, you must provide a cluster+-- subnet group where you want the cluster restored. For more information+-- about working with snapshots, go to Amazon Redshift Snapshots in the Amazon+-- Redshift Cluster Management Guide.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_RestoreFromClusterSnapshot.html>+module Network.AWS.Redshift.RestoreFromClusterSnapshot+ (+ -- * Request+ RestoreFromClusterSnapshot+ -- ** Request constructor+ , restoreFromClusterSnapshot+ -- ** Request lenses+ , rfcsAllowVersionUpgrade+ , rfcsAutomatedSnapshotRetentionPeriod+ , rfcsAvailabilityZone+ , rfcsClusterIdentifier+ , rfcsClusterParameterGroupName+ , rfcsClusterSecurityGroups+ , rfcsClusterSubnetGroupName+ , rfcsElasticIp+ , rfcsHsmClientCertificateIdentifier+ , rfcsHsmConfigurationIdentifier+ , rfcsKmsKeyId+ , rfcsOwnerAccount+ , rfcsPort+ , rfcsPreferredMaintenanceWindow+ , rfcsPubliclyAccessible+ , rfcsSnapshotClusterIdentifier+ , rfcsSnapshotIdentifier+ , rfcsVpcSecurityGroupIds++ -- * Response+ , RestoreFromClusterSnapshotResponse+ -- ** Response constructor+ , restoreFromClusterSnapshotResponse+ -- ** Response lenses+ , rfcsrCluster+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data RestoreFromClusterSnapshot = RestoreFromClusterSnapshot+ { _rfcsAllowVersionUpgrade :: Maybe Bool+ , _rfcsAutomatedSnapshotRetentionPeriod :: Maybe Int+ , _rfcsAvailabilityZone :: Maybe Text+ , _rfcsClusterIdentifier :: Text+ , _rfcsClusterParameterGroupName :: Maybe Text+ , _rfcsClusterSecurityGroups :: List "ClusterSecurityGroupName" Text+ , _rfcsClusterSubnetGroupName :: Maybe Text+ , _rfcsElasticIp :: Maybe Text+ , _rfcsHsmClientCertificateIdentifier :: Maybe Text+ , _rfcsHsmConfigurationIdentifier :: Maybe Text+ , _rfcsKmsKeyId :: Maybe Text+ , _rfcsOwnerAccount :: Maybe Text+ , _rfcsPort :: Maybe Int+ , _rfcsPreferredMaintenanceWindow :: Maybe Text+ , _rfcsPubliclyAccessible :: Maybe Bool+ , _rfcsSnapshotClusterIdentifier :: Maybe Text+ , _rfcsSnapshotIdentifier :: Text+ , _rfcsVpcSecurityGroupIds :: List "VpcSecurityGroupId" Text+ } deriving (Eq, Ord, Show)++-- | 'RestoreFromClusterSnapshot' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rfcsAllowVersionUpgrade' @::@ 'Maybe' 'Bool'+--+-- * 'rfcsAutomatedSnapshotRetentionPeriod' @::@ 'Maybe' 'Int'+--+-- * 'rfcsAvailabilityZone' @::@ 'Maybe' 'Text'+--+-- * 'rfcsClusterIdentifier' @::@ 'Text'+--+-- * 'rfcsClusterParameterGroupName' @::@ 'Maybe' 'Text'+--+-- * 'rfcsClusterSecurityGroups' @::@ ['Text']+--+-- * 'rfcsClusterSubnetGroupName' @::@ 'Maybe' 'Text'+--+-- * 'rfcsElasticIp' @::@ 'Maybe' 'Text'+--+-- * 'rfcsHsmClientCertificateIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'rfcsHsmConfigurationIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'rfcsKmsKeyId' @::@ 'Maybe' 'Text'+--+-- * 'rfcsOwnerAccount' @::@ 'Maybe' 'Text'+--+-- * 'rfcsPort' @::@ 'Maybe' 'Int'+--+-- * 'rfcsPreferredMaintenanceWindow' @::@ 'Maybe' 'Text'+--+-- * 'rfcsPubliclyAccessible' @::@ 'Maybe' 'Bool'+--+-- * 'rfcsSnapshotClusterIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'rfcsSnapshotIdentifier' @::@ 'Text'+--+-- * 'rfcsVpcSecurityGroupIds' @::@ ['Text']+--+restoreFromClusterSnapshot :: Text -- ^ 'rfcsClusterIdentifier'+ -> Text -- ^ 'rfcsSnapshotIdentifier'+ -> RestoreFromClusterSnapshot+restoreFromClusterSnapshot p1 p2 = RestoreFromClusterSnapshot+ { _rfcsClusterIdentifier = p1+ , _rfcsSnapshotIdentifier = p2+ , _rfcsSnapshotClusterIdentifier = Nothing+ , _rfcsPort = Nothing+ , _rfcsAvailabilityZone = Nothing+ , _rfcsAllowVersionUpgrade = Nothing+ , _rfcsClusterSubnetGroupName = Nothing+ , _rfcsPubliclyAccessible = Nothing+ , _rfcsOwnerAccount = Nothing+ , _rfcsHsmClientCertificateIdentifier = Nothing+ , _rfcsHsmConfigurationIdentifier = Nothing+ , _rfcsElasticIp = Nothing+ , _rfcsClusterParameterGroupName = Nothing+ , _rfcsClusterSecurityGroups = mempty+ , _rfcsVpcSecurityGroupIds = mempty+ , _rfcsPreferredMaintenanceWindow = Nothing+ , _rfcsAutomatedSnapshotRetentionPeriod = Nothing+ , _rfcsKmsKeyId = Nothing+ }++-- | If true, major version upgrades can be applied during the maintenance+-- window to the Amazon Redshift engine that is running on the cluster.+-- Default: true.+rfcsAllowVersionUpgrade :: Lens' RestoreFromClusterSnapshot (Maybe Bool)+rfcsAllowVersionUpgrade =+ lens _rfcsAllowVersionUpgrade (\s a -> s { _rfcsAllowVersionUpgrade = a })++-- | The number of days that automated snapshots are retained. If the value is+-- 0, automated snapshots are disabled. Even if automated snapshots are+-- disabled, you can still create manual snapshots when you want with+-- CreateClusterSnapshot. Default: The value selected for the cluster from+-- which the snapshot was taken. Constraints: Must be a value from 0 to 35.+rfcsAutomatedSnapshotRetentionPeriod :: Lens' RestoreFromClusterSnapshot (Maybe Int)+rfcsAutomatedSnapshotRetentionPeriod =+ lens _rfcsAutomatedSnapshotRetentionPeriod+ (\s a -> s { _rfcsAutomatedSnapshotRetentionPeriod = a })++-- | The Amazon EC2 Availability Zone in which to restore the cluster.+-- Default: A random, system-chosen Availability Zone. Example: us-east-1a.+rfcsAvailabilityZone :: Lens' RestoreFromClusterSnapshot (Maybe Text)+rfcsAvailabilityZone =+ lens _rfcsAvailabilityZone (\s a -> s { _rfcsAvailabilityZone = a })++-- | The identifier of the cluster that will be created from restoring the+-- snapshot. Constraints: Must contain from 1 to 63 alphanumeric characters+-- or hyphens. Alphabetic characters must be lowercase. First character must+-- be a letter. Cannot end with a hyphen or contain two consecutive hyphens.+-- Must be unique for all clusters within an AWS account.+rfcsClusterIdentifier :: Lens' RestoreFromClusterSnapshot Text+rfcsClusterIdentifier =+ lens _rfcsClusterIdentifier (\s a -> s { _rfcsClusterIdentifier = a })++-- | The name of the parameter group to be associated with this cluster.+-- Default: The default Amazon Redshift cluster parameter group. For+-- information about the default parameter group, go to Working with Amazon+-- Redshift Parameter Groups. Constraints: Must be 1 to 255 alphanumeric+-- characters or hyphens. First character must be a letter. Cannot end with+-- a hyphen or contain two consecutive hyphens.+rfcsClusterParameterGroupName :: Lens' RestoreFromClusterSnapshot (Maybe Text)+rfcsClusterParameterGroupName =+ lens _rfcsClusterParameterGroupName+ (\s a -> s { _rfcsClusterParameterGroupName = a })++-- | A list of security groups to be associated with this cluster. Default:+-- The default cluster security group for Amazon Redshift. Cluster security+-- groups only apply to clusters outside of VPCs.+rfcsClusterSecurityGroups :: Lens' RestoreFromClusterSnapshot [Text]+rfcsClusterSecurityGroups =+ lens _rfcsClusterSecurityGroups+ (\s a -> s { _rfcsClusterSecurityGroups = a })+ . _List++-- | The name of the subnet group where you want to cluster restored. A+-- snapshot of cluster in VPC can be restored only in VPC. Therefore, you+-- must provide subnet group name where you want the cluster restored.+rfcsClusterSubnetGroupName :: Lens' RestoreFromClusterSnapshot (Maybe Text)+rfcsClusterSubnetGroupName =+ lens _rfcsClusterSubnetGroupName+ (\s a -> s { _rfcsClusterSubnetGroupName = a })++-- | The elastic IP (EIP) address for the cluster.+rfcsElasticIp :: Lens' RestoreFromClusterSnapshot (Maybe Text)+rfcsElasticIp = lens _rfcsElasticIp (\s a -> s { _rfcsElasticIp = a })++-- | Specifies the name of the HSM client certificate the Amazon Redshift+-- cluster uses to retrieve the data encryption keys stored in an HSM.+rfcsHsmClientCertificateIdentifier :: Lens' RestoreFromClusterSnapshot (Maybe Text)+rfcsHsmClientCertificateIdentifier =+ lens _rfcsHsmClientCertificateIdentifier+ (\s a -> s { _rfcsHsmClientCertificateIdentifier = a })++-- | Specifies the name of the HSM configuration that contains the information+-- the Amazon Redshift cluster can use to retrieve and store keys in an HSM.+rfcsHsmConfigurationIdentifier :: Lens' RestoreFromClusterSnapshot (Maybe Text)+rfcsHsmConfigurationIdentifier =+ lens _rfcsHsmConfigurationIdentifier+ (\s a -> s { _rfcsHsmConfigurationIdentifier = a })++-- | The AWS Key Management Service (KMS) key ID of the encryption key that+-- you want to use to encrypt data in the cluster that you restore from a+-- shared snapshot.+rfcsKmsKeyId :: Lens' RestoreFromClusterSnapshot (Maybe Text)+rfcsKmsKeyId = lens _rfcsKmsKeyId (\s a -> s { _rfcsKmsKeyId = a })++-- | The AWS customer account used to create or copy the snapshot. Required if+-- you are restoring a snapshot you do not own, optional if you own the+-- snapshot.+rfcsOwnerAccount :: Lens' RestoreFromClusterSnapshot (Maybe Text)+rfcsOwnerAccount = lens _rfcsOwnerAccount (\s a -> s { _rfcsOwnerAccount = a })++-- | The port number on which the cluster accepts connections. Default: The+-- same port as the original cluster. Constraints: Must be between 1115 and+-- 65535.+rfcsPort :: Lens' RestoreFromClusterSnapshot (Maybe Int)+rfcsPort = lens _rfcsPort (\s a -> s { _rfcsPort = a })++-- | The weekly time range (in UTC) during which automated cluster maintenance+-- can occur. Format: ddd:hh24:mi-ddd:hh24:mi Default: The value selected+-- for the cluster from which the snapshot was taken. For more information+-- about the time blocks for each region, see Maintenance Windows in Amazon+-- Redshift Cluster Management Guide. Valid Days: Mon | Tue | Wed | Thu |+-- Fri | Sat | Sun Constraints: Minimum 30-minute window.+rfcsPreferredMaintenanceWindow :: Lens' RestoreFromClusterSnapshot (Maybe Text)+rfcsPreferredMaintenanceWindow =+ lens _rfcsPreferredMaintenanceWindow+ (\s a -> s { _rfcsPreferredMaintenanceWindow = a })++-- | If true, the cluster can be accessed from a public network.+rfcsPubliclyAccessible :: Lens' RestoreFromClusterSnapshot (Maybe Bool)+rfcsPubliclyAccessible =+ lens _rfcsPubliclyAccessible (\s a -> s { _rfcsPubliclyAccessible = a })++-- | The name of the cluster the source snapshot was created from. This+-- parameter is required if your IAM user has a policy containing a snapshot+-- resource element that specifies anything other than * for the cluster+-- name.+rfcsSnapshotClusterIdentifier :: Lens' RestoreFromClusterSnapshot (Maybe Text)+rfcsSnapshotClusterIdentifier =+ lens _rfcsSnapshotClusterIdentifier+ (\s a -> s { _rfcsSnapshotClusterIdentifier = a })++-- | The name of the snapshot from which to create the new cluster. This+-- parameter isn't case sensitive. Example: my-snapshot-id.+rfcsSnapshotIdentifier :: Lens' RestoreFromClusterSnapshot Text+rfcsSnapshotIdentifier =+ lens _rfcsSnapshotIdentifier (\s a -> s { _rfcsSnapshotIdentifier = a })++-- | A list of Virtual Private Cloud (VPC) security groups to be associated+-- with the cluster. Default: The default VPC security group is associated+-- with the cluster. VPC security groups only apply to clusters in VPCs.+rfcsVpcSecurityGroupIds :: Lens' RestoreFromClusterSnapshot [Text]+rfcsVpcSecurityGroupIds =+ lens _rfcsVpcSecurityGroupIds (\s a -> s { _rfcsVpcSecurityGroupIds = a })+ . _List++newtype RestoreFromClusterSnapshotResponse = RestoreFromClusterSnapshotResponse+ { _rfcsrCluster :: Maybe Cluster+ } deriving (Eq, Show)++-- | 'RestoreFromClusterSnapshotResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rfcsrCluster' @::@ 'Maybe' 'Cluster'+--+restoreFromClusterSnapshotResponse :: RestoreFromClusterSnapshotResponse+restoreFromClusterSnapshotResponse = RestoreFromClusterSnapshotResponse+ { _rfcsrCluster = Nothing+ }++rfcsrCluster :: Lens' RestoreFromClusterSnapshotResponse (Maybe Cluster)+rfcsrCluster = lens _rfcsrCluster (\s a -> s { _rfcsrCluster = a })++instance ToPath RestoreFromClusterSnapshot where+ toPath = const "/"++instance ToQuery RestoreFromClusterSnapshot where+ toQuery RestoreFromClusterSnapshot{..} = mconcat+ [ "AllowVersionUpgrade" =? _rfcsAllowVersionUpgrade+ , "AutomatedSnapshotRetentionPeriod" =? _rfcsAutomatedSnapshotRetentionPeriod+ , "AvailabilityZone" =? _rfcsAvailabilityZone+ , "ClusterIdentifier" =? _rfcsClusterIdentifier+ , "ClusterParameterGroupName" =? _rfcsClusterParameterGroupName+ , "ClusterSecurityGroups" =? _rfcsClusterSecurityGroups+ , "ClusterSubnetGroupName" =? _rfcsClusterSubnetGroupName+ , "ElasticIp" =? _rfcsElasticIp+ , "HsmClientCertificateIdentifier" =? _rfcsHsmClientCertificateIdentifier+ , "HsmConfigurationIdentifier" =? _rfcsHsmConfigurationIdentifier+ , "KmsKeyId" =? _rfcsKmsKeyId+ , "OwnerAccount" =? _rfcsOwnerAccount+ , "Port" =? _rfcsPort+ , "PreferredMaintenanceWindow" =? _rfcsPreferredMaintenanceWindow+ , "PubliclyAccessible" =? _rfcsPubliclyAccessible+ , "SnapshotClusterIdentifier" =? _rfcsSnapshotClusterIdentifier+ , "SnapshotIdentifier" =? _rfcsSnapshotIdentifier+ , "VpcSecurityGroupIds" =? _rfcsVpcSecurityGroupIds+ ]++instance ToHeaders RestoreFromClusterSnapshot++instance AWSRequest RestoreFromClusterSnapshot where+ type Sv RestoreFromClusterSnapshot = Redshift+ type Rs RestoreFromClusterSnapshot = RestoreFromClusterSnapshotResponse++ request = post "RestoreFromClusterSnapshot"+ response = xmlResponse++instance FromXML RestoreFromClusterSnapshotResponse where+ parseXML = withElement "RestoreFromClusterSnapshotResult" $ \x -> RestoreFromClusterSnapshotResponse+ <$> x .@? "Cluster"
+ gen/Network/AWS/Redshift/RevokeClusterSecurityGroupIngress.hs view
@@ -0,0 +1,156 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.RevokeClusterSecurityGroupIngress+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Revokes an ingress rule in an Amazon Redshift security group for a+-- previously authorized IP range or Amazon EC2 security group. To add an+-- ingress rule, see AuthorizeClusterSecurityGroupIngress. For information+-- about managing security groups, go to Amazon Redshift Cluster Security+-- Groups in the Amazon Redshift Cluster Management Guide.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_RevokeClusterSecurityGroupIngress.html>+module Network.AWS.Redshift.RevokeClusterSecurityGroupIngress+ (+ -- * Request+ RevokeClusterSecurityGroupIngress+ -- ** Request constructor+ , revokeClusterSecurityGroupIngress+ -- ** Request lenses+ , rcsgiCIDRIP+ , rcsgiClusterSecurityGroupName+ , rcsgiEC2SecurityGroupName+ , rcsgiEC2SecurityGroupOwnerId++ -- * Response+ , RevokeClusterSecurityGroupIngressResponse+ -- ** Response constructor+ , revokeClusterSecurityGroupIngressResponse+ -- ** Response lenses+ , rcsgirClusterSecurityGroup+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data RevokeClusterSecurityGroupIngress = RevokeClusterSecurityGroupIngress+ { _rcsgiCIDRIP :: Maybe Text+ , _rcsgiClusterSecurityGroupName :: Text+ , _rcsgiEC2SecurityGroupName :: Maybe Text+ , _rcsgiEC2SecurityGroupOwnerId :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'RevokeClusterSecurityGroupIngress' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rcsgiCIDRIP' @::@ 'Maybe' 'Text'+--+-- * 'rcsgiClusterSecurityGroupName' @::@ 'Text'+--+-- * 'rcsgiEC2SecurityGroupName' @::@ 'Maybe' 'Text'+--+-- * 'rcsgiEC2SecurityGroupOwnerId' @::@ 'Maybe' 'Text'+--+revokeClusterSecurityGroupIngress :: Text -- ^ 'rcsgiClusterSecurityGroupName'+ -> RevokeClusterSecurityGroupIngress+revokeClusterSecurityGroupIngress p1 = RevokeClusterSecurityGroupIngress+ { _rcsgiClusterSecurityGroupName = p1+ , _rcsgiCIDRIP = Nothing+ , _rcsgiEC2SecurityGroupName = Nothing+ , _rcsgiEC2SecurityGroupOwnerId = Nothing+ }++-- | The IP range for which to revoke access. This range must be a valid+-- Classless Inter-Domain Routing (CIDR) block of IP addresses. If CIDRIP is+-- specified, EC2SecurityGroupName and EC2SecurityGroupOwnerId cannot be+-- provided.+rcsgiCIDRIP :: Lens' RevokeClusterSecurityGroupIngress (Maybe Text)+rcsgiCIDRIP = lens _rcsgiCIDRIP (\s a -> s { _rcsgiCIDRIP = a })++-- | The name of the security Group from which to revoke the ingress rule.+rcsgiClusterSecurityGroupName :: Lens' RevokeClusterSecurityGroupIngress Text+rcsgiClusterSecurityGroupName =+ lens _rcsgiClusterSecurityGroupName+ (\s a -> s { _rcsgiClusterSecurityGroupName = a })++-- | The name of the EC2 Security Group whose access is to be revoked. If+-- EC2SecurityGroupName is specified, EC2SecurityGroupOwnerId must also be+-- provided and CIDRIP cannot be provided.+rcsgiEC2SecurityGroupName :: Lens' RevokeClusterSecurityGroupIngress (Maybe Text)+rcsgiEC2SecurityGroupName =+ lens _rcsgiEC2SecurityGroupName+ (\s a -> s { _rcsgiEC2SecurityGroupName = a })++-- | The AWS account number of the owner of the security group specified in+-- the EC2SecurityGroupName parameter. The AWS access key ID is not an+-- acceptable value. If EC2SecurityGroupOwnerId is specified,+-- EC2SecurityGroupName must also be provided. and CIDRIP cannot be+-- provided. Example: 111122223333.+rcsgiEC2SecurityGroupOwnerId :: Lens' RevokeClusterSecurityGroupIngress (Maybe Text)+rcsgiEC2SecurityGroupOwnerId =+ lens _rcsgiEC2SecurityGroupOwnerId+ (\s a -> s { _rcsgiEC2SecurityGroupOwnerId = a })++newtype RevokeClusterSecurityGroupIngressResponse = RevokeClusterSecurityGroupIngressResponse+ { _rcsgirClusterSecurityGroup :: Maybe ClusterSecurityGroup+ } deriving (Eq, Show)++-- | 'RevokeClusterSecurityGroupIngressResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rcsgirClusterSecurityGroup' @::@ 'Maybe' 'ClusterSecurityGroup'+--+revokeClusterSecurityGroupIngressResponse :: RevokeClusterSecurityGroupIngressResponse+revokeClusterSecurityGroupIngressResponse = RevokeClusterSecurityGroupIngressResponse+ { _rcsgirClusterSecurityGroup = Nothing+ }++rcsgirClusterSecurityGroup :: Lens' RevokeClusterSecurityGroupIngressResponse (Maybe ClusterSecurityGroup)+rcsgirClusterSecurityGroup =+ lens _rcsgirClusterSecurityGroup+ (\s a -> s { _rcsgirClusterSecurityGroup = a })++instance ToPath RevokeClusterSecurityGroupIngress where+ toPath = const "/"++instance ToQuery RevokeClusterSecurityGroupIngress where+ toQuery RevokeClusterSecurityGroupIngress{..} = mconcat+ [ "CIDRIP" =? _rcsgiCIDRIP+ , "ClusterSecurityGroupName" =? _rcsgiClusterSecurityGroupName+ , "EC2SecurityGroupName" =? _rcsgiEC2SecurityGroupName+ , "EC2SecurityGroupOwnerId" =? _rcsgiEC2SecurityGroupOwnerId+ ]++instance ToHeaders RevokeClusterSecurityGroupIngress++instance AWSRequest RevokeClusterSecurityGroupIngress where+ type Sv RevokeClusterSecurityGroupIngress = Redshift+ type Rs RevokeClusterSecurityGroupIngress = RevokeClusterSecurityGroupIngressResponse++ request = post "RevokeClusterSecurityGroupIngress"+ response = xmlResponse++instance FromXML RevokeClusterSecurityGroupIngressResponse where+ parseXML = withElement "RevokeClusterSecurityGroupIngressResult" $ \x -> RevokeClusterSecurityGroupIngressResponse+ <$> x .@? "ClusterSecurityGroup"
+ gen/Network/AWS/Redshift/RevokeSnapshotAccess.hs view
@@ -0,0 +1,139 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.RevokeSnapshotAccess+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Removes the ability of the specified AWS customer account to restore the+-- specified snapshot. If the account is currently restoring the snapshot, the+-- restore will run to completion. For more information about working with+-- snapshots, go to Amazon Redshift Snapshots in the Amazon Redshift Cluster+-- Management Guide.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_RevokeSnapshotAccess.html>+module Network.AWS.Redshift.RevokeSnapshotAccess+ (+ -- * Request+ RevokeSnapshotAccess+ -- ** Request constructor+ , revokeSnapshotAccess+ -- ** Request lenses+ , rsaAccountWithRestoreAccess+ , rsaSnapshotClusterIdentifier+ , rsaSnapshotIdentifier++ -- * Response+ , RevokeSnapshotAccessResponse+ -- ** Response constructor+ , revokeSnapshotAccessResponse+ -- ** Response lenses+ , rsarSnapshot+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++data RevokeSnapshotAccess = RevokeSnapshotAccess+ { _rsaAccountWithRestoreAccess :: Text+ , _rsaSnapshotClusterIdentifier :: Maybe Text+ , _rsaSnapshotIdentifier :: Text+ } deriving (Eq, Ord, Show)++-- | 'RevokeSnapshotAccess' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rsaAccountWithRestoreAccess' @::@ 'Text'+--+-- * 'rsaSnapshotClusterIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'rsaSnapshotIdentifier' @::@ 'Text'+--+revokeSnapshotAccess :: Text -- ^ 'rsaSnapshotIdentifier'+ -> Text -- ^ 'rsaAccountWithRestoreAccess'+ -> RevokeSnapshotAccess+revokeSnapshotAccess p1 p2 = RevokeSnapshotAccess+ { _rsaSnapshotIdentifier = p1+ , _rsaAccountWithRestoreAccess = p2+ , _rsaSnapshotClusterIdentifier = Nothing+ }++-- | The identifier of the AWS customer account that can no longer restore the+-- specified snapshot.+rsaAccountWithRestoreAccess :: Lens' RevokeSnapshotAccess Text+rsaAccountWithRestoreAccess =+ lens _rsaAccountWithRestoreAccess+ (\s a -> s { _rsaAccountWithRestoreAccess = a })++-- | The identifier of the cluster the snapshot was created from. This+-- parameter is required if your IAM user has a policy containing a snapshot+-- resource element that specifies anything other than * for the cluster+-- name.+rsaSnapshotClusterIdentifier :: Lens' RevokeSnapshotAccess (Maybe Text)+rsaSnapshotClusterIdentifier =+ lens _rsaSnapshotClusterIdentifier+ (\s a -> s { _rsaSnapshotClusterIdentifier = a })++-- | The identifier of the snapshot that the account can no longer access.+rsaSnapshotIdentifier :: Lens' RevokeSnapshotAccess Text+rsaSnapshotIdentifier =+ lens _rsaSnapshotIdentifier (\s a -> s { _rsaSnapshotIdentifier = a })++newtype RevokeSnapshotAccessResponse = RevokeSnapshotAccessResponse+ { _rsarSnapshot :: Maybe Snapshot+ } deriving (Eq, Show)++-- | 'RevokeSnapshotAccessResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rsarSnapshot' @::@ 'Maybe' 'Snapshot'+--+revokeSnapshotAccessResponse :: RevokeSnapshotAccessResponse+revokeSnapshotAccessResponse = RevokeSnapshotAccessResponse+ { _rsarSnapshot = Nothing+ }++rsarSnapshot :: Lens' RevokeSnapshotAccessResponse (Maybe Snapshot)+rsarSnapshot = lens _rsarSnapshot (\s a -> s { _rsarSnapshot = a })++instance ToPath RevokeSnapshotAccess where+ toPath = const "/"++instance ToQuery RevokeSnapshotAccess where+ toQuery RevokeSnapshotAccess{..} = mconcat+ [ "AccountWithRestoreAccess" =? _rsaAccountWithRestoreAccess+ , "SnapshotClusterIdentifier" =? _rsaSnapshotClusterIdentifier+ , "SnapshotIdentifier" =? _rsaSnapshotIdentifier+ ]++instance ToHeaders RevokeSnapshotAccess++instance AWSRequest RevokeSnapshotAccess where+ type Sv RevokeSnapshotAccess = Redshift+ type Rs RevokeSnapshotAccess = RevokeSnapshotAccessResponse++ request = post "RevokeSnapshotAccess"+ response = xmlResponse++instance FromXML RevokeSnapshotAccessResponse where+ parseXML = withElement "RevokeSnapshotAccessResult" $ \x -> RevokeSnapshotAccessResponse+ <$> x .@? "Snapshot"
+ gen/Network/AWS/Redshift/RotateEncryptionKey.hs view
@@ -0,0 +1,108 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.RotateEncryptionKey+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++-- | Rotates the encryption keys for a cluster.+--+-- <http://docs.aws.amazon.com/redshift/latest/APIReference/API_RotateEncryptionKey.html>+module Network.AWS.Redshift.RotateEncryptionKey+ (+ -- * Request+ RotateEncryptionKey+ -- ** Request constructor+ , rotateEncryptionKey+ -- ** Request lenses+ , rekClusterIdentifier++ -- * Response+ , RotateEncryptionKeyResponse+ -- ** Response constructor+ , rotateEncryptionKeyResponse+ -- ** Response lenses+ , rekrCluster+ ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.Redshift.Types+import qualified GHC.Exts++newtype RotateEncryptionKey = RotateEncryptionKey+ { _rekClusterIdentifier :: Text+ } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'RotateEncryptionKey' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rekClusterIdentifier' @::@ 'Text'+--+rotateEncryptionKey :: Text -- ^ 'rekClusterIdentifier'+ -> RotateEncryptionKey+rotateEncryptionKey p1 = RotateEncryptionKey+ { _rekClusterIdentifier = p1+ }++-- | The unique identifier of the cluster that you want to rotate the+-- encryption keys for. Constraints: Must be the name of valid cluster that+-- has encryption enabled.+rekClusterIdentifier :: Lens' RotateEncryptionKey Text+rekClusterIdentifier =+ lens _rekClusterIdentifier (\s a -> s { _rekClusterIdentifier = a })++newtype RotateEncryptionKeyResponse = RotateEncryptionKeyResponse+ { _rekrCluster :: Maybe Cluster+ } deriving (Eq, Show)++-- | 'RotateEncryptionKeyResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rekrCluster' @::@ 'Maybe' 'Cluster'+--+rotateEncryptionKeyResponse :: RotateEncryptionKeyResponse+rotateEncryptionKeyResponse = RotateEncryptionKeyResponse+ { _rekrCluster = Nothing+ }++rekrCluster :: Lens' RotateEncryptionKeyResponse (Maybe Cluster)+rekrCluster = lens _rekrCluster (\s a -> s { _rekrCluster = a })++instance ToPath RotateEncryptionKey where+ toPath = const "/"++instance ToQuery RotateEncryptionKey where+ toQuery RotateEncryptionKey{..} = mconcat+ [ "ClusterIdentifier" =? _rekClusterIdentifier+ ]++instance ToHeaders RotateEncryptionKey++instance AWSRequest RotateEncryptionKey where+ type Sv RotateEncryptionKey = Redshift+ type Rs RotateEncryptionKey = RotateEncryptionKeyResponse++ request = post "RotateEncryptionKey"+ response = xmlResponse++instance FromXML RotateEncryptionKeyResponse where+ parseXML = withElement "RotateEncryptionKeyResult" $ \x -> RotateEncryptionKeyResponse+ <$> x .@? "Cluster"
+ gen/Network/AWS/Redshift/Types.hs view
@@ -0,0 +1,3347 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE LambdaCase #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeFamilies #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module : Network.AWS.Redshift.Types+-- Copyright : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>+-- License : This Source Code Form is subject to the terms of+-- the Mozilla Public License, v. 2.0.+-- A copy of the MPL can be found in the LICENSE file or+-- you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability : experimental+-- Portability : non-portable (GHC extensions)++module Network.AWS.Redshift.Types+ (+ -- * Service+ Redshift+ -- ** Error+ , RESTError+ -- ** XML+ , ns++ -- * Snapshot+ , Snapshot+ , snapshot+ , sAccountsWithRestoreAccess+ , sActualIncrementalBackupSizeInMegaBytes+ , sAvailabilityZone+ , sBackupProgressInMegaBytes+ , sClusterCreateTime+ , sClusterIdentifier+ , sClusterVersion+ , sCurrentBackupRateInMegaBytesPerSecond+ , sDBName+ , sElapsedTimeInSeconds+ , sEncrypted+ , sEncryptedWithHSM+ , sEstimatedSecondsToCompletion+ , sKmsKeyId+ , sMasterUsername+ , sNodeType+ , sNumberOfNodes+ , sOwnerAccount+ , sPort+ , sSnapshotCreateTime+ , sSnapshotIdentifier+ , sSnapshotType+ , sSourceRegion+ , sStatus+ , sTags+ , sTotalBackupSizeInMegaBytes+ , sVpcId++ -- * ClusterParameterGroup+ , ClusterParameterGroup+ , clusterParameterGroup+ , cpgDescription+ , cpgParameterGroupFamily+ , cpgParameterGroupName+ , cpgTags++ -- * RestoreStatus+ , RestoreStatus+ , restoreStatus+ , rsCurrentRestoreRateInMegaBytesPerSecond+ , rsElapsedTimeInSeconds+ , rsEstimatedTimeToCompletionInSeconds+ , rsProgressInMegaBytes+ , rsSnapshotSizeInMegaBytes+ , rsStatus++ -- * Event+ , Event+ , event+ , eDate+ , eEventCategories+ , eEventId+ , eMessage+ , eSeverity+ , eSourceIdentifier+ , eSourceType++ -- * ClusterSnapshotCopyStatus+ , ClusterSnapshotCopyStatus+ , clusterSnapshotCopyStatus+ , cscsDestinationRegion+ , cscsRetentionPeriod++ -- * Tag+ , Tag+ , tag+ , tagKey+ , tagValue++ -- * HsmClientCertificate+ , HsmClientCertificate+ , hsmClientCertificate+ , hccHsmClientCertificateIdentifier+ , hccHsmClientCertificatePublicKey+ , hccTags++ -- * Cluster+ , Cluster+ , cluster+ , cAllowVersionUpgrade+ , cAutomatedSnapshotRetentionPeriod+ , cAvailabilityZone+ , cClusterCreateTime+ , cClusterIdentifier+ , cClusterNodes+ , cClusterParameterGroups+ , cClusterPublicKey+ , cClusterRevisionNumber+ , cClusterSecurityGroups+ , cClusterSnapshotCopyStatus+ , cClusterStatus+ , cClusterSubnetGroupName+ , cClusterVersion+ , cDBName+ , cElasticIpStatus+ , cEncrypted+ , cEndpoint+ , cHsmStatus+ , cKmsKeyId+ , cMasterUsername+ , cModifyStatus+ , cNodeType+ , cNumberOfNodes+ , cPendingModifiedValues+ , cPreferredMaintenanceWindow+ , cPubliclyAccessible+ , cRestoreStatus+ , cTags+ , cVpcId+ , cVpcSecurityGroups++ -- * ClusterNode+ , ClusterNode+ , clusterNode+ , cnNodeRole+ , cnPrivateIPAddress+ , cnPublicIPAddress++ -- * EC2SecurityGroup+ , EC2SecurityGroup+ , ec2SecurityGroup+ , ecsgEC2SecurityGroupName+ , ecsgEC2SecurityGroupOwnerId+ , ecsgStatus+ , ecsgTags++ -- * OrderableClusterOption+ , OrderableClusterOption+ , orderableClusterOption+ , ocoAvailabilityZones+ , ocoClusterType+ , ocoClusterVersion+ , ocoNodeType++ -- * SourceType+ , SourceType (..)++ -- * ClusterParameterGroupStatus+ , ClusterParameterGroupStatus+ , clusterParameterGroupStatus+ , cpgsParameterApplyStatus+ , cpgsParameterGroupName++ -- * Subnet+ , Subnet+ , subnet+ , sSubnetAvailabilityZone+ , sSubnetIdentifier+ , sSubnetStatus++ -- * ClusterSecurityGroup+ , ClusterSecurityGroup+ , clusterSecurityGroup+ , csgClusterSecurityGroupName+ , csgDescription+ , csgEC2SecurityGroups+ , csgIPRanges+ , csgTags++ -- * DefaultClusterParameters+ , DefaultClusterParameters+ , defaultClusterParameters+ , dcpMarker+ , dcpParameterGroupFamily+ , dcpParameters++ -- * ClusterSubnetGroup+ , ClusterSubnetGroup+ , clusterSubnetGroup+ , csg1ClusterSubnetGroupName+ , csg1Description+ , csg1SubnetGroupStatus+ , csg1Subnets+ , csg1Tags+ , csg1VpcId++ -- * EventInfoMap+ , EventInfoMap+ , eventInfoMap+ , eimEventCategories+ , eimEventDescription+ , eimEventId+ , eimSeverity++ -- * ClusterSecurityGroupMembership+ , ClusterSecurityGroupMembership+ , clusterSecurityGroupMembership+ , csgmClusterSecurityGroupName+ , csgmStatus++ -- * ReservedNodeOffering+ , ReservedNodeOffering+ , reservedNodeOffering+ , rnoCurrencyCode+ , rnoDuration+ , rnoFixedPrice+ , rnoNodeType+ , rnoOfferingType+ , rnoRecurringCharges+ , rnoReservedNodeOfferingId+ , rnoUsagePrice++ -- * ReservedNode+ , ReservedNode+ , reservedNode+ , rnCurrencyCode+ , rnDuration+ , rnFixedPrice+ , rnNodeCount+ , rnNodeType+ , rnOfferingType+ , rnRecurringCharges+ , rnReservedNodeId+ , rnReservedNodeOfferingId+ , rnStartTime+ , rnState+ , rnUsagePrice++ -- * LoggingStatus+ , LoggingStatus+ , loggingStatus+ , lsBucketName+ , lsLastFailureMessage+ , lsLastFailureTime+ , lsLastSuccessfulDeliveryTime+ , lsLoggingEnabled+ , lsS3KeyPrefix++ -- * AccountWithRestoreAccess+ , AccountWithRestoreAccess+ , accountWithRestoreAccess+ , awraAccountId++ -- * AvailabilityZone+ , AvailabilityZone+ , availabilityZone+ , azName++ -- * EventSubscription+ , EventSubscription+ , eventSubscription+ , esCustSubscriptionId+ , esCustomerAwsId+ , esEnabled+ , esEventCategoriesList+ , esSeverity+ , esSnsTopicArn+ , esSourceIdsList+ , esSourceType+ , esStatus+ , esSubscriptionCreationTime+ , esTags++ -- * HsmStatus+ , HsmStatus+ , hsmStatus+ , hsHsmClientCertificateIdentifier+ , hsHsmConfigurationIdentifier+ , hsStatus++ -- * ClusterParameterGroupNameMessage+ , ClusterParameterGroupNameMessage+ , clusterParameterGroupNameMessage+ , cpgnmParameterGroupName+ , cpgnmParameterGroupStatus++ -- * ElasticIpStatus+ , ElasticIpStatus+ , elasticIpStatus+ , eisElasticIp+ , eisStatus++ -- * ClusterVersion+ , ClusterVersion+ , clusterVersion+ , cvClusterParameterGroupFamily+ , cvClusterVersion+ , cvDescription++ -- * RecurringCharge+ , RecurringCharge+ , recurringCharge+ , rcRecurringChargeAmount+ , rcRecurringChargeFrequency++ -- * Endpoint+ , Endpoint+ , endpoint+ , eAddress+ , ePort++ -- * IPRange+ , IPRange+ , iprange+ , iprCIDRIP+ , iprStatus+ , iprTags++ -- * TaggedResource+ , TaggedResource+ , taggedResource+ , trResourceName+ , trResourceType+ , trTag++ -- * EventCategoriesMap+ , EventCategoriesMap+ , eventCategoriesMap+ , ecmEvents+ , ecmSourceType++ -- * HsmConfiguration+ , HsmConfiguration+ , hsmConfiguration+ , hcDescription+ , hcHsmConfigurationIdentifier+ , hcHsmIpAddress+ , hcHsmPartitionName+ , hcTags++ -- * PendingModifiedValues+ , PendingModifiedValues+ , pendingModifiedValues+ , pmvAutomatedSnapshotRetentionPeriod+ , pmvClusterIdentifier+ , pmvClusterType+ , pmvClusterVersion+ , pmvMasterUserPassword+ , pmvNodeType+ , pmvNumberOfNodes++ -- * VpcSecurityGroupMembership+ , VpcSecurityGroupMembership+ , vpcSecurityGroupMembership+ , vsgmStatus+ , vsgmVpcSecurityGroupId++ -- * Parameter+ , Parameter+ , parameter+ , pAllowedValues+ , pDataType+ , pDescription+ , pIsModifiable+ , pMinimumEngineVersion+ , pParameterName+ , pParameterValue+ , pSource+ ) where++import Network.AWS.Error+import Network.AWS.Prelude+import Network.AWS.Signing.V4+import qualified GHC.Exts++-- | Version @2012-12-01@ of the Amazon Redshift service.+data Redshift++instance AWSService Redshift where+ type Sg Redshift = V4+ type Er Redshift = RESTError++ service = Service+ { _svcEndpoint = regional+ , _svcAbbrev = "Redshift"+ , _svcPrefix = "redshift"+ , _svcVersion = "2012-12-01"+ , _svcTargetPrefix = Nothing+ , _svcJSONVersion = Nothing+ }++ handle = restError statusSuccess++ns :: Text+ns = "http://redshift.amazonaws.com/doc/2012-12-01/"++data Snapshot = Snapshot+ { _sAccountsWithRestoreAccess :: List "AccountWithRestoreAccess" AccountWithRestoreAccess+ , _sActualIncrementalBackupSizeInMegaBytes :: Maybe Double+ , _sAvailabilityZone :: Maybe Text+ , _sBackupProgressInMegaBytes :: Maybe Double+ , _sClusterCreateTime :: Maybe RFC822+ , _sClusterIdentifier :: Maybe Text+ , _sClusterVersion :: Maybe Text+ , _sCurrentBackupRateInMegaBytesPerSecond :: Maybe Double+ , _sDBName :: Maybe Text+ , _sElapsedTimeInSeconds :: Maybe Integer+ , _sEncrypted :: Maybe Bool+ , _sEncryptedWithHSM :: Maybe Bool+ , _sEstimatedSecondsToCompletion :: Maybe Integer+ , _sKmsKeyId :: Maybe Text+ , _sMasterUsername :: Maybe Text+ , _sNodeType :: Maybe Text+ , _sNumberOfNodes :: Maybe Int+ , _sOwnerAccount :: Maybe Text+ , _sPort :: Maybe Int+ , _sSnapshotCreateTime :: Maybe RFC822+ , _sSnapshotIdentifier :: Maybe Text+ , _sSnapshotType :: Maybe Text+ , _sSourceRegion :: Maybe Text+ , _sStatus :: Maybe Text+ , _sTags :: List "Tag" Tag+ , _sTotalBackupSizeInMegaBytes :: Maybe Double+ , _sVpcId :: Maybe Text+ } deriving (Eq, Show)++-- | 'Snapshot' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'sAccountsWithRestoreAccess' @::@ ['AccountWithRestoreAccess']+--+-- * 'sActualIncrementalBackupSizeInMegaBytes' @::@ 'Maybe' 'Double'+--+-- * 'sAvailabilityZone' @::@ 'Maybe' 'Text'+--+-- * 'sBackupProgressInMegaBytes' @::@ 'Maybe' 'Double'+--+-- * 'sClusterCreateTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'sClusterIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'sClusterVersion' @::@ 'Maybe' 'Text'+--+-- * 'sCurrentBackupRateInMegaBytesPerSecond' @::@ 'Maybe' 'Double'+--+-- * 'sDBName' @::@ 'Maybe' 'Text'+--+-- * 'sElapsedTimeInSeconds' @::@ 'Maybe' 'Integer'+--+-- * 'sEncrypted' @::@ 'Maybe' 'Bool'+--+-- * 'sEncryptedWithHSM' @::@ 'Maybe' 'Bool'+--+-- * 'sEstimatedSecondsToCompletion' @::@ 'Maybe' 'Integer'+--+-- * 'sKmsKeyId' @::@ 'Maybe' 'Text'+--+-- * 'sMasterUsername' @::@ 'Maybe' 'Text'+--+-- * 'sNodeType' @::@ 'Maybe' 'Text'+--+-- * 'sNumberOfNodes' @::@ 'Maybe' 'Int'+--+-- * 'sOwnerAccount' @::@ 'Maybe' 'Text'+--+-- * 'sPort' @::@ 'Maybe' 'Int'+--+-- * 'sSnapshotCreateTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'sSnapshotIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'sSnapshotType' @::@ 'Maybe' 'Text'+--+-- * 'sSourceRegion' @::@ 'Maybe' 'Text'+--+-- * 'sStatus' @::@ 'Maybe' 'Text'+--+-- * 'sTags' @::@ ['Tag']+--+-- * 'sTotalBackupSizeInMegaBytes' @::@ 'Maybe' 'Double'+--+-- * 'sVpcId' @::@ 'Maybe' 'Text'+--+snapshot :: Snapshot+snapshot = Snapshot+ { _sSnapshotIdentifier = Nothing+ , _sClusterIdentifier = Nothing+ , _sSnapshotCreateTime = Nothing+ , _sStatus = Nothing+ , _sPort = Nothing+ , _sAvailabilityZone = Nothing+ , _sClusterCreateTime = Nothing+ , _sMasterUsername = Nothing+ , _sClusterVersion = Nothing+ , _sSnapshotType = Nothing+ , _sNodeType = Nothing+ , _sNumberOfNodes = Nothing+ , _sDBName = Nothing+ , _sVpcId = Nothing+ , _sEncrypted = Nothing+ , _sKmsKeyId = Nothing+ , _sEncryptedWithHSM = Nothing+ , _sAccountsWithRestoreAccess = mempty+ , _sOwnerAccount = Nothing+ , _sTotalBackupSizeInMegaBytes = Nothing+ , _sActualIncrementalBackupSizeInMegaBytes = Nothing+ , _sBackupProgressInMegaBytes = Nothing+ , _sCurrentBackupRateInMegaBytesPerSecond = Nothing+ , _sEstimatedSecondsToCompletion = Nothing+ , _sElapsedTimeInSeconds = Nothing+ , _sSourceRegion = Nothing+ , _sTags = mempty+ }++-- | A list of the AWS customer accounts authorized to restore the snapshot.+-- Returns null if no accounts are authorized. Visible only to the snapshot+-- owner.+sAccountsWithRestoreAccess :: Lens' Snapshot [AccountWithRestoreAccess]+sAccountsWithRestoreAccess =+ lens _sAccountsWithRestoreAccess+ (\s a -> s { _sAccountsWithRestoreAccess = a })+ . _List++-- | The size of the incremental backup.+sActualIncrementalBackupSizeInMegaBytes :: Lens' Snapshot (Maybe Double)+sActualIncrementalBackupSizeInMegaBytes =+ lens _sActualIncrementalBackupSizeInMegaBytes+ (\s a -> s { _sActualIncrementalBackupSizeInMegaBytes = a })++-- | The Availability Zone in which the cluster was created.+sAvailabilityZone :: Lens' Snapshot (Maybe Text)+sAvailabilityZone =+ lens _sAvailabilityZone (\s a -> s { _sAvailabilityZone = a })++-- | The number of megabytes that have been transferred to the snapshot+-- backup.+sBackupProgressInMegaBytes :: Lens' Snapshot (Maybe Double)+sBackupProgressInMegaBytes =+ lens _sBackupProgressInMegaBytes+ (\s a -> s { _sBackupProgressInMegaBytes = a })++-- | The time (UTC) when the cluster was originally created.+sClusterCreateTime :: Lens' Snapshot (Maybe UTCTime)+sClusterCreateTime =+ lens _sClusterCreateTime (\s a -> s { _sClusterCreateTime = a })+ . mapping _Time++-- | The identifier of the cluster for which the snapshot was taken.+sClusterIdentifier :: Lens' Snapshot (Maybe Text)+sClusterIdentifier =+ lens _sClusterIdentifier (\s a -> s { _sClusterIdentifier = a })++-- | The version ID of the Amazon Redshift engine that is running on the+-- cluster.+sClusterVersion :: Lens' Snapshot (Maybe Text)+sClusterVersion = lens _sClusterVersion (\s a -> s { _sClusterVersion = a })++-- | The number of megabytes per second being transferred to the snapshot+-- backup. Returns 0 for a completed backup.+sCurrentBackupRateInMegaBytesPerSecond :: Lens' Snapshot (Maybe Double)+sCurrentBackupRateInMegaBytesPerSecond =+ lens _sCurrentBackupRateInMegaBytesPerSecond+ (\s a -> s { _sCurrentBackupRateInMegaBytesPerSecond = a })++-- | The name of the database that was created when the cluster was created.+sDBName :: Lens' Snapshot (Maybe Text)+sDBName = lens _sDBName (\s a -> s { _sDBName = a })++-- | The amount of time an in-progress snapshot backup has been running, or+-- the amount of time it took a completed backup to finish.+sElapsedTimeInSeconds :: Lens' Snapshot (Maybe Integer)+sElapsedTimeInSeconds =+ lens _sElapsedTimeInSeconds (\s a -> s { _sElapsedTimeInSeconds = a })++-- | If true, the data in the snapshot is encrypted at rest.+sEncrypted :: Lens' Snapshot (Maybe Bool)+sEncrypted = lens _sEncrypted (\s a -> s { _sEncrypted = a })++-- | A boolean that indicates whether the snapshot data is encrypted using the+-- HSM keys of the source cluster. true indicates that the data is encrypted+-- using HSM keys.+sEncryptedWithHSM :: Lens' Snapshot (Maybe Bool)+sEncryptedWithHSM =+ lens _sEncryptedWithHSM (\s a -> s { _sEncryptedWithHSM = a })++-- | The estimate of the time remaining before the snapshot backup will+-- complete. Returns 0 for a completed backup.+sEstimatedSecondsToCompletion :: Lens' Snapshot (Maybe Integer)+sEstimatedSecondsToCompletion =+ lens _sEstimatedSecondsToCompletion+ (\s a -> s { _sEstimatedSecondsToCompletion = a })++-- | The AWS Key Management Service (KMS) key ID of the encryption key that+-- was used to encrypt data in the cluster from which the snapshot was+-- taken.+sKmsKeyId :: Lens' Snapshot (Maybe Text)+sKmsKeyId = lens _sKmsKeyId (\s a -> s { _sKmsKeyId = a })++-- | The master user name for the cluster.+sMasterUsername :: Lens' Snapshot (Maybe Text)+sMasterUsername = lens _sMasterUsername (\s a -> s { _sMasterUsername = a })++-- | The node type of the nodes in the cluster.+sNodeType :: Lens' Snapshot (Maybe Text)+sNodeType = lens _sNodeType (\s a -> s { _sNodeType = a })++-- | The number of nodes in the cluster.+sNumberOfNodes :: Lens' Snapshot (Maybe Int)+sNumberOfNodes = lens _sNumberOfNodes (\s a -> s { _sNumberOfNodes = a })++-- | For manual snapshots, the AWS customer account used to create or copy the+-- snapshot. For automatic snapshots, the owner of the cluster. The owner+-- can perform all snapshot actions, such as sharing a manual snapshot.+sOwnerAccount :: Lens' Snapshot (Maybe Text)+sOwnerAccount = lens _sOwnerAccount (\s a -> s { _sOwnerAccount = a })++-- | The port that the cluster is listening on.+sPort :: Lens' Snapshot (Maybe Int)+sPort = lens _sPort (\s a -> s { _sPort = a })++-- | The time (UTC) when Amazon Redshift began the snapshot. A snapshot+-- contains a copy of the cluster data as of this exact time.+sSnapshotCreateTime :: Lens' Snapshot (Maybe UTCTime)+sSnapshotCreateTime =+ lens _sSnapshotCreateTime (\s a -> s { _sSnapshotCreateTime = a })+ . mapping _Time++-- | The snapshot identifier that is provided in the request.+sSnapshotIdentifier :: Lens' Snapshot (Maybe Text)+sSnapshotIdentifier =+ lens _sSnapshotIdentifier (\s a -> s { _sSnapshotIdentifier = a })++-- | The snapshot type. Snapshots created using CreateClusterSnapshot and+-- CopyClusterSnapshot will be of type "manual".+sSnapshotType :: Lens' Snapshot (Maybe Text)+sSnapshotType = lens _sSnapshotType (\s a -> s { _sSnapshotType = a })++-- | The source region from which the snapshot was copied.+sSourceRegion :: Lens' Snapshot (Maybe Text)+sSourceRegion = lens _sSourceRegion (\s a -> s { _sSourceRegion = a })++-- | The snapshot status. The value of the status depends on the API operation+-- used. CreateClusterSnapshot and CopyClusterSnapshot returns status as+-- "creating". DescribeClusterSnapshots returns status as "creating",+-- "available", "final snapshot", or "failed". DeleteClusterSnapshot returns+-- status as "deleted".+sStatus :: Lens' Snapshot (Maybe Text)+sStatus = lens _sStatus (\s a -> s { _sStatus = a })++-- | The list of tags for the cluster snapshot.+sTags :: Lens' Snapshot [Tag]+sTags = lens _sTags (\s a -> s { _sTags = a }) . _List++-- | The size of the complete set of backup data that would be used to restore+-- the cluster.+sTotalBackupSizeInMegaBytes :: Lens' Snapshot (Maybe Double)+sTotalBackupSizeInMegaBytes =+ lens _sTotalBackupSizeInMegaBytes+ (\s a -> s { _sTotalBackupSizeInMegaBytes = a })++-- | The VPC identifier of the cluster if the snapshot is from a cluster in a+-- VPC. Otherwise, this field is not in the output.+sVpcId :: Lens' Snapshot (Maybe Text)+sVpcId = lens _sVpcId (\s a -> s { _sVpcId = a })++instance FromXML Snapshot where+ parseXML x = Snapshot+ <$> x .@ "AccountsWithRestoreAccess"+ <*> x .@? "ActualIncrementalBackupSizeInMegaBytes"+ <*> x .@? "AvailabilityZone"+ <*> x .@? "BackupProgressInMegaBytes"+ <*> x .@? "ClusterCreateTime"+ <*> x .@? "ClusterIdentifier"+ <*> x .@? "ClusterVersion"+ <*> x .@? "CurrentBackupRateInMegaBytesPerSecond"+ <*> x .@? "DBName"+ <*> x .@? "ElapsedTimeInSeconds"+ <*> x .@? "Encrypted"+ <*> x .@? "EncryptedWithHSM"+ <*> x .@? "EstimatedSecondsToCompletion"+ <*> x .@? "KmsKeyId"+ <*> x .@? "MasterUsername"+ <*> x .@? "NodeType"+ <*> x .@? "NumberOfNodes"+ <*> x .@? "OwnerAccount"+ <*> x .@? "Port"+ <*> x .@? "SnapshotCreateTime"+ <*> x .@? "SnapshotIdentifier"+ <*> x .@? "SnapshotType"+ <*> x .@? "SourceRegion"+ <*> x .@? "Status"+ <*> x .@ "Tags"+ <*> x .@? "TotalBackupSizeInMegaBytes"+ <*> x .@? "VpcId"++instance ToQuery Snapshot where+ toQuery Snapshot{..} = mconcat+ [ "AccountsWithRestoreAccess" =? _sAccountsWithRestoreAccess+ , "ActualIncrementalBackupSizeInMegaBytes" =? _sActualIncrementalBackupSizeInMegaBytes+ , "AvailabilityZone" =? _sAvailabilityZone+ , "BackupProgressInMegaBytes" =? _sBackupProgressInMegaBytes+ , "ClusterCreateTime" =? _sClusterCreateTime+ , "ClusterIdentifier" =? _sClusterIdentifier+ , "ClusterVersion" =? _sClusterVersion+ , "CurrentBackupRateInMegaBytesPerSecond" =? _sCurrentBackupRateInMegaBytesPerSecond+ , "DBName" =? _sDBName+ , "ElapsedTimeInSeconds" =? _sElapsedTimeInSeconds+ , "Encrypted" =? _sEncrypted+ , "EncryptedWithHSM" =? _sEncryptedWithHSM+ , "EstimatedSecondsToCompletion" =? _sEstimatedSecondsToCompletion+ , "KmsKeyId" =? _sKmsKeyId+ , "MasterUsername" =? _sMasterUsername+ , "NodeType" =? _sNodeType+ , "NumberOfNodes" =? _sNumberOfNodes+ , "OwnerAccount" =? _sOwnerAccount+ , "Port" =? _sPort+ , "SnapshotCreateTime" =? _sSnapshotCreateTime+ , "SnapshotIdentifier" =? _sSnapshotIdentifier+ , "SnapshotType" =? _sSnapshotType+ , "SourceRegion" =? _sSourceRegion+ , "Status" =? _sStatus+ , "Tags" =? _sTags+ , "TotalBackupSizeInMegaBytes" =? _sTotalBackupSizeInMegaBytes+ , "VpcId" =? _sVpcId+ ]++data ClusterParameterGroup = ClusterParameterGroup+ { _cpgDescription :: Maybe Text+ , _cpgParameterGroupFamily :: Maybe Text+ , _cpgParameterGroupName :: Maybe Text+ , _cpgTags :: List "Tag" Tag+ } deriving (Eq, Show)++-- | 'ClusterParameterGroup' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'cpgDescription' @::@ 'Maybe' 'Text'+--+-- * 'cpgParameterGroupFamily' @::@ 'Maybe' 'Text'+--+-- * 'cpgParameterGroupName' @::@ 'Maybe' 'Text'+--+-- * 'cpgTags' @::@ ['Tag']+--+clusterParameterGroup :: ClusterParameterGroup+clusterParameterGroup = ClusterParameterGroup+ { _cpgParameterGroupName = Nothing+ , _cpgParameterGroupFamily = Nothing+ , _cpgDescription = Nothing+ , _cpgTags = mempty+ }++-- | The description of the parameter group.+cpgDescription :: Lens' ClusterParameterGroup (Maybe Text)+cpgDescription = lens _cpgDescription (\s a -> s { _cpgDescription = a })++-- | The name of the cluster parameter group family that this cluster+-- parameter group is compatible with.+cpgParameterGroupFamily :: Lens' ClusterParameterGroup (Maybe Text)+cpgParameterGroupFamily =+ lens _cpgParameterGroupFamily (\s a -> s { _cpgParameterGroupFamily = a })++-- | The name of the cluster parameter group.+cpgParameterGroupName :: Lens' ClusterParameterGroup (Maybe Text)+cpgParameterGroupName =+ lens _cpgParameterGroupName (\s a -> s { _cpgParameterGroupName = a })++-- | The list of tags for the cluster parameter group.+cpgTags :: Lens' ClusterParameterGroup [Tag]+cpgTags = lens _cpgTags (\s a -> s { _cpgTags = a }) . _List++instance FromXML ClusterParameterGroup where+ parseXML x = ClusterParameterGroup+ <$> x .@? "Description"+ <*> x .@? "ParameterGroupFamily"+ <*> x .@? "ParameterGroupName"+ <*> x .@ "Tags"++instance ToQuery ClusterParameterGroup where+ toQuery ClusterParameterGroup{..} = mconcat+ [ "Description" =? _cpgDescription+ , "ParameterGroupFamily" =? _cpgParameterGroupFamily+ , "ParameterGroupName" =? _cpgParameterGroupName+ , "Tags" =? _cpgTags+ ]++data RestoreStatus = RestoreStatus+ { _rsCurrentRestoreRateInMegaBytesPerSecond :: Maybe Double+ , _rsElapsedTimeInSeconds :: Maybe Integer+ , _rsEstimatedTimeToCompletionInSeconds :: Maybe Integer+ , _rsProgressInMegaBytes :: Maybe Integer+ , _rsSnapshotSizeInMegaBytes :: Maybe Integer+ , _rsStatus :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'RestoreStatus' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rsCurrentRestoreRateInMegaBytesPerSecond' @::@ 'Maybe' 'Double'+--+-- * 'rsElapsedTimeInSeconds' @::@ 'Maybe' 'Integer'+--+-- * 'rsEstimatedTimeToCompletionInSeconds' @::@ 'Maybe' 'Integer'+--+-- * 'rsProgressInMegaBytes' @::@ 'Maybe' 'Integer'+--+-- * 'rsSnapshotSizeInMegaBytes' @::@ 'Maybe' 'Integer'+--+-- * 'rsStatus' @::@ 'Maybe' 'Text'+--+restoreStatus :: RestoreStatus+restoreStatus = RestoreStatus+ { _rsStatus = Nothing+ , _rsCurrentRestoreRateInMegaBytesPerSecond = Nothing+ , _rsSnapshotSizeInMegaBytes = Nothing+ , _rsProgressInMegaBytes = Nothing+ , _rsElapsedTimeInSeconds = Nothing+ , _rsEstimatedTimeToCompletionInSeconds = Nothing+ }++-- | The number of megabytes per second being transferred from the backup+-- storage. Returns the average rate for a completed backup.+rsCurrentRestoreRateInMegaBytesPerSecond :: Lens' RestoreStatus (Maybe Double)+rsCurrentRestoreRateInMegaBytesPerSecond =+ lens _rsCurrentRestoreRateInMegaBytesPerSecond+ (\s a -> s { _rsCurrentRestoreRateInMegaBytesPerSecond = a })++-- | The amount of time an in-progress restore has been running, or the amount+-- of time it took a completed restore to finish.+rsElapsedTimeInSeconds :: Lens' RestoreStatus (Maybe Integer)+rsElapsedTimeInSeconds =+ lens _rsElapsedTimeInSeconds (\s a -> s { _rsElapsedTimeInSeconds = a })++-- | The estimate of the time remaining before the restore will complete.+-- Returns 0 for a completed restore.+rsEstimatedTimeToCompletionInSeconds :: Lens' RestoreStatus (Maybe Integer)+rsEstimatedTimeToCompletionInSeconds =+ lens _rsEstimatedTimeToCompletionInSeconds+ (\s a -> s { _rsEstimatedTimeToCompletionInSeconds = a })++-- | The number of megabytes that have been transferred from snapshot storage.+rsProgressInMegaBytes :: Lens' RestoreStatus (Maybe Integer)+rsProgressInMegaBytes =+ lens _rsProgressInMegaBytes (\s a -> s { _rsProgressInMegaBytes = a })++-- | The size of the set of snapshot data used to restore the cluster.+rsSnapshotSizeInMegaBytes :: Lens' RestoreStatus (Maybe Integer)+rsSnapshotSizeInMegaBytes =+ lens _rsSnapshotSizeInMegaBytes+ (\s a -> s { _rsSnapshotSizeInMegaBytes = a })++-- | The status of the restore action. Returns starting, restoring, completed,+-- or failed.+rsStatus :: Lens' RestoreStatus (Maybe Text)+rsStatus = lens _rsStatus (\s a -> s { _rsStatus = a })++instance FromXML RestoreStatus where+ parseXML x = RestoreStatus+ <$> x .@? "CurrentRestoreRateInMegaBytesPerSecond"+ <*> x .@? "ElapsedTimeInSeconds"+ <*> x .@? "EstimatedTimeToCompletionInSeconds"+ <*> x .@? "ProgressInMegaBytes"+ <*> x .@? "SnapshotSizeInMegaBytes"+ <*> x .@? "Status"++instance ToQuery RestoreStatus where+ toQuery RestoreStatus{..} = mconcat+ [ "CurrentRestoreRateInMegaBytesPerSecond" =? _rsCurrentRestoreRateInMegaBytesPerSecond+ , "ElapsedTimeInSeconds" =? _rsElapsedTimeInSeconds+ , "EstimatedTimeToCompletionInSeconds" =? _rsEstimatedTimeToCompletionInSeconds+ , "ProgressInMegaBytes" =? _rsProgressInMegaBytes+ , "SnapshotSizeInMegaBytes" =? _rsSnapshotSizeInMegaBytes+ , "Status" =? _rsStatus+ ]++data Event = Event+ { _eDate :: Maybe RFC822+ , _eEventCategories :: List "EventCategory" Text+ , _eEventId :: Maybe Text+ , _eMessage :: Maybe Text+ , _eSeverity :: Maybe Text+ , _eSourceIdentifier :: Maybe Text+ , _eSourceType :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'Event' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'eDate' @::@ 'Maybe' 'UTCTime'+--+-- * 'eEventCategories' @::@ ['Text']+--+-- * 'eEventId' @::@ 'Maybe' 'Text'+--+-- * 'eMessage' @::@ 'Maybe' 'Text'+--+-- * 'eSeverity' @::@ 'Maybe' 'Text'+--+-- * 'eSourceIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'eSourceType' @::@ 'Maybe' 'Text'+--+event :: Event+event = Event+ { _eSourceIdentifier = Nothing+ , _eSourceType = Nothing+ , _eMessage = Nothing+ , _eEventCategories = mempty+ , _eSeverity = Nothing+ , _eDate = Nothing+ , _eEventId = Nothing+ }++-- | The date and time of the event.+eDate :: Lens' Event (Maybe UTCTime)+eDate = lens _eDate (\s a -> s { _eDate = a }) . mapping _Time++-- | A list of the event categories.+eEventCategories :: Lens' Event [Text]+eEventCategories = lens _eEventCategories (\s a -> s { _eEventCategories = a }) . _List++-- | The identifier of the event.+eEventId :: Lens' Event (Maybe Text)+eEventId = lens _eEventId (\s a -> s { _eEventId = a })++-- | The text of this event.+eMessage :: Lens' Event (Maybe Text)+eMessage = lens _eMessage (\s a -> s { _eMessage = a })++-- | The severity of the event. Values: ERROR, INFO.+eSeverity :: Lens' Event (Maybe Text)+eSeverity = lens _eSeverity (\s a -> s { _eSeverity = a })++-- | The identifier for the source of the event.+eSourceIdentifier :: Lens' Event (Maybe Text)+eSourceIdentifier =+ lens _eSourceIdentifier (\s a -> s { _eSourceIdentifier = a })++-- | The source type for this event.+eSourceType :: Lens' Event (Maybe Text)+eSourceType = lens _eSourceType (\s a -> s { _eSourceType = a })++instance FromXML Event where+ parseXML x = Event+ <$> x .@? "Date"+ <*> x .@ "EventCategories"+ <*> x .@? "EventId"+ <*> x .@? "Message"+ <*> x .@? "Severity"+ <*> x .@? "SourceIdentifier"+ <*> x .@? "SourceType"++instance ToQuery Event where+ toQuery Event{..} = mconcat+ [ "Date" =? _eDate+ , "EventCategories" =? _eEventCategories+ , "EventId" =? _eEventId+ , "Message" =? _eMessage+ , "Severity" =? _eSeverity+ , "SourceIdentifier" =? _eSourceIdentifier+ , "SourceType" =? _eSourceType+ ]++data ClusterSnapshotCopyStatus = ClusterSnapshotCopyStatus+ { _cscsDestinationRegion :: Maybe Text+ , _cscsRetentionPeriod :: Maybe Integer+ } deriving (Eq, Ord, Show)++-- | 'ClusterSnapshotCopyStatus' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'cscsDestinationRegion' @::@ 'Maybe' 'Text'+--+-- * 'cscsRetentionPeriod' @::@ 'Maybe' 'Integer'+--+clusterSnapshotCopyStatus :: ClusterSnapshotCopyStatus+clusterSnapshotCopyStatus = ClusterSnapshotCopyStatus+ { _cscsDestinationRegion = Nothing+ , _cscsRetentionPeriod = Nothing+ }++-- | The destination region that snapshots are automatically copied to when+-- cross-region snapshot copy is enabled.+cscsDestinationRegion :: Lens' ClusterSnapshotCopyStatus (Maybe Text)+cscsDestinationRegion =+ lens _cscsDestinationRegion (\s a -> s { _cscsDestinationRegion = a })++-- | The number of days that automated snapshots are retained in the+-- destination region after they are copied from a source region.+cscsRetentionPeriod :: Lens' ClusterSnapshotCopyStatus (Maybe Integer)+cscsRetentionPeriod =+ lens _cscsRetentionPeriod (\s a -> s { _cscsRetentionPeriod = a })++instance FromXML ClusterSnapshotCopyStatus where+ parseXML x = ClusterSnapshotCopyStatus+ <$> x .@? "DestinationRegion"+ <*> x .@? "RetentionPeriod"++instance ToQuery ClusterSnapshotCopyStatus where+ toQuery ClusterSnapshotCopyStatus{..} = mconcat+ [ "DestinationRegion" =? _cscsDestinationRegion+ , "RetentionPeriod" =? _cscsRetentionPeriod+ ]++data Tag = Tag+ { _tagKey :: Maybe Text+ , _tagValue :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'Tag' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'tagKey' @::@ 'Maybe' 'Text'+--+-- * 'tagValue' @::@ 'Maybe' 'Text'+--+tag :: Tag+tag = Tag+ { _tagKey = Nothing+ , _tagValue = Nothing+ }++-- | The key, or name, for the resource tag.+tagKey :: Lens' Tag (Maybe Text)+tagKey = lens _tagKey (\s a -> s { _tagKey = a })++-- | The value for the resource tag.+tagValue :: Lens' Tag (Maybe Text)+tagValue = lens _tagValue (\s a -> s { _tagValue = a })++instance FromXML Tag where+ parseXML x = Tag+ <$> x .@? "Key"+ <*> x .@? "Value"++instance ToQuery Tag where+ toQuery Tag{..} = mconcat+ [ "Key" =? _tagKey+ , "Value" =? _tagValue+ ]++data HsmClientCertificate = HsmClientCertificate+ { _hccHsmClientCertificateIdentifier :: Maybe Text+ , _hccHsmClientCertificatePublicKey :: Maybe Text+ , _hccTags :: List "Tag" Tag+ } deriving (Eq, Show)++-- | 'HsmClientCertificate' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'hccHsmClientCertificateIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'hccHsmClientCertificatePublicKey' @::@ 'Maybe' 'Text'+--+-- * 'hccTags' @::@ ['Tag']+--+hsmClientCertificate :: HsmClientCertificate+hsmClientCertificate = HsmClientCertificate+ { _hccHsmClientCertificateIdentifier = Nothing+ , _hccHsmClientCertificatePublicKey = Nothing+ , _hccTags = mempty+ }++-- | The identifier of the HSM client certificate.+hccHsmClientCertificateIdentifier :: Lens' HsmClientCertificate (Maybe Text)+hccHsmClientCertificateIdentifier =+ lens _hccHsmClientCertificateIdentifier+ (\s a -> s { _hccHsmClientCertificateIdentifier = a })++-- | The public key that the Amazon Redshift cluster will use to connect to+-- the HSM. You must register the public key in the HSM.+hccHsmClientCertificatePublicKey :: Lens' HsmClientCertificate (Maybe Text)+hccHsmClientCertificatePublicKey =+ lens _hccHsmClientCertificatePublicKey+ (\s a -> s { _hccHsmClientCertificatePublicKey = a })++-- | The list of tags for the HSM client certificate.+hccTags :: Lens' HsmClientCertificate [Tag]+hccTags = lens _hccTags (\s a -> s { _hccTags = a }) . _List++instance FromXML HsmClientCertificate where+ parseXML x = HsmClientCertificate+ <$> x .@? "HsmClientCertificateIdentifier"+ <*> x .@? "HsmClientCertificatePublicKey"+ <*> x .@ "Tags"++instance ToQuery HsmClientCertificate where+ toQuery HsmClientCertificate{..} = mconcat+ [ "HsmClientCertificateIdentifier" =? _hccHsmClientCertificateIdentifier+ , "HsmClientCertificatePublicKey" =? _hccHsmClientCertificatePublicKey+ , "Tags" =? _hccTags+ ]++data Cluster = Cluster+ { _cAllowVersionUpgrade :: Maybe Bool+ , _cAutomatedSnapshotRetentionPeriod :: Maybe Int+ , _cAvailabilityZone :: Maybe Text+ , _cClusterCreateTime :: Maybe RFC822+ , _cClusterIdentifier :: Maybe Text+ , _cClusterNodes :: List "ClusterNodes" ClusterNode+ , _cClusterParameterGroups :: List "ClusterParameterGroup" ClusterParameterGroupStatus+ , _cClusterPublicKey :: Maybe Text+ , _cClusterRevisionNumber :: Maybe Text+ , _cClusterSecurityGroups :: List "ClusterSecurityGroup" ClusterSecurityGroupMembership+ , _cClusterSnapshotCopyStatus :: Maybe ClusterSnapshotCopyStatus+ , _cClusterStatus :: Maybe Text+ , _cClusterSubnetGroupName :: Maybe Text+ , _cClusterVersion :: Maybe Text+ , _cDBName :: Maybe Text+ , _cElasticIpStatus :: Maybe ElasticIpStatus+ , _cEncrypted :: Maybe Bool+ , _cEndpoint :: Maybe Endpoint+ , _cHsmStatus :: Maybe HsmStatus+ , _cKmsKeyId :: Maybe Text+ , _cMasterUsername :: Maybe Text+ , _cModifyStatus :: Maybe Text+ , _cNodeType :: Maybe Text+ , _cNumberOfNodes :: Maybe Int+ , _cPendingModifiedValues :: Maybe PendingModifiedValues+ , _cPreferredMaintenanceWindow :: Maybe Text+ , _cPubliclyAccessible :: Maybe Bool+ , _cRestoreStatus :: Maybe RestoreStatus+ , _cTags :: List "Tag" Tag+ , _cVpcId :: Maybe Text+ , _cVpcSecurityGroups :: List "VpcSecurityGroup" VpcSecurityGroupMembership+ } deriving (Eq, Show)++-- | 'Cluster' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'cAllowVersionUpgrade' @::@ 'Maybe' 'Bool'+--+-- * 'cAutomatedSnapshotRetentionPeriod' @::@ 'Maybe' 'Int'+--+-- * 'cAvailabilityZone' @::@ 'Maybe' 'Text'+--+-- * 'cClusterCreateTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'cClusterIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'cClusterNodes' @::@ ['ClusterNode']+--+-- * 'cClusterParameterGroups' @::@ ['ClusterParameterGroupStatus']+--+-- * 'cClusterPublicKey' @::@ 'Maybe' 'Text'+--+-- * 'cClusterRevisionNumber' @::@ 'Maybe' 'Text'+--+-- * 'cClusterSecurityGroups' @::@ ['ClusterSecurityGroupMembership']+--+-- * 'cClusterSnapshotCopyStatus' @::@ 'Maybe' 'ClusterSnapshotCopyStatus'+--+-- * 'cClusterStatus' @::@ 'Maybe' 'Text'+--+-- * 'cClusterSubnetGroupName' @::@ 'Maybe' 'Text'+--+-- * 'cClusterVersion' @::@ 'Maybe' 'Text'+--+-- * 'cDBName' @::@ 'Maybe' 'Text'+--+-- * 'cElasticIpStatus' @::@ 'Maybe' 'ElasticIpStatus'+--+-- * 'cEncrypted' @::@ 'Maybe' 'Bool'+--+-- * 'cEndpoint' @::@ 'Maybe' 'Endpoint'+--+-- * 'cHsmStatus' @::@ 'Maybe' 'HsmStatus'+--+-- * 'cKmsKeyId' @::@ 'Maybe' 'Text'+--+-- * 'cMasterUsername' @::@ 'Maybe' 'Text'+--+-- * 'cModifyStatus' @::@ 'Maybe' 'Text'+--+-- * 'cNodeType' @::@ 'Maybe' 'Text'+--+-- * 'cNumberOfNodes' @::@ 'Maybe' 'Int'+--+-- * 'cPendingModifiedValues' @::@ 'Maybe' 'PendingModifiedValues'+--+-- * 'cPreferredMaintenanceWindow' @::@ 'Maybe' 'Text'+--+-- * 'cPubliclyAccessible' @::@ 'Maybe' 'Bool'+--+-- * 'cRestoreStatus' @::@ 'Maybe' 'RestoreStatus'+--+-- * 'cTags' @::@ ['Tag']+--+-- * 'cVpcId' @::@ 'Maybe' 'Text'+--+-- * 'cVpcSecurityGroups' @::@ ['VpcSecurityGroupMembership']+--+cluster :: Cluster+cluster = Cluster+ { _cClusterIdentifier = Nothing+ , _cNodeType = Nothing+ , _cClusterStatus = Nothing+ , _cModifyStatus = Nothing+ , _cMasterUsername = Nothing+ , _cDBName = Nothing+ , _cEndpoint = Nothing+ , _cClusterCreateTime = Nothing+ , _cAutomatedSnapshotRetentionPeriod = Nothing+ , _cClusterSecurityGroups = mempty+ , _cVpcSecurityGroups = mempty+ , _cClusterParameterGroups = mempty+ , _cClusterSubnetGroupName = Nothing+ , _cVpcId = Nothing+ , _cAvailabilityZone = Nothing+ , _cPreferredMaintenanceWindow = Nothing+ , _cPendingModifiedValues = Nothing+ , _cClusterVersion = Nothing+ , _cAllowVersionUpgrade = Nothing+ , _cNumberOfNodes = Nothing+ , _cPubliclyAccessible = Nothing+ , _cEncrypted = Nothing+ , _cRestoreStatus = Nothing+ , _cHsmStatus = Nothing+ , _cClusterSnapshotCopyStatus = Nothing+ , _cClusterPublicKey = Nothing+ , _cClusterNodes = mempty+ , _cElasticIpStatus = Nothing+ , _cClusterRevisionNumber = Nothing+ , _cTags = mempty+ , _cKmsKeyId = Nothing+ }++-- | If true, major version upgrades will be applied automatically to the+-- cluster during the maintenance window.+cAllowVersionUpgrade :: Lens' Cluster (Maybe Bool)+cAllowVersionUpgrade =+ lens _cAllowVersionUpgrade (\s a -> s { _cAllowVersionUpgrade = a })++-- | The number of days that automatic cluster snapshots are retained.+cAutomatedSnapshotRetentionPeriod :: Lens' Cluster (Maybe Int)+cAutomatedSnapshotRetentionPeriod =+ lens _cAutomatedSnapshotRetentionPeriod+ (\s a -> s { _cAutomatedSnapshotRetentionPeriod = a })++-- | The name of the Availability Zone in which the cluster is located.+cAvailabilityZone :: Lens' Cluster (Maybe Text)+cAvailabilityZone =+ lens _cAvailabilityZone (\s a -> s { _cAvailabilityZone = a })++-- | The date and time that the cluster was created.+cClusterCreateTime :: Lens' Cluster (Maybe UTCTime)+cClusterCreateTime =+ lens _cClusterCreateTime (\s a -> s { _cClusterCreateTime = a })+ . mapping _Time++-- | The unique identifier of the cluster.+cClusterIdentifier :: Lens' Cluster (Maybe Text)+cClusterIdentifier =+ lens _cClusterIdentifier (\s a -> s { _cClusterIdentifier = a })++-- | The nodes in a cluster.+cClusterNodes :: Lens' Cluster [ClusterNode]+cClusterNodes = lens _cClusterNodes (\s a -> s { _cClusterNodes = a }) . _List++-- | The list of cluster parameter groups that are associated with this+-- cluster.+cClusterParameterGroups :: Lens' Cluster [ClusterParameterGroupStatus]+cClusterParameterGroups =+ lens _cClusterParameterGroups (\s a -> s { _cClusterParameterGroups = a })+ . _List++-- | The public key for the cluster.+cClusterPublicKey :: Lens' Cluster (Maybe Text)+cClusterPublicKey =+ lens _cClusterPublicKey (\s a -> s { _cClusterPublicKey = a })++-- | The specific revision number of the database in the cluster.+cClusterRevisionNumber :: Lens' Cluster (Maybe Text)+cClusterRevisionNumber =+ lens _cClusterRevisionNumber (\s a -> s { _cClusterRevisionNumber = a })++-- | A list of cluster security group that are associated with the cluster.+-- Each security group is represented by an element that contains+-- ClusterSecurityGroup.Name and ClusterSecurityGroup.Status subelements.+-- Cluster security groups are used when the cluster is not created in a+-- VPC. Clusters that are created in a VPC use VPC security groups, which+-- are listed by the VpcSecurityGroups parameter.+cClusterSecurityGroups :: Lens' Cluster [ClusterSecurityGroupMembership]+cClusterSecurityGroups =+ lens _cClusterSecurityGroups (\s a -> s { _cClusterSecurityGroups = a })+ . _List++-- | Returns the destination region and retention period that are configured+-- for cross-region snapshot copy.+cClusterSnapshotCopyStatus :: Lens' Cluster (Maybe ClusterSnapshotCopyStatus)+cClusterSnapshotCopyStatus =+ lens _cClusterSnapshotCopyStatus+ (\s a -> s { _cClusterSnapshotCopyStatus = a })++-- | The current state of this cluster. Possible values include available,+-- creating, deleting, rebooting, renaming, and resizing.+cClusterStatus :: Lens' Cluster (Maybe Text)+cClusterStatus = lens _cClusterStatus (\s a -> s { _cClusterStatus = a })++-- | The name of the subnet group that is associated with the cluster. This+-- parameter is valid only when the cluster is in a VPC.+cClusterSubnetGroupName :: Lens' Cluster (Maybe Text)+cClusterSubnetGroupName =+ lens _cClusterSubnetGroupName (\s a -> s { _cClusterSubnetGroupName = a })++-- | The version ID of the Amazon Redshift engine that is running on the+-- cluster.+cClusterVersion :: Lens' Cluster (Maybe Text)+cClusterVersion = lens _cClusterVersion (\s a -> s { _cClusterVersion = a })++-- | The name of the initial database that was created when the cluster was+-- created. This same name is returned for the life of the cluster. If an+-- initial database was not specified, a database named "dev" was created by+-- default.+cDBName :: Lens' Cluster (Maybe Text)+cDBName = lens _cDBName (\s a -> s { _cDBName = a })++-- | Describes the status of the elastic IP (EIP) address.+cElasticIpStatus :: Lens' Cluster (Maybe ElasticIpStatus)+cElasticIpStatus = lens _cElasticIpStatus (\s a -> s { _cElasticIpStatus = a })++-- | If true, data in the cluster is encrypted at rest.+cEncrypted :: Lens' Cluster (Maybe Bool)+cEncrypted = lens _cEncrypted (\s a -> s { _cEncrypted = a })++-- | The connection endpoint.+cEndpoint :: Lens' Cluster (Maybe Endpoint)+cEndpoint = lens _cEndpoint (\s a -> s { _cEndpoint = a })++-- | Reports whether the Amazon Redshift cluster has finished applying any HSM+-- settings changes specified in a modify cluster command. Values: active,+-- applying.+cHsmStatus :: Lens' Cluster (Maybe HsmStatus)+cHsmStatus = lens _cHsmStatus (\s a -> s { _cHsmStatus = a })++-- | The AWS Key Management Service (KMS) key ID of the encryption key used to+-- encrypt data in the cluster.+cKmsKeyId :: Lens' Cluster (Maybe Text)+cKmsKeyId = lens _cKmsKeyId (\s a -> s { _cKmsKeyId = a })++-- | The master user name for the cluster. This name is used to connect to the+-- database that is specified in DBName.+cMasterUsername :: Lens' Cluster (Maybe Text)+cMasterUsername = lens _cMasterUsername (\s a -> s { _cMasterUsername = a })++-- | The status of a modify operation, if any, initiated for the cluster.+cModifyStatus :: Lens' Cluster (Maybe Text)+cModifyStatus = lens _cModifyStatus (\s a -> s { _cModifyStatus = a })++-- | The node type for the nodes in the cluster.+cNodeType :: Lens' Cluster (Maybe Text)+cNodeType = lens _cNodeType (\s a -> s { _cNodeType = a })++-- | The number of compute nodes in the cluster.+cNumberOfNodes :: Lens' Cluster (Maybe Int)+cNumberOfNodes = lens _cNumberOfNodes (\s a -> s { _cNumberOfNodes = a })++-- | If present, changes to the cluster are pending. Specific pending changes+-- are identified by subelements.+cPendingModifiedValues :: Lens' Cluster (Maybe PendingModifiedValues)+cPendingModifiedValues =+ lens _cPendingModifiedValues (\s a -> s { _cPendingModifiedValues = a })++-- | The weekly time range (in UTC) during which system maintenance can occur.+cPreferredMaintenanceWindow :: Lens' Cluster (Maybe Text)+cPreferredMaintenanceWindow =+ lens _cPreferredMaintenanceWindow+ (\s a -> s { _cPreferredMaintenanceWindow = a })++-- | If true, the cluster can be accessed from a public network.+cPubliclyAccessible :: Lens' Cluster (Maybe Bool)+cPubliclyAccessible =+ lens _cPubliclyAccessible (\s a -> s { _cPubliclyAccessible = a })++-- | Describes the status of a cluster restore action. Returns null if the+-- cluster was not created by restoring a snapshot.+cRestoreStatus :: Lens' Cluster (Maybe RestoreStatus)+cRestoreStatus = lens _cRestoreStatus (\s a -> s { _cRestoreStatus = a })++-- | The list of tags for the cluster.+cTags :: Lens' Cluster [Tag]+cTags = lens _cTags (\s a -> s { _cTags = a }) . _List++-- | The identifier of the VPC the cluster is in, if the cluster is in a VPC.+cVpcId :: Lens' Cluster (Maybe Text)+cVpcId = lens _cVpcId (\s a -> s { _cVpcId = a })++-- | A list of Virtual Private Cloud (VPC) security groups that are associated+-- with the cluster. This parameter is returned only if the cluster is in a+-- VPC.+cVpcSecurityGroups :: Lens' Cluster [VpcSecurityGroupMembership]+cVpcSecurityGroups =+ lens _cVpcSecurityGroups (\s a -> s { _cVpcSecurityGroups = a })+ . _List++instance FromXML Cluster where+ parseXML x = Cluster+ <$> x .@? "AllowVersionUpgrade"+ <*> x .@? "AutomatedSnapshotRetentionPeriod"+ <*> x .@? "AvailabilityZone"+ <*> x .@? "ClusterCreateTime"+ <*> x .@? "ClusterIdentifier"+ <*> x .@ "ClusterNodes"+ <*> x .@ "ClusterParameterGroups"+ <*> x .@? "ClusterPublicKey"+ <*> x .@? "ClusterRevisionNumber"+ <*> x .@ "ClusterSecurityGroups"+ <*> x .@? "ClusterSnapshotCopyStatus"+ <*> x .@? "ClusterStatus"+ <*> x .@? "ClusterSubnetGroupName"+ <*> x .@? "ClusterVersion"+ <*> x .@? "DBName"+ <*> x .@? "ElasticIpStatus"+ <*> x .@? "Encrypted"+ <*> x .@? "Endpoint"+ <*> x .@? "HsmStatus"+ <*> x .@? "KmsKeyId"+ <*> x .@? "MasterUsername"+ <*> x .@? "ModifyStatus"+ <*> x .@? "NodeType"+ <*> x .@? "NumberOfNodes"+ <*> x .@? "PendingModifiedValues"+ <*> x .@? "PreferredMaintenanceWindow"+ <*> x .@? "PubliclyAccessible"+ <*> x .@? "RestoreStatus"+ <*> x .@ "Tags"+ <*> x .@? "VpcId"+ <*> x .@ "VpcSecurityGroups"++instance ToQuery Cluster where+ toQuery Cluster{..} = mconcat+ [ "AllowVersionUpgrade" =? _cAllowVersionUpgrade+ , "AutomatedSnapshotRetentionPeriod" =? _cAutomatedSnapshotRetentionPeriod+ , "AvailabilityZone" =? _cAvailabilityZone+ , "ClusterCreateTime" =? _cClusterCreateTime+ , "ClusterIdentifier" =? _cClusterIdentifier+ , "ClusterNodes" =? _cClusterNodes+ , "ClusterParameterGroups" =? _cClusterParameterGroups+ , "ClusterPublicKey" =? _cClusterPublicKey+ , "ClusterRevisionNumber" =? _cClusterRevisionNumber+ , "ClusterSecurityGroups" =? _cClusterSecurityGroups+ , "ClusterSnapshotCopyStatus" =? _cClusterSnapshotCopyStatus+ , "ClusterStatus" =? _cClusterStatus+ , "ClusterSubnetGroupName" =? _cClusterSubnetGroupName+ , "ClusterVersion" =? _cClusterVersion+ , "DBName" =? _cDBName+ , "ElasticIpStatus" =? _cElasticIpStatus+ , "Encrypted" =? _cEncrypted+ , "Endpoint" =? _cEndpoint+ , "HsmStatus" =? _cHsmStatus+ , "KmsKeyId" =? _cKmsKeyId+ , "MasterUsername" =? _cMasterUsername+ , "ModifyStatus" =? _cModifyStatus+ , "NodeType" =? _cNodeType+ , "NumberOfNodes" =? _cNumberOfNodes+ , "PendingModifiedValues" =? _cPendingModifiedValues+ , "PreferredMaintenanceWindow" =? _cPreferredMaintenanceWindow+ , "PubliclyAccessible" =? _cPubliclyAccessible+ , "RestoreStatus" =? _cRestoreStatus+ , "Tags" =? _cTags+ , "VpcId" =? _cVpcId+ , "VpcSecurityGroups" =? _cVpcSecurityGroups+ ]++data ClusterNode = ClusterNode+ { _cnNodeRole :: Maybe Text+ , _cnPrivateIPAddress :: Maybe Text+ , _cnPublicIPAddress :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'ClusterNode' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'cnNodeRole' @::@ 'Maybe' 'Text'+--+-- * 'cnPrivateIPAddress' @::@ 'Maybe' 'Text'+--+-- * 'cnPublicIPAddress' @::@ 'Maybe' 'Text'+--+clusterNode :: ClusterNode+clusterNode = ClusterNode+ { _cnNodeRole = Nothing+ , _cnPrivateIPAddress = Nothing+ , _cnPublicIPAddress = Nothing+ }++-- | Whether the node is a leader node or a compute node.+cnNodeRole :: Lens' ClusterNode (Maybe Text)+cnNodeRole = lens _cnNodeRole (\s a -> s { _cnNodeRole = a })++-- | The private IP address of a node within a cluster.+cnPrivateIPAddress :: Lens' ClusterNode (Maybe Text)+cnPrivateIPAddress =+ lens _cnPrivateIPAddress (\s a -> s { _cnPrivateIPAddress = a })++-- | The public IP address of a node within a cluster.+cnPublicIPAddress :: Lens' ClusterNode (Maybe Text)+cnPublicIPAddress =+ lens _cnPublicIPAddress (\s a -> s { _cnPublicIPAddress = a })++instance FromXML ClusterNode where+ parseXML x = ClusterNode+ <$> x .@? "NodeRole"+ <*> x .@? "PrivateIPAddress"+ <*> x .@? "PublicIPAddress"++instance ToQuery ClusterNode where+ toQuery ClusterNode{..} = mconcat+ [ "NodeRole" =? _cnNodeRole+ , "PrivateIPAddress" =? _cnPrivateIPAddress+ , "PublicIPAddress" =? _cnPublicIPAddress+ ]++data EC2SecurityGroup = EC2SecurityGroup+ { _ecsgEC2SecurityGroupName :: Maybe Text+ , _ecsgEC2SecurityGroupOwnerId :: Maybe Text+ , _ecsgStatus :: Maybe Text+ , _ecsgTags :: List "Tag" Tag+ } deriving (Eq, Show)++-- | 'EC2SecurityGroup' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ecsgEC2SecurityGroupName' @::@ 'Maybe' 'Text'+--+-- * 'ecsgEC2SecurityGroupOwnerId' @::@ 'Maybe' 'Text'+--+-- * 'ecsgStatus' @::@ 'Maybe' 'Text'+--+-- * 'ecsgTags' @::@ ['Tag']+--+ec2SecurityGroup :: EC2SecurityGroup+ec2SecurityGroup = EC2SecurityGroup+ { _ecsgStatus = Nothing+ , _ecsgEC2SecurityGroupName = Nothing+ , _ecsgEC2SecurityGroupOwnerId = Nothing+ , _ecsgTags = mempty+ }++-- | The name of the EC2 Security Group.+ecsgEC2SecurityGroupName :: Lens' EC2SecurityGroup (Maybe Text)+ecsgEC2SecurityGroupName =+ lens _ecsgEC2SecurityGroupName+ (\s a -> s { _ecsgEC2SecurityGroupName = a })++-- | The AWS ID of the owner of the EC2 security group specified in the+-- EC2SecurityGroupName field.+ecsgEC2SecurityGroupOwnerId :: Lens' EC2SecurityGroup (Maybe Text)+ecsgEC2SecurityGroupOwnerId =+ lens _ecsgEC2SecurityGroupOwnerId+ (\s a -> s { _ecsgEC2SecurityGroupOwnerId = a })++-- | The status of the EC2 security group.+ecsgStatus :: Lens' EC2SecurityGroup (Maybe Text)+ecsgStatus = lens _ecsgStatus (\s a -> s { _ecsgStatus = a })++-- | The list of tags for the EC2 security group.+ecsgTags :: Lens' EC2SecurityGroup [Tag]+ecsgTags = lens _ecsgTags (\s a -> s { _ecsgTags = a }) . _List++instance FromXML EC2SecurityGroup where+ parseXML x = EC2SecurityGroup+ <$> x .@? "EC2SecurityGroupName"+ <*> x .@? "EC2SecurityGroupOwnerId"+ <*> x .@? "Status"+ <*> x .@ "Tags"++instance ToQuery EC2SecurityGroup where+ toQuery EC2SecurityGroup{..} = mconcat+ [ "EC2SecurityGroupName" =? _ecsgEC2SecurityGroupName+ , "EC2SecurityGroupOwnerId" =? _ecsgEC2SecurityGroupOwnerId+ , "Status" =? _ecsgStatus+ , "Tags" =? _ecsgTags+ ]++data OrderableClusterOption = OrderableClusterOption+ { _ocoAvailabilityZones :: List "AvailabilityZone" AvailabilityZone+ , _ocoClusterType :: Maybe Text+ , _ocoClusterVersion :: Maybe Text+ , _ocoNodeType :: Maybe Text+ } deriving (Eq, Show)++-- | 'OrderableClusterOption' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ocoAvailabilityZones' @::@ ['AvailabilityZone']+--+-- * 'ocoClusterType' @::@ 'Maybe' 'Text'+--+-- * 'ocoClusterVersion' @::@ 'Maybe' 'Text'+--+-- * 'ocoNodeType' @::@ 'Maybe' 'Text'+--+orderableClusterOption :: OrderableClusterOption+orderableClusterOption = OrderableClusterOption+ { _ocoClusterVersion = Nothing+ , _ocoClusterType = Nothing+ , _ocoNodeType = Nothing+ , _ocoAvailabilityZones = mempty+ }++-- | A list of availability zones for the orderable cluster.+ocoAvailabilityZones :: Lens' OrderableClusterOption [AvailabilityZone]+ocoAvailabilityZones =+ lens _ocoAvailabilityZones (\s a -> s { _ocoAvailabilityZones = a })+ . _List++-- | The cluster type, for example multi-node.+ocoClusterType :: Lens' OrderableClusterOption (Maybe Text)+ocoClusterType = lens _ocoClusterType (\s a -> s { _ocoClusterType = a })++-- | The version of the orderable cluster.+ocoClusterVersion :: Lens' OrderableClusterOption (Maybe Text)+ocoClusterVersion =+ lens _ocoClusterVersion (\s a -> s { _ocoClusterVersion = a })++-- | The node type for the orderable cluster.+ocoNodeType :: Lens' OrderableClusterOption (Maybe Text)+ocoNodeType = lens _ocoNodeType (\s a -> s { _ocoNodeType = a })++instance FromXML OrderableClusterOption where+ parseXML x = OrderableClusterOption+ <$> x .@ "AvailabilityZones"+ <*> x .@? "ClusterType"+ <*> x .@? "ClusterVersion"+ <*> x .@? "NodeType"++instance ToQuery OrderableClusterOption where+ toQuery OrderableClusterOption{..} = mconcat+ [ "AvailabilityZones" =? _ocoAvailabilityZones+ , "ClusterType" =? _ocoClusterType+ , "ClusterVersion" =? _ocoClusterVersion+ , "NodeType" =? _ocoNodeType+ ]++data SourceType+ = STCluster -- ^ cluster+ | STClusterParameterGroup -- ^ cluster-parameter-group+ | STClusterSecurityGroup -- ^ cluster-security-group+ | STClusterSnapshot -- ^ cluster-snapshot+ deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable SourceType++instance FromText SourceType where+ parser = match "cluster" STCluster+ <|> match "cluster-parameter-group" STClusterParameterGroup+ <|> match "cluster-security-group" STClusterSecurityGroup+ <|> match "cluster-snapshot" STClusterSnapshot++instance ToText SourceType where+ toText = \case+ STCluster -> "cluster"+ STClusterParameterGroup -> "cluster-parameter-group"+ STClusterSecurityGroup -> "cluster-security-group"+ STClusterSnapshot -> "cluster-snapshot"++instance FromXML SourceType where+ parseXML = parseXMLText "SourceType"++instance ToQuery SourceType where+ toQuery = toQuery . toText++data ClusterParameterGroupStatus = ClusterParameterGroupStatus+ { _cpgsParameterApplyStatus :: Maybe Text+ , _cpgsParameterGroupName :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'ClusterParameterGroupStatus' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'cpgsParameterApplyStatus' @::@ 'Maybe' 'Text'+--+-- * 'cpgsParameterGroupName' @::@ 'Maybe' 'Text'+--+clusterParameterGroupStatus :: ClusterParameterGroupStatus+clusterParameterGroupStatus = ClusterParameterGroupStatus+ { _cpgsParameterGroupName = Nothing+ , _cpgsParameterApplyStatus = Nothing+ }++-- | The status of parameter updates.+cpgsParameterApplyStatus :: Lens' ClusterParameterGroupStatus (Maybe Text)+cpgsParameterApplyStatus =+ lens _cpgsParameterApplyStatus+ (\s a -> s { _cpgsParameterApplyStatus = a })++-- | The name of the cluster parameter group.+cpgsParameterGroupName :: Lens' ClusterParameterGroupStatus (Maybe Text)+cpgsParameterGroupName =+ lens _cpgsParameterGroupName (\s a -> s { _cpgsParameterGroupName = a })++instance FromXML ClusterParameterGroupStatus where+ parseXML x = ClusterParameterGroupStatus+ <$> x .@? "ParameterApplyStatus"+ <*> x .@? "ParameterGroupName"++instance ToQuery ClusterParameterGroupStatus where+ toQuery ClusterParameterGroupStatus{..} = mconcat+ [ "ParameterApplyStatus" =? _cpgsParameterApplyStatus+ , "ParameterGroupName" =? _cpgsParameterGroupName+ ]++data Subnet = Subnet+ { _sSubnetAvailabilityZone :: Maybe AvailabilityZone+ , _sSubnetIdentifier :: Maybe Text+ , _sSubnetStatus :: Maybe Text+ } deriving (Eq, Show)++-- | 'Subnet' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'sSubnetAvailabilityZone' @::@ 'Maybe' 'AvailabilityZone'+--+-- * 'sSubnetIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'sSubnetStatus' @::@ 'Maybe' 'Text'+--+subnet :: Subnet+subnet = Subnet+ { _sSubnetIdentifier = Nothing+ , _sSubnetAvailabilityZone = Nothing+ , _sSubnetStatus = Nothing+ }++sSubnetAvailabilityZone :: Lens' Subnet (Maybe AvailabilityZone)+sSubnetAvailabilityZone =+ lens _sSubnetAvailabilityZone (\s a -> s { _sSubnetAvailabilityZone = a })++-- | The identifier of the subnet.+sSubnetIdentifier :: Lens' Subnet (Maybe Text)+sSubnetIdentifier =+ lens _sSubnetIdentifier (\s a -> s { _sSubnetIdentifier = a })++-- | The status of the subnet.+sSubnetStatus :: Lens' Subnet (Maybe Text)+sSubnetStatus = lens _sSubnetStatus (\s a -> s { _sSubnetStatus = a })++instance FromXML Subnet where+ parseXML x = Subnet+ <$> x .@? "SubnetAvailabilityZone"+ <*> x .@? "SubnetIdentifier"+ <*> x .@? "SubnetStatus"++instance ToQuery Subnet where+ toQuery Subnet{..} = mconcat+ [ "SubnetAvailabilityZone" =? _sSubnetAvailabilityZone+ , "SubnetIdentifier" =? _sSubnetIdentifier+ , "SubnetStatus" =? _sSubnetStatus+ ]++data ClusterSecurityGroup = ClusterSecurityGroup+ { _csgClusterSecurityGroupName :: Maybe Text+ , _csgDescription :: Maybe Text+ , _csgEC2SecurityGroups :: List "EC2SecurityGroup" EC2SecurityGroup+ , _csgIPRanges :: List "IPRange" IPRange+ , _csgTags :: List "Tag" Tag+ } deriving (Eq, Show)++-- | 'ClusterSecurityGroup' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'csgClusterSecurityGroupName' @::@ 'Maybe' 'Text'+--+-- * 'csgDescription' @::@ 'Maybe' 'Text'+--+-- * 'csgEC2SecurityGroups' @::@ ['EC2SecurityGroup']+--+-- * 'csgIPRanges' @::@ ['IPRange']+--+-- * 'csgTags' @::@ ['Tag']+--+clusterSecurityGroup :: ClusterSecurityGroup+clusterSecurityGroup = ClusterSecurityGroup+ { _csgClusterSecurityGroupName = Nothing+ , _csgDescription = Nothing+ , _csgEC2SecurityGroups = mempty+ , _csgIPRanges = mempty+ , _csgTags = mempty+ }++-- | The name of the cluster security group to which the operation was+-- applied.+csgClusterSecurityGroupName :: Lens' ClusterSecurityGroup (Maybe Text)+csgClusterSecurityGroupName =+ lens _csgClusterSecurityGroupName+ (\s a -> s { _csgClusterSecurityGroupName = a })++-- | A description of the security group.+csgDescription :: Lens' ClusterSecurityGroup (Maybe Text)+csgDescription = lens _csgDescription (\s a -> s { _csgDescription = a })++-- | A list of EC2 security groups that are permitted to access clusters+-- associated with this cluster security group.+csgEC2SecurityGroups :: Lens' ClusterSecurityGroup [EC2SecurityGroup]+csgEC2SecurityGroups =+ lens _csgEC2SecurityGroups (\s a -> s { _csgEC2SecurityGroups = a })+ . _List++-- | A list of IP ranges (CIDR blocks) that are permitted to access clusters+-- associated with this cluster security group.+csgIPRanges :: Lens' ClusterSecurityGroup [IPRange]+csgIPRanges = lens _csgIPRanges (\s a -> s { _csgIPRanges = a }) . _List++-- | The list of tags for the cluster security group.+csgTags :: Lens' ClusterSecurityGroup [Tag]+csgTags = lens _csgTags (\s a -> s { _csgTags = a }) . _List++instance FromXML ClusterSecurityGroup where+ parseXML x = ClusterSecurityGroup+ <$> x .@? "ClusterSecurityGroupName"+ <*> x .@? "Description"+ <*> x .@ "EC2SecurityGroups"+ <*> x .@ "IPRanges"+ <*> x .@ "Tags"++instance ToQuery ClusterSecurityGroup where+ toQuery ClusterSecurityGroup{..} = mconcat+ [ "ClusterSecurityGroupName" =? _csgClusterSecurityGroupName+ , "Description" =? _csgDescription+ , "EC2SecurityGroups" =? _csgEC2SecurityGroups+ , "IPRanges" =? _csgIPRanges+ , "Tags" =? _csgTags+ ]++data DefaultClusterParameters = DefaultClusterParameters+ { _dcpMarker :: Maybe Text+ , _dcpParameterGroupFamily :: Maybe Text+ , _dcpParameters :: List "Parameter" Parameter+ } deriving (Eq, Show)++-- | 'DefaultClusterParameters' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dcpMarker' @::@ 'Maybe' 'Text'+--+-- * 'dcpParameterGroupFamily' @::@ 'Maybe' 'Text'+--+-- * 'dcpParameters' @::@ ['Parameter']+--+defaultClusterParameters :: DefaultClusterParameters+defaultClusterParameters = DefaultClusterParameters+ { _dcpParameterGroupFamily = Nothing+ , _dcpMarker = Nothing+ , _dcpParameters = mempty+ }++-- | A value that indicates the starting point for the next set of response+-- records in a subsequent request. If a value is returned in a response,+-- you can retrieve the next set of records by providing this returned+-- marker value in the Marker parameter and retrying the command. If the+-- Marker field is empty, all response records have been retrieved for the+-- request.+dcpMarker :: Lens' DefaultClusterParameters (Maybe Text)+dcpMarker = lens _dcpMarker (\s a -> s { _dcpMarker = a })++-- | The name of the cluster parameter group family to which the engine+-- default parameters apply.+dcpParameterGroupFamily :: Lens' DefaultClusterParameters (Maybe Text)+dcpParameterGroupFamily =+ lens _dcpParameterGroupFamily (\s a -> s { _dcpParameterGroupFamily = a })++-- | The list of cluster default parameters.+dcpParameters :: Lens' DefaultClusterParameters [Parameter]+dcpParameters = lens _dcpParameters (\s a -> s { _dcpParameters = a }) . _List++instance FromXML DefaultClusterParameters where+ parseXML x = DefaultClusterParameters+ <$> x .@? "Marker"+ <*> x .@? "ParameterGroupFamily"+ <*> x .@ "Parameters"++instance ToQuery DefaultClusterParameters where+ toQuery DefaultClusterParameters{..} = mconcat+ [ "Marker" =? _dcpMarker+ , "ParameterGroupFamily" =? _dcpParameterGroupFamily+ , "Parameters" =? _dcpParameters+ ]++data ClusterSubnetGroup = ClusterSubnetGroup+ { _csg1ClusterSubnetGroupName :: Maybe Text+ , _csg1Description :: Maybe Text+ , _csg1SubnetGroupStatus :: Maybe Text+ , _csg1Subnets :: List "Subnet" Subnet+ , _csg1Tags :: List "Tag" Tag+ , _csg1VpcId :: Maybe Text+ } deriving (Eq, Show)++-- | 'ClusterSubnetGroup' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'csg1ClusterSubnetGroupName' @::@ 'Maybe' 'Text'+--+-- * 'csg1Description' @::@ 'Maybe' 'Text'+--+-- * 'csg1SubnetGroupStatus' @::@ 'Maybe' 'Text'+--+-- * 'csg1Subnets' @::@ ['Subnet']+--+-- * 'csg1Tags' @::@ ['Tag']+--+-- * 'csg1VpcId' @::@ 'Maybe' 'Text'+--+clusterSubnetGroup :: ClusterSubnetGroup+clusterSubnetGroup = ClusterSubnetGroup+ { _csg1ClusterSubnetGroupName = Nothing+ , _csg1Description = Nothing+ , _csg1VpcId = Nothing+ , _csg1SubnetGroupStatus = Nothing+ , _csg1Subnets = mempty+ , _csg1Tags = mempty+ }++-- | The name of the cluster subnet group.+csg1ClusterSubnetGroupName :: Lens' ClusterSubnetGroup (Maybe Text)+csg1ClusterSubnetGroupName =+ lens _csg1ClusterSubnetGroupName+ (\s a -> s { _csg1ClusterSubnetGroupName = a })++-- | The description of the cluster subnet group.+csg1Description :: Lens' ClusterSubnetGroup (Maybe Text)+csg1Description = lens _csg1Description (\s a -> s { _csg1Description = a })++-- | The status of the cluster subnet group. Possible values are Complete,+-- Incomplete and Invalid.+csg1SubnetGroupStatus :: Lens' ClusterSubnetGroup (Maybe Text)+csg1SubnetGroupStatus =+ lens _csg1SubnetGroupStatus (\s a -> s { _csg1SubnetGroupStatus = a })++-- | A list of the VPC Subnet elements.+csg1Subnets :: Lens' ClusterSubnetGroup [Subnet]+csg1Subnets = lens _csg1Subnets (\s a -> s { _csg1Subnets = a }) . _List++-- | The list of tags for the cluster subnet group.+csg1Tags :: Lens' ClusterSubnetGroup [Tag]+csg1Tags = lens _csg1Tags (\s a -> s { _csg1Tags = a }) . _List++-- | The VPC ID of the cluster subnet group.+csg1VpcId :: Lens' ClusterSubnetGroup (Maybe Text)+csg1VpcId = lens _csg1VpcId (\s a -> s { _csg1VpcId = a })++instance FromXML ClusterSubnetGroup where+ parseXML x = ClusterSubnetGroup+ <$> x .@? "ClusterSubnetGroupName"+ <*> x .@? "Description"+ <*> x .@? "SubnetGroupStatus"+ <*> x .@ "Subnets"+ <*> x .@ "Tags"+ <*> x .@? "VpcId"++instance ToQuery ClusterSubnetGroup where+ toQuery ClusterSubnetGroup{..} = mconcat+ [ "ClusterSubnetGroupName" =? _csg1ClusterSubnetGroupName+ , "Description" =? _csg1Description+ , "SubnetGroupStatus" =? _csg1SubnetGroupStatus+ , "Subnets" =? _csg1Subnets+ , "Tags" =? _csg1Tags+ , "VpcId" =? _csg1VpcId+ ]++data EventInfoMap = EventInfoMap+ { _eimEventCategories :: List "EventCategory" Text+ , _eimEventDescription :: Maybe Text+ , _eimEventId :: Maybe Text+ , _eimSeverity :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'EventInfoMap' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'eimEventCategories' @::@ ['Text']+--+-- * 'eimEventDescription' @::@ 'Maybe' 'Text'+--+-- * 'eimEventId' @::@ 'Maybe' 'Text'+--+-- * 'eimSeverity' @::@ 'Maybe' 'Text'+--+eventInfoMap :: EventInfoMap+eventInfoMap = EventInfoMap+ { _eimEventId = Nothing+ , _eimEventCategories = mempty+ , _eimEventDescription = Nothing+ , _eimSeverity = Nothing+ }++-- | The category of an Amazon Redshift event.+eimEventCategories :: Lens' EventInfoMap [Text]+eimEventCategories =+ lens _eimEventCategories (\s a -> s { _eimEventCategories = a })+ . _List++-- | The description of an Amazon Redshift event.+eimEventDescription :: Lens' EventInfoMap (Maybe Text)+eimEventDescription =+ lens _eimEventDescription (\s a -> s { _eimEventDescription = a })++-- | The identifier of an Amazon Redshift event.+eimEventId :: Lens' EventInfoMap (Maybe Text)+eimEventId = lens _eimEventId (\s a -> s { _eimEventId = a })++-- | The severity of the event. Values: ERROR, INFO.+eimSeverity :: Lens' EventInfoMap (Maybe Text)+eimSeverity = lens _eimSeverity (\s a -> s { _eimSeverity = a })++instance FromXML EventInfoMap where+ parseXML x = EventInfoMap+ <$> x .@ "EventCategories"+ <*> x .@? "EventDescription"+ <*> x .@? "EventId"+ <*> x .@? "Severity"++instance ToQuery EventInfoMap where+ toQuery EventInfoMap{..} = mconcat+ [ "EventCategories" =? _eimEventCategories+ , "EventDescription" =? _eimEventDescription+ , "EventId" =? _eimEventId+ , "Severity" =? _eimSeverity+ ]++data ClusterSecurityGroupMembership = ClusterSecurityGroupMembership+ { _csgmClusterSecurityGroupName :: Maybe Text+ , _csgmStatus :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'ClusterSecurityGroupMembership' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'csgmClusterSecurityGroupName' @::@ 'Maybe' 'Text'+--+-- * 'csgmStatus' @::@ 'Maybe' 'Text'+--+clusterSecurityGroupMembership :: ClusterSecurityGroupMembership+clusterSecurityGroupMembership = ClusterSecurityGroupMembership+ { _csgmClusterSecurityGroupName = Nothing+ , _csgmStatus = Nothing+ }++-- | The name of the cluster security group.+csgmClusterSecurityGroupName :: Lens' ClusterSecurityGroupMembership (Maybe Text)+csgmClusterSecurityGroupName =+ lens _csgmClusterSecurityGroupName+ (\s a -> s { _csgmClusterSecurityGroupName = a })++-- | The status of the cluster security group.+csgmStatus :: Lens' ClusterSecurityGroupMembership (Maybe Text)+csgmStatus = lens _csgmStatus (\s a -> s { _csgmStatus = a })++instance FromXML ClusterSecurityGroupMembership where+ parseXML x = ClusterSecurityGroupMembership+ <$> x .@? "ClusterSecurityGroupName"+ <*> x .@? "Status"++instance ToQuery ClusterSecurityGroupMembership where+ toQuery ClusterSecurityGroupMembership{..} = mconcat+ [ "ClusterSecurityGroupName" =? _csgmClusterSecurityGroupName+ , "Status" =? _csgmStatus+ ]++data ReservedNodeOffering = ReservedNodeOffering+ { _rnoCurrencyCode :: Maybe Text+ , _rnoDuration :: Maybe Int+ , _rnoFixedPrice :: Maybe Double+ , _rnoNodeType :: Maybe Text+ , _rnoOfferingType :: Maybe Text+ , _rnoRecurringCharges :: List "RecurringCharge" RecurringCharge+ , _rnoReservedNodeOfferingId :: Maybe Text+ , _rnoUsagePrice :: Maybe Double+ } deriving (Eq, Show)++-- | 'ReservedNodeOffering' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rnoCurrencyCode' @::@ 'Maybe' 'Text'+--+-- * 'rnoDuration' @::@ 'Maybe' 'Int'+--+-- * 'rnoFixedPrice' @::@ 'Maybe' 'Double'+--+-- * 'rnoNodeType' @::@ 'Maybe' 'Text'+--+-- * 'rnoOfferingType' @::@ 'Maybe' 'Text'+--+-- * 'rnoRecurringCharges' @::@ ['RecurringCharge']+--+-- * 'rnoReservedNodeOfferingId' @::@ 'Maybe' 'Text'+--+-- * 'rnoUsagePrice' @::@ 'Maybe' 'Double'+--+reservedNodeOffering :: ReservedNodeOffering+reservedNodeOffering = ReservedNodeOffering+ { _rnoReservedNodeOfferingId = Nothing+ , _rnoNodeType = Nothing+ , _rnoDuration = Nothing+ , _rnoFixedPrice = Nothing+ , _rnoUsagePrice = Nothing+ , _rnoCurrencyCode = Nothing+ , _rnoOfferingType = Nothing+ , _rnoRecurringCharges = mempty+ }++-- | The currency code for the compute nodes offering.+rnoCurrencyCode :: Lens' ReservedNodeOffering (Maybe Text)+rnoCurrencyCode = lens _rnoCurrencyCode (\s a -> s { _rnoCurrencyCode = a })++-- | The duration, in seconds, for which the offering will reserve the node.+rnoDuration :: Lens' ReservedNodeOffering (Maybe Int)+rnoDuration = lens _rnoDuration (\s a -> s { _rnoDuration = a })++-- | The upfront fixed charge you will pay to purchase the specific reserved+-- node offering.+rnoFixedPrice :: Lens' ReservedNodeOffering (Maybe Double)+rnoFixedPrice = lens _rnoFixedPrice (\s a -> s { _rnoFixedPrice = a })++-- | The node type offered by the reserved node offering.+rnoNodeType :: Lens' ReservedNodeOffering (Maybe Text)+rnoNodeType = lens _rnoNodeType (\s a -> s { _rnoNodeType = a })++-- | The anticipated utilization of the reserved node, as defined in the+-- reserved node offering.+rnoOfferingType :: Lens' ReservedNodeOffering (Maybe Text)+rnoOfferingType = lens _rnoOfferingType (\s a -> s { _rnoOfferingType = a })++-- | The charge to your account regardless of whether you are creating any+-- clusters using the node offering. Recurring charges are only in effect+-- for heavy-utilization reserved nodes.+rnoRecurringCharges :: Lens' ReservedNodeOffering [RecurringCharge]+rnoRecurringCharges =+ lens _rnoRecurringCharges (\s a -> s { _rnoRecurringCharges = a })+ . _List++-- | The offering identifier.+rnoReservedNodeOfferingId :: Lens' ReservedNodeOffering (Maybe Text)+rnoReservedNodeOfferingId =+ lens _rnoReservedNodeOfferingId+ (\s a -> s { _rnoReservedNodeOfferingId = a })++-- | The rate you are charged for each hour the cluster that is using the+-- offering is running.+rnoUsagePrice :: Lens' ReservedNodeOffering (Maybe Double)+rnoUsagePrice = lens _rnoUsagePrice (\s a -> s { _rnoUsagePrice = a })++instance FromXML ReservedNodeOffering where+ parseXML x = ReservedNodeOffering+ <$> x .@? "CurrencyCode"+ <*> x .@? "Duration"+ <*> x .@? "FixedPrice"+ <*> x .@? "NodeType"+ <*> x .@? "OfferingType"+ <*> x .@ "RecurringCharges"+ <*> x .@? "ReservedNodeOfferingId"+ <*> x .@? "UsagePrice"++instance ToQuery ReservedNodeOffering where+ toQuery ReservedNodeOffering{..} = mconcat+ [ "CurrencyCode" =? _rnoCurrencyCode+ , "Duration" =? _rnoDuration+ , "FixedPrice" =? _rnoFixedPrice+ , "NodeType" =? _rnoNodeType+ , "OfferingType" =? _rnoOfferingType+ , "RecurringCharges" =? _rnoRecurringCharges+ , "ReservedNodeOfferingId" =? _rnoReservedNodeOfferingId+ , "UsagePrice" =? _rnoUsagePrice+ ]++data ReservedNode = ReservedNode+ { _rnCurrencyCode :: Maybe Text+ , _rnDuration :: Maybe Int+ , _rnFixedPrice :: Maybe Double+ , _rnNodeCount :: Maybe Int+ , _rnNodeType :: Maybe Text+ , _rnOfferingType :: Maybe Text+ , _rnRecurringCharges :: List "RecurringCharge" RecurringCharge+ , _rnReservedNodeId :: Maybe Text+ , _rnReservedNodeOfferingId :: Maybe Text+ , _rnStartTime :: Maybe RFC822+ , _rnState :: Maybe Text+ , _rnUsagePrice :: Maybe Double+ } deriving (Eq, Show)++-- | 'ReservedNode' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rnCurrencyCode' @::@ 'Maybe' 'Text'+--+-- * 'rnDuration' @::@ 'Maybe' 'Int'+--+-- * 'rnFixedPrice' @::@ 'Maybe' 'Double'+--+-- * 'rnNodeCount' @::@ 'Maybe' 'Int'+--+-- * 'rnNodeType' @::@ 'Maybe' 'Text'+--+-- * 'rnOfferingType' @::@ 'Maybe' 'Text'+--+-- * 'rnRecurringCharges' @::@ ['RecurringCharge']+--+-- * 'rnReservedNodeId' @::@ 'Maybe' 'Text'+--+-- * 'rnReservedNodeOfferingId' @::@ 'Maybe' 'Text'+--+-- * 'rnStartTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'rnState' @::@ 'Maybe' 'Text'+--+-- * 'rnUsagePrice' @::@ 'Maybe' 'Double'+--+reservedNode :: ReservedNode+reservedNode = ReservedNode+ { _rnReservedNodeId = Nothing+ , _rnReservedNodeOfferingId = Nothing+ , _rnNodeType = Nothing+ , _rnStartTime = Nothing+ , _rnDuration = Nothing+ , _rnFixedPrice = Nothing+ , _rnUsagePrice = Nothing+ , _rnCurrencyCode = Nothing+ , _rnNodeCount = Nothing+ , _rnState = Nothing+ , _rnOfferingType = Nothing+ , _rnRecurringCharges = mempty+ }++-- | The currency code for the reserved cluster.+rnCurrencyCode :: Lens' ReservedNode (Maybe Text)+rnCurrencyCode = lens _rnCurrencyCode (\s a -> s { _rnCurrencyCode = a })++-- | The duration of the node reservation in seconds.+rnDuration :: Lens' ReservedNode (Maybe Int)+rnDuration = lens _rnDuration (\s a -> s { _rnDuration = a })++-- | The fixed cost Amazon Redshift charged you for this reserved node.+rnFixedPrice :: Lens' ReservedNode (Maybe Double)+rnFixedPrice = lens _rnFixedPrice (\s a -> s { _rnFixedPrice = a })++-- | The number of reserved compute nodes.+rnNodeCount :: Lens' ReservedNode (Maybe Int)+rnNodeCount = lens _rnNodeCount (\s a -> s { _rnNodeCount = a })++-- | The node type of the reserved node.+rnNodeType :: Lens' ReservedNode (Maybe Text)+rnNodeType = lens _rnNodeType (\s a -> s { _rnNodeType = a })++-- | The anticipated utilization of the reserved node, as defined in the+-- reserved node offering.+rnOfferingType :: Lens' ReservedNode (Maybe Text)+rnOfferingType = lens _rnOfferingType (\s a -> s { _rnOfferingType = a })++-- | The recurring charges for the reserved node.+rnRecurringCharges :: Lens' ReservedNode [RecurringCharge]+rnRecurringCharges =+ lens _rnRecurringCharges (\s a -> s { _rnRecurringCharges = a })+ . _List++-- | The unique identifier for the reservation.+rnReservedNodeId :: Lens' ReservedNode (Maybe Text)+rnReservedNodeId = lens _rnReservedNodeId (\s a -> s { _rnReservedNodeId = a })++-- | The identifier for the reserved node offering.+rnReservedNodeOfferingId :: Lens' ReservedNode (Maybe Text)+rnReservedNodeOfferingId =+ lens _rnReservedNodeOfferingId+ (\s a -> s { _rnReservedNodeOfferingId = a })++-- | The time the reservation started. You purchase a reserved node offering+-- for a duration. This is the start time of that duration.+rnStartTime :: Lens' ReservedNode (Maybe UTCTime)+rnStartTime = lens _rnStartTime (\s a -> s { _rnStartTime = a }) . mapping _Time++-- | The state of the reserved compute node. Possible Values:+-- pending-payment-This reserved node has recently been purchased, and the+-- sale has been approved, but payment has not yet been confirmed.+-- active-This reserved node is owned by the caller and is available for+-- use. payment-failed-Payment failed for the purchase attempt.+rnState :: Lens' ReservedNode (Maybe Text)+rnState = lens _rnState (\s a -> s { _rnState = a })++-- | The hourly rate Amazon Redshift charge you for this reserved node.+rnUsagePrice :: Lens' ReservedNode (Maybe Double)+rnUsagePrice = lens _rnUsagePrice (\s a -> s { _rnUsagePrice = a })++instance FromXML ReservedNode where+ parseXML x = ReservedNode+ <$> x .@? "CurrencyCode"+ <*> x .@? "Duration"+ <*> x .@? "FixedPrice"+ <*> x .@? "NodeCount"+ <*> x .@? "NodeType"+ <*> x .@? "OfferingType"+ <*> x .@ "RecurringCharges"+ <*> x .@? "ReservedNodeId"+ <*> x .@? "ReservedNodeOfferingId"+ <*> x .@? "StartTime"+ <*> x .@? "State"+ <*> x .@? "UsagePrice"++instance ToQuery ReservedNode where+ toQuery ReservedNode{..} = mconcat+ [ "CurrencyCode" =? _rnCurrencyCode+ , "Duration" =? _rnDuration+ , "FixedPrice" =? _rnFixedPrice+ , "NodeCount" =? _rnNodeCount+ , "NodeType" =? _rnNodeType+ , "OfferingType" =? _rnOfferingType+ , "RecurringCharges" =? _rnRecurringCharges+ , "ReservedNodeId" =? _rnReservedNodeId+ , "ReservedNodeOfferingId" =? _rnReservedNodeOfferingId+ , "StartTime" =? _rnStartTime+ , "State" =? _rnState+ , "UsagePrice" =? _rnUsagePrice+ ]++data LoggingStatus = LoggingStatus+ { _lsBucketName :: Maybe Text+ , _lsLastFailureMessage :: Maybe Text+ , _lsLastFailureTime :: Maybe RFC822+ , _lsLastSuccessfulDeliveryTime :: Maybe RFC822+ , _lsLoggingEnabled :: Maybe Bool+ , _lsS3KeyPrefix :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'LoggingStatus' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'lsBucketName' @::@ 'Maybe' 'Text'+--+-- * 'lsLastFailureMessage' @::@ 'Maybe' 'Text'+--+-- * 'lsLastFailureTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'lsLastSuccessfulDeliveryTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'lsLoggingEnabled' @::@ 'Maybe' 'Bool'+--+-- * 'lsS3KeyPrefix' @::@ 'Maybe' 'Text'+--+loggingStatus :: LoggingStatus+loggingStatus = LoggingStatus+ { _lsLoggingEnabled = Nothing+ , _lsBucketName = Nothing+ , _lsS3KeyPrefix = Nothing+ , _lsLastSuccessfulDeliveryTime = Nothing+ , _lsLastFailureTime = Nothing+ , _lsLastFailureMessage = Nothing+ }++-- | The name of the S3 bucket where the log files are stored.+lsBucketName :: Lens' LoggingStatus (Maybe Text)+lsBucketName = lens _lsBucketName (\s a -> s { _lsBucketName = a })++-- | The message indicating that logs failed to be delivered.+lsLastFailureMessage :: Lens' LoggingStatus (Maybe Text)+lsLastFailureMessage =+ lens _lsLastFailureMessage (\s a -> s { _lsLastFailureMessage = a })++-- | The last time when logs failed to be delivered.+lsLastFailureTime :: Lens' LoggingStatus (Maybe UTCTime)+lsLastFailureTime =+ lens _lsLastFailureTime (\s a -> s { _lsLastFailureTime = a })+ . mapping _Time++-- | The last time when logs were delivered.+lsLastSuccessfulDeliveryTime :: Lens' LoggingStatus (Maybe UTCTime)+lsLastSuccessfulDeliveryTime =+ lens _lsLastSuccessfulDeliveryTime+ (\s a -> s { _lsLastSuccessfulDeliveryTime = a })+ . mapping _Time++-- | true if logging is on, false if logging is off.+lsLoggingEnabled :: Lens' LoggingStatus (Maybe Bool)+lsLoggingEnabled = lens _lsLoggingEnabled (\s a -> s { _lsLoggingEnabled = a })++-- | The prefix applied to the log file names.+lsS3KeyPrefix :: Lens' LoggingStatus (Maybe Text)+lsS3KeyPrefix = lens _lsS3KeyPrefix (\s a -> s { _lsS3KeyPrefix = a })++instance FromXML LoggingStatus where+ parseXML x = LoggingStatus+ <$> x .@? "BucketName"+ <*> x .@? "LastFailureMessage"+ <*> x .@? "LastFailureTime"+ <*> x .@? "LastSuccessfulDeliveryTime"+ <*> x .@? "LoggingEnabled"+ <*> x .@? "S3KeyPrefix"++instance ToQuery LoggingStatus where+ toQuery LoggingStatus{..} = mconcat+ [ "BucketName" =? _lsBucketName+ , "LastFailureMessage" =? _lsLastFailureMessage+ , "LastFailureTime" =? _lsLastFailureTime+ , "LastSuccessfulDeliveryTime" =? _lsLastSuccessfulDeliveryTime+ , "LoggingEnabled" =? _lsLoggingEnabled+ , "S3KeyPrefix" =? _lsS3KeyPrefix+ ]++newtype AccountWithRestoreAccess = AccountWithRestoreAccess+ { _awraAccountId :: Maybe Text+ } deriving (Eq, Ord, Show, Monoid)++-- | 'AccountWithRestoreAccess' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'awraAccountId' @::@ 'Maybe' 'Text'+--+accountWithRestoreAccess :: AccountWithRestoreAccess+accountWithRestoreAccess = AccountWithRestoreAccess+ { _awraAccountId = Nothing+ }++-- | The identifier of an AWS customer account authorized to restore a+-- snapshot.+awraAccountId :: Lens' AccountWithRestoreAccess (Maybe Text)+awraAccountId = lens _awraAccountId (\s a -> s { _awraAccountId = a })++instance FromXML AccountWithRestoreAccess where+ parseXML x = AccountWithRestoreAccess+ <$> x .@? "AccountId"++instance ToQuery AccountWithRestoreAccess where+ toQuery AccountWithRestoreAccess{..} = mconcat+ [ "AccountId" =? _awraAccountId+ ]++newtype AvailabilityZone = AvailabilityZone+ { _azName :: Maybe Text+ } deriving (Eq, Ord, Show, Monoid)++-- | 'AvailabilityZone' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'azName' @::@ 'Maybe' 'Text'+--+availabilityZone :: AvailabilityZone+availabilityZone = AvailabilityZone+ { _azName = Nothing+ }++-- | The name of the availability zone.+azName :: Lens' AvailabilityZone (Maybe Text)+azName = lens _azName (\s a -> s { _azName = a })++instance FromXML AvailabilityZone where+ parseXML x = AvailabilityZone+ <$> x .@? "Name"++instance ToQuery AvailabilityZone where+ toQuery AvailabilityZone{..} = mconcat+ [ "Name" =? _azName+ ]++data EventSubscription = EventSubscription+ { _esCustSubscriptionId :: Maybe Text+ , _esCustomerAwsId :: Maybe Text+ , _esEnabled :: Maybe Bool+ , _esEventCategoriesList :: List "EventCategory" Text+ , _esSeverity :: Maybe Text+ , _esSnsTopicArn :: Maybe Text+ , _esSourceIdsList :: List "SourceId" Text+ , _esSourceType :: Maybe Text+ , _esStatus :: Maybe Text+ , _esSubscriptionCreationTime :: Maybe RFC822+ , _esTags :: List "Tag" Tag+ } deriving (Eq, Show)++-- | 'EventSubscription' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'esCustSubscriptionId' @::@ 'Maybe' 'Text'+--+-- * 'esCustomerAwsId' @::@ 'Maybe' 'Text'+--+-- * 'esEnabled' @::@ 'Maybe' 'Bool'+--+-- * 'esEventCategoriesList' @::@ ['Text']+--+-- * 'esSeverity' @::@ 'Maybe' 'Text'+--+-- * 'esSnsTopicArn' @::@ 'Maybe' 'Text'+--+-- * 'esSourceIdsList' @::@ ['Text']+--+-- * 'esSourceType' @::@ 'Maybe' 'Text'+--+-- * 'esStatus' @::@ 'Maybe' 'Text'+--+-- * 'esSubscriptionCreationTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'esTags' @::@ ['Tag']+--+eventSubscription :: EventSubscription+eventSubscription = EventSubscription+ { _esCustomerAwsId = Nothing+ , _esCustSubscriptionId = Nothing+ , _esSnsTopicArn = Nothing+ , _esStatus = Nothing+ , _esSubscriptionCreationTime = Nothing+ , _esSourceType = Nothing+ , _esSourceIdsList = mempty+ , _esEventCategoriesList = mempty+ , _esSeverity = Nothing+ , _esEnabled = Nothing+ , _esTags = mempty+ }++-- | The name of the Amazon Redshift event notification subscription.+esCustSubscriptionId :: Lens' EventSubscription (Maybe Text)+esCustSubscriptionId =+ lens _esCustSubscriptionId (\s a -> s { _esCustSubscriptionId = a })++-- | The AWS customer account associated with the Amazon Redshift event+-- notification subscription.+esCustomerAwsId :: Lens' EventSubscription (Maybe Text)+esCustomerAwsId = lens _esCustomerAwsId (\s a -> s { _esCustomerAwsId = a })++-- | A Boolean value indicating whether the subscription is enabled. true+-- indicates the subscription is enabled.+esEnabled :: Lens' EventSubscription (Maybe Bool)+esEnabled = lens _esEnabled (\s a -> s { _esEnabled = a })++-- | The list of Amazon Redshift event categories specified in the event+-- notification subscription. Values: Configuration, Management, Monitoring,+-- Security.+esEventCategoriesList :: Lens' EventSubscription [Text]+esEventCategoriesList =+ lens _esEventCategoriesList (\s a -> s { _esEventCategoriesList = a })+ . _List++-- | The event severity specified in the Amazon Redshift event notification+-- subscription. Values: ERROR, INFO.+esSeverity :: Lens' EventSubscription (Maybe Text)+esSeverity = lens _esSeverity (\s a -> s { _esSeverity = a })++-- | The Amazon Resource Name (ARN) of the Amazon SNS topic used by the event+-- notification subscription.+esSnsTopicArn :: Lens' EventSubscription (Maybe Text)+esSnsTopicArn = lens _esSnsTopicArn (\s a -> s { _esSnsTopicArn = a })++-- | A list of the sources that publish events to the Amazon Redshift event+-- notification subscription.+esSourceIdsList :: Lens' EventSubscription [Text]+esSourceIdsList = lens _esSourceIdsList (\s a -> s { _esSourceIdsList = a }) . _List++-- | The source type of the events returned the Amazon Redshift event+-- notification, such as cluster, or cluster-snapshot.+esSourceType :: Lens' EventSubscription (Maybe Text)+esSourceType = lens _esSourceType (\s a -> s { _esSourceType = a })++-- | The status of the Amazon Redshift event notification subscription.+-- Constraints: Can be one of the following: active | no-permission |+-- topic-not-exist The status "no-permission" indicates that Amazon Redshift+-- no longer has permission to post to the Amazon SNS topic. The status+-- "topic-not-exist" indicates that the topic was deleted after the+-- subscription was created.+esStatus :: Lens' EventSubscription (Maybe Text)+esStatus = lens _esStatus (\s a -> s { _esStatus = a })++-- | The date and time the Amazon Redshift event notification subscription was+-- created.+esSubscriptionCreationTime :: Lens' EventSubscription (Maybe UTCTime)+esSubscriptionCreationTime =+ lens _esSubscriptionCreationTime+ (\s a -> s { _esSubscriptionCreationTime = a })+ . mapping _Time++-- | The list of tags for the event subscription.+esTags :: Lens' EventSubscription [Tag]+esTags = lens _esTags (\s a -> s { _esTags = a }) . _List++instance FromXML EventSubscription where+ parseXML x = EventSubscription+ <$> x .@? "CustSubscriptionId"+ <*> x .@? "CustomerAwsId"+ <*> x .@? "Enabled"+ <*> x .@ "EventCategoriesList"+ <*> x .@? "Severity"+ <*> x .@? "SnsTopicArn"+ <*> x .@ "SourceIdsList"+ <*> x .@? "SourceType"+ <*> x .@? "Status"+ <*> x .@? "SubscriptionCreationTime"+ <*> x .@ "Tags"++instance ToQuery EventSubscription where+ toQuery EventSubscription{..} = mconcat+ [ "CustSubscriptionId" =? _esCustSubscriptionId+ , "CustomerAwsId" =? _esCustomerAwsId+ , "Enabled" =? _esEnabled+ , "EventCategoriesList" =? _esEventCategoriesList+ , "Severity" =? _esSeverity+ , "SnsTopicArn" =? _esSnsTopicArn+ , "SourceIdsList" =? _esSourceIdsList+ , "SourceType" =? _esSourceType+ , "Status" =? _esStatus+ , "SubscriptionCreationTime" =? _esSubscriptionCreationTime+ , "Tags" =? _esTags+ ]++data HsmStatus = HsmStatus+ { _hsHsmClientCertificateIdentifier :: Maybe Text+ , _hsHsmConfigurationIdentifier :: Maybe Text+ , _hsStatus :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'HsmStatus' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'hsHsmClientCertificateIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'hsHsmConfigurationIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'hsStatus' @::@ 'Maybe' 'Text'+--+hsmStatus :: HsmStatus+hsmStatus = HsmStatus+ { _hsHsmClientCertificateIdentifier = Nothing+ , _hsHsmConfigurationIdentifier = Nothing+ , _hsStatus = Nothing+ }++-- | Specifies the name of the HSM client certificate the Amazon Redshift+-- cluster uses to retrieve the data encryption keys stored in an HSM.+hsHsmClientCertificateIdentifier :: Lens' HsmStatus (Maybe Text)+hsHsmClientCertificateIdentifier =+ lens _hsHsmClientCertificateIdentifier+ (\s a -> s { _hsHsmClientCertificateIdentifier = a })++-- | Specifies the name of the HSM configuration that contains the information+-- the Amazon Redshift cluster can use to retrieve and store keys in an HSM.+hsHsmConfigurationIdentifier :: Lens' HsmStatus (Maybe Text)+hsHsmConfigurationIdentifier =+ lens _hsHsmConfigurationIdentifier+ (\s a -> s { _hsHsmConfigurationIdentifier = a })++-- | Reports whether the Amazon Redshift cluster has finished applying any HSM+-- settings changes specified in a modify cluster command. Values: active,+-- applying.+hsStatus :: Lens' HsmStatus (Maybe Text)+hsStatus = lens _hsStatus (\s a -> s { _hsStatus = a })++instance FromXML HsmStatus where+ parseXML x = HsmStatus+ <$> x .@? "HsmClientCertificateIdentifier"+ <*> x .@? "HsmConfigurationIdentifier"+ <*> x .@? "Status"++instance ToQuery HsmStatus where+ toQuery HsmStatus{..} = mconcat+ [ "HsmClientCertificateIdentifier" =? _hsHsmClientCertificateIdentifier+ , "HsmConfigurationIdentifier" =? _hsHsmConfigurationIdentifier+ , "Status" =? _hsStatus+ ]++data ClusterParameterGroupNameMessage = ClusterParameterGroupNameMessage+ { _cpgnmParameterGroupName :: Maybe Text+ , _cpgnmParameterGroupStatus :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'ClusterParameterGroupNameMessage' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'cpgnmParameterGroupName' @::@ 'Maybe' 'Text'+--+-- * 'cpgnmParameterGroupStatus' @::@ 'Maybe' 'Text'+--+clusterParameterGroupNameMessage :: ClusterParameterGroupNameMessage+clusterParameterGroupNameMessage = ClusterParameterGroupNameMessage+ { _cpgnmParameterGroupName = Nothing+ , _cpgnmParameterGroupStatus = Nothing+ }++-- | The name of the cluster parameter group.+cpgnmParameterGroupName :: Lens' ClusterParameterGroupNameMessage (Maybe Text)+cpgnmParameterGroupName =+ lens _cpgnmParameterGroupName (\s a -> s { _cpgnmParameterGroupName = a })++-- | The status of the parameter group. For example, if you made a change to a+-- parameter group name-value pair, then the change could be pending a+-- reboot of an associated cluster.+cpgnmParameterGroupStatus :: Lens' ClusterParameterGroupNameMessage (Maybe Text)+cpgnmParameterGroupStatus =+ lens _cpgnmParameterGroupStatus+ (\s a -> s { _cpgnmParameterGroupStatus = a })++instance FromXML ClusterParameterGroupNameMessage where+ parseXML x = ClusterParameterGroupNameMessage+ <$> x .@? "ParameterGroupName"+ <*> x .@? "ParameterGroupStatus"++instance ToQuery ClusterParameterGroupNameMessage where+ toQuery ClusterParameterGroupNameMessage{..} = mconcat+ [ "ParameterGroupName" =? _cpgnmParameterGroupName+ , "ParameterGroupStatus" =? _cpgnmParameterGroupStatus+ ]++data ElasticIpStatus = ElasticIpStatus+ { _eisElasticIp :: Maybe Text+ , _eisStatus :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'ElasticIpStatus' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'eisElasticIp' @::@ 'Maybe' 'Text'+--+-- * 'eisStatus' @::@ 'Maybe' 'Text'+--+elasticIpStatus :: ElasticIpStatus+elasticIpStatus = ElasticIpStatus+ { _eisElasticIp = Nothing+ , _eisStatus = Nothing+ }++-- | The elastic IP (EIP) address for the cluster.+eisElasticIp :: Lens' ElasticIpStatus (Maybe Text)+eisElasticIp = lens _eisElasticIp (\s a -> s { _eisElasticIp = a })++-- | Describes the status of the elastic IP (EIP) address.+eisStatus :: Lens' ElasticIpStatus (Maybe Text)+eisStatus = lens _eisStatus (\s a -> s { _eisStatus = a })++instance FromXML ElasticIpStatus where+ parseXML x = ElasticIpStatus+ <$> x .@? "ElasticIp"+ <*> x .@? "Status"++instance ToQuery ElasticIpStatus where+ toQuery ElasticIpStatus{..} = mconcat+ [ "ElasticIp" =? _eisElasticIp+ , "Status" =? _eisStatus+ ]++data ClusterVersion = ClusterVersion+ { _cvClusterParameterGroupFamily :: Maybe Text+ , _cvClusterVersion :: Maybe Text+ , _cvDescription :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'ClusterVersion' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'cvClusterParameterGroupFamily' @::@ 'Maybe' 'Text'+--+-- * 'cvClusterVersion' @::@ 'Maybe' 'Text'+--+-- * 'cvDescription' @::@ 'Maybe' 'Text'+--+clusterVersion :: ClusterVersion+clusterVersion = ClusterVersion+ { _cvClusterVersion = Nothing+ , _cvClusterParameterGroupFamily = Nothing+ , _cvDescription = Nothing+ }++-- | The name of the cluster parameter group family for the cluster.+cvClusterParameterGroupFamily :: Lens' ClusterVersion (Maybe Text)+cvClusterParameterGroupFamily =+ lens _cvClusterParameterGroupFamily+ (\s a -> s { _cvClusterParameterGroupFamily = a })++-- | The version number used by the cluster.+cvClusterVersion :: Lens' ClusterVersion (Maybe Text)+cvClusterVersion = lens _cvClusterVersion (\s a -> s { _cvClusterVersion = a })++-- | The description of the cluster version.+cvDescription :: Lens' ClusterVersion (Maybe Text)+cvDescription = lens _cvDescription (\s a -> s { _cvDescription = a })++instance FromXML ClusterVersion where+ parseXML x = ClusterVersion+ <$> x .@? "ClusterParameterGroupFamily"+ <*> x .@? "ClusterVersion"+ <*> x .@? "Description"++instance ToQuery ClusterVersion where+ toQuery ClusterVersion{..} = mconcat+ [ "ClusterParameterGroupFamily" =? _cvClusterParameterGroupFamily+ , "ClusterVersion" =? _cvClusterVersion+ , "Description" =? _cvDescription+ ]++data RecurringCharge = RecurringCharge+ { _rcRecurringChargeAmount :: Maybe Double+ , _rcRecurringChargeFrequency :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'RecurringCharge' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rcRecurringChargeAmount' @::@ 'Maybe' 'Double'+--+-- * 'rcRecurringChargeFrequency' @::@ 'Maybe' 'Text'+--+recurringCharge :: RecurringCharge+recurringCharge = RecurringCharge+ { _rcRecurringChargeAmount = Nothing+ , _rcRecurringChargeFrequency = Nothing+ }++-- | The amount charged per the period of time specified by the recurring+-- charge frequency.+rcRecurringChargeAmount :: Lens' RecurringCharge (Maybe Double)+rcRecurringChargeAmount =+ lens _rcRecurringChargeAmount (\s a -> s { _rcRecurringChargeAmount = a })++-- | The frequency at which the recurring charge amount is applied.+rcRecurringChargeFrequency :: Lens' RecurringCharge (Maybe Text)+rcRecurringChargeFrequency =+ lens _rcRecurringChargeFrequency+ (\s a -> s { _rcRecurringChargeFrequency = a })++instance FromXML RecurringCharge where+ parseXML x = RecurringCharge+ <$> x .@? "RecurringChargeAmount"+ <*> x .@? "RecurringChargeFrequency"++instance ToQuery RecurringCharge where+ toQuery RecurringCharge{..} = mconcat+ [ "RecurringChargeAmount" =? _rcRecurringChargeAmount+ , "RecurringChargeFrequency" =? _rcRecurringChargeFrequency+ ]++data Endpoint = Endpoint+ { _eAddress :: Maybe Text+ , _ePort :: Maybe Int+ } deriving (Eq, Ord, Show)++-- | 'Endpoint' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'eAddress' @::@ 'Maybe' 'Text'+--+-- * 'ePort' @::@ 'Maybe' 'Int'+--+endpoint :: Endpoint+endpoint = Endpoint+ { _eAddress = Nothing+ , _ePort = Nothing+ }++-- | The DNS address of the Cluster.+eAddress :: Lens' Endpoint (Maybe Text)+eAddress = lens _eAddress (\s a -> s { _eAddress = a })++-- | The port that the database engine is listening on.+ePort :: Lens' Endpoint (Maybe Int)+ePort = lens _ePort (\s a -> s { _ePort = a })++instance FromXML Endpoint where+ parseXML x = Endpoint+ <$> x .@? "Address"+ <*> x .@? "Port"++instance ToQuery Endpoint where+ toQuery Endpoint{..} = mconcat+ [ "Address" =? _eAddress+ , "Port" =? _ePort+ ]++data IPRange = IPRange+ { _iprCIDRIP :: Maybe Text+ , _iprStatus :: Maybe Text+ , _iprTags :: List "Tag" Tag+ } deriving (Eq, Show)++-- | 'IPRange' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'iprCIDRIP' @::@ 'Maybe' 'Text'+--+-- * 'iprStatus' @::@ 'Maybe' 'Text'+--+-- * 'iprTags' @::@ ['Tag']+--+iprange :: IPRange+iprange = IPRange+ { _iprStatus = Nothing+ , _iprCIDRIP = Nothing+ , _iprTags = mempty+ }++-- | The IP range in Classless Inter-Domain Routing (CIDR) notation.+iprCIDRIP :: Lens' IPRange (Maybe Text)+iprCIDRIP = lens _iprCIDRIP (\s a -> s { _iprCIDRIP = a })++-- | The status of the IP range, for example, "authorized".+iprStatus :: Lens' IPRange (Maybe Text)+iprStatus = lens _iprStatus (\s a -> s { _iprStatus = a })++-- | The list of tags for the IP range.+iprTags :: Lens' IPRange [Tag]+iprTags = lens _iprTags (\s a -> s { _iprTags = a }) . _List++instance FromXML IPRange where+ parseXML x = IPRange+ <$> x .@? "CIDRIP"+ <*> x .@? "Status"+ <*> x .@ "Tags"++instance ToQuery IPRange where+ toQuery IPRange{..} = mconcat+ [ "CIDRIP" =? _iprCIDRIP+ , "Status" =? _iprStatus+ , "Tags" =? _iprTags+ ]++data TaggedResource = TaggedResource+ { _trResourceName :: Maybe Text+ , _trResourceType :: Maybe Text+ , _trTag :: Maybe Tag+ } deriving (Eq, Show)++-- | 'TaggedResource' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'trResourceName' @::@ 'Maybe' 'Text'+--+-- * 'trResourceType' @::@ 'Maybe' 'Text'+--+-- * 'trTag' @::@ 'Maybe' 'Tag'+--+taggedResource :: TaggedResource+taggedResource = TaggedResource+ { _trTag = Nothing+ , _trResourceName = Nothing+ , _trResourceType = Nothing+ }++-- | The Amazon Resource Name (ARN) with which the tag is associated. For+-- example, arn:aws:redshift:us-east-1:123456789:cluster:t1.+trResourceName :: Lens' TaggedResource (Maybe Text)+trResourceName = lens _trResourceName (\s a -> s { _trResourceName = a })++-- | The type of resource with which the tag is associated. Valid resource+-- types are: Cluster CIDR/IP EC2 security group Snapshot Cluster security+-- group Subnet group HSM connection HSM certificate Parameter group For+-- more information about Amazon Redshift resource types and constructing+-- ARNs, go to Constructing an Amazon Redshift Amazon Resource Name (ARN) in+-- the Amazon Redshift Cluster Management Guide.+trResourceType :: Lens' TaggedResource (Maybe Text)+trResourceType = lens _trResourceType (\s a -> s { _trResourceType = a })++-- | The tag for the resource.+trTag :: Lens' TaggedResource (Maybe Tag)+trTag = lens _trTag (\s a -> s { _trTag = a })++instance FromXML TaggedResource where+ parseXML x = TaggedResource+ <$> x .@? "ResourceName"+ <*> x .@? "ResourceType"+ <*> x .@? "Tag"++instance ToQuery TaggedResource where+ toQuery TaggedResource{..} = mconcat+ [ "ResourceName" =? _trResourceName+ , "ResourceType" =? _trResourceType+ , "Tag" =? _trTag+ ]++data EventCategoriesMap = EventCategoriesMap+ { _ecmEvents :: List "EventInfoMap" EventInfoMap+ , _ecmSourceType :: Maybe Text+ } deriving (Eq, Show)++-- | 'EventCategoriesMap' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ecmEvents' @::@ ['EventInfoMap']+--+-- * 'ecmSourceType' @::@ 'Maybe' 'Text'+--+eventCategoriesMap :: EventCategoriesMap+eventCategoriesMap = EventCategoriesMap+ { _ecmSourceType = Nothing+ , _ecmEvents = mempty+ }++-- | The events in the event category.+ecmEvents :: Lens' EventCategoriesMap [EventInfoMap]+ecmEvents = lens _ecmEvents (\s a -> s { _ecmEvents = a }) . _List++-- | The Amazon Redshift source type, such as cluster or cluster-snapshot,+-- that the returned categories belong to.+ecmSourceType :: Lens' EventCategoriesMap (Maybe Text)+ecmSourceType = lens _ecmSourceType (\s a -> s { _ecmSourceType = a })++instance FromXML EventCategoriesMap where+ parseXML x = EventCategoriesMap+ <$> x .@ "Events"+ <*> x .@? "SourceType"++instance ToQuery EventCategoriesMap where+ toQuery EventCategoriesMap{..} = mconcat+ [ "Events" =? _ecmEvents+ , "SourceType" =? _ecmSourceType+ ]++data HsmConfiguration = HsmConfiguration+ { _hcDescription :: Maybe Text+ , _hcHsmConfigurationIdentifier :: Maybe Text+ , _hcHsmIpAddress :: Maybe Text+ , _hcHsmPartitionName :: Maybe Text+ , _hcTags :: List "Tag" Tag+ } deriving (Eq, Show)++-- | 'HsmConfiguration' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'hcDescription' @::@ 'Maybe' 'Text'+--+-- * 'hcHsmConfigurationIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'hcHsmIpAddress' @::@ 'Maybe' 'Text'+--+-- * 'hcHsmPartitionName' @::@ 'Maybe' 'Text'+--+-- * 'hcTags' @::@ ['Tag']+--+hsmConfiguration :: HsmConfiguration+hsmConfiguration = HsmConfiguration+ { _hcHsmConfigurationIdentifier = Nothing+ , _hcDescription = Nothing+ , _hcHsmIpAddress = Nothing+ , _hcHsmPartitionName = Nothing+ , _hcTags = mempty+ }++-- | A text description of the HSM configuration.+hcDescription :: Lens' HsmConfiguration (Maybe Text)+hcDescription = lens _hcDescription (\s a -> s { _hcDescription = a })++-- | The name of the Amazon Redshift HSM configuration.+hcHsmConfigurationIdentifier :: Lens' HsmConfiguration (Maybe Text)+hcHsmConfigurationIdentifier =+ lens _hcHsmConfigurationIdentifier+ (\s a -> s { _hcHsmConfigurationIdentifier = a })++-- | The IP address that the Amazon Redshift cluster must use to access the+-- HSM.+hcHsmIpAddress :: Lens' HsmConfiguration (Maybe Text)+hcHsmIpAddress = lens _hcHsmIpAddress (\s a -> s { _hcHsmIpAddress = a })++-- | The name of the partition in the HSM where the Amazon Redshift clusters+-- will store their database encryption keys.+hcHsmPartitionName :: Lens' HsmConfiguration (Maybe Text)+hcHsmPartitionName =+ lens _hcHsmPartitionName (\s a -> s { _hcHsmPartitionName = a })++-- | The list of tags for the HSM configuration.+hcTags :: Lens' HsmConfiguration [Tag]+hcTags = lens _hcTags (\s a -> s { _hcTags = a }) . _List++instance FromXML HsmConfiguration where+ parseXML x = HsmConfiguration+ <$> x .@? "Description"+ <*> x .@? "HsmConfigurationIdentifier"+ <*> x .@? "HsmIpAddress"+ <*> x .@? "HsmPartitionName"+ <*> x .@ "Tags"++instance ToQuery HsmConfiguration where+ toQuery HsmConfiguration{..} = mconcat+ [ "Description" =? _hcDescription+ , "HsmConfigurationIdentifier" =? _hcHsmConfigurationIdentifier+ , "HsmIpAddress" =? _hcHsmIpAddress+ , "HsmPartitionName" =? _hcHsmPartitionName+ , "Tags" =? _hcTags+ ]++data PendingModifiedValues = PendingModifiedValues+ { _pmvAutomatedSnapshotRetentionPeriod :: Maybe Int+ , _pmvClusterIdentifier :: Maybe Text+ , _pmvClusterType :: Maybe Text+ , _pmvClusterVersion :: Maybe Text+ , _pmvMasterUserPassword :: Maybe Text+ , _pmvNodeType :: Maybe Text+ , _pmvNumberOfNodes :: Maybe Int+ } deriving (Eq, Ord, Show)++-- | 'PendingModifiedValues' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'pmvAutomatedSnapshotRetentionPeriod' @::@ 'Maybe' 'Int'+--+-- * 'pmvClusterIdentifier' @::@ 'Maybe' 'Text'+--+-- * 'pmvClusterType' @::@ 'Maybe' 'Text'+--+-- * 'pmvClusterVersion' @::@ 'Maybe' 'Text'+--+-- * 'pmvMasterUserPassword' @::@ 'Maybe' 'Text'+--+-- * 'pmvNodeType' @::@ 'Maybe' 'Text'+--+-- * 'pmvNumberOfNodes' @::@ 'Maybe' 'Int'+--+pendingModifiedValues :: PendingModifiedValues+pendingModifiedValues = PendingModifiedValues+ { _pmvMasterUserPassword = Nothing+ , _pmvNodeType = Nothing+ , _pmvNumberOfNodes = Nothing+ , _pmvClusterType = Nothing+ , _pmvClusterVersion = Nothing+ , _pmvAutomatedSnapshotRetentionPeriod = Nothing+ , _pmvClusterIdentifier = Nothing+ }++-- | The pending or in-progress change of the automated snapshot retention+-- period.+pmvAutomatedSnapshotRetentionPeriod :: Lens' PendingModifiedValues (Maybe Int)+pmvAutomatedSnapshotRetentionPeriod =+ lens _pmvAutomatedSnapshotRetentionPeriod+ (\s a -> s { _pmvAutomatedSnapshotRetentionPeriod = a })++-- | The pending or in-progress change of the new identifier for the cluster.+pmvClusterIdentifier :: Lens' PendingModifiedValues (Maybe Text)+pmvClusterIdentifier =+ lens _pmvClusterIdentifier (\s a -> s { _pmvClusterIdentifier = a })++-- | The pending or in-progress change of the cluster type.+pmvClusterType :: Lens' PendingModifiedValues (Maybe Text)+pmvClusterType = lens _pmvClusterType (\s a -> s { _pmvClusterType = a })++-- | The pending or in-progress change of the service version.+pmvClusterVersion :: Lens' PendingModifiedValues (Maybe Text)+pmvClusterVersion =+ lens _pmvClusterVersion (\s a -> s { _pmvClusterVersion = a })++-- | The pending or in-progress change of the master user password for the+-- cluster.+pmvMasterUserPassword :: Lens' PendingModifiedValues (Maybe Text)+pmvMasterUserPassword =+ lens _pmvMasterUserPassword (\s a -> s { _pmvMasterUserPassword = a })++-- | The pending or in-progress change of the cluster's node type.+pmvNodeType :: Lens' PendingModifiedValues (Maybe Text)+pmvNodeType = lens _pmvNodeType (\s a -> s { _pmvNodeType = a })++-- | The pending or in-progress change of the number of nodes in the cluster.+pmvNumberOfNodes :: Lens' PendingModifiedValues (Maybe Int)+pmvNumberOfNodes = lens _pmvNumberOfNodes (\s a -> s { _pmvNumberOfNodes = a })++instance FromXML PendingModifiedValues where+ parseXML x = PendingModifiedValues+ <$> x .@? "AutomatedSnapshotRetentionPeriod"+ <*> x .@? "ClusterIdentifier"+ <*> x .@? "ClusterType"+ <*> x .@? "ClusterVersion"+ <*> x .@? "MasterUserPassword"+ <*> x .@? "NodeType"+ <*> x .@? "NumberOfNodes"++instance ToQuery PendingModifiedValues where+ toQuery PendingModifiedValues{..} = mconcat+ [ "AutomatedSnapshotRetentionPeriod" =? _pmvAutomatedSnapshotRetentionPeriod+ , "ClusterIdentifier" =? _pmvClusterIdentifier+ , "ClusterType" =? _pmvClusterType+ , "ClusterVersion" =? _pmvClusterVersion+ , "MasterUserPassword" =? _pmvMasterUserPassword+ , "NodeType" =? _pmvNodeType+ , "NumberOfNodes" =? _pmvNumberOfNodes+ ]++data VpcSecurityGroupMembership = VpcSecurityGroupMembership+ { _vsgmStatus :: Maybe Text+ , _vsgmVpcSecurityGroupId :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'VpcSecurityGroupMembership' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'vsgmStatus' @::@ 'Maybe' 'Text'+--+-- * 'vsgmVpcSecurityGroupId' @::@ 'Maybe' 'Text'+--+vpcSecurityGroupMembership :: VpcSecurityGroupMembership+vpcSecurityGroupMembership = VpcSecurityGroupMembership+ { _vsgmVpcSecurityGroupId = Nothing+ , _vsgmStatus = Nothing+ }++vsgmStatus :: Lens' VpcSecurityGroupMembership (Maybe Text)+vsgmStatus = lens _vsgmStatus (\s a -> s { _vsgmStatus = a })++vsgmVpcSecurityGroupId :: Lens' VpcSecurityGroupMembership (Maybe Text)+vsgmVpcSecurityGroupId =+ lens _vsgmVpcSecurityGroupId (\s a -> s { _vsgmVpcSecurityGroupId = a })++instance FromXML VpcSecurityGroupMembership where+ parseXML x = VpcSecurityGroupMembership+ <$> x .@? "Status"+ <*> x .@? "VpcSecurityGroupId"++instance ToQuery VpcSecurityGroupMembership where+ toQuery VpcSecurityGroupMembership{..} = mconcat+ [ "Status" =? _vsgmStatus+ , "VpcSecurityGroupId" =? _vsgmVpcSecurityGroupId+ ]++data Parameter = Parameter+ { _pAllowedValues :: Maybe Text+ , _pDataType :: Maybe Text+ , _pDescription :: Maybe Text+ , _pIsModifiable :: Maybe Bool+ , _pMinimumEngineVersion :: Maybe Text+ , _pParameterName :: Maybe Text+ , _pParameterValue :: Maybe Text+ , _pSource :: Maybe Text+ } deriving (Eq, Ord, Show)++-- | 'Parameter' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'pAllowedValues' @::@ 'Maybe' 'Text'+--+-- * 'pDataType' @::@ 'Maybe' 'Text'+--+-- * 'pDescription' @::@ 'Maybe' 'Text'+--+-- * 'pIsModifiable' @::@ 'Maybe' 'Bool'+--+-- * 'pMinimumEngineVersion' @::@ 'Maybe' 'Text'+--+-- * 'pParameterName' @::@ 'Maybe' 'Text'+--+-- * 'pParameterValue' @::@ 'Maybe' 'Text'+--+-- * 'pSource' @::@ 'Maybe' 'Text'+--+parameter :: Parameter+parameter = Parameter+ { _pParameterName = Nothing+ , _pParameterValue = Nothing+ , _pDescription = Nothing+ , _pSource = Nothing+ , _pDataType = Nothing+ , _pAllowedValues = Nothing+ , _pIsModifiable = Nothing+ , _pMinimumEngineVersion = Nothing+ }++-- | The valid range of values for the parameter.+pAllowedValues :: Lens' Parameter (Maybe Text)+pAllowedValues = lens _pAllowedValues (\s a -> s { _pAllowedValues = a })++-- | The data type of the parameter.+pDataType :: Lens' Parameter (Maybe Text)+pDataType = lens _pDataType (\s a -> s { _pDataType = a })++-- | A description of the parameter.+pDescription :: Lens' Parameter (Maybe Text)+pDescription = lens _pDescription (\s a -> s { _pDescription = a })++-- | If true, the parameter can be modified. Some parameters have security or+-- operational implications that prevent them from being changed.+pIsModifiable :: Lens' Parameter (Maybe Bool)+pIsModifiable = lens _pIsModifiable (\s a -> s { _pIsModifiable = a })++-- | The earliest engine version to which the parameter can apply.+pMinimumEngineVersion :: Lens' Parameter (Maybe Text)+pMinimumEngineVersion =+ lens _pMinimumEngineVersion (\s a -> s { _pMinimumEngineVersion = a })++-- | The name of the parameter.+pParameterName :: Lens' Parameter (Maybe Text)+pParameterName = lens _pParameterName (\s a -> s { _pParameterName = a })++-- | The value of the parameter.+pParameterValue :: Lens' Parameter (Maybe Text)+pParameterValue = lens _pParameterValue (\s a -> s { _pParameterValue = a })++-- | The source of the parameter value, such as "engine-default" or "user".+pSource :: Lens' Parameter (Maybe Text)+pSource = lens _pSource (\s a -> s { _pSource = a })++instance FromXML Parameter where+ parseXML x = Parameter+ <$> x .@? "AllowedValues"+ <*> x .@? "DataType"+ <*> x .@? "Description"+ <*> x .@? "IsModifiable"+ <*> x .@? "MinimumEngineVersion"+ <*> x .@? "ParameterName"+ <*> x .@? "ParameterValue"+ <*> x .@? "Source"++instance ToQuery Parameter where+ toQuery Parameter{..} = mconcat+ [ "AllowedValues" =? _pAllowedValues+ , "DataType" =? _pDataType+ , "Description" =? _pDescription+ , "IsModifiable" =? _pIsModifiable+ , "MinimumEngineVersion" =? _pMinimumEngineVersion+ , "ParameterName" =? _pParameterName+ , "ParameterValue" =? _pParameterValue+ , "Source" =? _pSource+ ]