packages feed

amazonka-autoscaling (empty) → 0.0.0

raw patch · 51 files changed

+8952/−0 lines, 51 filesdep +amazonka-coredep +basesetup-changed

Dependencies added: amazonka-core, base

Files

+ LICENSE view
@@ -0,0 +1,373 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.++Exhibit B - "Incompatible With Secondary Licenses" Notice+---------------------------------------------------------++  This Source Code Form is "Incompatible With Secondary Licenses", as+  defined by the Mozilla Public License, v. 2.0.
+ README.md view
@@ -0,0 +1,26 @@+# Amazon Auto Scaling 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++Auto Scaling allows you to scale your Amazon EC2 capacity up or down automatically according to conditions you define. With Auto Scaling, you can ensure that the number of Amazon EC2 instances you’re using increases seamlessly during demand spikes to maintain performance, and decreases automatically during demand lulls to minimize costs. Auto Scaling is particularly well suited for applications that experience hourly, daily, or weekly variability in usage. Auto Scaling is enabled by Amazon CloudWatch and available at no additional charge beyond Amazon CloudWatch fees.++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-autoscaling)+and [AWS API Reference](http://docs.aws.amazon.com/AutoScaling/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-autoscaling` 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-autoscaling.cabal view
@@ -0,0 +1,94 @@+name:                  amazonka-autoscaling+version:               0.0.0+synopsis:              Amazon Auto Scaling 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:+    Auto Scaling allows you to scale your Amazon EC2 capacity up or down+    automatically according to conditions you define. With Auto Scaling,+    you can ensure that the number of Amazon EC2 instances you’re using+    increases seamlessly during demand spikes to maintain performance, and+    decreases automatically during demand lulls to minimize costs. Auto+    Scaling is particularly well suited for applications that experience+    hourly, daily, or weekly variability in usage. Auto Scaling is enabled+    by Amazon CloudWatch and available at no additional charge beyond+    Amazon CloudWatch fees.+    .+    /See:/ <http://docs.aws.amazon.com/AutoScaling/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.AutoScaling+        , Network.AWS.AutoScaling.AttachInstances+        , Network.AWS.AutoScaling.CompleteLifecycleAction+        , Network.AWS.AutoScaling.CreateAutoScalingGroup+        , Network.AWS.AutoScaling.CreateLaunchConfiguration+        , Network.AWS.AutoScaling.CreateOrUpdateTags+        , Network.AWS.AutoScaling.DeleteAutoScalingGroup+        , Network.AWS.AutoScaling.DeleteLaunchConfiguration+        , Network.AWS.AutoScaling.DeleteLifecycleHook+        , Network.AWS.AutoScaling.DeleteNotificationConfiguration+        , Network.AWS.AutoScaling.DeletePolicy+        , Network.AWS.AutoScaling.DeleteScheduledAction+        , Network.AWS.AutoScaling.DeleteTags+        , Network.AWS.AutoScaling.DescribeAccountLimits+        , Network.AWS.AutoScaling.DescribeAdjustmentTypes+        , Network.AWS.AutoScaling.DescribeAutoScalingGroups+        , Network.AWS.AutoScaling.DescribeAutoScalingInstances+        , Network.AWS.AutoScaling.DescribeAutoScalingNotificationTypes+        , Network.AWS.AutoScaling.DescribeLaunchConfigurations+        , Network.AWS.AutoScaling.DescribeLifecycleHookTypes+        , Network.AWS.AutoScaling.DescribeLifecycleHooks+        , Network.AWS.AutoScaling.DescribeMetricCollectionTypes+        , Network.AWS.AutoScaling.DescribeNotificationConfigurations+        , Network.AWS.AutoScaling.DescribePolicies+        , Network.AWS.AutoScaling.DescribeScalingActivities+        , Network.AWS.AutoScaling.DescribeScalingProcessTypes+        , Network.AWS.AutoScaling.DescribeScheduledActions+        , Network.AWS.AutoScaling.DescribeTags+        , Network.AWS.AutoScaling.DescribeTerminationPolicyTypes+        , Network.AWS.AutoScaling.DetachInstances+        , Network.AWS.AutoScaling.DisableMetricsCollection+        , Network.AWS.AutoScaling.EnableMetricsCollection+        , Network.AWS.AutoScaling.EnterStandby+        , Network.AWS.AutoScaling.ExecutePolicy+        , Network.AWS.AutoScaling.ExitStandby+        , Network.AWS.AutoScaling.PutLifecycleHook+        , Network.AWS.AutoScaling.PutNotificationConfiguration+        , Network.AWS.AutoScaling.PutScalingPolicy+        , Network.AWS.AutoScaling.PutScheduledUpdateGroupAction+        , Network.AWS.AutoScaling.RecordLifecycleActionHeartbeat+        , Network.AWS.AutoScaling.ResumeProcesses+        , Network.AWS.AutoScaling.SetDesiredCapacity+        , Network.AWS.AutoScaling.SetInstanceHealth+        , Network.AWS.AutoScaling.SuspendProcesses+        , Network.AWS.AutoScaling.TerminateInstanceInAutoScalingGroup+        , Network.AWS.AutoScaling.Types+        , Network.AWS.AutoScaling.UpdateAutoScalingGroup++    other-modules:++    build-depends:+          amazonka-core+        , base          >= 4.7 && < 5
+ gen/Network/AWS/AutoScaling.hs view
@@ -0,0 +1,113 @@+-- Module      : Network.AWS.AutoScaling+-- 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)++-- | Auto Scaling allows you to scale your Amazon EC2 capacity up or down+-- automatically according to conditions you define. With Auto Scaling, you+-- can ensure that the number of Amazon EC2 instances you’re using increases+-- seamlessly during demand spikes to maintain performance, and decreases+-- automatically during demand lulls to minimize costs. Auto Scaling is+-- particularly well suited for applications that experience hourly, daily, or+-- weekly variability in usage. Auto Scaling is enabled by Amazon CloudWatch+-- and available at no additional charge beyond Amazon CloudWatch fees.+module Network.AWS.AutoScaling+    ( module Network.AWS.AutoScaling.AttachInstances+    , module Network.AWS.AutoScaling.CompleteLifecycleAction+    , module Network.AWS.AutoScaling.CreateAutoScalingGroup+    , module Network.AWS.AutoScaling.CreateLaunchConfiguration+    , module Network.AWS.AutoScaling.CreateOrUpdateTags+    , module Network.AWS.AutoScaling.DeleteAutoScalingGroup+    , module Network.AWS.AutoScaling.DeleteLaunchConfiguration+    , module Network.AWS.AutoScaling.DeleteLifecycleHook+    , module Network.AWS.AutoScaling.DeleteNotificationConfiguration+    , module Network.AWS.AutoScaling.DeletePolicy+    , module Network.AWS.AutoScaling.DeleteScheduledAction+    , module Network.AWS.AutoScaling.DeleteTags+    , module Network.AWS.AutoScaling.DescribeAccountLimits+    , module Network.AWS.AutoScaling.DescribeAdjustmentTypes+    , module Network.AWS.AutoScaling.DescribeAutoScalingGroups+    , module Network.AWS.AutoScaling.DescribeAutoScalingInstances+    , module Network.AWS.AutoScaling.DescribeAutoScalingNotificationTypes+    , module Network.AWS.AutoScaling.DescribeLaunchConfigurations+    , module Network.AWS.AutoScaling.DescribeLifecycleHookTypes+    , module Network.AWS.AutoScaling.DescribeLifecycleHooks+    , module Network.AWS.AutoScaling.DescribeMetricCollectionTypes+    , module Network.AWS.AutoScaling.DescribeNotificationConfigurations+    , module Network.AWS.AutoScaling.DescribePolicies+    , module Network.AWS.AutoScaling.DescribeScalingActivities+    , module Network.AWS.AutoScaling.DescribeScalingProcessTypes+    , module Network.AWS.AutoScaling.DescribeScheduledActions+    , module Network.AWS.AutoScaling.DescribeTags+    , module Network.AWS.AutoScaling.DescribeTerminationPolicyTypes+    , module Network.AWS.AutoScaling.DetachInstances+    , module Network.AWS.AutoScaling.DisableMetricsCollection+    , module Network.AWS.AutoScaling.EnableMetricsCollection+    , module Network.AWS.AutoScaling.EnterStandby+    , module Network.AWS.AutoScaling.ExecutePolicy+    , module Network.AWS.AutoScaling.ExitStandby+    , module Network.AWS.AutoScaling.PutLifecycleHook+    , module Network.AWS.AutoScaling.PutNotificationConfiguration+    , module Network.AWS.AutoScaling.PutScalingPolicy+    , module Network.AWS.AutoScaling.PutScheduledUpdateGroupAction+    , module Network.AWS.AutoScaling.RecordLifecycleActionHeartbeat+    , module Network.AWS.AutoScaling.ResumeProcesses+    , module Network.AWS.AutoScaling.SetDesiredCapacity+    , module Network.AWS.AutoScaling.SetInstanceHealth+    , module Network.AWS.AutoScaling.SuspendProcesses+    , module Network.AWS.AutoScaling.TerminateInstanceInAutoScalingGroup+    , module Network.AWS.AutoScaling.Types+    , module Network.AWS.AutoScaling.UpdateAutoScalingGroup+    ) where++import Network.AWS.AutoScaling.AttachInstances+import Network.AWS.AutoScaling.CompleteLifecycleAction+import Network.AWS.AutoScaling.CreateAutoScalingGroup+import Network.AWS.AutoScaling.CreateLaunchConfiguration+import Network.AWS.AutoScaling.CreateOrUpdateTags+import Network.AWS.AutoScaling.DeleteAutoScalingGroup+import Network.AWS.AutoScaling.DeleteLaunchConfiguration+import Network.AWS.AutoScaling.DeleteLifecycleHook+import Network.AWS.AutoScaling.DeleteNotificationConfiguration+import Network.AWS.AutoScaling.DeletePolicy+import Network.AWS.AutoScaling.DeleteScheduledAction+import Network.AWS.AutoScaling.DeleteTags+import Network.AWS.AutoScaling.DescribeAccountLimits+import Network.AWS.AutoScaling.DescribeAdjustmentTypes+import Network.AWS.AutoScaling.DescribeAutoScalingGroups+import Network.AWS.AutoScaling.DescribeAutoScalingInstances+import Network.AWS.AutoScaling.DescribeAutoScalingNotificationTypes+import Network.AWS.AutoScaling.DescribeLaunchConfigurations+import Network.AWS.AutoScaling.DescribeLifecycleHookTypes+import Network.AWS.AutoScaling.DescribeLifecycleHooks+import Network.AWS.AutoScaling.DescribeMetricCollectionTypes+import Network.AWS.AutoScaling.DescribeNotificationConfigurations+import Network.AWS.AutoScaling.DescribePolicies+import Network.AWS.AutoScaling.DescribeScalingActivities+import Network.AWS.AutoScaling.DescribeScalingProcessTypes+import Network.AWS.AutoScaling.DescribeScheduledActions+import Network.AWS.AutoScaling.DescribeTags+import Network.AWS.AutoScaling.DescribeTerminationPolicyTypes+import Network.AWS.AutoScaling.DetachInstances+import Network.AWS.AutoScaling.DisableMetricsCollection+import Network.AWS.AutoScaling.EnableMetricsCollection+import Network.AWS.AutoScaling.EnterStandby+import Network.AWS.AutoScaling.ExecutePolicy+import Network.AWS.AutoScaling.ExitStandby+import Network.AWS.AutoScaling.PutLifecycleHook+import Network.AWS.AutoScaling.PutNotificationConfiguration+import Network.AWS.AutoScaling.PutScalingPolicy+import Network.AWS.AutoScaling.PutScheduledUpdateGroupAction+import Network.AWS.AutoScaling.RecordLifecycleActionHeartbeat+import Network.AWS.AutoScaling.ResumeProcesses+import Network.AWS.AutoScaling.SetDesiredCapacity+import Network.AWS.AutoScaling.SetInstanceHealth+import Network.AWS.AutoScaling.SuspendProcesses+import Network.AWS.AutoScaling.TerminateInstanceInAutoScalingGroup+import Network.AWS.AutoScaling.Types+import Network.AWS.AutoScaling.UpdateAutoScalingGroup
+ gen/Network/AWS/AutoScaling/AttachInstances.hs view
@@ -0,0 +1,101 @@+{-# 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.AutoScaling.AttachInstances+-- 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)++-- | Attaches one or more EC2 instances to the specified Auto Scaling group. For+-- more information, see Attach Amazon EC2 Instances to Your Existing Auto+-- Scaling Group in the Auto Scaling Developer Guide.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_AttachInstances.html>+module Network.AWS.AutoScaling.AttachInstances+    (+    -- * Request+      AttachInstances+    -- ** Request constructor+    , attachInstances+    -- ** Request lenses+    , aiAutoScalingGroupName+    , aiInstanceIds++    -- * Response+    , AttachInstancesResponse+    -- ** Response constructor+    , attachInstancesResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data AttachInstances = AttachInstances+    { _aiAutoScalingGroupName :: Text+    , _aiInstanceIds          :: List "InstanceIds" Text+    } deriving (Eq, Ord, Show)++-- | 'AttachInstances' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'aiAutoScalingGroupName' @::@ 'Text'+--+-- * 'aiInstanceIds' @::@ ['Text']+--+attachInstances :: Text -- ^ 'aiAutoScalingGroupName'+                -> AttachInstances+attachInstances p1 = AttachInstances+    { _aiAutoScalingGroupName = p1+    , _aiInstanceIds          = mempty+    }++-- | The name of the group.+aiAutoScalingGroupName :: Lens' AttachInstances Text+aiAutoScalingGroupName =+    lens _aiAutoScalingGroupName (\s a -> s { _aiAutoScalingGroupName = a })++-- | One or more EC2 instance IDs. You must specify at least one ID.+aiInstanceIds :: Lens' AttachInstances [Text]+aiInstanceIds = lens _aiInstanceIds (\s a -> s { _aiInstanceIds = a }) . _List++data AttachInstancesResponse = AttachInstancesResponse+    deriving (Eq, Ord, Show, Generic)++-- | 'AttachInstancesResponse' constructor.+attachInstancesResponse :: AttachInstancesResponse+attachInstancesResponse = AttachInstancesResponse++instance ToPath AttachInstances where+    toPath = const "/"++instance ToQuery AttachInstances where+    toQuery AttachInstances{..} = mconcat+        [ "AutoScalingGroupName" =? _aiAutoScalingGroupName+        , "InstanceIds"          =? _aiInstanceIds+        ]++instance ToHeaders AttachInstances++instance AWSRequest AttachInstances where+    type Sv AttachInstances = AutoScaling+    type Rs AttachInstances = AttachInstancesResponse++    request  = post "AttachInstances"+    response = nullResponse AttachInstancesResponse
+ gen/Network/AWS/AutoScaling/CompleteLifecycleAction.hs view
@@ -0,0 +1,140 @@+{-# 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.AutoScaling.CompleteLifecycleAction+-- 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)++-- | Completes the lifecycle action for the associated token initiated under the+-- given lifecycle hook with the specified result. This operation is a part of+-- the basic sequence for adding a lifecycle hook to an Auto Scaling group:+-- Create a notification target. A target can be either an Amazon SQS queue or+-- an Amazon SNS topic. Create an IAM role. This role allows Auto Scaling to+-- publish lifecycle notifications to the designated SQS queue or SNS topic.+-- Create the lifecycle hook. You can create a hook that acts when instances+-- launch or when instances terminate. If necessary, record the lifecycle+-- action heartbeat to keep the instance in a pending state. Complete the+-- lifecycle action. For more information, see Auto Scaling Pending State and+-- Auto Scaling Terminating State in the Auto Scaling Developer Guide.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_CompleteLifecycleAction.html>+module Network.AWS.AutoScaling.CompleteLifecycleAction+    (+    -- * Request+      CompleteLifecycleAction+    -- ** Request constructor+    , completeLifecycleAction+    -- ** Request lenses+    , claAutoScalingGroupName+    , claLifecycleActionResult+    , claLifecycleActionToken+    , claLifecycleHookName++    -- * Response+    , CompleteLifecycleActionResponse+    -- ** Response constructor+    , completeLifecycleActionResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data CompleteLifecycleAction = CompleteLifecycleAction+    { _claAutoScalingGroupName  :: Text+    , _claLifecycleActionResult :: Text+    , _claLifecycleActionToken  :: Text+    , _claLifecycleHookName     :: Text+    } deriving (Eq, Ord, Show)++-- | 'CompleteLifecycleAction' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'claAutoScalingGroupName' @::@ 'Text'+--+-- * 'claLifecycleActionResult' @::@ 'Text'+--+-- * 'claLifecycleActionToken' @::@ 'Text'+--+-- * 'claLifecycleHookName' @::@ 'Text'+--+completeLifecycleAction :: Text -- ^ 'claLifecycleHookName'+                        -> Text -- ^ 'claAutoScalingGroupName'+                        -> Text -- ^ 'claLifecycleActionToken'+                        -> Text -- ^ 'claLifecycleActionResult'+                        -> CompleteLifecycleAction+completeLifecycleAction p1 p2 p3 p4 = CompleteLifecycleAction+    { _claLifecycleHookName     = p1+    , _claAutoScalingGroupName  = p2+    , _claLifecycleActionToken  = p3+    , _claLifecycleActionResult = p4+    }++-- | The name of the group for the lifecycle hook.+claAutoScalingGroupName :: Lens' CompleteLifecycleAction Text+claAutoScalingGroupName =+    lens _claAutoScalingGroupName (\s a -> s { _claAutoScalingGroupName = a })++-- | The action for the group to take. This parameter can be either CONTINUE+-- or ABANDON.+claLifecycleActionResult :: Lens' CompleteLifecycleAction Text+claLifecycleActionResult =+    lens _claLifecycleActionResult+        (\s a -> s { _claLifecycleActionResult = a })++-- | A universally unique identifier (UUID) that identifies a specific+-- lifecycle action associated with an instance. Auto Scaling sends this+-- token to the notification target you specified when you created the+-- lifecycle hook.+claLifecycleActionToken :: Lens' CompleteLifecycleAction Text+claLifecycleActionToken =+    lens _claLifecycleActionToken (\s a -> s { _claLifecycleActionToken = a })++-- | The name of the lifecycle hook.+claLifecycleHookName :: Lens' CompleteLifecycleAction Text+claLifecycleHookName =+    lens _claLifecycleHookName (\s a -> s { _claLifecycleHookName = a })++data CompleteLifecycleActionResponse = CompleteLifecycleActionResponse+    deriving (Eq, Ord, Show, Generic)++-- | 'CompleteLifecycleActionResponse' constructor.+completeLifecycleActionResponse :: CompleteLifecycleActionResponse+completeLifecycleActionResponse = CompleteLifecycleActionResponse++instance ToPath CompleteLifecycleAction where+    toPath = const "/"++instance ToQuery CompleteLifecycleAction where+    toQuery CompleteLifecycleAction{..} = mconcat+        [ "AutoScalingGroupName"  =? _claAutoScalingGroupName+        , "LifecycleActionResult" =? _claLifecycleActionResult+        , "LifecycleActionToken"  =? _claLifecycleActionToken+        , "LifecycleHookName"     =? _claLifecycleHookName+        ]++instance ToHeaders CompleteLifecycleAction++instance AWSRequest CompleteLifecycleAction where+    type Sv CompleteLifecycleAction = AutoScaling+    type Rs CompleteLifecycleAction = CompleteLifecycleActionResponse++    request  = post "CompleteLifecycleAction"+    response = nullResponse CompleteLifecycleActionResponse
+ gen/Network/AWS/AutoScaling/CreateAutoScalingGroup.hs view
@@ -0,0 +1,291 @@+{-# 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.AutoScaling.CreateAutoScalingGroup+-- 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 Auto Scaling group with the specified name and attributes. If+-- you exceed your maximum limit of Auto Scaling groups, which by default is+-- 20 per region, the call fails. For information about viewing and updating+-- these limits, see DescribeAccountLimits.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_CreateAutoScalingGroup.html>+module Network.AWS.AutoScaling.CreateAutoScalingGroup+    (+    -- * Request+      CreateAutoScalingGroup+    -- ** Request constructor+    , createAutoScalingGroup+    -- ** Request lenses+    , casgAutoScalingGroupName+    , casgAvailabilityZones+    , casgDefaultCooldown+    , casgDesiredCapacity+    , casgHealthCheckGracePeriod+    , casgHealthCheckType+    , casgInstanceId+    , casgLaunchConfigurationName+    , casgLoadBalancerNames+    , casgMaxSize+    , casgMinSize+    , casgPlacementGroup+    , casgTags+    , casgTerminationPolicies+    , casgVPCZoneIdentifier++    -- * Response+    , CreateAutoScalingGroupResponse+    -- ** Response constructor+    , createAutoScalingGroupResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data CreateAutoScalingGroup = CreateAutoScalingGroup+    { _casgAutoScalingGroupName    :: Text+    , _casgAvailabilityZones       :: List1 "AvailabilityZones" Text+    , _casgDefaultCooldown         :: Maybe Int+    , _casgDesiredCapacity         :: Maybe Int+    , _casgHealthCheckGracePeriod  :: Maybe Int+    , _casgHealthCheckType         :: Maybe Text+    , _casgInstanceId              :: Maybe Text+    , _casgLaunchConfigurationName :: Maybe Text+    , _casgLoadBalancerNames       :: List "LoadBalancerNames" Text+    , _casgMaxSize                 :: Int+    , _casgMinSize                 :: Int+    , _casgPlacementGroup          :: Maybe Text+    , _casgTags                    :: List "Tags" Tag+    , _casgTerminationPolicies     :: List "TerminationPolicies" Text+    , _casgVPCZoneIdentifier       :: Maybe Text+    } deriving (Eq, Show)++-- | 'CreateAutoScalingGroup' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'casgAutoScalingGroupName' @::@ 'Text'+--+-- * 'casgAvailabilityZones' @::@ 'NonEmpty' 'Text'+--+-- * 'casgDefaultCooldown' @::@ 'Maybe' 'Int'+--+-- * 'casgDesiredCapacity' @::@ 'Maybe' 'Int'+--+-- * 'casgHealthCheckGracePeriod' @::@ 'Maybe' 'Int'+--+-- * 'casgHealthCheckType' @::@ 'Maybe' 'Text'+--+-- * 'casgInstanceId' @::@ 'Maybe' 'Text'+--+-- * 'casgLaunchConfigurationName' @::@ 'Maybe' 'Text'+--+-- * 'casgLoadBalancerNames' @::@ ['Text']+--+-- * 'casgMaxSize' @::@ 'Int'+--+-- * 'casgMinSize' @::@ 'Int'+--+-- * 'casgPlacementGroup' @::@ 'Maybe' 'Text'+--+-- * 'casgTags' @::@ ['Tag']+--+-- * 'casgTerminationPolicies' @::@ ['Text']+--+-- * 'casgVPCZoneIdentifier' @::@ 'Maybe' 'Text'+--+createAutoScalingGroup :: Text -- ^ 'casgAutoScalingGroupName'+                       -> Int -- ^ 'casgMinSize'+                       -> Int -- ^ 'casgMaxSize'+                       -> NonEmpty Text -- ^ 'casgAvailabilityZones'+                       -> CreateAutoScalingGroup+createAutoScalingGroup p1 p2 p3 p4 = CreateAutoScalingGroup+    { _casgAutoScalingGroupName    = p1+    , _casgMinSize                 = p2+    , _casgMaxSize                 = p3+    , _casgAvailabilityZones       = withIso _List1 (const id) p4+    , _casgLaunchConfigurationName = Nothing+    , _casgInstanceId              = Nothing+    , _casgDesiredCapacity         = Nothing+    , _casgDefaultCooldown         = Nothing+    , _casgLoadBalancerNames       = mempty+    , _casgHealthCheckType         = Nothing+    , _casgHealthCheckGracePeriod  = Nothing+    , _casgPlacementGroup          = Nothing+    , _casgVPCZoneIdentifier       = Nothing+    , _casgTerminationPolicies     = mempty+    , _casgTags                    = mempty+    }++-- | The name of the group. This name must be unique within the scope of your+-- AWS account.+casgAutoScalingGroupName :: Lens' CreateAutoScalingGroup Text+casgAutoScalingGroupName =+    lens _casgAutoScalingGroupName+        (\s a -> s { _casgAutoScalingGroupName = a })++-- | One or more Availability Zones for the group. This parameter is optional+-- if you specify subnets using the VPCZoneIdentifier parameter.+casgAvailabilityZones :: Lens' CreateAutoScalingGroup (NonEmpty Text)+casgAvailabilityZones =+    lens _casgAvailabilityZones (\s a -> s { _casgAvailabilityZones = a })+        . _List1++-- | The amount of time, in seconds, after a scaling activity completes before+-- another scaling activity can start. If DefaultCooldown is not specified,+-- the default value is 300. For more information, see Understanding Auto+-- Scaling Cooldowns in the Auto Scaling Developer Guide.+casgDefaultCooldown :: Lens' CreateAutoScalingGroup (Maybe Int)+casgDefaultCooldown =+    lens _casgDefaultCooldown (\s a -> s { _casgDefaultCooldown = a })++-- | The number of EC2 instances that should be running in the group. This+-- value must be greater than or equal to the minimum size of the group and+-- less than or equal to the maximum size of the group.+casgDesiredCapacity :: Lens' CreateAutoScalingGroup (Maybe Int)+casgDesiredCapacity =+    lens _casgDesiredCapacity (\s a -> s { _casgDesiredCapacity = a })++-- | The amount of time, in seconds, after an EC2 instance comes into service+-- that Auto Scaling starts checking its health. During this time, any+-- health check failures for the instance are ignored. This parameter is+-- required if you are adding an ELB health check. Frequently, new instances+-- need to warm up, briefly, before they can pass a health check. To provide+-- ample warm-up time, set the health check grace period of the group to+-- match the expected startup period of your application. For more+-- information, see Add an Elastic Load Balancing Health Check to Your Auto+-- Scaling Group in the Auto Scaling Developer Guide.+casgHealthCheckGracePeriod :: Lens' CreateAutoScalingGroup (Maybe Int)+casgHealthCheckGracePeriod =+    lens _casgHealthCheckGracePeriod+        (\s a -> s { _casgHealthCheckGracePeriod = a })++-- | The service to use for the health checks. The valid values are EC2 and+-- ELB. By default, health checks use Amazon EC2 instance status checks to+-- determine the health of an instance. For more information, see Health+-- Checks.+casgHealthCheckType :: Lens' CreateAutoScalingGroup (Maybe Text)+casgHealthCheckType =+    lens _casgHealthCheckType (\s a -> s { _casgHealthCheckType = a })++-- | The ID of the EC2 instance used to create a launch configuration for the+-- group. Alternatively, use the LaunchConfigurationName parameter to+-- specify a launch configuration instead of an EC2 instance. When you+-- specify an ID of an instance, Auto Scaling creates a new launch+-- configuration and associates it with the group. This launch configuration+-- derives its attributes from the specified instance, with the exception of+-- the block device mapping. For more information, see Create an Auto+-- Scaling Group Using an EC2 Instance ID in the Auto Scaling Developer+-- Guide.+casgInstanceId :: Lens' CreateAutoScalingGroup (Maybe Text)+casgInstanceId = lens _casgInstanceId (\s a -> s { _casgInstanceId = a })++-- | The name of the launch configuration. Alternatively, use the InstanceId+-- parameter to specify an EC2 instance instead of a launch configuration.+casgLaunchConfigurationName :: Lens' CreateAutoScalingGroup (Maybe Text)+casgLaunchConfigurationName =+    lens _casgLaunchConfigurationName+        (\s a -> s { _casgLaunchConfigurationName = a })++-- | One or more load balancers. For more information, see Load Balance Your+-- Auto Scaling Group in the Auto Scaling Developer Guide.+casgLoadBalancerNames :: Lens' CreateAutoScalingGroup [Text]+casgLoadBalancerNames =+    lens _casgLoadBalancerNames (\s a -> s { _casgLoadBalancerNames = a })+        . _List++-- | The maximum size of the group.+casgMaxSize :: Lens' CreateAutoScalingGroup Int+casgMaxSize = lens _casgMaxSize (\s a -> s { _casgMaxSize = a })++-- | The minimum size of the group.+casgMinSize :: Lens' CreateAutoScalingGroup Int+casgMinSize = lens _casgMinSize (\s a -> s { _casgMinSize = a })++-- | The name of the placement group into which you'll launch your instances,+-- if any. For more information, see Placement Groups.+casgPlacementGroup :: Lens' CreateAutoScalingGroup (Maybe Text)+casgPlacementGroup =+    lens _casgPlacementGroup (\s a -> s { _casgPlacementGroup = a })++-- | The tag to be created or updated. Each tag should be defined by its+-- resource type, resource ID, key, value, and a propagate flag. Valid+-- values: key=value, value=value, propagate=true or false. Value and+-- propagate are optional parameters. For more information, see Add, Modify,+-- or Remove Auto Scaling Group Tags in the Auto Scaling Developer Guide.+casgTags :: Lens' CreateAutoScalingGroup [Tag]+casgTags = lens _casgTags (\s a -> s { _casgTags = a }) . _List++-- | One or more termination policies used to select the instance to+-- terminate. These policies are executed in the order that they are listed.+-- For more information, see Choosing a Termination Policy for Your Auto+-- Scaling Group in the Auto Scaling Developer Guide.+casgTerminationPolicies :: Lens' CreateAutoScalingGroup [Text]+casgTerminationPolicies =+    lens _casgTerminationPolicies (\s a -> s { _casgTerminationPolicies = a })+        . _List++-- | A comma-separated list of subnet identifiers for your virtual private+-- cloud (VPC). If you specify subnets and Availability Zones with this+-- call, ensure that the subnets' Availability Zones match the Availability+-- Zones specified. For more information, see Auto Scaling and Amazon VPC in+-- the Auto Scaling Developer Guide.+casgVPCZoneIdentifier :: Lens' CreateAutoScalingGroup (Maybe Text)+casgVPCZoneIdentifier =+    lens _casgVPCZoneIdentifier (\s a -> s { _casgVPCZoneIdentifier = a })++data CreateAutoScalingGroupResponse = CreateAutoScalingGroupResponse+    deriving (Eq, Ord, Show, Generic)++-- | 'CreateAutoScalingGroupResponse' constructor.+createAutoScalingGroupResponse :: CreateAutoScalingGroupResponse+createAutoScalingGroupResponse = CreateAutoScalingGroupResponse++instance ToPath CreateAutoScalingGroup where+    toPath = const "/"++instance ToQuery CreateAutoScalingGroup where+    toQuery CreateAutoScalingGroup{..} = mconcat+        [ "AutoScalingGroupName"    =? _casgAutoScalingGroupName+        , "AvailabilityZones"       =? _casgAvailabilityZones+        , "DefaultCooldown"         =? _casgDefaultCooldown+        , "DesiredCapacity"         =? _casgDesiredCapacity+        , "HealthCheckGracePeriod"  =? _casgHealthCheckGracePeriod+        , "HealthCheckType"         =? _casgHealthCheckType+        , "InstanceId"              =? _casgInstanceId+        , "LaunchConfigurationName" =? _casgLaunchConfigurationName+        , "LoadBalancerNames"       =? _casgLoadBalancerNames+        , "MaxSize"                 =? _casgMaxSize+        , "MinSize"                 =? _casgMinSize+        , "PlacementGroup"          =? _casgPlacementGroup+        , "Tags"                    =? _casgTags+        , "TerminationPolicies"     =? _casgTerminationPolicies+        , "VPCZoneIdentifier"       =? _casgVPCZoneIdentifier+        ]++instance ToHeaders CreateAutoScalingGroup++instance AWSRequest CreateAutoScalingGroup where+    type Sv CreateAutoScalingGroup = AutoScaling+    type Rs CreateAutoScalingGroup = CreateAutoScalingGroupResponse++    request  = post "CreateAutoScalingGroup"+    response = nullResponse CreateAutoScalingGroupResponse
+ gen/Network/AWS/AutoScaling/CreateLaunchConfiguration.hs view
@@ -0,0 +1,314 @@+{-# 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.AutoScaling.CreateLaunchConfiguration+-- 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 launch configuration. If you exceed your maximum limit of launch+-- configurations, which by default is 100 per region, the call fails. For+-- information about viewing and updating these limits, see+-- DescribeAccountLimits.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_CreateLaunchConfiguration.html>+module Network.AWS.AutoScaling.CreateLaunchConfiguration+    (+    -- * Request+      CreateLaunchConfiguration+    -- ** Request constructor+    , createLaunchConfiguration+    -- ** Request lenses+    , clcAssociatePublicIpAddress+    , clcBlockDeviceMappings+    , clcEbsOptimized+    , clcIamInstanceProfile+    , clcImageId+    , clcInstanceId+    , clcInstanceMonitoring+    , clcInstanceType+    , clcKernelId+    , clcKeyName+    , clcLaunchConfigurationName+    , clcPlacementTenancy+    , clcRamdiskId+    , clcSecurityGroups+    , clcSpotPrice+    , clcUserData++    -- * Response+    , CreateLaunchConfigurationResponse+    -- ** Response constructor+    , createLaunchConfigurationResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data CreateLaunchConfiguration = CreateLaunchConfiguration+    { _clcAssociatePublicIpAddress :: Maybe Bool+    , _clcBlockDeviceMappings      :: List "BlockDeviceMappings" BlockDeviceMapping+    , _clcEbsOptimized             :: Maybe Bool+    , _clcIamInstanceProfile       :: Maybe Text+    , _clcImageId                  :: Maybe Text+    , _clcInstanceId               :: Maybe Text+    , _clcInstanceMonitoring       :: Maybe InstanceMonitoring+    , _clcInstanceType             :: Maybe Text+    , _clcKernelId                 :: Maybe Text+    , _clcKeyName                  :: Maybe Text+    , _clcLaunchConfigurationName  :: Text+    , _clcPlacementTenancy         :: Maybe Text+    , _clcRamdiskId                :: Maybe Text+    , _clcSecurityGroups           :: List "SecurityGroups" Text+    , _clcSpotPrice                :: Maybe Text+    , _clcUserData                 :: Maybe Text+    } deriving (Eq, Show)++-- | 'CreateLaunchConfiguration' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'clcAssociatePublicIpAddress' @::@ 'Maybe' 'Bool'+--+-- * 'clcBlockDeviceMappings' @::@ ['BlockDeviceMapping']+--+-- * 'clcEbsOptimized' @::@ 'Maybe' 'Bool'+--+-- * 'clcIamInstanceProfile' @::@ 'Maybe' 'Text'+--+-- * 'clcImageId' @::@ 'Maybe' 'Text'+--+-- * 'clcInstanceId' @::@ 'Maybe' 'Text'+--+-- * 'clcInstanceMonitoring' @::@ 'Maybe' 'InstanceMonitoring'+--+-- * 'clcInstanceType' @::@ 'Maybe' 'Text'+--+-- * 'clcKernelId' @::@ 'Maybe' 'Text'+--+-- * 'clcKeyName' @::@ 'Maybe' 'Text'+--+-- * 'clcLaunchConfigurationName' @::@ 'Text'+--+-- * 'clcPlacementTenancy' @::@ 'Maybe' 'Text'+--+-- * 'clcRamdiskId' @::@ 'Maybe' 'Text'+--+-- * 'clcSecurityGroups' @::@ ['Text']+--+-- * 'clcSpotPrice' @::@ 'Maybe' 'Text'+--+-- * 'clcUserData' @::@ 'Maybe' 'Text'+--+createLaunchConfiguration :: Text -- ^ 'clcLaunchConfigurationName'+                          -> CreateLaunchConfiguration+createLaunchConfiguration p1 = CreateLaunchConfiguration+    { _clcLaunchConfigurationName  = p1+    , _clcImageId                  = Nothing+    , _clcKeyName                  = Nothing+    , _clcSecurityGroups           = mempty+    , _clcUserData                 = Nothing+    , _clcInstanceId               = Nothing+    , _clcInstanceType             = Nothing+    , _clcKernelId                 = Nothing+    , _clcRamdiskId                = Nothing+    , _clcBlockDeviceMappings      = mempty+    , _clcInstanceMonitoring       = Nothing+    , _clcSpotPrice                = Nothing+    , _clcIamInstanceProfile       = Nothing+    , _clcEbsOptimized             = Nothing+    , _clcAssociatePublicIpAddress = Nothing+    , _clcPlacementTenancy         = Nothing+    }++-- | Used for groups that launch instances into a virtual private cloud (VPC).+-- Specifies whether to assign a public IP address to each instance. For+-- more information, see Auto Scaling and Amazon VPC in the Auto Scaling+-- Developer Guide. If you specify a value for this parameter, be sure to+-- specify at least one subnet using the VPCZoneIdentifier parameter when+-- you create your group. Default: If the instance is launched into a+-- default subnet, the default is true. If the instance is launched into a+-- nondefault subnet, the default is false. For more information, see+-- Supported Platforms in the Amazon Elastic Compute Cloud User Guide.+clcAssociatePublicIpAddress :: Lens' CreateLaunchConfiguration (Maybe Bool)+clcAssociatePublicIpAddress =+    lens _clcAssociatePublicIpAddress+        (\s a -> s { _clcAssociatePublicIpAddress = a })++-- | One or more mappings that specify how block devices are exposed to the+-- instance. For more information, see Block Device Mapping in the Amazon+-- Elastic Compute Cloud User Guide.+clcBlockDeviceMappings :: Lens' CreateLaunchConfiguration [BlockDeviceMapping]+clcBlockDeviceMappings =+    lens _clcBlockDeviceMappings (\s a -> s { _clcBlockDeviceMappings = a })+        . _List++-- | Indicates whether the instance is optimized for Amazon EBS I/O. By+-- default, the instance is not optimized for EBS I/O. The optimization+-- provides dedicated throughput to Amazon EBS and an optimized+-- configuration stack to provide optimal I/O performance. This optimization+-- is not available with all instance types. Additional usage charges apply.+-- For more information, see Amazon EBS-Optimized Instances in the Amazon+-- Elastic Compute Cloud User Guide.+clcEbsOptimized :: Lens' CreateLaunchConfiguration (Maybe Bool)+clcEbsOptimized = lens _clcEbsOptimized (\s a -> s { _clcEbsOptimized = a })++-- | The name or the Amazon Resource Name (ARN) of the instance profile+-- associated with the IAM role for the instance. Amazon EC2 instances+-- launched with an IAM role will automatically have AWS security+-- credentials available. You can use IAM roles with Auto Scaling to+-- automatically enable applications running on your Amazon EC2 instances to+-- securely access other AWS resources. For more information, see Launch+-- Auto Scaling Instances with an IAM Role in the Auto Scaling Developer+-- Guide.+clcIamInstanceProfile :: Lens' CreateLaunchConfiguration (Maybe Text)+clcIamInstanceProfile =+    lens _clcIamInstanceProfile (\s a -> s { _clcIamInstanceProfile = a })++-- | The ID of the Amazon Machine Image (AMI) to use to launch your EC2+-- instances. For more information, see Finding an AMI in the Amazon Elastic+-- Compute Cloud User Guide.+clcImageId :: Lens' CreateLaunchConfiguration (Maybe Text)+clcImageId = lens _clcImageId (\s a -> s { _clcImageId = a })++-- | The ID of the EC2 instance to use to create the launch configuration. The+-- new launch configuration derives attributes from the instance, with the+-- exception of the block device mapping. To create a launch configuration+-- with a block device mapping or override any other instance attributes,+-- specify them as part of the same request. For more information, see+-- Create a Launch Configuration Using an EC2 Instance in the Auto Scaling+-- Developer Guide.+clcInstanceId :: Lens' CreateLaunchConfiguration (Maybe Text)+clcInstanceId = lens _clcInstanceId (\s a -> s { _clcInstanceId = a })++-- | Enables detailed monitoring if it is disabled. Detailed monitoring is+-- enabled by default. When detailed monitoring is enabled, Amazon+-- Cloudwatch generates metrics every minute and your account is charged a+-- fee. When you disable detailed monitoring, by specifying False,+-- Cloudwatch generates metrics every 5 minutes. For more information, see+-- Monitor Your Auto Scaling Instances in the Auto Scaling Developer Guide.+clcInstanceMonitoring :: Lens' CreateLaunchConfiguration (Maybe InstanceMonitoring)+clcInstanceMonitoring =+    lens _clcInstanceMonitoring (\s a -> s { _clcInstanceMonitoring = a })++-- | The instance type of the Amazon EC2 instance. For information about+-- available Amazon EC2 instance types, see Available Instance Types in the+-- Amazon Elastic Cloud Compute User Guide.+clcInstanceType :: Lens' CreateLaunchConfiguration (Maybe Text)+clcInstanceType = lens _clcInstanceType (\s a -> s { _clcInstanceType = a })++-- | The ID of the kernel associated with the Amazon EC2 AMI.+clcKernelId :: Lens' CreateLaunchConfiguration (Maybe Text)+clcKernelId = lens _clcKernelId (\s a -> s { _clcKernelId = a })++-- | The name of the key pair. For more information, see Amazon EC2 Key Pairs+-- in the Amazon Elastic Compute Cloud User Guide.+clcKeyName :: Lens' CreateLaunchConfiguration (Maybe Text)+clcKeyName = lens _clcKeyName (\s a -> s { _clcKeyName = a })++-- | The name of the launch configuration. This name must be unique within the+-- scope of your AWS account.+clcLaunchConfigurationName :: Lens' CreateLaunchConfiguration Text+clcLaunchConfigurationName =+    lens _clcLaunchConfigurationName+        (\s a -> s { _clcLaunchConfigurationName = a })++-- | The tenancy of the instance. An instance with a tenancy of dedicated runs+-- on single-tenant hardware and can only be launched in a VPC. You must set+-- the value of this parameter to dedicated if want to launch Dedicated+-- Instances in a shared tenancy VPC (VPC with instance placement tenancy+-- attribute set to default). If you specify a value for this parameter, be+-- sure to specify at least one VPC subnet using the VPCZoneIdentifier+-- parameter when you create your group. For more information, see Auto+-- Scaling and Amazon VPC in the Auto Scaling Developer Guide. Valid values:+-- default | dedicated.+clcPlacementTenancy :: Lens' CreateLaunchConfiguration (Maybe Text)+clcPlacementTenancy =+    lens _clcPlacementTenancy (\s a -> s { _clcPlacementTenancy = a })++-- | The ID of the RAM disk associated with the Amazon EC2 AMI.+clcRamdiskId :: Lens' CreateLaunchConfiguration (Maybe Text)+clcRamdiskId = lens _clcRamdiskId (\s a -> s { _clcRamdiskId = a })++-- | One or more security groups with which to associate the instances. If+-- your instances are launched in EC2-Classic, you can either specify+-- security group names or the security group IDs. For more information+-- about security groups for EC2-Classic, see Amazon EC2 Security Groups in+-- the Amazon Elastic Compute Cloud User Guide. If your instances are+-- launched in a VPC, specify security group IDs. For more information, see+-- Security Groups for Your VPC in the Amazon Virtual Private Cloud User+-- Guide.+clcSecurityGroups :: Lens' CreateLaunchConfiguration [Text]+clcSecurityGroups =+    lens _clcSecurityGroups (\s a -> s { _clcSecurityGroups = a })+        . _List++-- | The maximum hourly price to be paid for any Spot Instance launched to+-- fulfill the request. Spot Instances are launched when the price you+-- specify exceeds the current Spot market price. For more information, see+-- Launch Spot Instances in Your Auto Scaling Group in the Auto Scaling+-- Developer Guide.+clcSpotPrice :: Lens' CreateLaunchConfiguration (Maybe Text)+clcSpotPrice = lens _clcSpotPrice (\s a -> s { _clcSpotPrice = a })++-- | The user data to make available to the launched EC2 instances. For more+-- information, see Instance Metadata and User Data in the Amazon Elastic+-- Compute Cloud User Guide. At this time, launch configurations don't+-- support compressed (zipped) user data files.+clcUserData :: Lens' CreateLaunchConfiguration (Maybe Text)+clcUserData = lens _clcUserData (\s a -> s { _clcUserData = a })++data CreateLaunchConfigurationResponse = CreateLaunchConfigurationResponse+    deriving (Eq, Ord, Show, Generic)++-- | 'CreateLaunchConfigurationResponse' constructor.+createLaunchConfigurationResponse :: CreateLaunchConfigurationResponse+createLaunchConfigurationResponse = CreateLaunchConfigurationResponse++instance ToPath CreateLaunchConfiguration where+    toPath = const "/"++instance ToQuery CreateLaunchConfiguration where+    toQuery CreateLaunchConfiguration{..} = mconcat+        [ "AssociatePublicIpAddress" =? _clcAssociatePublicIpAddress+        , "BlockDeviceMappings"      =? _clcBlockDeviceMappings+        , "EbsOptimized"             =? _clcEbsOptimized+        , "IamInstanceProfile"       =? _clcIamInstanceProfile+        , "ImageId"                  =? _clcImageId+        , "InstanceId"               =? _clcInstanceId+        , "InstanceMonitoring"       =? _clcInstanceMonitoring+        , "InstanceType"             =? _clcInstanceType+        , "KernelId"                 =? _clcKernelId+        , "KeyName"                  =? _clcKeyName+        , "LaunchConfigurationName"  =? _clcLaunchConfigurationName+        , "PlacementTenancy"         =? _clcPlacementTenancy+        , "RamdiskId"                =? _clcRamdiskId+        , "SecurityGroups"           =? _clcSecurityGroups+        , "SpotPrice"                =? _clcSpotPrice+        , "UserData"                 =? _clcUserData+        ]++instance ToHeaders CreateLaunchConfiguration++instance AWSRequest CreateLaunchConfiguration where+    type Sv CreateLaunchConfiguration = AutoScaling+    type Rs CreateLaunchConfiguration = CreateLaunchConfigurationResponse++    request  = post "CreateLaunchConfiguration"+    response = nullResponse CreateLaunchConfigurationResponse
+ gen/Network/AWS/AutoScaling/CreateOrUpdateTags.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.AutoScaling.CreateOrUpdateTags+-- 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 or updates tags for the specified Auto Scaling group. A tag's+-- definition is composed of a resource ID, resource type, key and value, and+-- the propagate flag. Value and the propagate flag are optional parameters.+-- See the Request Parameters for more information. For more information, see+-- Add, Modify, or Remove Auto Scaling Group Tags in the Auto Scaling+-- Developer Guide.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_CreateOrUpdateTags.html>+module Network.AWS.AutoScaling.CreateOrUpdateTags+    (+    -- * Request+      CreateOrUpdateTags+    -- ** Request constructor+    , createOrUpdateTags+    -- ** Request lenses+    , coutTags++    -- * Response+    , CreateOrUpdateTagsResponse+    -- ** Response constructor+    , createOrUpdateTagsResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++newtype CreateOrUpdateTags = CreateOrUpdateTags+    { _coutTags :: List "Tags" Tag+    } deriving (Eq, Show, Monoid, Semigroup)++instance GHC.Exts.IsList CreateOrUpdateTags where+    type Item CreateOrUpdateTags = Tag++    fromList = CreateOrUpdateTags . GHC.Exts.fromList+    toList   = GHC.Exts.toList . _coutTags++-- | 'CreateOrUpdateTags' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'coutTags' @::@ ['Tag']+--+createOrUpdateTags :: CreateOrUpdateTags+createOrUpdateTags = CreateOrUpdateTags+    { _coutTags = mempty+    }++-- | The tag to be created or updated. Each tag should be defined by its+-- resource type, resource ID, key, value, and a propagate flag. The+-- resource type and resource ID identify the type and name of resource for+-- which the tag is created. Currently, auto-scaling-group is the only+-- supported resource type. The valid value for the resource ID is+-- groupname. The PropagateAtLaunch flag defines whether the new tag will be+-- applied to instances launched by the group. Valid values are true or+-- false. However, instances that are already running will not get the new+-- or updated tag. Likewise, when you modify a tag, the updated version will+-- be applied only to new instances launched by the group after the change.+-- Running instances that had the previous version of the tag will continue+-- to have the older tag. When you create a tag and a tag of the same name+-- already exists, the operation overwrites the previous tag definition, but+-- you will not get an error message.+coutTags :: Lens' CreateOrUpdateTags [Tag]+coutTags = lens _coutTags (\s a -> s { _coutTags = a }) . _List++data CreateOrUpdateTagsResponse = CreateOrUpdateTagsResponse+    deriving (Eq, Ord, Show, Generic)++-- | 'CreateOrUpdateTagsResponse' constructor.+createOrUpdateTagsResponse :: CreateOrUpdateTagsResponse+createOrUpdateTagsResponse = CreateOrUpdateTagsResponse++instance ToPath CreateOrUpdateTags where+    toPath = const "/"++instance ToQuery CreateOrUpdateTags where+    toQuery CreateOrUpdateTags{..} = mconcat+        [ "Tags" =? _coutTags+        ]++instance ToHeaders CreateOrUpdateTags++instance AWSRequest CreateOrUpdateTags where+    type Sv CreateOrUpdateTags = AutoScaling+    type Rs CreateOrUpdateTags = CreateOrUpdateTagsResponse++    request  = post "CreateOrUpdateTags"+    response = nullResponse CreateOrUpdateTagsResponse
+ gen/Network/AWS/AutoScaling/DeleteAutoScalingGroup.hs view
@@ -0,0 +1,106 @@+{-# 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.AutoScaling.DeleteAutoScalingGroup+-- 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 Auto Scaling group. The group must have no instances+-- and no scaling activities in progress. To remove all instances before+-- calling DeleteAutoScalingGroup, you can call UpdateAutoScalingGroup to set+-- the minimum and maximum size of the AutoScalingGroup to zero.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DeleteAutoScalingGroup.html>+module Network.AWS.AutoScaling.DeleteAutoScalingGroup+    (+    -- * Request+      DeleteAutoScalingGroup+    -- ** Request constructor+    , deleteAutoScalingGroup+    -- ** Request lenses+    , dasgAutoScalingGroupName+    , dasgForceDelete++    -- * Response+    , DeleteAutoScalingGroupResponse+    -- ** Response constructor+    , deleteAutoScalingGroupResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data DeleteAutoScalingGroup = DeleteAutoScalingGroup+    { _dasgAutoScalingGroupName :: Text+    , _dasgForceDelete          :: Maybe Bool+    } deriving (Eq, Ord, Show)++-- | 'DeleteAutoScalingGroup' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dasgAutoScalingGroupName' @::@ 'Text'+--+-- * 'dasgForceDelete' @::@ 'Maybe' 'Bool'+--+deleteAutoScalingGroup :: Text -- ^ 'dasgAutoScalingGroupName'+                       -> DeleteAutoScalingGroup+deleteAutoScalingGroup p1 = DeleteAutoScalingGroup+    { _dasgAutoScalingGroupName = p1+    , _dasgForceDelete          = Nothing+    }++-- | The name of the group to delete.+dasgAutoScalingGroupName :: Lens' DeleteAutoScalingGroup Text+dasgAutoScalingGroupName =+    lens _dasgAutoScalingGroupName+        (\s a -> s { _dasgAutoScalingGroupName = a })++-- | Specifies that the group will be deleted along with all instances+-- associated with the group, without waiting for all instances to be+-- terminated. This parameter also deletes any lifecycle actions associated+-- with the group.+dasgForceDelete :: Lens' DeleteAutoScalingGroup (Maybe Bool)+dasgForceDelete = lens _dasgForceDelete (\s a -> s { _dasgForceDelete = a })++data DeleteAutoScalingGroupResponse = DeleteAutoScalingGroupResponse+    deriving (Eq, Ord, Show, Generic)++-- | 'DeleteAutoScalingGroupResponse' constructor.+deleteAutoScalingGroupResponse :: DeleteAutoScalingGroupResponse+deleteAutoScalingGroupResponse = DeleteAutoScalingGroupResponse++instance ToPath DeleteAutoScalingGroup where+    toPath = const "/"++instance ToQuery DeleteAutoScalingGroup where+    toQuery DeleteAutoScalingGroup{..} = mconcat+        [ "AutoScalingGroupName" =? _dasgAutoScalingGroupName+        , "ForceDelete"          =? _dasgForceDelete+        ]++instance ToHeaders DeleteAutoScalingGroup++instance AWSRequest DeleteAutoScalingGroup where+    type Sv DeleteAutoScalingGroup = AutoScaling+    type Rs DeleteAutoScalingGroup = DeleteAutoScalingGroupResponse++    request  = post "DeleteAutoScalingGroup"+    response = nullResponse DeleteAutoScalingGroupResponse
+ gen/Network/AWS/AutoScaling/DeleteLaunchConfiguration.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.AutoScaling.DeleteLaunchConfiguration+-- 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 launch configuration. The launch configuration must+-- not be attached to an Auto Scaling group. When this call completes, the+-- launch configuration is no longer available for use.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DeleteLaunchConfiguration.html>+module Network.AWS.AutoScaling.DeleteLaunchConfiguration+    (+    -- * Request+      DeleteLaunchConfiguration+    -- ** Request constructor+    , deleteLaunchConfiguration+    -- ** Request lenses+    , dlcLaunchConfigurationName++    -- * Response+    , DeleteLaunchConfigurationResponse+    -- ** Response constructor+    , deleteLaunchConfigurationResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++newtype DeleteLaunchConfiguration = DeleteLaunchConfiguration+    { _dlcLaunchConfigurationName :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'DeleteLaunchConfiguration' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dlcLaunchConfigurationName' @::@ 'Text'+--+deleteLaunchConfiguration :: Text -- ^ 'dlcLaunchConfigurationName'+                          -> DeleteLaunchConfiguration+deleteLaunchConfiguration p1 = DeleteLaunchConfiguration+    { _dlcLaunchConfigurationName = p1+    }++-- | The name of the launch configuration.+dlcLaunchConfigurationName :: Lens' DeleteLaunchConfiguration Text+dlcLaunchConfigurationName =+    lens _dlcLaunchConfigurationName+        (\s a -> s { _dlcLaunchConfigurationName = a })++data DeleteLaunchConfigurationResponse = DeleteLaunchConfigurationResponse+    deriving (Eq, Ord, Show, Generic)++-- | 'DeleteLaunchConfigurationResponse' constructor.+deleteLaunchConfigurationResponse :: DeleteLaunchConfigurationResponse+deleteLaunchConfigurationResponse = DeleteLaunchConfigurationResponse++instance ToPath DeleteLaunchConfiguration where+    toPath = const "/"++instance ToQuery DeleteLaunchConfiguration where+    toQuery DeleteLaunchConfiguration{..} = mconcat+        [ "LaunchConfigurationName" =? _dlcLaunchConfigurationName+        ]++instance ToHeaders DeleteLaunchConfiguration++instance AWSRequest DeleteLaunchConfiguration where+    type Sv DeleteLaunchConfiguration = AutoScaling+    type Rs DeleteLaunchConfiguration = DeleteLaunchConfigurationResponse++    request  = post "DeleteLaunchConfiguration"+    response = nullResponse DeleteLaunchConfigurationResponse
+ gen/Network/AWS/AutoScaling/DeleteLifecycleHook.hs view
@@ -0,0 +1,104 @@+{-# 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.AutoScaling.DeleteLifecycleHook+-- 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 lifecycle hook. If there are any outstanding+-- lifecycle actions, they are completed first (ABANDON for launching+-- instances, CONTINUE for terminating instances).+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DeleteLifecycleHook.html>+module Network.AWS.AutoScaling.DeleteLifecycleHook+    (+    -- * Request+      DeleteLifecycleHook+    -- ** Request constructor+    , deleteLifecycleHook+    -- ** Request lenses+    , dlh1AutoScalingGroupName+    , dlh1LifecycleHookName++    -- * Response+    , DeleteLifecycleHookResponse+    -- ** Response constructor+    , deleteLifecycleHookResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data DeleteLifecycleHook = DeleteLifecycleHook+    { _dlh1AutoScalingGroupName :: Text+    , _dlh1LifecycleHookName    :: Text+    } deriving (Eq, Ord, Show)++-- | 'DeleteLifecycleHook' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dlh1AutoScalingGroupName' @::@ 'Text'+--+-- * 'dlh1LifecycleHookName' @::@ 'Text'+--+deleteLifecycleHook :: Text -- ^ 'dlh1LifecycleHookName'+                    -> Text -- ^ 'dlh1AutoScalingGroupName'+                    -> DeleteLifecycleHook+deleteLifecycleHook p1 p2 = DeleteLifecycleHook+    { _dlh1LifecycleHookName    = p1+    , _dlh1AutoScalingGroupName = p2+    }++-- | The name of the Auto Scaling group for the lifecycle hook.+dlh1AutoScalingGroupName :: Lens' DeleteLifecycleHook Text+dlh1AutoScalingGroupName =+    lens _dlh1AutoScalingGroupName+        (\s a -> s { _dlh1AutoScalingGroupName = a })++-- | The name of the lifecycle hook.+dlh1LifecycleHookName :: Lens' DeleteLifecycleHook Text+dlh1LifecycleHookName =+    lens _dlh1LifecycleHookName (\s a -> s { _dlh1LifecycleHookName = a })++data DeleteLifecycleHookResponse = DeleteLifecycleHookResponse+    deriving (Eq, Ord, Show, Generic)++-- | 'DeleteLifecycleHookResponse' constructor.+deleteLifecycleHookResponse :: DeleteLifecycleHookResponse+deleteLifecycleHookResponse = DeleteLifecycleHookResponse++instance ToPath DeleteLifecycleHook where+    toPath = const "/"++instance ToQuery DeleteLifecycleHook where+    toQuery DeleteLifecycleHook{..} = mconcat+        [ "AutoScalingGroupName" =? _dlh1AutoScalingGroupName+        , "LifecycleHookName"    =? _dlh1LifecycleHookName+        ]++instance ToHeaders DeleteLifecycleHook++instance AWSRequest DeleteLifecycleHook where+    type Sv DeleteLifecycleHook = AutoScaling+    type Rs DeleteLifecycleHook = DeleteLifecycleHookResponse++    request  = post "DeleteLifecycleHook"+    response = nullResponse DeleteLifecycleHookResponse
+ gen/Network/AWS/AutoScaling/DeleteNotificationConfiguration.hs view
@@ -0,0 +1,101 @@+{-# 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.AutoScaling.DeleteNotificationConfiguration+-- 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 notification.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DeleteNotificationConfiguration.html>+module Network.AWS.AutoScaling.DeleteNotificationConfiguration+    (+    -- * Request+      DeleteNotificationConfiguration+    -- ** Request constructor+    , deleteNotificationConfiguration+    -- ** Request lenses+    , dncAutoScalingGroupName+    , dncTopicARN++    -- * Response+    , DeleteNotificationConfigurationResponse+    -- ** Response constructor+    , deleteNotificationConfigurationResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data DeleteNotificationConfiguration = DeleteNotificationConfiguration+    { _dncAutoScalingGroupName :: Text+    , _dncTopicARN             :: Text+    } deriving (Eq, Ord, Show)++-- | 'DeleteNotificationConfiguration' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dncAutoScalingGroupName' @::@ 'Text'+--+-- * 'dncTopicARN' @::@ 'Text'+--+deleteNotificationConfiguration :: Text -- ^ 'dncAutoScalingGroupName'+                                -> Text -- ^ 'dncTopicARN'+                                -> DeleteNotificationConfiguration+deleteNotificationConfiguration p1 p2 = DeleteNotificationConfiguration+    { _dncAutoScalingGroupName = p1+    , _dncTopicARN             = p2+    }++-- | The name of the Auto Scaling group.+dncAutoScalingGroupName :: Lens' DeleteNotificationConfiguration Text+dncAutoScalingGroupName =+    lens _dncAutoScalingGroupName (\s a -> s { _dncAutoScalingGroupName = a })++-- | The Amazon Resource Name (ARN) of the Amazon Simple Notification Service+-- (SNS) topic.+dncTopicARN :: Lens' DeleteNotificationConfiguration Text+dncTopicARN = lens _dncTopicARN (\s a -> s { _dncTopicARN = a })++data DeleteNotificationConfigurationResponse = DeleteNotificationConfigurationResponse+    deriving (Eq, Ord, Show, Generic)++-- | 'DeleteNotificationConfigurationResponse' constructor.+deleteNotificationConfigurationResponse :: DeleteNotificationConfigurationResponse+deleteNotificationConfigurationResponse = DeleteNotificationConfigurationResponse++instance ToPath DeleteNotificationConfiguration where+    toPath = const "/"++instance ToQuery DeleteNotificationConfiguration where+    toQuery DeleteNotificationConfiguration{..} = mconcat+        [ "AutoScalingGroupName" =? _dncAutoScalingGroupName+        , "TopicARN"             =? _dncTopicARN+        ]++instance ToHeaders DeleteNotificationConfiguration++instance AWSRequest DeleteNotificationConfiguration where+    type Sv DeleteNotificationConfiguration = AutoScaling+    type Rs DeleteNotificationConfiguration = DeleteNotificationConfigurationResponse++    request  = post "DeleteNotificationConfiguration"+    response = nullResponse DeleteNotificationConfigurationResponse
+ gen/Network/AWS/AutoScaling/DeletePolicy.hs view
@@ -0,0 +1,99 @@+{-# 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.AutoScaling.DeletePolicy+-- 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 Auto Scaling policy.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DeletePolicy.html>+module Network.AWS.AutoScaling.DeletePolicy+    (+    -- * Request+      DeletePolicy+    -- ** Request constructor+    , deletePolicy+    -- ** Request lenses+    , dpAutoScalingGroupName+    , dpPolicyName++    -- * Response+    , DeletePolicyResponse+    -- ** Response constructor+    , deletePolicyResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data DeletePolicy = DeletePolicy+    { _dpAutoScalingGroupName :: Maybe Text+    , _dpPolicyName           :: Text+    } deriving (Eq, Ord, Show)++-- | 'DeletePolicy' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dpAutoScalingGroupName' @::@ 'Maybe' 'Text'+--+-- * 'dpPolicyName' @::@ 'Text'+--+deletePolicy :: Text -- ^ 'dpPolicyName'+             -> DeletePolicy+deletePolicy p1 = DeletePolicy+    { _dpPolicyName           = p1+    , _dpAutoScalingGroupName = Nothing+    }++-- | The name of the Auto Scaling group.+dpAutoScalingGroupName :: Lens' DeletePolicy (Maybe Text)+dpAutoScalingGroupName =+    lens _dpAutoScalingGroupName (\s a -> s { _dpAutoScalingGroupName = a })++-- | The name or Amazon Resource Name (ARN) of the policy.+dpPolicyName :: Lens' DeletePolicy Text+dpPolicyName = lens _dpPolicyName (\s a -> s { _dpPolicyName = a })++data DeletePolicyResponse = DeletePolicyResponse+    deriving (Eq, Ord, Show, Generic)++-- | 'DeletePolicyResponse' constructor.+deletePolicyResponse :: DeletePolicyResponse+deletePolicyResponse = DeletePolicyResponse++instance ToPath DeletePolicy where+    toPath = const "/"++instance ToQuery DeletePolicy where+    toQuery DeletePolicy{..} = mconcat+        [ "AutoScalingGroupName" =? _dpAutoScalingGroupName+        , "PolicyName"           =? _dpPolicyName+        ]++instance ToHeaders DeletePolicy++instance AWSRequest DeletePolicy where+    type Sv DeletePolicy = AutoScaling+    type Rs DeletePolicy = DeletePolicyResponse++    request  = post "DeletePolicy"+    response = nullResponse DeletePolicyResponse
+ gen/Network/AWS/AutoScaling/DeleteScheduledAction.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.AutoScaling.DeleteScheduledAction+-- 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 scheduled action.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DeleteScheduledAction.html>+module Network.AWS.AutoScaling.DeleteScheduledAction+    (+    -- * Request+      DeleteScheduledAction+    -- ** Request constructor+    , deleteScheduledAction+    -- ** Request lenses+    , dsaAutoScalingGroupName+    , dsaScheduledActionName++    -- * Response+    , DeleteScheduledActionResponse+    -- ** Response constructor+    , deleteScheduledActionResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data DeleteScheduledAction = DeleteScheduledAction+    { _dsaAutoScalingGroupName :: Maybe Text+    , _dsaScheduledActionName  :: Text+    } deriving (Eq, Ord, Show)++-- | 'DeleteScheduledAction' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dsaAutoScalingGroupName' @::@ 'Maybe' 'Text'+--+-- * 'dsaScheduledActionName' @::@ 'Text'+--+deleteScheduledAction :: Text -- ^ 'dsaScheduledActionName'+                      -> DeleteScheduledAction+deleteScheduledAction p1 = DeleteScheduledAction+    { _dsaScheduledActionName  = p1+    , _dsaAutoScalingGroupName = Nothing+    }++-- | The name of the Auto Scaling group.+dsaAutoScalingGroupName :: Lens' DeleteScheduledAction (Maybe Text)+dsaAutoScalingGroupName =+    lens _dsaAutoScalingGroupName (\s a -> s { _dsaAutoScalingGroupName = a })++-- | The name of the action to delete.+dsaScheduledActionName :: Lens' DeleteScheduledAction Text+dsaScheduledActionName =+    lens _dsaScheduledActionName (\s a -> s { _dsaScheduledActionName = a })++data DeleteScheduledActionResponse = DeleteScheduledActionResponse+    deriving (Eq, Ord, Show, Generic)++-- | 'DeleteScheduledActionResponse' constructor.+deleteScheduledActionResponse :: DeleteScheduledActionResponse+deleteScheduledActionResponse = DeleteScheduledActionResponse++instance ToPath DeleteScheduledAction where+    toPath = const "/"++instance ToQuery DeleteScheduledAction where+    toQuery DeleteScheduledAction{..} = mconcat+        [ "AutoScalingGroupName" =? _dsaAutoScalingGroupName+        , "ScheduledActionName"  =? _dsaScheduledActionName+        ]++instance ToHeaders DeleteScheduledAction++instance AWSRequest DeleteScheduledAction where+    type Sv DeleteScheduledAction = AutoScaling+    type Rs DeleteScheduledAction = DeleteScheduledActionResponse++    request  = post "DeleteScheduledAction"+    response = nullResponse DeleteScheduledActionResponse
+ gen/Network/AWS/AutoScaling/DeleteTags.hs view
@@ -0,0 +1,96 @@+{-# 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.AutoScaling.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 the specified tags.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DeleteTags.html>+module Network.AWS.AutoScaling.DeleteTags+    (+    -- * Request+      DeleteTags+    -- ** Request constructor+    , deleteTags+    -- ** Request lenses+    , dtTags++    -- * Response+    , DeleteTagsResponse+    -- ** Response constructor+    , deleteTagsResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++newtype DeleteTags = DeleteTags+    { _dtTags :: List "Tags" Tag+    } deriving (Eq, Show, Monoid, Semigroup)++instance GHC.Exts.IsList DeleteTags where+    type Item DeleteTags = Tag++    fromList = DeleteTags . GHC.Exts.fromList+    toList   = GHC.Exts.toList . _dtTags++-- | 'DeleteTags' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dtTags' @::@ ['Tag']+--+deleteTags :: DeleteTags+deleteTags = DeleteTags+    { _dtTags = mempty+    }++-- | Each tag should be defined by its resource type, resource ID, key, value,+-- and a propagate flag. Valid values are: Resource type =+-- auto-scaling-group, Resource ID = AutoScalingGroupName, key=value,+-- value=value, propagate=true or false.+dtTags :: Lens' DeleteTags [Tag]+dtTags = lens _dtTags (\s a -> s { _dtTags = 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+        [ "Tags" =? _dtTags+        ]++instance ToHeaders DeleteTags++instance AWSRequest DeleteTags where+    type Sv DeleteTags = AutoScaling+    type Rs DeleteTags = DeleteTagsResponse++    request  = post "DeleteTags"+    response = nullResponse DeleteTagsResponse
+ gen/Network/AWS/AutoScaling/DescribeAccountLimits.hs view
@@ -0,0 +1,107 @@+{-# 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.AutoScaling.DescribeAccountLimits+-- 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 the current Auto Scaling resource limits for your AWS account.+-- For information about requesting an increase in these limits, see AWS+-- Service Limits.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DescribeAccountLimits.html>+module Network.AWS.AutoScaling.DescribeAccountLimits+    (+    -- * Request+      DescribeAccountLimits+    -- ** Request constructor+    , describeAccountLimits++    -- * Response+    , DescribeAccountLimitsResponse+    -- ** Response constructor+    , describeAccountLimitsResponse+    -- ** Response lenses+    , dalrMaxNumberOfAutoScalingGroups+    , dalrMaxNumberOfLaunchConfigurations+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data DescribeAccountLimits = DescribeAccountLimits+    deriving (Eq, Ord, Show, Generic)++-- | 'DescribeAccountLimits' constructor.+describeAccountLimits :: DescribeAccountLimits+describeAccountLimits = DescribeAccountLimits++data DescribeAccountLimitsResponse = DescribeAccountLimitsResponse+    { _dalrMaxNumberOfAutoScalingGroups    :: Maybe Int+    , _dalrMaxNumberOfLaunchConfigurations :: Maybe Int+    } deriving (Eq, Ord, Show)++-- | 'DescribeAccountLimitsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dalrMaxNumberOfAutoScalingGroups' @::@ 'Maybe' 'Int'+--+-- * 'dalrMaxNumberOfLaunchConfigurations' @::@ 'Maybe' 'Int'+--+describeAccountLimitsResponse :: DescribeAccountLimitsResponse+describeAccountLimitsResponse = DescribeAccountLimitsResponse+    { _dalrMaxNumberOfAutoScalingGroups    = Nothing+    , _dalrMaxNumberOfLaunchConfigurations = Nothing+    }++-- | The maximum number of groups allowed for your AWS account. The default+-- limit is 20 per region.+dalrMaxNumberOfAutoScalingGroups :: Lens' DescribeAccountLimitsResponse (Maybe Int)+dalrMaxNumberOfAutoScalingGroups =+    lens _dalrMaxNumberOfAutoScalingGroups+        (\s a -> s { _dalrMaxNumberOfAutoScalingGroups = a })++-- | The maximum number of launch configurations allowed for your AWS account.+-- The default limit is 100 per region.+dalrMaxNumberOfLaunchConfigurations :: Lens' DescribeAccountLimitsResponse (Maybe Int)+dalrMaxNumberOfLaunchConfigurations =+    lens _dalrMaxNumberOfLaunchConfigurations+        (\s a -> s { _dalrMaxNumberOfLaunchConfigurations = a })++instance ToPath DescribeAccountLimits where+    toPath = const "/"++instance ToQuery DescribeAccountLimits where+    toQuery = const mempty++instance ToHeaders DescribeAccountLimits++instance AWSRequest DescribeAccountLimits where+    type Sv DescribeAccountLimits = AutoScaling+    type Rs DescribeAccountLimits = DescribeAccountLimitsResponse++    request  = post "DescribeAccountLimits"+    response = xmlResponse++instance FromXML DescribeAccountLimitsResponse where+    parseXML = withElement "DescribeAccountLimitsResult" $ \x -> DescribeAccountLimitsResponse+        <$> x .@? "MaxNumberOfAutoScalingGroups"+        <*> x .@? "MaxNumberOfLaunchConfigurations"
+ gen/Network/AWS/AutoScaling/DescribeAdjustmentTypes.hs view
@@ -0,0 +1,97 @@+{-# 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.AutoScaling.DescribeAdjustmentTypes+-- 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 the policy adjustment types for use with PutScalingPolicy.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DescribeAdjustmentTypes.html>+module Network.AWS.AutoScaling.DescribeAdjustmentTypes+    (+    -- * Request+      DescribeAdjustmentTypes+    -- ** Request constructor+    , describeAdjustmentTypes++    -- * Response+    , DescribeAdjustmentTypesResponse+    -- ** Response constructor+    , describeAdjustmentTypesResponse+    -- ** Response lenses+    , datrAdjustmentTypes+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data DescribeAdjustmentTypes = DescribeAdjustmentTypes+    deriving (Eq, Ord, Show, Generic)++-- | 'DescribeAdjustmentTypes' constructor.+describeAdjustmentTypes :: DescribeAdjustmentTypes+describeAdjustmentTypes = DescribeAdjustmentTypes++newtype DescribeAdjustmentTypesResponse = DescribeAdjustmentTypesResponse+    { _datrAdjustmentTypes :: List "AdjustmentTypes" AdjustmentType+    } deriving (Eq, Show, Monoid, Semigroup)++instance GHC.Exts.IsList DescribeAdjustmentTypesResponse where+    type Item DescribeAdjustmentTypesResponse = AdjustmentType++    fromList = DescribeAdjustmentTypesResponse . GHC.Exts.fromList+    toList   = GHC.Exts.toList . _datrAdjustmentTypes++-- | 'DescribeAdjustmentTypesResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'datrAdjustmentTypes' @::@ ['AdjustmentType']+--+describeAdjustmentTypesResponse :: DescribeAdjustmentTypesResponse+describeAdjustmentTypesResponse = DescribeAdjustmentTypesResponse+    { _datrAdjustmentTypes = mempty+    }++-- | The policy adjustment types.+datrAdjustmentTypes :: Lens' DescribeAdjustmentTypesResponse [AdjustmentType]+datrAdjustmentTypes =+    lens _datrAdjustmentTypes (\s a -> s { _datrAdjustmentTypes = a })+        . _List++instance ToPath DescribeAdjustmentTypes where+    toPath = const "/"++instance ToQuery DescribeAdjustmentTypes where+    toQuery = const mempty++instance ToHeaders DescribeAdjustmentTypes++instance AWSRequest DescribeAdjustmentTypes where+    type Sv DescribeAdjustmentTypes = AutoScaling+    type Rs DescribeAdjustmentTypes = DescribeAdjustmentTypesResponse++    request  = post "DescribeAdjustmentTypes"+    response = xmlResponse++instance FromXML DescribeAdjustmentTypesResponse where+    parseXML = withElement "DescribeAdjustmentTypesResult" $ \x -> DescribeAdjustmentTypesResponse+        <$> x .@  "AdjustmentTypes"
+ gen/Network/AWS/AutoScaling/DescribeAutoScalingGroups.hs view
@@ -0,0 +1,152 @@+{-# 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.AutoScaling.DescribeAutoScalingGroups+-- 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 one or more Auto Scaling groups. If a list of names is not+-- provided, the call describes all Auto Scaling groups. You can specify a+-- maximum number of items to be returned with a single call. If there are+-- more items to return, the call returns a token. To get the next set of+-- items, repeat the call with the returned token in the NextToken parameter.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DescribeAutoScalingGroups.html>+module Network.AWS.AutoScaling.DescribeAutoScalingGroups+    (+    -- * Request+      DescribeAutoScalingGroups+    -- ** Request constructor+    , describeAutoScalingGroups+    -- ** Request lenses+    , dasgAutoScalingGroupNames+    , dasgMaxRecords+    , dasgNextToken++    -- * Response+    , DescribeAutoScalingGroupsResponse+    -- ** Response constructor+    , describeAutoScalingGroupsResponse+    -- ** Response lenses+    , dasgrAutoScalingGroups+    , dasgrNextToken+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data DescribeAutoScalingGroups = DescribeAutoScalingGroups+    { _dasgAutoScalingGroupNames :: List "AutoScalingGroupNames" Text+    , _dasgMaxRecords            :: Maybe Int+    , _dasgNextToken             :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'DescribeAutoScalingGroups' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dasgAutoScalingGroupNames' @::@ ['Text']+--+-- * 'dasgMaxRecords' @::@ 'Maybe' 'Int'+--+-- * 'dasgNextToken' @::@ 'Maybe' 'Text'+--+describeAutoScalingGroups :: DescribeAutoScalingGroups+describeAutoScalingGroups = DescribeAutoScalingGroups+    { _dasgAutoScalingGroupNames = mempty+    , _dasgNextToken             = Nothing+    , _dasgMaxRecords            = Nothing+    }++-- | The group names.+dasgAutoScalingGroupNames :: Lens' DescribeAutoScalingGroups [Text]+dasgAutoScalingGroupNames =+    lens _dasgAutoScalingGroupNames+        (\s a -> s { _dasgAutoScalingGroupNames = a })+            . _List++-- | The maximum number of items to return with this call.+dasgMaxRecords :: Lens' DescribeAutoScalingGroups (Maybe Int)+dasgMaxRecords = lens _dasgMaxRecords (\s a -> s { _dasgMaxRecords = a })++-- | The token for the next set of items to return. (You received this token+-- from a previous call.).+dasgNextToken :: Lens' DescribeAutoScalingGroups (Maybe Text)+dasgNextToken = lens _dasgNextToken (\s a -> s { _dasgNextToken = a })++data DescribeAutoScalingGroupsResponse = DescribeAutoScalingGroupsResponse+    { _dasgrAutoScalingGroups :: List "AutoScalingGroups" AutoScalingGroup+    , _dasgrNextToken         :: Maybe Text+    } deriving (Eq, Show)++-- | 'DescribeAutoScalingGroupsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dasgrAutoScalingGroups' @::@ ['AutoScalingGroup']+--+-- * 'dasgrNextToken' @::@ 'Maybe' 'Text'+--+describeAutoScalingGroupsResponse :: DescribeAutoScalingGroupsResponse+describeAutoScalingGroupsResponse = DescribeAutoScalingGroupsResponse+    { _dasgrAutoScalingGroups = mempty+    , _dasgrNextToken         = Nothing+    }++-- | The groups.+dasgrAutoScalingGroups :: Lens' DescribeAutoScalingGroupsResponse [AutoScalingGroup]+dasgrAutoScalingGroups =+    lens _dasgrAutoScalingGroups (\s a -> s { _dasgrAutoScalingGroups = a })+        . _List++-- | The token to use when requesting the next set of items. If there are no+-- additional items to return, the string is empty.+dasgrNextToken :: Lens' DescribeAutoScalingGroupsResponse (Maybe Text)+dasgrNextToken = lens _dasgrNextToken (\s a -> s { _dasgrNextToken = a })++instance ToPath DescribeAutoScalingGroups where+    toPath = const "/"++instance ToQuery DescribeAutoScalingGroups where+    toQuery DescribeAutoScalingGroups{..} = mconcat+        [ "AutoScalingGroupNames" =? _dasgAutoScalingGroupNames+        , "MaxRecords"            =? _dasgMaxRecords+        , "NextToken"             =? _dasgNextToken+        ]++instance ToHeaders DescribeAutoScalingGroups++instance AWSRequest DescribeAutoScalingGroups where+    type Sv DescribeAutoScalingGroups = AutoScaling+    type Rs DescribeAutoScalingGroups = DescribeAutoScalingGroupsResponse++    request  = post "DescribeAutoScalingGroups"+    response = xmlResponse++instance FromXML DescribeAutoScalingGroupsResponse where+    parseXML = withElement "DescribeAutoScalingGroupsResult" $ \x -> DescribeAutoScalingGroupsResponse+        <$> x .@  "AutoScalingGroups"+        <*> x .@? "NextToken"++instance AWSPager DescribeAutoScalingGroups where+    page rq rs+        | stop (rq ^. dasgNextToken) = Nothing+        | otherwise = (\x -> rq & dasgNextToken ?~ x)+            <$> (rs ^. dasgrNextToken)
+ gen/Network/AWS/AutoScaling/DescribeAutoScalingInstances.hs view
@@ -0,0 +1,153 @@+{-# 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.AutoScaling.DescribeAutoScalingInstances+-- 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 one or more Auto Scaling instances. If a list is not provided,+-- the call describes all instances. You can describe up to a maximum of 50+-- instances with a single call. By default, a call returns up to 20+-- instances. If there are more items to return, the call returns a token. To+-- get the next set of items, repeat the call with the returned token in the+-- NextToken parameter.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DescribeAutoScalingInstances.html>+module Network.AWS.AutoScaling.DescribeAutoScalingInstances+    (+    -- * Request+      DescribeAutoScalingInstances+    -- ** Request constructor+    , describeAutoScalingInstances+    -- ** Request lenses+    , dasiInstanceIds+    , dasiMaxRecords+    , dasiNextToken++    -- * Response+    , DescribeAutoScalingInstancesResponse+    -- ** Response constructor+    , describeAutoScalingInstancesResponse+    -- ** Response lenses+    , dasirAutoScalingInstances+    , dasirNextToken+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data DescribeAutoScalingInstances = DescribeAutoScalingInstances+    { _dasiInstanceIds :: List "InstanceIds" Text+    , _dasiMaxRecords  :: Maybe Int+    , _dasiNextToken   :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'DescribeAutoScalingInstances' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dasiInstanceIds' @::@ ['Text']+--+-- * 'dasiMaxRecords' @::@ 'Maybe' 'Int'+--+-- * 'dasiNextToken' @::@ 'Maybe' 'Text'+--+describeAutoScalingInstances :: DescribeAutoScalingInstances+describeAutoScalingInstances = DescribeAutoScalingInstances+    { _dasiInstanceIds = mempty+    , _dasiMaxRecords  = Nothing+    , _dasiNextToken   = Nothing+    }++-- | One or more Auto Scaling instances to describe, up to 50 instances. If+-- you omit this parameter, all Auto Scaling instances are described. If you+-- specify an ID that does not exist, it is ignored with no error.+dasiInstanceIds :: Lens' DescribeAutoScalingInstances [Text]+dasiInstanceIds = lens _dasiInstanceIds (\s a -> s { _dasiInstanceIds = a }) . _List++-- | The maximum number of items to return with this call.+dasiMaxRecords :: Lens' DescribeAutoScalingInstances (Maybe Int)+dasiMaxRecords = lens _dasiMaxRecords (\s a -> s { _dasiMaxRecords = a })++-- | The token for the next set of items to return. (You received this token+-- from a previous call.).+dasiNextToken :: Lens' DescribeAutoScalingInstances (Maybe Text)+dasiNextToken = lens _dasiNextToken (\s a -> s { _dasiNextToken = a })++data DescribeAutoScalingInstancesResponse = DescribeAutoScalingInstancesResponse+    { _dasirAutoScalingInstances :: List "AutoScalingInstances" AutoScalingInstanceDetails+    , _dasirNextToken            :: Maybe Text+    } deriving (Eq, Show)++-- | 'DescribeAutoScalingInstancesResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dasirAutoScalingInstances' @::@ ['AutoScalingInstanceDetails']+--+-- * 'dasirNextToken' @::@ 'Maybe' 'Text'+--+describeAutoScalingInstancesResponse :: DescribeAutoScalingInstancesResponse+describeAutoScalingInstancesResponse = DescribeAutoScalingInstancesResponse+    { _dasirAutoScalingInstances = mempty+    , _dasirNextToken            = Nothing+    }++-- | The instances.+dasirAutoScalingInstances :: Lens' DescribeAutoScalingInstancesResponse [AutoScalingInstanceDetails]+dasirAutoScalingInstances =+    lens _dasirAutoScalingInstances+        (\s a -> s { _dasirAutoScalingInstances = a })+            . _List++-- | The token to use when requesting the next set of items. If there are no+-- additional items to return, the string is empty.+dasirNextToken :: Lens' DescribeAutoScalingInstancesResponse (Maybe Text)+dasirNextToken = lens _dasirNextToken (\s a -> s { _dasirNextToken = a })++instance ToPath DescribeAutoScalingInstances where+    toPath = const "/"++instance ToQuery DescribeAutoScalingInstances where+    toQuery DescribeAutoScalingInstances{..} = mconcat+        [ "InstanceIds" =? _dasiInstanceIds+        , "MaxRecords"  =? _dasiMaxRecords+        , "NextToken"   =? _dasiNextToken+        ]++instance ToHeaders DescribeAutoScalingInstances++instance AWSRequest DescribeAutoScalingInstances where+    type Sv DescribeAutoScalingInstances = AutoScaling+    type Rs DescribeAutoScalingInstances = DescribeAutoScalingInstancesResponse++    request  = post "DescribeAutoScalingInstances"+    response = xmlResponse++instance FromXML DescribeAutoScalingInstancesResponse where+    parseXML = withElement "DescribeAutoScalingInstancesResult" $ \x -> DescribeAutoScalingInstancesResponse+        <$> x .@  "AutoScalingInstances"+        <*> x .@? "NextToken"++instance AWSPager DescribeAutoScalingInstances where+    page rq rs+        | stop (rq ^. dasiNextToken) = Nothing+        | otherwise = (\x -> rq & dasiNextToken ?~ x)+            <$> (rs ^. dasirNextToken)
+ gen/Network/AWS/AutoScaling/DescribeAutoScalingNotificationTypes.hs view
@@ -0,0 +1,101 @@+{-# 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.AutoScaling.DescribeAutoScalingNotificationTypes+-- 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 the notification types that are supported by Auto Scaling.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DescribeAutoScalingNotificationTypes.html>+module Network.AWS.AutoScaling.DescribeAutoScalingNotificationTypes+    (+    -- * Request+      DescribeAutoScalingNotificationTypes+    -- ** Request constructor+    , describeAutoScalingNotificationTypes++    -- * Response+    , DescribeAutoScalingNotificationTypesResponse+    -- ** Response constructor+    , describeAutoScalingNotificationTypesResponse+    -- ** Response lenses+    , dasntrAutoScalingNotificationTypes+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data DescribeAutoScalingNotificationTypes = DescribeAutoScalingNotificationTypes+    deriving (Eq, Ord, Show, Generic)++-- | 'DescribeAutoScalingNotificationTypes' constructor.+describeAutoScalingNotificationTypes :: DescribeAutoScalingNotificationTypes+describeAutoScalingNotificationTypes = DescribeAutoScalingNotificationTypes++newtype DescribeAutoScalingNotificationTypesResponse = DescribeAutoScalingNotificationTypesResponse+    { _dasntrAutoScalingNotificationTypes :: List "LifecycleHookTypes" Text+    } deriving (Eq, Ord, Show, Monoid, Semigroup)++instance GHC.Exts.IsList DescribeAutoScalingNotificationTypesResponse where+    type Item DescribeAutoScalingNotificationTypesResponse = Text++    fromList = DescribeAutoScalingNotificationTypesResponse . GHC.Exts.fromList+    toList   = GHC.Exts.toList . _dasntrAutoScalingNotificationTypes++-- | 'DescribeAutoScalingNotificationTypesResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dasntrAutoScalingNotificationTypes' @::@ ['Text']+--+describeAutoScalingNotificationTypesResponse :: DescribeAutoScalingNotificationTypesResponse+describeAutoScalingNotificationTypesResponse = DescribeAutoScalingNotificationTypesResponse+    { _dasntrAutoScalingNotificationTypes = mempty+    }++-- | One or more of the following notification types:+-- autoscaling:EC2_INSTANCE_LAUNCH autoscaling:EC2_INSTANCE_LAUNCH_ERROR+-- autoscaling:EC2_INSTANCE_TERMINATE+-- autoscaling:EC2_INSTANCE_TERMINATE_ERROR autoscaling:TEST_NOTIFICATION.+dasntrAutoScalingNotificationTypes :: Lens' DescribeAutoScalingNotificationTypesResponse [Text]+dasntrAutoScalingNotificationTypes =+    lens _dasntrAutoScalingNotificationTypes+        (\s a -> s { _dasntrAutoScalingNotificationTypes = a })+            . _List++instance ToPath DescribeAutoScalingNotificationTypes where+    toPath = const "/"++instance ToQuery DescribeAutoScalingNotificationTypes where+    toQuery = const mempty++instance ToHeaders DescribeAutoScalingNotificationTypes++instance AWSRequest DescribeAutoScalingNotificationTypes where+    type Sv DescribeAutoScalingNotificationTypes = AutoScaling+    type Rs DescribeAutoScalingNotificationTypes = DescribeAutoScalingNotificationTypesResponse++    request  = post "DescribeAutoScalingNotificationTypes"+    response = xmlResponse++instance FromXML DescribeAutoScalingNotificationTypesResponse where+    parseXML = withElement "DescribeAutoScalingNotificationTypesResult" $ \x -> DescribeAutoScalingNotificationTypesResponse+        <$> x .@  "AutoScalingNotificationTypes"
+ gen/Network/AWS/AutoScaling/DescribeLaunchConfigurations.hs view
@@ -0,0 +1,153 @@+{-# 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.AutoScaling.DescribeLaunchConfigurations+-- 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 one or more launch configurations. If you omit the list of names,+-- then the call describes all launch configurations. You can specify a+-- maximum number of items to be returned with a single call. If there are+-- more items to return, the call returns a token. To get the next set of+-- items, repeat the call with the returned token in the NextToken parameter.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DescribeLaunchConfigurations.html>+module Network.AWS.AutoScaling.DescribeLaunchConfigurations+    (+    -- * Request+      DescribeLaunchConfigurations+    -- ** Request constructor+    , describeLaunchConfigurations+    -- ** Request lenses+    , dlcLaunchConfigurationNames+    , dlcMaxRecords+    , dlcNextToken++    -- * Response+    , DescribeLaunchConfigurationsResponse+    -- ** Response constructor+    , describeLaunchConfigurationsResponse+    -- ** Response lenses+    , dlcrLaunchConfigurations+    , dlcrNextToken+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data DescribeLaunchConfigurations = DescribeLaunchConfigurations+    { _dlcLaunchConfigurationNames :: List "LaunchConfigurationNames" Text+    , _dlcMaxRecords               :: Maybe Int+    , _dlcNextToken                :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'DescribeLaunchConfigurations' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dlcLaunchConfigurationNames' @::@ ['Text']+--+-- * 'dlcMaxRecords' @::@ 'Maybe' 'Int'+--+-- * 'dlcNextToken' @::@ 'Maybe' 'Text'+--+describeLaunchConfigurations :: DescribeLaunchConfigurations+describeLaunchConfigurations = DescribeLaunchConfigurations+    { _dlcLaunchConfigurationNames = mempty+    , _dlcNextToken                = Nothing+    , _dlcMaxRecords               = Nothing+    }++-- | The launch configuration names.+dlcLaunchConfigurationNames :: Lens' DescribeLaunchConfigurations [Text]+dlcLaunchConfigurationNames =+    lens _dlcLaunchConfigurationNames+        (\s a -> s { _dlcLaunchConfigurationNames = a })+            . _List++-- | The maximum number of items to return with this call. The default is 100.+dlcMaxRecords :: Lens' DescribeLaunchConfigurations (Maybe Int)+dlcMaxRecords = lens _dlcMaxRecords (\s a -> s { _dlcMaxRecords = a })++-- | The token for the next set of items to return. (You received this token+-- from a previous call.).+dlcNextToken :: Lens' DescribeLaunchConfigurations (Maybe Text)+dlcNextToken = lens _dlcNextToken (\s a -> s { _dlcNextToken = a })++data DescribeLaunchConfigurationsResponse = DescribeLaunchConfigurationsResponse+    { _dlcrLaunchConfigurations :: List "LaunchConfigurations" LaunchConfiguration+    , _dlcrNextToken            :: Maybe Text+    } deriving (Eq, Show)++-- | 'DescribeLaunchConfigurationsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dlcrLaunchConfigurations' @::@ ['LaunchConfiguration']+--+-- * 'dlcrNextToken' @::@ 'Maybe' 'Text'+--+describeLaunchConfigurationsResponse :: DescribeLaunchConfigurationsResponse+describeLaunchConfigurationsResponse = DescribeLaunchConfigurationsResponse+    { _dlcrLaunchConfigurations = mempty+    , _dlcrNextToken            = Nothing+    }++-- | The launch configurations.+dlcrLaunchConfigurations :: Lens' DescribeLaunchConfigurationsResponse [LaunchConfiguration]+dlcrLaunchConfigurations =+    lens _dlcrLaunchConfigurations+        (\s a -> s { _dlcrLaunchConfigurations = a })+            . _List++-- | The token to use when requesting the next set of items. If there are no+-- additional items to return, the string is empty.+dlcrNextToken :: Lens' DescribeLaunchConfigurationsResponse (Maybe Text)+dlcrNextToken = lens _dlcrNextToken (\s a -> s { _dlcrNextToken = a })++instance ToPath DescribeLaunchConfigurations where+    toPath = const "/"++instance ToQuery DescribeLaunchConfigurations where+    toQuery DescribeLaunchConfigurations{..} = mconcat+        [ "LaunchConfigurationNames" =? _dlcLaunchConfigurationNames+        , "MaxRecords"               =? _dlcMaxRecords+        , "NextToken"                =? _dlcNextToken+        ]++instance ToHeaders DescribeLaunchConfigurations++instance AWSRequest DescribeLaunchConfigurations where+    type Sv DescribeLaunchConfigurations = AutoScaling+    type Rs DescribeLaunchConfigurations = DescribeLaunchConfigurationsResponse++    request  = post "DescribeLaunchConfigurations"+    response = xmlResponse++instance FromXML DescribeLaunchConfigurationsResponse where+    parseXML = withElement "DescribeLaunchConfigurationsResult" $ \x -> DescribeLaunchConfigurationsResponse+        <$> x .@  "LaunchConfigurations"+        <*> x .@? "NextToken"++instance AWSPager DescribeLaunchConfigurations where+    page rq rs+        | stop (rq ^. dlcNextToken) = Nothing+        | otherwise = (\x -> rq & dlcNextToken ?~ x)+            <$> (rs ^. dlcrNextToken)
+ gen/Network/AWS/AutoScaling/DescribeLifecycleHookTypes.hs view
@@ -0,0 +1,98 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.AutoScaling.DescribeLifecycleHookTypes+-- 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 the available types of lifecycle hooks.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DescribeLifecycleHookTypes.html>+module Network.AWS.AutoScaling.DescribeLifecycleHookTypes+    (+    -- * Request+      DescribeLifecycleHookTypes+    -- ** Request constructor+    , describeLifecycleHookTypes++    -- * Response+    , DescribeLifecycleHookTypesResponse+    -- ** Response constructor+    , describeLifecycleHookTypesResponse+    -- ** Response lenses+    , dlhtrLifecycleHookTypes+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data DescribeLifecycleHookTypes = DescribeLifecycleHookTypes+    deriving (Eq, Ord, Show, Generic)++-- | 'DescribeLifecycleHookTypes' constructor.+describeLifecycleHookTypes :: DescribeLifecycleHookTypes+describeLifecycleHookTypes = DescribeLifecycleHookTypes++newtype DescribeLifecycleHookTypesResponse = DescribeLifecycleHookTypesResponse+    { _dlhtrLifecycleHookTypes :: List "LifecycleHookTypes" Text+    } deriving (Eq, Ord, Show, Monoid, Semigroup)++instance GHC.Exts.IsList DescribeLifecycleHookTypesResponse where+    type Item DescribeLifecycleHookTypesResponse = Text++    fromList = DescribeLifecycleHookTypesResponse . GHC.Exts.fromList+    toList   = GHC.Exts.toList . _dlhtrLifecycleHookTypes++-- | 'DescribeLifecycleHookTypesResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dlhtrLifecycleHookTypes' @::@ ['Text']+--+describeLifecycleHookTypesResponse :: DescribeLifecycleHookTypesResponse+describeLifecycleHookTypesResponse = DescribeLifecycleHookTypesResponse+    { _dlhtrLifecycleHookTypes = mempty+    }++-- | One or more of the following notification types:+-- autoscaling:EC2_INSTANCE_LAUNCHING autoscaling:EC2_INSTANCE_TERMINATING.+dlhtrLifecycleHookTypes :: Lens' DescribeLifecycleHookTypesResponse [Text]+dlhtrLifecycleHookTypes =+    lens _dlhtrLifecycleHookTypes (\s a -> s { _dlhtrLifecycleHookTypes = a })+        . _List++instance ToPath DescribeLifecycleHookTypes where+    toPath = const "/"++instance ToQuery DescribeLifecycleHookTypes where+    toQuery = const mempty++instance ToHeaders DescribeLifecycleHookTypes++instance AWSRequest DescribeLifecycleHookTypes where+    type Sv DescribeLifecycleHookTypes = AutoScaling+    type Rs DescribeLifecycleHookTypes = DescribeLifecycleHookTypesResponse++    request  = post "DescribeLifecycleHookTypes"+    response = xmlResponse++instance FromXML DescribeLifecycleHookTypesResponse where+    parseXML = withElement "DescribeLifecycleHookTypesResult" $ \x -> DescribeLifecycleHookTypesResponse+        <$> x .@  "LifecycleHookTypes"
+ gen/Network/AWS/AutoScaling/DescribeLifecycleHooks.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.AutoScaling.DescribeLifecycleHooks+-- 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 the lifecycle hooks for the specified Auto Scaling group.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DescribeLifecycleHooks.html>+module Network.AWS.AutoScaling.DescribeLifecycleHooks+    (+    -- * Request+      DescribeLifecycleHooks+    -- ** Request constructor+    , describeLifecycleHooks+    -- ** Request lenses+    , dlhAutoScalingGroupName+    , dlhLifecycleHookNames++    -- * Response+    , DescribeLifecycleHooksResponse+    -- ** Response constructor+    , describeLifecycleHooksResponse+    -- ** Response lenses+    , dlhrLifecycleHooks+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data DescribeLifecycleHooks = DescribeLifecycleHooks+    { _dlhAutoScalingGroupName :: Text+    , _dlhLifecycleHookNames   :: List "LifecycleHookNames" Text+    } deriving (Eq, Ord, Show)++-- | 'DescribeLifecycleHooks' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dlhAutoScalingGroupName' @::@ 'Text'+--+-- * 'dlhLifecycleHookNames' @::@ ['Text']+--+describeLifecycleHooks :: Text -- ^ 'dlhAutoScalingGroupName'+                       -> DescribeLifecycleHooks+describeLifecycleHooks p1 = DescribeLifecycleHooks+    { _dlhAutoScalingGroupName = p1+    , _dlhLifecycleHookNames   = mempty+    }++-- | The name of the group.+dlhAutoScalingGroupName :: Lens' DescribeLifecycleHooks Text+dlhAutoScalingGroupName =+    lens _dlhAutoScalingGroupName (\s a -> s { _dlhAutoScalingGroupName = a })++-- | The names of one or more lifecycle hooks.+dlhLifecycleHookNames :: Lens' DescribeLifecycleHooks [Text]+dlhLifecycleHookNames =+    lens _dlhLifecycleHookNames (\s a -> s { _dlhLifecycleHookNames = a })+        . _List++newtype DescribeLifecycleHooksResponse = DescribeLifecycleHooksResponse+    { _dlhrLifecycleHooks :: List "LifecycleHooks" LifecycleHook+    } deriving (Eq, Show, Monoid, Semigroup)++instance GHC.Exts.IsList DescribeLifecycleHooksResponse where+    type Item DescribeLifecycleHooksResponse = LifecycleHook++    fromList = DescribeLifecycleHooksResponse . GHC.Exts.fromList+    toList   = GHC.Exts.toList . _dlhrLifecycleHooks++-- | 'DescribeLifecycleHooksResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dlhrLifecycleHooks' @::@ ['LifecycleHook']+--+describeLifecycleHooksResponse :: DescribeLifecycleHooksResponse+describeLifecycleHooksResponse = DescribeLifecycleHooksResponse+    { _dlhrLifecycleHooks = mempty+    }++-- | The lifecycle hooks for the specified group.+dlhrLifecycleHooks :: Lens' DescribeLifecycleHooksResponse [LifecycleHook]+dlhrLifecycleHooks =+    lens _dlhrLifecycleHooks (\s a -> s { _dlhrLifecycleHooks = a })+        . _List++instance ToPath DescribeLifecycleHooks where+    toPath = const "/"++instance ToQuery DescribeLifecycleHooks where+    toQuery DescribeLifecycleHooks{..} = mconcat+        [ "AutoScalingGroupName" =? _dlhAutoScalingGroupName+        , "LifecycleHookNames"   =? _dlhLifecycleHookNames+        ]++instance ToHeaders DescribeLifecycleHooks++instance AWSRequest DescribeLifecycleHooks where+    type Sv DescribeLifecycleHooks = AutoScaling+    type Rs DescribeLifecycleHooks = DescribeLifecycleHooksResponse++    request  = post "DescribeLifecycleHooks"+    response = xmlResponse++instance FromXML DescribeLifecycleHooksResponse where+    parseXML = withElement "DescribeLifecycleHooksResult" $ \x -> DescribeLifecycleHooksResponse+        <$> x .@  "LifecycleHooks"
+ gen/Network/AWS/AutoScaling/DescribeMetricCollectionTypes.hs view
@@ -0,0 +1,107 @@+{-# 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.AutoScaling.DescribeMetricCollectionTypes+-- 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 metrics and a corresponding list of granularities for+-- each metric. The GroupStandbyInstances metric is not returned by default.+-- You must explicitly request it when calling EnableMetricsCollection.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DescribeMetricCollectionTypes.html>+module Network.AWS.AutoScaling.DescribeMetricCollectionTypes+    (+    -- * Request+      DescribeMetricCollectionTypes+    -- ** Request constructor+    , describeMetricCollectionTypes++    -- * Response+    , DescribeMetricCollectionTypesResponse+    -- ** Response constructor+    , describeMetricCollectionTypesResponse+    -- ** Response lenses+    , dmctrGranularities+    , dmctrMetrics+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data DescribeMetricCollectionTypes = DescribeMetricCollectionTypes+    deriving (Eq, Ord, Show, Generic)++-- | 'DescribeMetricCollectionTypes' constructor.+describeMetricCollectionTypes :: DescribeMetricCollectionTypes+describeMetricCollectionTypes = DescribeMetricCollectionTypes++data DescribeMetricCollectionTypesResponse = DescribeMetricCollectionTypesResponse+    { _dmctrGranularities :: List "Granularities" MetricGranularityType+    , _dmctrMetrics       :: List "Metrics" MetricCollectionType+    } deriving (Eq, Show)++-- | 'DescribeMetricCollectionTypesResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dmctrGranularities' @::@ ['MetricGranularityType']+--+-- * 'dmctrMetrics' @::@ ['MetricCollectionType']+--+describeMetricCollectionTypesResponse :: DescribeMetricCollectionTypesResponse+describeMetricCollectionTypesResponse = DescribeMetricCollectionTypesResponse+    { _dmctrMetrics       = mempty+    , _dmctrGranularities = mempty+    }++-- | The granularities for the listed metrics.+dmctrGranularities :: Lens' DescribeMetricCollectionTypesResponse [MetricGranularityType]+dmctrGranularities =+    lens _dmctrGranularities (\s a -> s { _dmctrGranularities = a })+        . _List++-- | One or more of the following metrics: GroupMinSize GroupMaxSize+-- GroupDesiredCapacity GroupInServiceInstances GroupPendingInstances+-- GroupStandbyInstances GroupTerminatingInstances GroupTotalInstances The+-- GroupStandbyInstances metric is not returned by default. You must+-- explicitly request it when calling EnableMetricsCollection.+dmctrMetrics :: Lens' DescribeMetricCollectionTypesResponse [MetricCollectionType]+dmctrMetrics = lens _dmctrMetrics (\s a -> s { _dmctrMetrics = a }) . _List++instance ToPath DescribeMetricCollectionTypes where+    toPath = const "/"++instance ToQuery DescribeMetricCollectionTypes where+    toQuery = const mempty++instance ToHeaders DescribeMetricCollectionTypes++instance AWSRequest DescribeMetricCollectionTypes where+    type Sv DescribeMetricCollectionTypes = AutoScaling+    type Rs DescribeMetricCollectionTypes = DescribeMetricCollectionTypesResponse++    request  = post "DescribeMetricCollectionTypes"+    response = xmlResponse++instance FromXML DescribeMetricCollectionTypesResponse where+    parseXML = withElement "DescribeMetricCollectionTypesResult" $ \x -> DescribeMetricCollectionTypesResponse+        <$> x .@  "Granularities"+        <*> x .@  "Metrics"
+ gen/Network/AWS/AutoScaling/DescribeNotificationConfigurations.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.AutoScaling.DescribeNotificationConfigurations+-- 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 the notification actions associated with the specified Auto+-- Scaling group.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DescribeNotificationConfigurations.html>+module Network.AWS.AutoScaling.DescribeNotificationConfigurations+    (+    -- * Request+      DescribeNotificationConfigurations+    -- ** Request constructor+    , describeNotificationConfigurations+    -- ** Request lenses+    , dncAutoScalingGroupNames+    , dncMaxRecords+    , dncNextToken++    -- * Response+    , DescribeNotificationConfigurationsResponse+    -- ** Response constructor+    , describeNotificationConfigurationsResponse+    -- ** Response lenses+    , dncrNextToken+    , dncrNotificationConfigurations+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data DescribeNotificationConfigurations = DescribeNotificationConfigurations+    { _dncAutoScalingGroupNames :: List "AutoScalingGroupNames" Text+    , _dncMaxRecords            :: Maybe Int+    , _dncNextToken             :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'DescribeNotificationConfigurations' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dncAutoScalingGroupNames' @::@ ['Text']+--+-- * 'dncMaxRecords' @::@ 'Maybe' 'Int'+--+-- * 'dncNextToken' @::@ 'Maybe' 'Text'+--+describeNotificationConfigurations :: DescribeNotificationConfigurations+describeNotificationConfigurations = DescribeNotificationConfigurations+    { _dncAutoScalingGroupNames = mempty+    , _dncNextToken             = Nothing+    , _dncMaxRecords            = Nothing+    }++-- | The name of the group.+dncAutoScalingGroupNames :: Lens' DescribeNotificationConfigurations [Text]+dncAutoScalingGroupNames =+    lens _dncAutoScalingGroupNames+        (\s a -> s { _dncAutoScalingGroupNames = a })+            . _List++-- | The maximum number of items to return with this call.+dncMaxRecords :: Lens' DescribeNotificationConfigurations (Maybe Int)+dncMaxRecords = lens _dncMaxRecords (\s a -> s { _dncMaxRecords = a })++-- | The token for the next set of items to return. (You received this token+-- from a previous call.).+dncNextToken :: Lens' DescribeNotificationConfigurations (Maybe Text)+dncNextToken = lens _dncNextToken (\s a -> s { _dncNextToken = a })++data DescribeNotificationConfigurationsResponse = DescribeNotificationConfigurationsResponse+    { _dncrNextToken                  :: Maybe Text+    , _dncrNotificationConfigurations :: List "NotificationConfigurations" NotificationConfiguration+    } deriving (Eq, Show)++-- | 'DescribeNotificationConfigurationsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dncrNextToken' @::@ 'Maybe' 'Text'+--+-- * 'dncrNotificationConfigurations' @::@ ['NotificationConfiguration']+--+describeNotificationConfigurationsResponse :: DescribeNotificationConfigurationsResponse+describeNotificationConfigurationsResponse = DescribeNotificationConfigurationsResponse+    { _dncrNotificationConfigurations = mempty+    , _dncrNextToken                  = Nothing+    }++-- | The token to use when requesting the next set of items. If there are no+-- additional items to return, the string is empty.+dncrNextToken :: Lens' DescribeNotificationConfigurationsResponse (Maybe Text)+dncrNextToken = lens _dncrNextToken (\s a -> s { _dncrNextToken = a })++-- | The notification configurations.+dncrNotificationConfigurations :: Lens' DescribeNotificationConfigurationsResponse [NotificationConfiguration]+dncrNotificationConfigurations =+    lens _dncrNotificationConfigurations+        (\s a -> s { _dncrNotificationConfigurations = a })+            . _List++instance ToPath DescribeNotificationConfigurations where+    toPath = const "/"++instance ToQuery DescribeNotificationConfigurations where+    toQuery DescribeNotificationConfigurations{..} = mconcat+        [ "AutoScalingGroupNames" =? _dncAutoScalingGroupNames+        , "MaxRecords"            =? _dncMaxRecords+        , "NextToken"             =? _dncNextToken+        ]++instance ToHeaders DescribeNotificationConfigurations++instance AWSRequest DescribeNotificationConfigurations where+    type Sv DescribeNotificationConfigurations = AutoScaling+    type Rs DescribeNotificationConfigurations = DescribeNotificationConfigurationsResponse++    request  = post "DescribeNotificationConfigurations"+    response = xmlResponse++instance FromXML DescribeNotificationConfigurationsResponse where+    parseXML = withElement "DescribeNotificationConfigurationsResult" $ \x -> DescribeNotificationConfigurationsResponse+        <$> x .@? "NextToken"+        <*> x .@  "NotificationConfigurations"++instance AWSPager DescribeNotificationConfigurations where+    page rq rs+        | stop (rq ^. dncNextToken) = Nothing+        | otherwise = (\x -> rq & dncNextToken ?~ x)+            <$> (rs ^. dncrNextToken)
+ gen/Network/AWS/AutoScaling/DescribePolicies.hs view
@@ -0,0 +1,163 @@+{-# 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.AutoScaling.DescribePolicies+-- 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 the policies for the specified Auto Scaling group. You can+-- specify a maximum number of items to be returned with a single call. If+-- there are more items to return, the call returns a token. To get the next+-- set of items, repeat the call with the returned token in the NextToken+-- parameter.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DescribePolicies.html>+module Network.AWS.AutoScaling.DescribePolicies+    (+    -- * Request+      DescribePolicies+    -- ** Request constructor+    , describePolicies+    -- ** Request lenses+    , dp1AutoScalingGroupName+    , dp1MaxRecords+    , dp1NextToken+    , dp1PolicyNames++    -- * Response+    , DescribePoliciesResponse+    -- ** Response constructor+    , describePoliciesResponse+    -- ** Response lenses+    , dprNextToken+    , dprScalingPolicies+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data DescribePolicies = DescribePolicies+    { _dp1AutoScalingGroupName :: Maybe Text+    , _dp1MaxRecords           :: Maybe Int+    , _dp1NextToken            :: Maybe Text+    , _dp1PolicyNames          :: List "PolicyNames" Text+    } deriving (Eq, Ord, Show)++-- | 'DescribePolicies' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dp1AutoScalingGroupName' @::@ 'Maybe' 'Text'+--+-- * 'dp1MaxRecords' @::@ 'Maybe' 'Int'+--+-- * 'dp1NextToken' @::@ 'Maybe' 'Text'+--+-- * 'dp1PolicyNames' @::@ ['Text']+--+describePolicies :: DescribePolicies+describePolicies = DescribePolicies+    { _dp1AutoScalingGroupName = Nothing+    , _dp1PolicyNames          = mempty+    , _dp1NextToken            = Nothing+    , _dp1MaxRecords           = Nothing+    }++-- | The name of the group.+dp1AutoScalingGroupName :: Lens' DescribePolicies (Maybe Text)+dp1AutoScalingGroupName =+    lens _dp1AutoScalingGroupName (\s a -> s { _dp1AutoScalingGroupName = a })++-- | The maximum number of items to be returned with each call.+dp1MaxRecords :: Lens' DescribePolicies (Maybe Int)+dp1MaxRecords = lens _dp1MaxRecords (\s a -> s { _dp1MaxRecords = a })++-- | The token for the next set of items to return. (You received this token+-- from a previous call.).+dp1NextToken :: Lens' DescribePolicies (Maybe Text)+dp1NextToken = lens _dp1NextToken (\s a -> s { _dp1NextToken = a })++-- | One or more policy names or policy ARNs to be described. If you omit this+-- list, all policy names are described. If an group name is provided, the+-- results are limited to that group. This list is limited to 50 items. If+-- you specify an unknown policy name, it is ignored with no error.+dp1PolicyNames :: Lens' DescribePolicies [Text]+dp1PolicyNames = lens _dp1PolicyNames (\s a -> s { _dp1PolicyNames = a }) . _List++data DescribePoliciesResponse = DescribePoliciesResponse+    { _dprNextToken       :: Maybe Text+    , _dprScalingPolicies :: List "ScalingPolicies" ScalingPolicy+    } deriving (Eq, Show)++-- | 'DescribePoliciesResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dprNextToken' @::@ 'Maybe' 'Text'+--+-- * 'dprScalingPolicies' @::@ ['ScalingPolicy']+--+describePoliciesResponse :: DescribePoliciesResponse+describePoliciesResponse = DescribePoliciesResponse+    { _dprScalingPolicies = mempty+    , _dprNextToken       = Nothing+    }++-- | The token to use when requesting the next set of items. If there are no+-- additional items to return, the string is empty.+dprNextToken :: Lens' DescribePoliciesResponse (Maybe Text)+dprNextToken = lens _dprNextToken (\s a -> s { _dprNextToken = a })++-- | The scaling policies.+dprScalingPolicies :: Lens' DescribePoliciesResponse [ScalingPolicy]+dprScalingPolicies =+    lens _dprScalingPolicies (\s a -> s { _dprScalingPolicies = a })+        . _List++instance ToPath DescribePolicies where+    toPath = const "/"++instance ToQuery DescribePolicies where+    toQuery DescribePolicies{..} = mconcat+        [ "AutoScalingGroupName" =? _dp1AutoScalingGroupName+        , "MaxRecords"           =? _dp1MaxRecords+        , "NextToken"            =? _dp1NextToken+        , "PolicyNames"          =? _dp1PolicyNames+        ]++instance ToHeaders DescribePolicies++instance AWSRequest DescribePolicies where+    type Sv DescribePolicies = AutoScaling+    type Rs DescribePolicies = DescribePoliciesResponse++    request  = post "DescribePolicies"+    response = xmlResponse++instance FromXML DescribePoliciesResponse where+    parseXML = withElement "DescribePoliciesResult" $ \x -> DescribePoliciesResponse+        <$> x .@? "NextToken"+        <*> x .@  "ScalingPolicies"++instance AWSPager DescribePolicies where+    page rq rs+        | stop (rq ^. dp1NextToken) = Nothing+        | otherwise = (\x -> rq & dp1NextToken ?~ x)+            <$> (rs ^. dprNextToken)
+ gen/Network/AWS/AutoScaling/DescribeScalingActivities.hs view
@@ -0,0 +1,165 @@+{-# 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.AutoScaling.DescribeScalingActivities+-- 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 one or more scaling activities for the specified Auto Scaling+-- group. If you omit the ActivityIds, the call returns all activities from+-- the past six weeks. Activities are sorted by the start time. Activities+-- still in progress appear first on the list. You can specify a maximum+-- number of items to be returned with a single call. If there are more items+-- to return, the call returns a token. To get the next set of items, repeat+-- the call with the returned token in the NextToken parameter.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DescribeScalingActivities.html>+module Network.AWS.AutoScaling.DescribeScalingActivities+    (+    -- * Request+      DescribeScalingActivities+    -- ** Request constructor+    , describeScalingActivities+    -- ** Request lenses+    , dsa2ActivityIds+    , dsa2AutoScalingGroupName+    , dsa2MaxRecords+    , dsa2NextToken++    -- * Response+    , DescribeScalingActivitiesResponse+    -- ** Response constructor+    , describeScalingActivitiesResponse+    -- ** Response lenses+    , dsar1Activities+    , dsar1NextToken+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data DescribeScalingActivities = DescribeScalingActivities+    { _dsa2ActivityIds          :: List "ActivityIds" Text+    , _dsa2AutoScalingGroupName :: Maybe Text+    , _dsa2MaxRecords           :: Maybe Int+    , _dsa2NextToken            :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'DescribeScalingActivities' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dsa2ActivityIds' @::@ ['Text']+--+-- * 'dsa2AutoScalingGroupName' @::@ 'Maybe' 'Text'+--+-- * 'dsa2MaxRecords' @::@ 'Maybe' 'Int'+--+-- * 'dsa2NextToken' @::@ 'Maybe' 'Text'+--+describeScalingActivities :: DescribeScalingActivities+describeScalingActivities = DescribeScalingActivities+    { _dsa2ActivityIds          = mempty+    , _dsa2AutoScalingGroupName = Nothing+    , _dsa2MaxRecords           = Nothing+    , _dsa2NextToken            = Nothing+    }++-- | A list containing the activity IDs of the desired scaling activities. If+-- this list is omitted, all activities are described. If an+-- AutoScalingGroupName is provided, the results are limited to that group.+-- The list of requested activities cannot contain more than 50 items. If+-- unknown activities are requested, they are ignored with no error.+dsa2ActivityIds :: Lens' DescribeScalingActivities [Text]+dsa2ActivityIds = lens _dsa2ActivityIds (\s a -> s { _dsa2ActivityIds = a }) . _List++-- | The name of the group.+dsa2AutoScalingGroupName :: Lens' DescribeScalingActivities (Maybe Text)+dsa2AutoScalingGroupName =+    lens _dsa2AutoScalingGroupName+        (\s a -> s { _dsa2AutoScalingGroupName = a })++-- | The maximum number of items to return with this call.+dsa2MaxRecords :: Lens' DescribeScalingActivities (Maybe Int)+dsa2MaxRecords = lens _dsa2MaxRecords (\s a -> s { _dsa2MaxRecords = a })++-- | The token for the next set of items to return. (You received this token+-- from a previous call.).+dsa2NextToken :: Lens' DescribeScalingActivities (Maybe Text)+dsa2NextToken = lens _dsa2NextToken (\s a -> s { _dsa2NextToken = a })++data DescribeScalingActivitiesResponse = DescribeScalingActivitiesResponse+    { _dsar1Activities :: List "Activities" Activity+    , _dsar1NextToken  :: Maybe Text+    } deriving (Eq, Show)++-- | 'DescribeScalingActivitiesResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dsar1Activities' @::@ ['Activity']+--+-- * 'dsar1NextToken' @::@ 'Maybe' 'Text'+--+describeScalingActivitiesResponse :: DescribeScalingActivitiesResponse+describeScalingActivitiesResponse = DescribeScalingActivitiesResponse+    { _dsar1Activities = mempty+    , _dsar1NextToken  = Nothing+    }++-- | The scaling activities.+dsar1Activities :: Lens' DescribeScalingActivitiesResponse [Activity]+dsar1Activities = lens _dsar1Activities (\s a -> s { _dsar1Activities = a }) . _List++-- | The token to use when requesting the next set of items. If there are no+-- additional items to return, the string is empty.+dsar1NextToken :: Lens' DescribeScalingActivitiesResponse (Maybe Text)+dsar1NextToken = lens _dsar1NextToken (\s a -> s { _dsar1NextToken = a })++instance ToPath DescribeScalingActivities where+    toPath = const "/"++instance ToQuery DescribeScalingActivities where+    toQuery DescribeScalingActivities{..} = mconcat+        [ "ActivityIds"          =? _dsa2ActivityIds+        , "AutoScalingGroupName" =? _dsa2AutoScalingGroupName+        , "MaxRecords"           =? _dsa2MaxRecords+        , "NextToken"            =? _dsa2NextToken+        ]++instance ToHeaders DescribeScalingActivities++instance AWSRequest DescribeScalingActivities where+    type Sv DescribeScalingActivities = AutoScaling+    type Rs DescribeScalingActivities = DescribeScalingActivitiesResponse++    request  = post "DescribeScalingActivities"+    response = xmlResponse++instance FromXML DescribeScalingActivitiesResponse where+    parseXML = withElement "DescribeScalingActivitiesResult" $ \x -> DescribeScalingActivitiesResponse+        <$> x .@  "Activities"+        <*> x .@? "NextToken"++instance AWSPager DescribeScalingActivities where+    page rq rs+        | stop (rq ^. dsa2NextToken) = Nothing+        | otherwise = (\x -> rq & dsa2NextToken ?~ x)+            <$> (rs ^. dsar1NextToken)
+ gen/Network/AWS/AutoScaling/DescribeScalingProcessTypes.hs view
@@ -0,0 +1,96 @@+{-# 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.AutoScaling.DescribeScalingProcessTypes+-- 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 scaling process types for use in the ResumeProcesses and+-- SuspendProcesses actions.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DescribeScalingProcessTypes.html>+module Network.AWS.AutoScaling.DescribeScalingProcessTypes+    (+    -- * Request+      DescribeScalingProcessTypes+    -- ** Request constructor+    , describeScalingProcessTypes++    -- * Response+    , DescribeScalingProcessTypesResponse+    -- ** Response constructor+    , describeScalingProcessTypesResponse+    -- ** Response lenses+    , dsptrProcesses+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data DescribeScalingProcessTypes = DescribeScalingProcessTypes+    deriving (Eq, Ord, Show, Generic)++-- | 'DescribeScalingProcessTypes' constructor.+describeScalingProcessTypes :: DescribeScalingProcessTypes+describeScalingProcessTypes = DescribeScalingProcessTypes++newtype DescribeScalingProcessTypesResponse = DescribeScalingProcessTypesResponse+    { _dsptrProcesses :: List "Processes" ProcessType+    } deriving (Eq, Show, Monoid, Semigroup)++instance GHC.Exts.IsList DescribeScalingProcessTypesResponse where+    type Item DescribeScalingProcessTypesResponse = ProcessType++    fromList = DescribeScalingProcessTypesResponse . GHC.Exts.fromList+    toList   = GHC.Exts.toList . _dsptrProcesses++-- | 'DescribeScalingProcessTypesResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dsptrProcesses' @::@ ['ProcessType']+--+describeScalingProcessTypesResponse :: DescribeScalingProcessTypesResponse+describeScalingProcessTypesResponse = DescribeScalingProcessTypesResponse+    { _dsptrProcesses = mempty+    }++-- | The names of the process types.+dsptrProcesses :: Lens' DescribeScalingProcessTypesResponse [ProcessType]+dsptrProcesses = lens _dsptrProcesses (\s a -> s { _dsptrProcesses = a }) . _List++instance ToPath DescribeScalingProcessTypes where+    toPath = const "/"++instance ToQuery DescribeScalingProcessTypes where+    toQuery = const mempty++instance ToHeaders DescribeScalingProcessTypes++instance AWSRequest DescribeScalingProcessTypes where+    type Sv DescribeScalingProcessTypes = AutoScaling+    type Rs DescribeScalingProcessTypes = DescribeScalingProcessTypesResponse++    request  = post "DescribeScalingProcessTypes"+    response = xmlResponse++instance FromXML DescribeScalingProcessTypesResponse where+    parseXML = withElement "DescribeScalingProcessTypesResult" $ \x -> DescribeScalingProcessTypesResponse+        <$> x .@  "Processes"
+ gen/Network/AWS/AutoScaling/DescribeScheduledActions.hs view
@@ -0,0 +1,190 @@+{-# 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.AutoScaling.DescribeScheduledActions+-- 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 the actions scheduled for your Auto Scaling group that haven't been+-- executed. To list the actions that were already executed, use+-- DescribeScalingActivities.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DescribeScheduledActions.html>+module Network.AWS.AutoScaling.DescribeScheduledActions+    (+    -- * Request+      DescribeScheduledActions+    -- ** Request constructor+    , describeScheduledActions+    -- ** Request lenses+    , dsa1AutoScalingGroupName+    , dsa1EndTime+    , dsa1MaxRecords+    , dsa1NextToken+    , dsa1ScheduledActionNames+    , dsa1StartTime++    -- * Response+    , DescribeScheduledActionsResponse+    -- ** Response constructor+    , describeScheduledActionsResponse+    -- ** Response lenses+    , dsarNextToken+    , dsarScheduledUpdateGroupActions+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data DescribeScheduledActions = DescribeScheduledActions+    { _dsa1AutoScalingGroupName :: Maybe Text+    , _dsa1EndTime              :: Maybe RFC822+    , _dsa1MaxRecords           :: Maybe Int+    , _dsa1NextToken            :: Maybe Text+    , _dsa1ScheduledActionNames :: List "ScheduledActionNames" Text+    , _dsa1StartTime            :: Maybe RFC822+    } deriving (Eq, Ord, Show)++-- | 'DescribeScheduledActions' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dsa1AutoScalingGroupName' @::@ 'Maybe' 'Text'+--+-- * 'dsa1EndTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'dsa1MaxRecords' @::@ 'Maybe' 'Int'+--+-- * 'dsa1NextToken' @::@ 'Maybe' 'Text'+--+-- * 'dsa1ScheduledActionNames' @::@ ['Text']+--+-- * 'dsa1StartTime' @::@ 'Maybe' 'UTCTime'+--+describeScheduledActions :: DescribeScheduledActions+describeScheduledActions = DescribeScheduledActions+    { _dsa1AutoScalingGroupName = Nothing+    , _dsa1ScheduledActionNames = mempty+    , _dsa1StartTime            = Nothing+    , _dsa1EndTime              = Nothing+    , _dsa1NextToken            = Nothing+    , _dsa1MaxRecords           = Nothing+    }++-- | The name of the group.+dsa1AutoScalingGroupName :: Lens' DescribeScheduledActions (Maybe Text)+dsa1AutoScalingGroupName =+    lens _dsa1AutoScalingGroupName+        (\s a -> s { _dsa1AutoScalingGroupName = a })++-- | The latest scheduled start time to return. If scheduled action names are+-- provided, this parameter is ignored.+dsa1EndTime :: Lens' DescribeScheduledActions (Maybe UTCTime)+dsa1EndTime = lens _dsa1EndTime (\s a -> s { _dsa1EndTime = a }) . mapping _Time++-- | The maximum number of items to return with this call.+dsa1MaxRecords :: Lens' DescribeScheduledActions (Maybe Int)+dsa1MaxRecords = lens _dsa1MaxRecords (\s a -> s { _dsa1MaxRecords = a })++-- | The token for the next set of items to return. (You received this token+-- from a previous call.).+dsa1NextToken :: Lens' DescribeScheduledActions (Maybe Text)+dsa1NextToken = lens _dsa1NextToken (\s a -> s { _dsa1NextToken = a })++-- | Describes one or more scheduled actions. If you omit this list, the call+-- describes all scheduled actions. If you specify an unknown scheduled+-- action it is ignored with no error. You can describe up to a maximum of+-- 50 instances with a single call. If there are more items to return, the+-- call returns a token. To get the next set of items, repeat the call with+-- the returned token in the NextToken parameter.+dsa1ScheduledActionNames :: Lens' DescribeScheduledActions [Text]+dsa1ScheduledActionNames =+    lens _dsa1ScheduledActionNames+        (\s a -> s { _dsa1ScheduledActionNames = a })+            . _List++-- | The earliest scheduled start time to return. If scheduled action names+-- are provided, this parameter is ignored.+dsa1StartTime :: Lens' DescribeScheduledActions (Maybe UTCTime)+dsa1StartTime = lens _dsa1StartTime (\s a -> s { _dsa1StartTime = a }) . mapping _Time++data DescribeScheduledActionsResponse = DescribeScheduledActionsResponse+    { _dsarNextToken                   :: Maybe Text+    , _dsarScheduledUpdateGroupActions :: List "ScheduledUpdateGroupActions" ScheduledUpdateGroupAction+    } deriving (Eq, Show)++-- | 'DescribeScheduledActionsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dsarNextToken' @::@ 'Maybe' 'Text'+--+-- * 'dsarScheduledUpdateGroupActions' @::@ ['ScheduledUpdateGroupAction']+--+describeScheduledActionsResponse :: DescribeScheduledActionsResponse+describeScheduledActionsResponse = DescribeScheduledActionsResponse+    { _dsarScheduledUpdateGroupActions = mempty+    , _dsarNextToken                   = Nothing+    }++-- | The token to use when requesting the next set of items. If there are no+-- additional items to return, the string is empty.+dsarNextToken :: Lens' DescribeScheduledActionsResponse (Maybe Text)+dsarNextToken = lens _dsarNextToken (\s a -> s { _dsarNextToken = a })++-- | The scheduled actions.+dsarScheduledUpdateGroupActions :: Lens' DescribeScheduledActionsResponse [ScheduledUpdateGroupAction]+dsarScheduledUpdateGroupActions =+    lens _dsarScheduledUpdateGroupActions+        (\s a -> s { _dsarScheduledUpdateGroupActions = a })+            . _List++instance ToPath DescribeScheduledActions where+    toPath = const "/"++instance ToQuery DescribeScheduledActions where+    toQuery DescribeScheduledActions{..} = mconcat+        [ "AutoScalingGroupName" =? _dsa1AutoScalingGroupName+        , "EndTime"              =? _dsa1EndTime+        , "MaxRecords"           =? _dsa1MaxRecords+        , "NextToken"            =? _dsa1NextToken+        , "ScheduledActionNames" =? _dsa1ScheduledActionNames+        , "StartTime"            =? _dsa1StartTime+        ]++instance ToHeaders DescribeScheduledActions++instance AWSRequest DescribeScheduledActions where+    type Sv DescribeScheduledActions = AutoScaling+    type Rs DescribeScheduledActions = DescribeScheduledActionsResponse++    request  = post "DescribeScheduledActions"+    response = xmlResponse++instance FromXML DescribeScheduledActionsResponse where+    parseXML = withElement "DescribeScheduledActionsResult" $ \x -> DescribeScheduledActionsResponse+        <$> x .@? "NextToken"+        <*> x .@  "ScheduledUpdateGroupActions"++instance AWSPager DescribeScheduledActions where+    page rq rs+        | stop (rq ^. dsa1NextToken) = Nothing+        | otherwise = (\x -> rq & dsa1NextToken ?~ x)+            <$> (rs ^. dsarNextToken)
+ gen/Network/AWS/AutoScaling/DescribeTags.hs view
@@ -0,0 +1,152 @@+{-# 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.AutoScaling.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)++-- | Describes the specified tags. You can use filters to limit the results. For+-- example, you can query for the tags for a specific Auto Scaling group. You+-- can specify multiple values for a filter. A tag must match at least one of+-- the specified values for it to be included in the results. You can also+-- specify multiple filters. The result includes information for a particular+-- tag only if it matches all the filters. If there's no match, no special+-- message is returned.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DescribeTags.html>+module Network.AWS.AutoScaling.DescribeTags+    (+    -- * Request+      DescribeTags+    -- ** Request constructor+    , describeTags+    -- ** Request lenses+    , dtFilters+    , dtMaxRecords+    , dtNextToken++    -- * Response+    , DescribeTagsResponse+    -- ** Response constructor+    , describeTagsResponse+    -- ** Response lenses+    , dtrNextToken+    , dtrTags+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data DescribeTags = DescribeTags+    { _dtFilters    :: List "Filters" Filter+    , _dtMaxRecords :: Maybe Int+    , _dtNextToken  :: Maybe Text+    } deriving (Eq, Show)++-- | 'DescribeTags' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dtFilters' @::@ ['Filter']+--+-- * 'dtMaxRecords' @::@ 'Maybe' 'Int'+--+-- * 'dtNextToken' @::@ 'Maybe' 'Text'+--+describeTags :: DescribeTags+describeTags = DescribeTags+    { _dtFilters    = mempty+    , _dtNextToken  = Nothing+    , _dtMaxRecords = Nothing+    }++-- | The value of the filter type used to identify the tags to be returned.+-- For example, you can filter so that tags are returned according to Auto+-- Scaling group, the key and value, or whether the new tag will be applied+-- to instances launched after the tag is created (PropagateAtLaunch).+dtFilters :: Lens' DescribeTags [Filter]+dtFilters = lens _dtFilters (\s a -> s { _dtFilters = a }) . _List++-- | The maximum number of items to return with this call.+dtMaxRecords :: Lens' DescribeTags (Maybe Int)+dtMaxRecords = lens _dtMaxRecords (\s a -> s { _dtMaxRecords = a })++-- | The token for the next set of items to return. (You received this token+-- from a previous call.).+dtNextToken :: Lens' DescribeTags (Maybe Text)+dtNextToken = lens _dtNextToken (\s a -> s { _dtNextToken = a })++data DescribeTagsResponse = DescribeTagsResponse+    { _dtrNextToken :: Maybe Text+    , _dtrTags      :: List "Tags" TagDescription+    } deriving (Eq, Show)++-- | 'DescribeTagsResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dtrNextToken' @::@ 'Maybe' 'Text'+--+-- * 'dtrTags' @::@ ['TagDescription']+--+describeTagsResponse :: DescribeTagsResponse+describeTagsResponse = DescribeTagsResponse+    { _dtrTags      = mempty+    , _dtrNextToken = Nothing+    }++-- | The token to use when requesting the next set of items. If there are no+-- additional items to return, the string is empty.+dtrNextToken :: Lens' DescribeTagsResponse (Maybe Text)+dtrNextToken = lens _dtrNextToken (\s a -> s { _dtrNextToken = a })++-- | The tags.+dtrTags :: Lens' DescribeTagsResponse [TagDescription]+dtrTags = lens _dtrTags (\s a -> s { _dtrTags = a }) . _List++instance ToPath DescribeTags where+    toPath = const "/"++instance ToQuery DescribeTags where+    toQuery DescribeTags{..} = mconcat+        [ "Filters"    =? _dtFilters+        , "MaxRecords" =? _dtMaxRecords+        , "NextToken"  =? _dtNextToken+        ]++instance ToHeaders DescribeTags++instance AWSRequest DescribeTags where+    type Sv DescribeTags = AutoScaling+    type Rs DescribeTags = DescribeTagsResponse++    request  = post "DescribeTags"+    response = xmlResponse++instance FromXML DescribeTagsResponse where+    parseXML = withElement "DescribeTagsResult" $ \x -> DescribeTagsResponse+        <$> x .@? "NextToken"+        <*> x .@  "Tags"++instance AWSPager DescribeTags where+    page rq rs+        | stop (rq ^. dtNextToken) = Nothing+        | otherwise = (\x -> rq & dtNextToken ?~ x)+            <$> (rs ^. dtrNextToken)
+ gen/Network/AWS/AutoScaling/DescribeTerminationPolicyTypes.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.AutoScaling.DescribeTerminationPolicyTypes+-- 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 the termination policies supported by Auto Scaling.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DescribeTerminationPolicyTypes.html>+module Network.AWS.AutoScaling.DescribeTerminationPolicyTypes+    (+    -- * Request+      DescribeTerminationPolicyTypes+    -- ** Request constructor+    , describeTerminationPolicyTypes++    -- * Response+    , DescribeTerminationPolicyTypesResponse+    -- ** Response constructor+    , describeTerminationPolicyTypesResponse+    -- ** Response lenses+    , dtptrTerminationPolicyTypes+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data DescribeTerminationPolicyTypes = DescribeTerminationPolicyTypes+    deriving (Eq, Ord, Show, Generic)++-- | 'DescribeTerminationPolicyTypes' constructor.+describeTerminationPolicyTypes :: DescribeTerminationPolicyTypes+describeTerminationPolicyTypes = DescribeTerminationPolicyTypes++newtype DescribeTerminationPolicyTypesResponse = DescribeTerminationPolicyTypesResponse+    { _dtptrTerminationPolicyTypes :: List "TerminationPolicies" Text+    } deriving (Eq, Ord, Show, Monoid, Semigroup)++instance GHC.Exts.IsList DescribeTerminationPolicyTypesResponse where+    type Item DescribeTerminationPolicyTypesResponse = Text++    fromList = DescribeTerminationPolicyTypesResponse . GHC.Exts.fromList+    toList   = GHC.Exts.toList . _dtptrTerminationPolicyTypes++-- | 'DescribeTerminationPolicyTypesResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dtptrTerminationPolicyTypes' @::@ ['Text']+--+describeTerminationPolicyTypesResponse :: DescribeTerminationPolicyTypesResponse+describeTerminationPolicyTypesResponse = DescribeTerminationPolicyTypesResponse+    { _dtptrTerminationPolicyTypes = mempty+    }++-- | The Termination policies supported by Auto Scaling. They are:+-- OldestInstance, OldestLaunchConfiguration, NewestInstance,+-- ClosestToNextInstanceHour, and Default.+dtptrTerminationPolicyTypes :: Lens' DescribeTerminationPolicyTypesResponse [Text]+dtptrTerminationPolicyTypes =+    lens _dtptrTerminationPolicyTypes+        (\s a -> s { _dtptrTerminationPolicyTypes = a })+            . _List++instance ToPath DescribeTerminationPolicyTypes where+    toPath = const "/"++instance ToQuery DescribeTerminationPolicyTypes where+    toQuery = const mempty++instance ToHeaders DescribeTerminationPolicyTypes++instance AWSRequest DescribeTerminationPolicyTypes where+    type Sv DescribeTerminationPolicyTypes = AutoScaling+    type Rs DescribeTerminationPolicyTypes = DescribeTerminationPolicyTypesResponse++    request  = post "DescribeTerminationPolicyTypes"+    response = xmlResponse++instance FromXML DescribeTerminationPolicyTypesResponse where+    parseXML = withElement "DescribeTerminationPolicyTypesResult" $ \x -> DescribeTerminationPolicyTypesResponse+        <$> x .@  "TerminationPolicyTypes"
+ gen/Network/AWS/AutoScaling/DetachInstances.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.AutoScaling.DetachInstances+-- 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 one or more instances from the specified Auto Scaling group. After+-- the instances are detached, you can manage them independently from the rest+-- of the Auto Scaling group. For more information, see Detach EC2 Instances+-- from Your Auto Scaling Group in the Auto Scaling Developer Guide.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DetachInstances.html>+module Network.AWS.AutoScaling.DetachInstances+    (+    -- * Request+      DetachInstances+    -- ** Request constructor+    , detachInstances+    -- ** Request lenses+    , diAutoScalingGroupName+    , diInstanceIds+    , diShouldDecrementDesiredCapacity++    -- * Response+    , DetachInstancesResponse+    -- ** Response constructor+    , detachInstancesResponse+    -- ** Response lenses+    , dirActivities+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data DetachInstances = DetachInstances+    { _diAutoScalingGroupName           :: Text+    , _diInstanceIds                    :: List "InstanceIds" Text+    , _diShouldDecrementDesiredCapacity :: Bool+    } deriving (Eq, Ord, Show)++-- | 'DetachInstances' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'diAutoScalingGroupName' @::@ 'Text'+--+-- * 'diInstanceIds' @::@ ['Text']+--+-- * 'diShouldDecrementDesiredCapacity' @::@ 'Bool'+--+detachInstances :: Text -- ^ 'diAutoScalingGroupName'+                -> Bool -- ^ 'diShouldDecrementDesiredCapacity'+                -> DetachInstances+detachInstances p1 p2 = DetachInstances+    { _diAutoScalingGroupName           = p1+    , _diShouldDecrementDesiredCapacity = p2+    , _diInstanceIds                    = mempty+    }++-- | The name of the group.+diAutoScalingGroupName :: Lens' DetachInstances Text+diAutoScalingGroupName =+    lens _diAutoScalingGroupName (\s a -> s { _diAutoScalingGroupName = a })++-- | One or more instance IDs.+diInstanceIds :: Lens' DetachInstances [Text]+diInstanceIds = lens _diInstanceIds (\s a -> s { _diInstanceIds = a }) . _List++-- | If True, the Auto Scaling group decrements the desired capacity value by+-- the number of instances detached.+diShouldDecrementDesiredCapacity :: Lens' DetachInstances Bool+diShouldDecrementDesiredCapacity =+    lens _diShouldDecrementDesiredCapacity+        (\s a -> s { _diShouldDecrementDesiredCapacity = a })++newtype DetachInstancesResponse = DetachInstancesResponse+    { _dirActivities :: List "Activities" Activity+    } deriving (Eq, Show, Monoid, Semigroup)++instance GHC.Exts.IsList DetachInstancesResponse where+    type Item DetachInstancesResponse = Activity++    fromList = DetachInstancesResponse . GHC.Exts.fromList+    toList   = GHC.Exts.toList . _dirActivities++-- | 'DetachInstancesResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dirActivities' @::@ ['Activity']+--+detachInstancesResponse :: DetachInstancesResponse+detachInstancesResponse = DetachInstancesResponse+    { _dirActivities = mempty+    }++-- | The activities related to detaching the instances from the Auto Scaling+-- group.+dirActivities :: Lens' DetachInstancesResponse [Activity]+dirActivities = lens _dirActivities (\s a -> s { _dirActivities = a }) . _List++instance ToPath DetachInstances where+    toPath = const "/"++instance ToQuery DetachInstances where+    toQuery DetachInstances{..} = mconcat+        [ "AutoScalingGroupName"           =? _diAutoScalingGroupName+        , "InstanceIds"                    =? _diInstanceIds+        , "ShouldDecrementDesiredCapacity" =? _diShouldDecrementDesiredCapacity+        ]++instance ToHeaders DetachInstances++instance AWSRequest DetachInstances where+    type Sv DetachInstances = AutoScaling+    type Rs DetachInstances = DetachInstancesResponse++    request  = post "DetachInstances"+    response = xmlResponse++instance FromXML DetachInstancesResponse where+    parseXML = withElement "DetachInstancesResult" $ \x -> DetachInstancesResponse+        <$> x .@  "Activities"
+ gen/Network/AWS/AutoScaling/DisableMetricsCollection.hs view
@@ -0,0 +1,103 @@+{-# 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.AutoScaling.DisableMetricsCollection+-- 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 monitoring of the specified metrics for the specified Auto Scaling+-- group.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_DisableMetricsCollection.html>+module Network.AWS.AutoScaling.DisableMetricsCollection+    (+    -- * Request+      DisableMetricsCollection+    -- ** Request constructor+    , disableMetricsCollection+    -- ** Request lenses+    , dmcAutoScalingGroupName+    , dmcMetrics++    -- * Response+    , DisableMetricsCollectionResponse+    -- ** Response constructor+    , disableMetricsCollectionResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data DisableMetricsCollection = DisableMetricsCollection+    { _dmcAutoScalingGroupName :: Text+    , _dmcMetrics              :: List "Metrics" Text+    } deriving (Eq, Ord, Show)++-- | 'DisableMetricsCollection' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'dmcAutoScalingGroupName' @::@ 'Text'+--+-- * 'dmcMetrics' @::@ ['Text']+--+disableMetricsCollection :: Text -- ^ 'dmcAutoScalingGroupName'+                         -> DisableMetricsCollection+disableMetricsCollection p1 = DisableMetricsCollection+    { _dmcAutoScalingGroupName = p1+    , _dmcMetrics              = mempty+    }++-- | The name or Amazon Resource Name (ARN) of the group.+dmcAutoScalingGroupName :: Lens' DisableMetricsCollection Text+dmcAutoScalingGroupName =+    lens _dmcAutoScalingGroupName (\s a -> s { _dmcAutoScalingGroupName = a })++-- | One or more of the following metrics: GroupMinSize GroupMaxSize+-- GroupDesiredCapacity GroupInServiceInstances GroupPendingInstances+-- GroupStandbyInstances GroupTerminatingInstances GroupTotalInstances If+-- you omit this parameter, all metrics are disabled.+dmcMetrics :: Lens' DisableMetricsCollection [Text]+dmcMetrics = lens _dmcMetrics (\s a -> s { _dmcMetrics = a }) . _List++data DisableMetricsCollectionResponse = DisableMetricsCollectionResponse+    deriving (Eq, Ord, Show, Generic)++-- | 'DisableMetricsCollectionResponse' constructor.+disableMetricsCollectionResponse :: DisableMetricsCollectionResponse+disableMetricsCollectionResponse = DisableMetricsCollectionResponse++instance ToPath DisableMetricsCollection where+    toPath = const "/"++instance ToQuery DisableMetricsCollection where+    toQuery DisableMetricsCollection{..} = mconcat+        [ "AutoScalingGroupName" =? _dmcAutoScalingGroupName+        , "Metrics"              =? _dmcMetrics+        ]++instance ToHeaders DisableMetricsCollection++instance AWSRequest DisableMetricsCollection where+    type Sv DisableMetricsCollection = AutoScaling+    type Rs DisableMetricsCollection = DisableMetricsCollectionResponse++    request  = post "DisableMetricsCollection"+    response = nullResponse DisableMetricsCollectionResponse
+ gen/Network/AWS/AutoScaling/EnableMetricsCollection.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.AutoScaling.EnableMetricsCollection+-- 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 monitoring of the specified metrics for the specified Auto Scaling+-- group. You can only enable metrics collection if InstanceMonitoring in the+-- launch configuration for the group is set to True.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_EnableMetricsCollection.html>+module Network.AWS.AutoScaling.EnableMetricsCollection+    (+    -- * Request+      EnableMetricsCollection+    -- ** Request constructor+    , enableMetricsCollection+    -- ** Request lenses+    , emcAutoScalingGroupName+    , emcGranularity+    , emcMetrics++    -- * Response+    , EnableMetricsCollectionResponse+    -- ** Response constructor+    , enableMetricsCollectionResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data EnableMetricsCollection = EnableMetricsCollection+    { _emcAutoScalingGroupName :: Text+    , _emcGranularity          :: Text+    , _emcMetrics              :: List "Metrics" Text+    } deriving (Eq, Ord, Show)++-- | 'EnableMetricsCollection' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'emcAutoScalingGroupName' @::@ 'Text'+--+-- * 'emcGranularity' @::@ 'Text'+--+-- * 'emcMetrics' @::@ ['Text']+--+enableMetricsCollection :: Text -- ^ 'emcAutoScalingGroupName'+                        -> Text -- ^ 'emcGranularity'+                        -> EnableMetricsCollection+enableMetricsCollection p1 p2 = EnableMetricsCollection+    { _emcAutoScalingGroupName = p1+    , _emcGranularity          = p2+    , _emcMetrics              = mempty+    }++-- | The name or ARN of the Auto Scaling group.+emcAutoScalingGroupName :: Lens' EnableMetricsCollection Text+emcAutoScalingGroupName =+    lens _emcAutoScalingGroupName (\s a -> s { _emcAutoScalingGroupName = a })++-- | The granularity to associate with the metrics to collect. Currently, the+-- only valid value is "1Minute".+emcGranularity :: Lens' EnableMetricsCollection Text+emcGranularity = lens _emcGranularity (\s a -> s { _emcGranularity = a })++-- | One or more of the following metrics: GroupMinSize GroupMaxSize+-- GroupDesiredCapacity GroupInServiceInstances GroupPendingInstances+-- GroupStandbyInstances GroupTerminatingInstances GroupTotalInstances If+-- you omit this parameter, all metrics are enabled. The+-- GroupStandbyInstances metric is not returned by default. You must+-- explicitly request it when calling EnableMetricsCollection.+emcMetrics :: Lens' EnableMetricsCollection [Text]+emcMetrics = lens _emcMetrics (\s a -> s { _emcMetrics = a }) . _List++data EnableMetricsCollectionResponse = EnableMetricsCollectionResponse+    deriving (Eq, Ord, Show, Generic)++-- | 'EnableMetricsCollectionResponse' constructor.+enableMetricsCollectionResponse :: EnableMetricsCollectionResponse+enableMetricsCollectionResponse = EnableMetricsCollectionResponse++instance ToPath EnableMetricsCollection where+    toPath = const "/"++instance ToQuery EnableMetricsCollection where+    toQuery EnableMetricsCollection{..} = mconcat+        [ "AutoScalingGroupName" =? _emcAutoScalingGroupName+        , "Granularity"          =? _emcGranularity+        , "Metrics"              =? _emcMetrics+        ]++instance ToHeaders EnableMetricsCollection++instance AWSRequest EnableMetricsCollection where+    type Sv EnableMetricsCollection = AutoScaling+    type Rs EnableMetricsCollection = EnableMetricsCollectionResponse++    request  = post "EnableMetricsCollection"+    response = nullResponse EnableMetricsCollectionResponse
+ gen/Network/AWS/AutoScaling/EnterStandby.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.AutoScaling.EnterStandby+-- 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)++-- | Moves the specified instances into Standby mode. For more information, see+-- Auto Scaling InService State in the Auto Scaling Developer Guide.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_EnterStandby.html>+module Network.AWS.AutoScaling.EnterStandby+    (+    -- * Request+      EnterStandby+    -- ** Request constructor+    , enterStandby+    -- ** Request lenses+    , esAutoScalingGroupName+    , esInstanceIds+    , esShouldDecrementDesiredCapacity++    -- * Response+    , EnterStandbyResponse+    -- ** Response constructor+    , enterStandbyResponse+    -- ** Response lenses+    , esr1Activities+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data EnterStandby = EnterStandby+    { _esAutoScalingGroupName           :: Text+    , _esInstanceIds                    :: List "InstanceIds" Text+    , _esShouldDecrementDesiredCapacity :: Bool+    } deriving (Eq, Ord, Show)++-- | 'EnterStandby' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'esAutoScalingGroupName' @::@ 'Text'+--+-- * 'esInstanceIds' @::@ ['Text']+--+-- * 'esShouldDecrementDesiredCapacity' @::@ 'Bool'+--+enterStandby :: Text -- ^ 'esAutoScalingGroupName'+             -> Bool -- ^ 'esShouldDecrementDesiredCapacity'+             -> EnterStandby+enterStandby p1 p2 = EnterStandby+    { _esAutoScalingGroupName           = p1+    , _esShouldDecrementDesiredCapacity = p2+    , _esInstanceIds                    = mempty+    }++-- | The name of the Auto Scaling group.+esAutoScalingGroupName :: Lens' EnterStandby Text+esAutoScalingGroupName =+    lens _esAutoScalingGroupName (\s a -> s { _esAutoScalingGroupName = a })++-- | One or more instances to move into Standby mode. You must specify at+-- least one instance ID.+esInstanceIds :: Lens' EnterStandby [Text]+esInstanceIds = lens _esInstanceIds (\s a -> s { _esInstanceIds = a }) . _List++-- | Specifies whether the instances moved to Standby mode count as part of+-- the Auto Scaling group's desired capacity. If set, the desired capacity+-- for the Auto Scaling group decrements by the number of instances moved to+-- Standby mode.+esShouldDecrementDesiredCapacity :: Lens' EnterStandby Bool+esShouldDecrementDesiredCapacity =+    lens _esShouldDecrementDesiredCapacity+        (\s a -> s { _esShouldDecrementDesiredCapacity = a })++newtype EnterStandbyResponse = EnterStandbyResponse+    { _esr1Activities :: List "Activities" Activity+    } deriving (Eq, Show, Monoid, Semigroup)++instance GHC.Exts.IsList EnterStandbyResponse where+    type Item EnterStandbyResponse = Activity++    fromList = EnterStandbyResponse . GHC.Exts.fromList+    toList   = GHC.Exts.toList . _esr1Activities++-- | 'EnterStandbyResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'esr1Activities' @::@ ['Activity']+--+enterStandbyResponse :: EnterStandbyResponse+enterStandbyResponse = EnterStandbyResponse+    { _esr1Activities = mempty+    }++-- | The activities related to moving instances into Standby mode.+esr1Activities :: Lens' EnterStandbyResponse [Activity]+esr1Activities = lens _esr1Activities (\s a -> s { _esr1Activities = a }) . _List++instance ToPath EnterStandby where+    toPath = const "/"++instance ToQuery EnterStandby where+    toQuery EnterStandby{..} = mconcat+        [ "AutoScalingGroupName"           =? _esAutoScalingGroupName+        , "InstanceIds"                    =? _esInstanceIds+        , "ShouldDecrementDesiredCapacity" =? _esShouldDecrementDesiredCapacity+        ]++instance ToHeaders EnterStandby++instance AWSRequest EnterStandby where+    type Sv EnterStandby = AutoScaling+    type Rs EnterStandby = EnterStandbyResponse++    request  = post "EnterStandby"+    response = xmlResponse++instance FromXML EnterStandbyResponse where+    parseXML = withElement "EnterStandbyResult" $ \x -> EnterStandbyResponse+        <$> x .@  "Activities"
+ gen/Network/AWS/AutoScaling/ExecutePolicy.hs view
@@ -0,0 +1,114 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.AutoScaling.ExecutePolicy+-- 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)++-- | Executes the specified policy.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_ExecutePolicy.html>+module Network.AWS.AutoScaling.ExecutePolicy+    (+    -- * Request+      ExecutePolicy+    -- ** Request constructor+    , executePolicy+    -- ** Request lenses+    , epAutoScalingGroupName+    , epHonorCooldown+    , epPolicyName++    -- * Response+    , ExecutePolicyResponse+    -- ** Response constructor+    , executePolicyResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data ExecutePolicy = ExecutePolicy+    { _epAutoScalingGroupName :: Maybe Text+    , _epHonorCooldown        :: Maybe Bool+    , _epPolicyName           :: Text+    } deriving (Eq, Ord, Show)++-- | 'ExecutePolicy' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'epAutoScalingGroupName' @::@ 'Maybe' 'Text'+--+-- * 'epHonorCooldown' @::@ 'Maybe' 'Bool'+--+-- * 'epPolicyName' @::@ 'Text'+--+executePolicy :: Text -- ^ 'epPolicyName'+              -> ExecutePolicy+executePolicy p1 = ExecutePolicy+    { _epPolicyName           = p1+    , _epAutoScalingGroupName = Nothing+    , _epHonorCooldown        = Nothing+    }++-- | The name or Amazon Resource Name (ARN) of the Auto Scaling group.+epAutoScalingGroupName :: Lens' ExecutePolicy (Maybe Text)+epAutoScalingGroupName =+    lens _epAutoScalingGroupName (\s a -> s { _epAutoScalingGroupName = a })++-- | Set to True if you want Auto Scaling to wait for the cooldown period+-- associated with the Auto Scaling group to complete before executing the+-- policy. Set to False if you want Auto Scaling to circumvent the cooldown+-- period associated with the Auto Scaling group and execute the policy+-- before the cooldown period ends. For more information, see Understanding+-- Auto Scaling Cooldowns in the Auto Scaling Developer Guide.+epHonorCooldown :: Lens' ExecutePolicy (Maybe Bool)+epHonorCooldown = lens _epHonorCooldown (\s a -> s { _epHonorCooldown = a })++-- | The name or ARN of the policy.+epPolicyName :: Lens' ExecutePolicy Text+epPolicyName = lens _epPolicyName (\s a -> s { _epPolicyName = a })++data ExecutePolicyResponse = ExecutePolicyResponse+    deriving (Eq, Ord, Show, Generic)++-- | 'ExecutePolicyResponse' constructor.+executePolicyResponse :: ExecutePolicyResponse+executePolicyResponse = ExecutePolicyResponse++instance ToPath ExecutePolicy where+    toPath = const "/"++instance ToQuery ExecutePolicy where+    toQuery ExecutePolicy{..} = mconcat+        [ "AutoScalingGroupName" =? _epAutoScalingGroupName+        , "HonorCooldown"        =? _epHonorCooldown+        , "PolicyName"           =? _epPolicyName+        ]++instance ToHeaders ExecutePolicy++instance AWSRequest ExecutePolicy where+    type Sv ExecutePolicy = AutoScaling+    type Rs ExecutePolicy = ExecutePolicyResponse++    request  = post "ExecutePolicy"+    response = nullResponse ExecutePolicyResponse
+ gen/Network/AWS/AutoScaling/ExitStandby.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.AutoScaling.ExitStandby+-- 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)++-- | Moves the specified instances out of Standby mode. For more information,+-- see Auto Scaling InService State in the Auto Scaling Developer Guide.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_ExitStandby.html>+module Network.AWS.AutoScaling.ExitStandby+    (+    -- * Request+      ExitStandby+    -- ** Request constructor+    , exitStandby+    -- ** Request lenses+    , es1AutoScalingGroupName+    , es1InstanceIds++    -- * Response+    , ExitStandbyResponse+    -- ** Response constructor+    , exitStandbyResponse+    -- ** Response lenses+    , esrActivities+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data ExitStandby = ExitStandby+    { _es1AutoScalingGroupName :: Text+    , _es1InstanceIds          :: List "InstanceIds" Text+    } deriving (Eq, Ord, Show)++-- | 'ExitStandby' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'es1AutoScalingGroupName' @::@ 'Text'+--+-- * 'es1InstanceIds' @::@ ['Text']+--+exitStandby :: Text -- ^ 'es1AutoScalingGroupName'+            -> ExitStandby+exitStandby p1 = ExitStandby+    { _es1AutoScalingGroupName = p1+    , _es1InstanceIds          = mempty+    }++-- | The name of the Auto Scaling group.+es1AutoScalingGroupName :: Lens' ExitStandby Text+es1AutoScalingGroupName =+    lens _es1AutoScalingGroupName (\s a -> s { _es1AutoScalingGroupName = a })++-- | One or more instance IDs. You must specify at least one instance ID.+es1InstanceIds :: Lens' ExitStandby [Text]+es1InstanceIds = lens _es1InstanceIds (\s a -> s { _es1InstanceIds = a }) . _List++newtype ExitStandbyResponse = ExitStandbyResponse+    { _esrActivities :: List "Activities" Activity+    } deriving (Eq, Show, Monoid, Semigroup)++instance GHC.Exts.IsList ExitStandbyResponse where+    type Item ExitStandbyResponse = Activity++    fromList = ExitStandbyResponse . GHC.Exts.fromList+    toList   = GHC.Exts.toList . _esrActivities++-- | 'ExitStandbyResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'esrActivities' @::@ ['Activity']+--+exitStandbyResponse :: ExitStandbyResponse+exitStandbyResponse = ExitStandbyResponse+    { _esrActivities = mempty+    }++-- | The activities related to moving instances out of Standby mode.+esrActivities :: Lens' ExitStandbyResponse [Activity]+esrActivities = lens _esrActivities (\s a -> s { _esrActivities = a }) . _List++instance ToPath ExitStandby where+    toPath = const "/"++instance ToQuery ExitStandby where+    toQuery ExitStandby{..} = mconcat+        [ "AutoScalingGroupName" =? _es1AutoScalingGroupName+        , "InstanceIds"          =? _es1InstanceIds+        ]++instance ToHeaders ExitStandby++instance AWSRequest ExitStandby where+    type Sv ExitStandby = AutoScaling+    type Rs ExitStandby = ExitStandbyResponse++    request  = post "ExitStandby"+    response = xmlResponse++instance FromXML ExitStandbyResponse where+    parseXML = withElement "ExitStandbyResult" $ \x -> ExitStandbyResponse+        <$> x .@  "Activities"
+ gen/Network/AWS/AutoScaling/PutLifecycleHook.hs view
@@ -0,0 +1,208 @@+{-# 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.AutoScaling.PutLifecycleHook+-- 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 or updates a lifecycle hook for the specified Auto Scaling Group. A+-- lifecycle hook tells Auto Scaling that you want to perform an action on an+-- instance that is not actively in service; for example, either when the+-- instance launches or before the instance terminates. This operation is a+-- part of the basic sequence for adding a lifecycle hook to an Auto Scaling+-- group: Create a notification target. A target can be either an Amazon SQS+-- queue or an Amazon SNS topic. Create an IAM role. This role allows Auto+-- Scaling to publish lifecycle notifications to the designated SQS queue or+-- SNS topic. Create the lifecycle hook. You can create a hook that acts when+-- instances launch or when instances terminate. If necessary, record the+-- lifecycle action heartbeat to keep the instance in a pending state.+-- Complete the lifecycle action. For more information, see Auto Scaling+-- Pending State and Auto Scaling Terminating State in the Auto Scaling+-- Developer Guide.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_PutLifecycleHook.html>+module Network.AWS.AutoScaling.PutLifecycleHook+    (+    -- * Request+      PutLifecycleHook+    -- ** Request constructor+    , putLifecycleHook+    -- ** Request lenses+    , plhAutoScalingGroupName+    , plhDefaultResult+    , plhHeartbeatTimeout+    , plhLifecycleHookName+    , plhLifecycleTransition+    , plhNotificationMetadata+    , plhNotificationTargetARN+    , plhRoleARN++    -- * Response+    , PutLifecycleHookResponse+    -- ** Response constructor+    , putLifecycleHookResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data PutLifecycleHook = PutLifecycleHook+    { _plhAutoScalingGroupName  :: Text+    , _plhDefaultResult         :: Maybe Text+    , _plhHeartbeatTimeout      :: Maybe Int+    , _plhLifecycleHookName     :: Text+    , _plhLifecycleTransition   :: Maybe Text+    , _plhNotificationMetadata  :: Maybe Text+    , _plhNotificationTargetARN :: Maybe Text+    , _plhRoleARN               :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'PutLifecycleHook' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'plhAutoScalingGroupName' @::@ 'Text'+--+-- * 'plhDefaultResult' @::@ 'Maybe' 'Text'+--+-- * 'plhHeartbeatTimeout' @::@ 'Maybe' 'Int'+--+-- * 'plhLifecycleHookName' @::@ 'Text'+--+-- * 'plhLifecycleTransition' @::@ 'Maybe' 'Text'+--+-- * 'plhNotificationMetadata' @::@ 'Maybe' 'Text'+--+-- * 'plhNotificationTargetARN' @::@ 'Maybe' 'Text'+--+-- * 'plhRoleARN' @::@ 'Maybe' 'Text'+--+putLifecycleHook :: Text -- ^ 'plhLifecycleHookName'+                 -> Text -- ^ 'plhAutoScalingGroupName'+                 -> PutLifecycleHook+putLifecycleHook p1 p2 = PutLifecycleHook+    { _plhLifecycleHookName     = p1+    , _plhAutoScalingGroupName  = p2+    , _plhLifecycleTransition   = Nothing+    , _plhRoleARN               = Nothing+    , _plhNotificationTargetARN = Nothing+    , _plhNotificationMetadata  = Nothing+    , _plhHeartbeatTimeout      = Nothing+    , _plhDefaultResult         = Nothing+    }++-- | The name of the Auto Scaling group to which you want to assign the+-- lifecycle hook.+plhAutoScalingGroupName :: Lens' PutLifecycleHook Text+plhAutoScalingGroupName =+    lens _plhAutoScalingGroupName (\s a -> s { _plhAutoScalingGroupName = a })++-- | Defines the action the Auto Scaling group should take when the lifecycle+-- hook timeout elapses or if an unexpected failure occurs. The value for+-- this parameter can be either CONTINUE or ABANDON. The default value for+-- this parameter is ABANDON.+plhDefaultResult :: Lens' PutLifecycleHook (Maybe Text)+plhDefaultResult = lens _plhDefaultResult (\s a -> s { _plhDefaultResult = a })++-- | Defines the amount of time, in seconds, that can elapse before the+-- lifecycle hook times out. When the lifecycle hook times out, Auto Scaling+-- performs the action defined in the DefaultResult parameter. You can+-- prevent the lifecycle hook from timing out by calling+-- RecordLifecycleActionHeartbeat. The default value for this parameter is+-- 3600 seconds (1 hour).+plhHeartbeatTimeout :: Lens' PutLifecycleHook (Maybe Int)+plhHeartbeatTimeout =+    lens _plhHeartbeatTimeout (\s a -> s { _plhHeartbeatTimeout = a })++-- | The name of the lifecycle hook.+plhLifecycleHookName :: Lens' PutLifecycleHook Text+plhLifecycleHookName =+    lens _plhLifecycleHookName (\s a -> s { _plhLifecycleHookName = a })++-- | The Amazon EC2 instance state to which you want to attach the lifecycle+-- hook. See DescribeLifecycleHookTypes for a list of available lifecycle+-- hook types. This parameter is required for new lifecycle hooks, but+-- optional when updating existing hooks.+plhLifecycleTransition :: Lens' PutLifecycleHook (Maybe Text)+plhLifecycleTransition =+    lens _plhLifecycleTransition (\s a -> s { _plhLifecycleTransition = a })++-- | Contains additional information that you want to include any time Auto+-- Scaling sends a message to the notification target.+plhNotificationMetadata :: Lens' PutLifecycleHook (Maybe Text)+plhNotificationMetadata =+    lens _plhNotificationMetadata (\s a -> s { _plhNotificationMetadata = a })++-- | The ARN of the notification target that Auto Scaling will use to notify+-- you when an instance is in the transition state for the lifecycle hook.+-- This ARN target can be either an SQS queue or an SNS topic. This+-- parameter is required for new lifecycle hooks, but optional when updating+-- existing hooks. The notification message sent to the target will include:+-- LifecycleActionToken. The Lifecycle action token. AccountId. The user+-- account ID. AutoScalingGroupName. The name of the Auto Scaling group.+-- LifecycleHookName. The lifecycle hook name. EC2InstanceId. The EC2+-- instance ID. LifecycleTransition. The lifecycle transition.+-- NotificationMetadata. The notification metadata. This operation uses the+-- JSON format when sending notifications to an Amazon SQS queue, and an+-- email key/value pair format when sending notifications to an Amazon SNS+-- topic. When you call this operation, a test message is sent to the+-- notification target. This test message contains an additional key/value+-- pair: Event:autoscaling:TEST_NOTIFICATION.+plhNotificationTargetARN :: Lens' PutLifecycleHook (Maybe Text)+plhNotificationTargetARN =+    lens _plhNotificationTargetARN+        (\s a -> s { _plhNotificationTargetARN = a })++-- | The ARN of the IAM role that allows the Auto Scaling group to publish to+-- the specified notification target. This parameter is required for new+-- lifecycle hooks, but optional when updating existing hooks.+plhRoleARN :: Lens' PutLifecycleHook (Maybe Text)+plhRoleARN = lens _plhRoleARN (\s a -> s { _plhRoleARN = a })++data PutLifecycleHookResponse = PutLifecycleHookResponse+    deriving (Eq, Ord, Show, Generic)++-- | 'PutLifecycleHookResponse' constructor.+putLifecycleHookResponse :: PutLifecycleHookResponse+putLifecycleHookResponse = PutLifecycleHookResponse++instance ToPath PutLifecycleHook where+    toPath = const "/"++instance ToQuery PutLifecycleHook where+    toQuery PutLifecycleHook{..} = mconcat+        [ "AutoScalingGroupName"  =? _plhAutoScalingGroupName+        , "DefaultResult"         =? _plhDefaultResult+        , "HeartbeatTimeout"      =? _plhHeartbeatTimeout+        , "LifecycleHookName"     =? _plhLifecycleHookName+        , "LifecycleTransition"   =? _plhLifecycleTransition+        , "NotificationMetadata"  =? _plhNotificationMetadata+        , "NotificationTargetARN" =? _plhNotificationTargetARN+        , "RoleARN"               =? _plhRoleARN+        ]++instance ToHeaders PutLifecycleHook++instance AWSRequest PutLifecycleHook where+    type Sv PutLifecycleHook = AutoScaling+    type Rs PutLifecycleHook = PutLifecycleHookResponse++    request  = post "PutLifecycleHook"+    response = nullResponse PutLifecycleHookResponse
+ gen/Network/AWS/AutoScaling/PutNotificationConfiguration.hs view
@@ -0,0 +1,120 @@+{-# 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.AutoScaling.PutNotificationConfiguration+-- 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)++-- | Configures an Auto Scaling group to send notifications when specified+-- events take place. Subscribers to this topic can have messages for events+-- delivered to an endpoint such as a web server or email address. For more+-- information see Getting Notifications When Your Auto Scaling Group Changes+-- in the Auto Scaling Developer Guide. This configuration overwrites an+-- existing configuration.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_PutNotificationConfiguration.html>+module Network.AWS.AutoScaling.PutNotificationConfiguration+    (+    -- * Request+      PutNotificationConfiguration+    -- ** Request constructor+    , putNotificationConfiguration+    -- ** Request lenses+    , pncAutoScalingGroupName+    , pncNotificationTypes+    , pncTopicARN++    -- * Response+    , PutNotificationConfigurationResponse+    -- ** Response constructor+    , putNotificationConfigurationResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data PutNotificationConfiguration = PutNotificationConfiguration+    { _pncAutoScalingGroupName :: Text+    , _pncNotificationTypes    :: List "LifecycleHookTypes" Text+    , _pncTopicARN             :: Text+    } deriving (Eq, Ord, Show)++-- | 'PutNotificationConfiguration' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'pncAutoScalingGroupName' @::@ 'Text'+--+-- * 'pncNotificationTypes' @::@ ['Text']+--+-- * 'pncTopicARN' @::@ 'Text'+--+putNotificationConfiguration :: Text -- ^ 'pncAutoScalingGroupName'+                             -> Text -- ^ 'pncTopicARN'+                             -> PutNotificationConfiguration+putNotificationConfiguration p1 p2 = PutNotificationConfiguration+    { _pncAutoScalingGroupName = p1+    , _pncTopicARN             = p2+    , _pncNotificationTypes    = mempty+    }++-- | The name of the Auto Scaling group.+pncAutoScalingGroupName :: Lens' PutNotificationConfiguration Text+pncAutoScalingGroupName =+    lens _pncAutoScalingGroupName (\s a -> s { _pncAutoScalingGroupName = a })++-- | The type of event that will cause the notification to be sent. For+-- details about notification types supported by Auto Scaling, see+-- DescribeAutoScalingNotificationTypes.+pncNotificationTypes :: Lens' PutNotificationConfiguration [Text]+pncNotificationTypes =+    lens _pncNotificationTypes (\s a -> s { _pncNotificationTypes = a })+        . _List++-- | The Amazon Resource Name (ARN) of the Amazon Simple Notification Service+-- (SNS) topic.+pncTopicARN :: Lens' PutNotificationConfiguration Text+pncTopicARN = lens _pncTopicARN (\s a -> s { _pncTopicARN = a })++data PutNotificationConfigurationResponse = PutNotificationConfigurationResponse+    deriving (Eq, Ord, Show, Generic)++-- | 'PutNotificationConfigurationResponse' constructor.+putNotificationConfigurationResponse :: PutNotificationConfigurationResponse+putNotificationConfigurationResponse = PutNotificationConfigurationResponse++instance ToPath PutNotificationConfiguration where+    toPath = const "/"++instance ToQuery PutNotificationConfiguration where+    toQuery PutNotificationConfiguration{..} = mconcat+        [ "AutoScalingGroupName" =? _pncAutoScalingGroupName+        , "NotificationTypes"    =? _pncNotificationTypes+        , "TopicARN"             =? _pncTopicARN+        ]++instance ToHeaders PutNotificationConfiguration++instance AWSRequest PutNotificationConfiguration where+    type Sv PutNotificationConfiguration = AutoScaling+    type Rs PutNotificationConfiguration = PutNotificationConfigurationResponse++    request  = post "PutNotificationConfiguration"+    response = nullResponse PutNotificationConfigurationResponse
+ gen/Network/AWS/AutoScaling/PutScalingPolicy.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.AutoScaling.PutScalingPolicy+-- 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 or updates a policy for an Auto Scaling group. To update an+-- existing policy, use the existing policy name and set the parameters you+-- want to change. Any existing parameter not changed in an update to an+-- existing policy is not changed in this update request.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_PutScalingPolicy.html>+module Network.AWS.AutoScaling.PutScalingPolicy+    (+    -- * Request+      PutScalingPolicy+    -- ** Request constructor+    , putScalingPolicy+    -- ** Request lenses+    , pspAdjustmentType+    , pspAutoScalingGroupName+    , pspCooldown+    , pspMinAdjustmentStep+    , pspPolicyName+    , pspScalingAdjustment++    -- * Response+    , PutScalingPolicyResponse+    -- ** Response constructor+    , putScalingPolicyResponse+    -- ** Response lenses+    , psprPolicyARN+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data PutScalingPolicy = PutScalingPolicy+    { _pspAdjustmentType       :: Text+    , _pspAutoScalingGroupName :: Text+    , _pspCooldown             :: Maybe Int+    , _pspMinAdjustmentStep    :: Maybe Int+    , _pspPolicyName           :: Text+    , _pspScalingAdjustment    :: Int+    } deriving (Eq, Ord, Show)++-- | 'PutScalingPolicy' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'pspAdjustmentType' @::@ 'Text'+--+-- * 'pspAutoScalingGroupName' @::@ 'Text'+--+-- * 'pspCooldown' @::@ 'Maybe' 'Int'+--+-- * 'pspMinAdjustmentStep' @::@ 'Maybe' 'Int'+--+-- * 'pspPolicyName' @::@ 'Text'+--+-- * 'pspScalingAdjustment' @::@ 'Int'+--+putScalingPolicy :: Text -- ^ 'pspAutoScalingGroupName'+                 -> Text -- ^ 'pspPolicyName'+                 -> Int -- ^ 'pspScalingAdjustment'+                 -> Text -- ^ 'pspAdjustmentType'+                 -> PutScalingPolicy+putScalingPolicy p1 p2 p3 p4 = PutScalingPolicy+    { _pspAutoScalingGroupName = p1+    , _pspPolicyName           = p2+    , _pspScalingAdjustment    = p3+    , _pspAdjustmentType       = p4+    , _pspCooldown             = Nothing+    , _pspMinAdjustmentStep    = Nothing+    }++-- | Specifies whether the ScalingAdjustment is an absolute number or a+-- percentage of the current capacity. Valid values are ChangeInCapacity,+-- ExactCapacity, and PercentChangeInCapacity. For more information, see+-- Dynamic Scaling in the Auto Scaling Developer Guide.+pspAdjustmentType :: Lens' PutScalingPolicy Text+pspAdjustmentType =+    lens _pspAdjustmentType (\s a -> s { _pspAdjustmentType = a })++-- | The name or ARN of the group.+pspAutoScalingGroupName :: Lens' PutScalingPolicy Text+pspAutoScalingGroupName =+    lens _pspAutoScalingGroupName (\s a -> s { _pspAutoScalingGroupName = a })++-- | The amount of time, in seconds, after a scaling activity completes and+-- before the next scaling activity can start. For more information, see+-- Understanding Auto Scaling Cooldowns in the Auto Scaling Developer Guide.+pspCooldown :: Lens' PutScalingPolicy (Maybe Int)+pspCooldown = lens _pspCooldown (\s a -> s { _pspCooldown = a })++-- | Used with AdjustmentType with the value PercentChangeInCapacity, the+-- scaling policy changes the DesiredCapacity of the Auto Scaling group by+-- at least the number of instances specified in the value. You will get a+-- ValidationError if you use MinAdjustmentStep on a policy with an+-- AdjustmentType other than PercentChangeInCapacity.+pspMinAdjustmentStep :: Lens' PutScalingPolicy (Maybe Int)+pspMinAdjustmentStep =+    lens _pspMinAdjustmentStep (\s a -> s { _pspMinAdjustmentStep = a })++-- | The name of the policy.+pspPolicyName :: Lens' PutScalingPolicy Text+pspPolicyName = lens _pspPolicyName (\s a -> s { _pspPolicyName = a })++-- | The number of instances by which to scale. AdjustmentType determines the+-- interpretation of this number (e.g., as an absolute number or as a+-- percentage of the existing Auto Scaling group size). A positive increment+-- adds to the current capacity and a negative value removes from the+-- current capacity.+pspScalingAdjustment :: Lens' PutScalingPolicy Int+pspScalingAdjustment =+    lens _pspScalingAdjustment (\s a -> s { _pspScalingAdjustment = a })++newtype PutScalingPolicyResponse = PutScalingPolicyResponse+    { _psprPolicyARN :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'PutScalingPolicyResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'psprPolicyARN' @::@ 'Maybe' 'Text'+--+putScalingPolicyResponse :: PutScalingPolicyResponse+putScalingPolicyResponse = PutScalingPolicyResponse+    { _psprPolicyARN = Nothing+    }++-- | The Amazon Resource Name (ARN) of the policy.+psprPolicyARN :: Lens' PutScalingPolicyResponse (Maybe Text)+psprPolicyARN = lens _psprPolicyARN (\s a -> s { _psprPolicyARN = a })++instance ToPath PutScalingPolicy where+    toPath = const "/"++instance ToQuery PutScalingPolicy where+    toQuery PutScalingPolicy{..} = mconcat+        [ "AdjustmentType"       =? _pspAdjustmentType+        , "AutoScalingGroupName" =? _pspAutoScalingGroupName+        , "Cooldown"             =? _pspCooldown+        , "MinAdjustmentStep"    =? _pspMinAdjustmentStep+        , "PolicyName"           =? _pspPolicyName+        , "ScalingAdjustment"    =? _pspScalingAdjustment+        ]++instance ToHeaders PutScalingPolicy++instance AWSRequest PutScalingPolicy where+    type Sv PutScalingPolicy = AutoScaling+    type Rs PutScalingPolicy = PutScalingPolicyResponse++    request  = post "PutScalingPolicy"+    response = xmlResponse++instance FromXML PutScalingPolicyResponse where+    parseXML = withElement "PutScalingPolicyResult" $ \x -> PutScalingPolicyResponse+        <$> x .@? "PolicyARN"
+ gen/Network/AWS/AutoScaling/PutScheduledUpdateGroupAction.hs view
@@ -0,0 +1,190 @@+{-# 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.AutoScaling.PutScheduledUpdateGroupAction+-- 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 or updates a scheduled scaling action for an Auto Scaling group.+-- When updating a scheduled scaling action, if you leave a parameter+-- unspecified, the corresponding value remains unchanged in the affected Auto+-- Scaling group. For more information, see Scheduled Scaling in the Auto+-- Scaling Developer Guide. Auto Scaling supports the date and time expressed+-- in "YYYY-MM-DDThh:mm:ssZ" format in UTC/GMT only.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_PutScheduledUpdateGroupAction.html>+module Network.AWS.AutoScaling.PutScheduledUpdateGroupAction+    (+    -- * Request+      PutScheduledUpdateGroupAction+    -- ** Request constructor+    , putScheduledUpdateGroupAction+    -- ** Request lenses+    , psugaAutoScalingGroupName+    , psugaDesiredCapacity+    , psugaEndTime+    , psugaMaxSize+    , psugaMinSize+    , psugaRecurrence+    , psugaScheduledActionName+    , psugaStartTime+    , psugaTime++    -- * Response+    , PutScheduledUpdateGroupActionResponse+    -- ** Response constructor+    , putScheduledUpdateGroupActionResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data PutScheduledUpdateGroupAction = PutScheduledUpdateGroupAction+    { _psugaAutoScalingGroupName :: Text+    , _psugaDesiredCapacity      :: Maybe Int+    , _psugaEndTime              :: Maybe RFC822+    , _psugaMaxSize              :: Maybe Int+    , _psugaMinSize              :: Maybe Int+    , _psugaRecurrence           :: Maybe Text+    , _psugaScheduledActionName  :: Text+    , _psugaStartTime            :: Maybe RFC822+    , _psugaTime                 :: Maybe RFC822+    } deriving (Eq, Ord, Show)++-- | 'PutScheduledUpdateGroupAction' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'psugaAutoScalingGroupName' @::@ 'Text'+--+-- * 'psugaDesiredCapacity' @::@ 'Maybe' 'Int'+--+-- * 'psugaEndTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'psugaMaxSize' @::@ 'Maybe' 'Int'+--+-- * 'psugaMinSize' @::@ 'Maybe' 'Int'+--+-- * 'psugaRecurrence' @::@ 'Maybe' 'Text'+--+-- * 'psugaScheduledActionName' @::@ 'Text'+--+-- * 'psugaStartTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'psugaTime' @::@ 'Maybe' 'UTCTime'+--+putScheduledUpdateGroupAction :: Text -- ^ 'psugaAutoScalingGroupName'+                              -> Text -- ^ 'psugaScheduledActionName'+                              -> PutScheduledUpdateGroupAction+putScheduledUpdateGroupAction p1 p2 = PutScheduledUpdateGroupAction+    { _psugaAutoScalingGroupName = p1+    , _psugaScheduledActionName  = p2+    , _psugaTime                 = Nothing+    , _psugaStartTime            = Nothing+    , _psugaEndTime              = Nothing+    , _psugaRecurrence           = Nothing+    , _psugaMinSize              = Nothing+    , _psugaMaxSize              = Nothing+    , _psugaDesiredCapacity      = Nothing+    }++-- | The name or Amazon Resource Name (ARN) of the Auto Scaling group.+psugaAutoScalingGroupName :: Lens' PutScheduledUpdateGroupAction Text+psugaAutoScalingGroupName =+    lens _psugaAutoScalingGroupName+        (\s a -> s { _psugaAutoScalingGroupName = a })++-- | The number of Amazon EC2 instances that should be running in the group.+psugaDesiredCapacity :: Lens' PutScheduledUpdateGroupAction (Maybe Int)+psugaDesiredCapacity =+    lens _psugaDesiredCapacity (\s a -> s { _psugaDesiredCapacity = a })++-- | The time for this action to end.+psugaEndTime :: Lens' PutScheduledUpdateGroupAction (Maybe UTCTime)+psugaEndTime = lens _psugaEndTime (\s a -> s { _psugaEndTime = a }) . mapping _Time++-- | The maximum size for the Auto Scaling group.+psugaMaxSize :: Lens' PutScheduledUpdateGroupAction (Maybe Int)+psugaMaxSize = lens _psugaMaxSize (\s a -> s { _psugaMaxSize = a })++-- | The minimum size for the new Auto Scaling group.+psugaMinSize :: Lens' PutScheduledUpdateGroupAction (Maybe Int)+psugaMinSize = lens _psugaMinSize (\s a -> s { _psugaMinSize = a })++-- | The time when recurring future actions will start. Start time is+-- specified by the user following the Unix cron syntax format. For+-- information about cron syntax, go to Wikipedia, The Free Encyclopedia.+-- When StartTime and EndTime are specified with Recurrence, they form the+-- boundaries of when the recurring action will start and stop.+psugaRecurrence :: Lens' PutScheduledUpdateGroupAction (Maybe Text)+psugaRecurrence = lens _psugaRecurrence (\s a -> s { _psugaRecurrence = a })++-- | The name of this scaling action.+psugaScheduledActionName :: Lens' PutScheduledUpdateGroupAction Text+psugaScheduledActionName =+    lens _psugaScheduledActionName+        (\s a -> s { _psugaScheduledActionName = a })++-- | The time for this action to start, as in --start-time+-- 2010-06-01T00:00:00Z. If you try to schedule your action in the past,+-- Auto Scaling returns an error message. When StartTime and EndTime are+-- specified with Recurrence, they form the boundaries of when the recurring+-- action will start and stop.+psugaStartTime :: Lens' PutScheduledUpdateGroupAction (Maybe UTCTime)+psugaStartTime = lens _psugaStartTime (\s a -> s { _psugaStartTime = a }) . mapping _Time++-- | Time is deprecated. The time for this action to start. Time is an alias+-- for StartTime and can be specified instead of StartTime, or vice versa.+-- If both Time and StartTime are specified, their values should be+-- identical. Otherwise, PutScheduledUpdateGroupAction will return an error.+psugaTime :: Lens' PutScheduledUpdateGroupAction (Maybe UTCTime)+psugaTime = lens _psugaTime (\s a -> s { _psugaTime = a }) . mapping _Time++data PutScheduledUpdateGroupActionResponse = PutScheduledUpdateGroupActionResponse+    deriving (Eq, Ord, Show, Generic)++-- | 'PutScheduledUpdateGroupActionResponse' constructor.+putScheduledUpdateGroupActionResponse :: PutScheduledUpdateGroupActionResponse+putScheduledUpdateGroupActionResponse = PutScheduledUpdateGroupActionResponse++instance ToPath PutScheduledUpdateGroupAction where+    toPath = const "/"++instance ToQuery PutScheduledUpdateGroupAction where+    toQuery PutScheduledUpdateGroupAction{..} = mconcat+        [ "AutoScalingGroupName" =? _psugaAutoScalingGroupName+        , "DesiredCapacity"      =? _psugaDesiredCapacity+        , "EndTime"              =? _psugaEndTime+        , "MaxSize"              =? _psugaMaxSize+        , "MinSize"              =? _psugaMinSize+        , "Recurrence"           =? _psugaRecurrence+        , "ScheduledActionName"  =? _psugaScheduledActionName+        , "StartTime"            =? _psugaStartTime+        , "Time"                 =? _psugaTime+        ]++instance ToHeaders PutScheduledUpdateGroupAction++instance AWSRequest PutScheduledUpdateGroupAction where+    type Sv PutScheduledUpdateGroupAction = AutoScaling+    type Rs PutScheduledUpdateGroupAction = PutScheduledUpdateGroupActionResponse++    request  = post "PutScheduledUpdateGroupAction"+    response = nullResponse PutScheduledUpdateGroupActionResponse
+ gen/Network/AWS/AutoScaling/RecordLifecycleActionHeartbeat.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.AutoScaling.RecordLifecycleActionHeartbeat+-- 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)++-- | Records a heartbeat for the lifecycle action associated with a specific+-- token. This extends the timeout by the length of time defined by the+-- HeartbeatTimeout parameter of PutLifecycleHook. This operation is a part of+-- the basic sequence for adding a lifecycle hook to an Auto Scaling group:+-- Create a notification target. A target can be either an Amazon SQS queue or+-- an Amazon SNS topic. Create an IAM role. This role allows Auto Scaling to+-- publish lifecycle notifications to the designated SQS queue or SNS topic.+-- Create the lifecycle hook. You can create a hook that acts when instances+-- launch or when instances terminate. If necessary, record the lifecycle+-- action heartbeat to keep the instance in a pending state. Complete the+-- lifecycle action. For more information, see Auto Scaling Pending State and+-- Auto Scaling Terminating State in the Auto Scaling Developer Guide.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_RecordLifecycleActionHeartbeat.html>+module Network.AWS.AutoScaling.RecordLifecycleActionHeartbeat+    (+    -- * Request+      RecordLifecycleActionHeartbeat+    -- ** Request constructor+    , recordLifecycleActionHeartbeat+    -- ** Request lenses+    , rlahAutoScalingGroupName+    , rlahLifecycleActionToken+    , rlahLifecycleHookName++    -- * Response+    , RecordLifecycleActionHeartbeatResponse+    -- ** Response constructor+    , recordLifecycleActionHeartbeatResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data RecordLifecycleActionHeartbeat = RecordLifecycleActionHeartbeat+    { _rlahAutoScalingGroupName :: Text+    , _rlahLifecycleActionToken :: Text+    , _rlahLifecycleHookName    :: Text+    } deriving (Eq, Ord, Show)++-- | 'RecordLifecycleActionHeartbeat' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rlahAutoScalingGroupName' @::@ 'Text'+--+-- * 'rlahLifecycleActionToken' @::@ 'Text'+--+-- * 'rlahLifecycleHookName' @::@ 'Text'+--+recordLifecycleActionHeartbeat :: Text -- ^ 'rlahLifecycleHookName'+                               -> Text -- ^ 'rlahAutoScalingGroupName'+                               -> Text -- ^ 'rlahLifecycleActionToken'+                               -> RecordLifecycleActionHeartbeat+recordLifecycleActionHeartbeat p1 p2 p3 = RecordLifecycleActionHeartbeat+    { _rlahLifecycleHookName    = p1+    , _rlahAutoScalingGroupName = p2+    , _rlahLifecycleActionToken = p3+    }++-- | The name of the Auto Scaling group for the hook.+rlahAutoScalingGroupName :: Lens' RecordLifecycleActionHeartbeat Text+rlahAutoScalingGroupName =+    lens _rlahAutoScalingGroupName+        (\s a -> s { _rlahAutoScalingGroupName = a })++-- | A token that uniquely identifies a specific lifecycle action associated+-- with an instance. Auto Scaling sends this token to the notification+-- target you specified when you created the lifecycle hook.+rlahLifecycleActionToken :: Lens' RecordLifecycleActionHeartbeat Text+rlahLifecycleActionToken =+    lens _rlahLifecycleActionToken+        (\s a -> s { _rlahLifecycleActionToken = a })++-- | The name of the lifecycle hook.+rlahLifecycleHookName :: Lens' RecordLifecycleActionHeartbeat Text+rlahLifecycleHookName =+    lens _rlahLifecycleHookName (\s a -> s { _rlahLifecycleHookName = a })++data RecordLifecycleActionHeartbeatResponse = RecordLifecycleActionHeartbeatResponse+    deriving (Eq, Ord, Show, Generic)++-- | 'RecordLifecycleActionHeartbeatResponse' constructor.+recordLifecycleActionHeartbeatResponse :: RecordLifecycleActionHeartbeatResponse+recordLifecycleActionHeartbeatResponse = RecordLifecycleActionHeartbeatResponse++instance ToPath RecordLifecycleActionHeartbeat where+    toPath = const "/"++instance ToQuery RecordLifecycleActionHeartbeat where+    toQuery RecordLifecycleActionHeartbeat{..} = mconcat+        [ "AutoScalingGroupName" =? _rlahAutoScalingGroupName+        , "LifecycleActionToken" =? _rlahLifecycleActionToken+        , "LifecycleHookName"    =? _rlahLifecycleHookName+        ]++instance ToHeaders RecordLifecycleActionHeartbeat++instance AWSRequest RecordLifecycleActionHeartbeat where+    type Sv RecordLifecycleActionHeartbeat = AutoScaling+    type Rs RecordLifecycleActionHeartbeat = RecordLifecycleActionHeartbeatResponse++    request  = post "RecordLifecycleActionHeartbeat"+    response = nullResponse RecordLifecycleActionHeartbeatResponse
+ gen/Network/AWS/AutoScaling/ResumeProcesses.hs view
@@ -0,0 +1,107 @@+{-# 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.AutoScaling.ResumeProcesses+-- 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)++-- | Resumes the specified suspended Auto Scaling processes for the specified+-- Auto Scaling group. To resume specific processes, use the ScalingProcesses+-- parameter. To resume all processes, omit the ScalingProcesses parameter.+-- For more information, see Suspend and Resume Auto Scaling Processes in the+-- Auto Scaling Developer Guide.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_ResumeProcesses.html>+module Network.AWS.AutoScaling.ResumeProcesses+    (+    -- * Request+      ResumeProcesses+    -- ** Request constructor+    , resumeProcesses+    -- ** Request lenses+    , rpAutoScalingGroupName+    , rpScalingProcesses++    -- * Response+    , ResumeProcessesResponse+    -- ** Response constructor+    , resumeProcessesResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data ResumeProcesses = ResumeProcesses+    { _rpAutoScalingGroupName :: Text+    , _rpScalingProcesses     :: List "ScalingProcesses" Text+    } deriving (Eq, Ord, Show)++-- | 'ResumeProcesses' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'rpAutoScalingGroupName' @::@ 'Text'+--+-- * 'rpScalingProcesses' @::@ ['Text']+--+resumeProcesses :: Text -- ^ 'rpAutoScalingGroupName'+                -> ResumeProcesses+resumeProcesses p1 = ResumeProcesses+    { _rpAutoScalingGroupName = p1+    , _rpScalingProcesses     = mempty+    }++-- | The name or Amazon Resource Name (ARN) of the Auto Scaling group.+rpAutoScalingGroupName :: Lens' ResumeProcesses Text+rpAutoScalingGroupName =+    lens _rpAutoScalingGroupName (\s a -> s { _rpAutoScalingGroupName = a })++-- | One or more of the following processes: Launch Terminate HealthCheck+-- ReplaceUnhealthy AZRebalance AlarmNotification ScheduledActions+-- AddToLoadBalancer.+rpScalingProcesses :: Lens' ResumeProcesses [Text]+rpScalingProcesses =+    lens _rpScalingProcesses (\s a -> s { _rpScalingProcesses = a })+        . _List++data ResumeProcessesResponse = ResumeProcessesResponse+    deriving (Eq, Ord, Show, Generic)++-- | 'ResumeProcessesResponse' constructor.+resumeProcessesResponse :: ResumeProcessesResponse+resumeProcessesResponse = ResumeProcessesResponse++instance ToPath ResumeProcesses where+    toPath = const "/"++instance ToQuery ResumeProcesses where+    toQuery ResumeProcesses{..} = mconcat+        [ "AutoScalingGroupName" =? _rpAutoScalingGroupName+        , "ScalingProcesses"     =? _rpScalingProcesses+        ]++instance ToHeaders ResumeProcesses++instance AWSRequest ResumeProcesses where+    type Sv ResumeProcesses = AutoScaling+    type Rs ResumeProcesses = ResumeProcessesResponse++    request  = post "ResumeProcesses"+    response = nullResponse ResumeProcessesResponse
+ gen/Network/AWS/AutoScaling/SetDesiredCapacity.hs view
@@ -0,0 +1,116 @@+{-# 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.AutoScaling.SetDesiredCapacity+-- 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 the size of the specified AutoScalingGroup.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_SetDesiredCapacity.html>+module Network.AWS.AutoScaling.SetDesiredCapacity+    (+    -- * Request+      SetDesiredCapacity+    -- ** Request constructor+    , setDesiredCapacity+    -- ** Request lenses+    , sdcAutoScalingGroupName+    , sdcDesiredCapacity+    , sdcHonorCooldown++    -- * Response+    , SetDesiredCapacityResponse+    -- ** Response constructor+    , setDesiredCapacityResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data SetDesiredCapacity = SetDesiredCapacity+    { _sdcAutoScalingGroupName :: Text+    , _sdcDesiredCapacity      :: Int+    , _sdcHonorCooldown        :: Maybe Bool+    } deriving (Eq, Ord, Show)++-- | 'SetDesiredCapacity' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'sdcAutoScalingGroupName' @::@ 'Text'+--+-- * 'sdcDesiredCapacity' @::@ 'Int'+--+-- * 'sdcHonorCooldown' @::@ 'Maybe' 'Bool'+--+setDesiredCapacity :: Text -- ^ 'sdcAutoScalingGroupName'+                   -> Int -- ^ 'sdcDesiredCapacity'+                   -> SetDesiredCapacity+setDesiredCapacity p1 p2 = SetDesiredCapacity+    { _sdcAutoScalingGroupName = p1+    , _sdcDesiredCapacity      = p2+    , _sdcHonorCooldown        = Nothing+    }++-- | The name of the Auto Scaling group.+sdcAutoScalingGroupName :: Lens' SetDesiredCapacity Text+sdcAutoScalingGroupName =+    lens _sdcAutoScalingGroupName (\s a -> s { _sdcAutoScalingGroupName = a })++-- | The number of EC2 instances that should be running in the Auto Scaling+-- group.+sdcDesiredCapacity :: Lens' SetDesiredCapacity Int+sdcDesiredCapacity =+    lens _sdcDesiredCapacity (\s a -> s { _sdcDesiredCapacity = a })++-- | By default, SetDesiredCapacity overrides any cooldown period associated+-- with the Auto Scaling group. Specify True to make Auto Scaling to wait+-- for the cool-down period associated with the Auto Scaling group to+-- complete before initiating a scaling activity to set your Auto Scaling+-- group to its new capacity.+sdcHonorCooldown :: Lens' SetDesiredCapacity (Maybe Bool)+sdcHonorCooldown = lens _sdcHonorCooldown (\s a -> s { _sdcHonorCooldown = a })++data SetDesiredCapacityResponse = SetDesiredCapacityResponse+    deriving (Eq, Ord, Show, Generic)++-- | 'SetDesiredCapacityResponse' constructor.+setDesiredCapacityResponse :: SetDesiredCapacityResponse+setDesiredCapacityResponse = SetDesiredCapacityResponse++instance ToPath SetDesiredCapacity where+    toPath = const "/"++instance ToQuery SetDesiredCapacity where+    toQuery SetDesiredCapacity{..} = mconcat+        [ "AutoScalingGroupName" =? _sdcAutoScalingGroupName+        , "DesiredCapacity"      =? _sdcDesiredCapacity+        , "HonorCooldown"        =? _sdcHonorCooldown+        ]++instance ToHeaders SetDesiredCapacity++instance AWSRequest SetDesiredCapacity where+    type Sv SetDesiredCapacity = AutoScaling+    type Rs SetDesiredCapacity = SetDesiredCapacityResponse++    request  = post "SetDesiredCapacity"+    response = nullResponse SetDesiredCapacityResponse
+ gen/Network/AWS/AutoScaling/SetInstanceHealth.hs view
@@ -0,0 +1,120 @@+{-# 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.AutoScaling.SetInstanceHealth+-- 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 the health status of the specified instance. For more information, see+-- Health Checks in the Auto Scaling Developer Guide.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_SetInstanceHealth.html>+module Network.AWS.AutoScaling.SetInstanceHealth+    (+    -- * Request+      SetInstanceHealth+    -- ** Request constructor+    , setInstanceHealth+    -- ** Request lenses+    , sihHealthStatus+    , sihInstanceId+    , sihShouldRespectGracePeriod++    -- * Response+    , SetInstanceHealthResponse+    -- ** Response constructor+    , setInstanceHealthResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data SetInstanceHealth = SetInstanceHealth+    { _sihHealthStatus             :: Text+    , _sihInstanceId               :: Text+    , _sihShouldRespectGracePeriod :: Maybe Bool+    } deriving (Eq, Ord, Show)++-- | 'SetInstanceHealth' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'sihHealthStatus' @::@ 'Text'+--+-- * 'sihInstanceId' @::@ 'Text'+--+-- * 'sihShouldRespectGracePeriod' @::@ 'Maybe' 'Bool'+--+setInstanceHealth :: Text -- ^ 'sihInstanceId'+                  -> Text -- ^ 'sihHealthStatus'+                  -> SetInstanceHealth+setInstanceHealth p1 p2 = SetInstanceHealth+    { _sihInstanceId               = p1+    , _sihHealthStatus             = p2+    , _sihShouldRespectGracePeriod = Nothing+    }++-- | The health status of the instance. Set to Healthy if you want the+-- instance to remain in service. Set to Unhealthy if you want the instance+-- to be out of service. Auto Scaling will terminate and replace the+-- unhealthy instance.+sihHealthStatus :: Lens' SetInstanceHealth Text+sihHealthStatus = lens _sihHealthStatus (\s a -> s { _sihHealthStatus = a })++-- | The ID of the EC2 instance.+sihInstanceId :: Lens' SetInstanceHealth Text+sihInstanceId = lens _sihInstanceId (\s a -> s { _sihInstanceId = a })++-- | If the Auto Scaling group of the specified instance has a+-- HealthCheckGracePeriod specified for the group, by default, this call+-- will respect the grace period. Set this to False, if you do not want the+-- call to respect the grace period associated with the group. For more+-- information, see the HealthCheckGracePeriod parameter description for+-- CreateAutoScalingGroup.+sihShouldRespectGracePeriod :: Lens' SetInstanceHealth (Maybe Bool)+sihShouldRespectGracePeriod =+    lens _sihShouldRespectGracePeriod+        (\s a -> s { _sihShouldRespectGracePeriod = a })++data SetInstanceHealthResponse = SetInstanceHealthResponse+    deriving (Eq, Ord, Show, Generic)++-- | 'SetInstanceHealthResponse' constructor.+setInstanceHealthResponse :: SetInstanceHealthResponse+setInstanceHealthResponse = SetInstanceHealthResponse++instance ToPath SetInstanceHealth where+    toPath = const "/"++instance ToQuery SetInstanceHealth where+    toQuery SetInstanceHealth{..} = mconcat+        [ "HealthStatus"             =? _sihHealthStatus+        , "InstanceId"               =? _sihInstanceId+        , "ShouldRespectGracePeriod" =? _sihShouldRespectGracePeriod+        ]++instance ToHeaders SetInstanceHealth++instance AWSRequest SetInstanceHealth where+    type Sv SetInstanceHealth = AutoScaling+    type Rs SetInstanceHealth = SetInstanceHealthResponse++    request  = post "SetInstanceHealth"+    response = nullResponse SetInstanceHealthResponse
+ gen/Network/AWS/AutoScaling/SuspendProcesses.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.AutoScaling.SuspendProcesses+-- 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)++-- | Suspends the specified Auto Scaling processes for the specified Auto+-- Scaling group. To suspend specific processes, use the ScalingProcesses+-- parameter. To suspend all processes, omit the ScalingProcesses parameter.+-- Note that if you suspend either the Launch or Terminate process types, it+-- can prevent other process types from functioning properly. To resume+-- processes that have been suspended, use ResumeProcesses. For more+-- information, see Suspend and Resume Auto Scaling Processes in the Auto+-- Scaling Developer Guide.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_SuspendProcesses.html>+module Network.AWS.AutoScaling.SuspendProcesses+    (+    -- * Request+      SuspendProcesses+    -- ** Request constructor+    , suspendProcesses+    -- ** Request lenses+    , spAutoScalingGroupName+    , spScalingProcesses++    -- * Response+    , SuspendProcessesResponse+    -- ** Response constructor+    , suspendProcessesResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data SuspendProcesses = SuspendProcesses+    { _spAutoScalingGroupName :: Text+    , _spScalingProcesses     :: List "ScalingProcesses" Text+    } deriving (Eq, Ord, Show)++-- | 'SuspendProcesses' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'spAutoScalingGroupName' @::@ 'Text'+--+-- * 'spScalingProcesses' @::@ ['Text']+--+suspendProcesses :: Text -- ^ 'spAutoScalingGroupName'+                 -> SuspendProcesses+suspendProcesses p1 = SuspendProcesses+    { _spAutoScalingGroupName = p1+    , _spScalingProcesses     = mempty+    }++-- | The name or Amazon Resource Name (ARN) of the Auto Scaling group.+spAutoScalingGroupName :: Lens' SuspendProcesses Text+spAutoScalingGroupName =+    lens _spAutoScalingGroupName (\s a -> s { _spAutoScalingGroupName = a })++-- | One or more of the following processes: Launch Terminate HealthCheck+-- ReplaceUnhealthy AZRebalance AlarmNotification ScheduledActions+-- AddToLoadBalancer.+spScalingProcesses :: Lens' SuspendProcesses [Text]+spScalingProcesses =+    lens _spScalingProcesses (\s a -> s { _spScalingProcesses = a })+        . _List++data SuspendProcessesResponse = SuspendProcessesResponse+    deriving (Eq, Ord, Show, Generic)++-- | 'SuspendProcessesResponse' constructor.+suspendProcessesResponse :: SuspendProcessesResponse+suspendProcessesResponse = SuspendProcessesResponse++instance ToPath SuspendProcesses where+    toPath = const "/"++instance ToQuery SuspendProcesses where+    toQuery SuspendProcesses{..} = mconcat+        [ "AutoScalingGroupName" =? _spAutoScalingGroupName+        , "ScalingProcesses"     =? _spScalingProcesses+        ]++instance ToHeaders SuspendProcesses++instance AWSRequest SuspendProcesses where+    type Sv SuspendProcesses = AutoScaling+    type Rs SuspendProcesses = SuspendProcessesResponse++    request  = post "SuspendProcesses"+    response = nullResponse SuspendProcessesResponse
+ gen/Network/AWS/AutoScaling/TerminateInstanceInAutoScalingGroup.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DataKinds                   #-}+{-# LANGUAGE DeriveGeneric               #-}+{-# LANGUAGE FlexibleInstances           #-}+{-# LANGUAGE GeneralizedNewtypeDeriving  #-}+{-# LANGUAGE LambdaCase                  #-}+{-# LANGUAGE NoImplicitPrelude           #-}+{-# LANGUAGE OverloadedStrings           #-}+{-# LANGUAGE RecordWildCards             #-}+{-# LANGUAGE TypeFamilies                #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Network.AWS.AutoScaling.TerminateInstanceInAutoScalingGroup+-- 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)++-- | Terminates the specified instance and optionally adjusts the desired group+-- size. This call simply makes a termination request. The instances is not+-- terminated immediately.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_TerminateInstanceInAutoScalingGroup.html>+module Network.AWS.AutoScaling.TerminateInstanceInAutoScalingGroup+    (+    -- * Request+      TerminateInstanceInAutoScalingGroup+    -- ** Request constructor+    , terminateInstanceInAutoScalingGroup+    -- ** Request lenses+    , tiiasgInstanceId+    , tiiasgShouldDecrementDesiredCapacity++    -- * Response+    , TerminateInstanceInAutoScalingGroupResponse+    -- ** Response constructor+    , terminateInstanceInAutoScalingGroupResponse+    -- ** Response lenses+    , tiiasgrActivity+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data TerminateInstanceInAutoScalingGroup = TerminateInstanceInAutoScalingGroup+    { _tiiasgInstanceId                     :: Text+    , _tiiasgShouldDecrementDesiredCapacity :: Bool+    } deriving (Eq, Ord, Show)++-- | 'TerminateInstanceInAutoScalingGroup' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'tiiasgInstanceId' @::@ 'Text'+--+-- * 'tiiasgShouldDecrementDesiredCapacity' @::@ 'Bool'+--+terminateInstanceInAutoScalingGroup :: Text -- ^ 'tiiasgInstanceId'+                                    -> Bool -- ^ 'tiiasgShouldDecrementDesiredCapacity'+                                    -> TerminateInstanceInAutoScalingGroup+terminateInstanceInAutoScalingGroup p1 p2 = TerminateInstanceInAutoScalingGroup+    { _tiiasgInstanceId                     = p1+    , _tiiasgShouldDecrementDesiredCapacity = p2+    }++-- | The ID of the EC2 instance.+tiiasgInstanceId :: Lens' TerminateInstanceInAutoScalingGroup Text+tiiasgInstanceId = lens _tiiasgInstanceId (\s a -> s { _tiiasgInstanceId = a })++-- | If true, terminating this instance also decrements the size of the Auto+-- Scaling group.+tiiasgShouldDecrementDesiredCapacity :: Lens' TerminateInstanceInAutoScalingGroup Bool+tiiasgShouldDecrementDesiredCapacity =+    lens _tiiasgShouldDecrementDesiredCapacity+        (\s a -> s { _tiiasgShouldDecrementDesiredCapacity = a })++newtype TerminateInstanceInAutoScalingGroupResponse = TerminateInstanceInAutoScalingGroupResponse+    { _tiiasgrActivity :: Maybe Activity+    } deriving (Eq, Show)++-- | 'TerminateInstanceInAutoScalingGroupResponse' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'tiiasgrActivity' @::@ 'Maybe' 'Activity'+--+terminateInstanceInAutoScalingGroupResponse :: TerminateInstanceInAutoScalingGroupResponse+terminateInstanceInAutoScalingGroupResponse = TerminateInstanceInAutoScalingGroupResponse+    { _tiiasgrActivity = Nothing+    }++-- | A scaling activity.+tiiasgrActivity :: Lens' TerminateInstanceInAutoScalingGroupResponse (Maybe Activity)+tiiasgrActivity = lens _tiiasgrActivity (\s a -> s { _tiiasgrActivity = a })++instance ToPath TerminateInstanceInAutoScalingGroup where+    toPath = const "/"++instance ToQuery TerminateInstanceInAutoScalingGroup where+    toQuery TerminateInstanceInAutoScalingGroup{..} = mconcat+        [ "InstanceId"                     =? _tiiasgInstanceId+        , "ShouldDecrementDesiredCapacity" =? _tiiasgShouldDecrementDesiredCapacity+        ]++instance ToHeaders TerminateInstanceInAutoScalingGroup++instance AWSRequest TerminateInstanceInAutoScalingGroup where+    type Sv TerminateInstanceInAutoScalingGroup = AutoScaling+    type Rs TerminateInstanceInAutoScalingGroup = TerminateInstanceInAutoScalingGroupResponse++    request  = post "TerminateInstanceInAutoScalingGroup"+    response = xmlResponse++instance FromXML TerminateInstanceInAutoScalingGroupResponse where+    parseXML = withElement "TerminateInstanceInAutoScalingGroupResult" $ \x -> TerminateInstanceInAutoScalingGroupResponse+        <$> x .@? "Activity"
+ gen/Network/AWS/AutoScaling/Types.hs view
@@ -0,0 +1,2188 @@+{-# 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.AutoScaling.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.AutoScaling.Types+    (+    -- * Service+      AutoScaling+    -- ** Error+    , RESTError+    -- ** XML+    , ns++    -- * TagDescription+    , TagDescription+    , tagDescription+    , tdKey+    , tdPropagateAtLaunch+    , tdResourceId+    , tdResourceType+    , tdValue++    -- * Tag+    , Tag+    , tag+    , tagKey+    , tagPropagateAtLaunch+    , tagResourceId+    , tagResourceType+    , tagValue++    -- * NotificationConfiguration+    , NotificationConfiguration+    , notificationConfiguration+    , ncAutoScalingGroupName+    , ncNotificationType+    , ncTopicARN++    -- * BlockDeviceMapping+    , BlockDeviceMapping+    , blockDeviceMapping+    , bdmDeviceName+    , bdmEbs+    , bdmNoDevice+    , bdmVirtualName++    -- * LaunchConfiguration+    , LaunchConfiguration+    , launchConfiguration+    , lcAssociatePublicIpAddress+    , lcBlockDeviceMappings+    , lcCreatedTime+    , lcEbsOptimized+    , lcIamInstanceProfile+    , lcImageId+    , lcInstanceMonitoring+    , lcInstanceType+    , lcKernelId+    , lcKeyName+    , lcLaunchConfigurationARN+    , lcLaunchConfigurationName+    , lcPlacementTenancy+    , lcRamdiskId+    , lcSecurityGroups+    , lcSpotPrice+    , lcUserData++    -- * AutoScalingGroup+    , AutoScalingGroup+    , autoScalingGroup+    , asgAutoScalingGroupARN+    , asgAutoScalingGroupName+    , asgAvailabilityZones+    , asgCreatedTime+    , asgDefaultCooldown+    , asgDesiredCapacity+    , asgEnabledMetrics+    , asgHealthCheckGracePeriod+    , asgHealthCheckType+    , asgInstances+    , asgLaunchConfigurationName+    , asgLoadBalancerNames+    , asgMaxSize+    , asgMinSize+    , asgPlacementGroup+    , asgStatus+    , asgSuspendedProcesses+    , asgTags+    , asgTerminationPolicies+    , asgVPCZoneIdentifier++    -- * ScalingPolicy+    , ScalingPolicy+    , scalingPolicy+    , sp1AdjustmentType+    , sp1Alarms+    , sp1AutoScalingGroupName+    , sp1Cooldown+    , sp1MinAdjustmentStep+    , sp1PolicyARN+    , sp1PolicyName+    , sp1ScalingAdjustment++    -- * InstanceMonitoring+    , InstanceMonitoring+    , instanceMonitoring+    , imEnabled++    -- * ScheduledUpdateGroupAction+    , ScheduledUpdateGroupAction+    , scheduledUpdateGroupAction+    , sugaAutoScalingGroupName+    , sugaDesiredCapacity+    , sugaEndTime+    , sugaMaxSize+    , sugaMinSize+    , sugaRecurrence+    , sugaScheduledActionARN+    , sugaScheduledActionName+    , sugaStartTime+    , sugaTime++    -- * ScalingProcessQuery+    , ScalingProcessQuery+    , scalingProcessQuery+    , spqAutoScalingGroupName+    , spqScalingProcesses++    -- * Ebs+    , Ebs+    , ebs+    , ebsDeleteOnTermination+    , ebsIops+    , ebsSnapshotId+    , ebsVolumeSize+    , ebsVolumeType++    -- * AdjustmentType+    , AdjustmentType+    , adjustmentType+    , atAdjustmentType++    -- * MetricCollectionType+    , MetricCollectionType+    , metricCollectionType+    , mctMetric++    -- * LifecycleHook+    , LifecycleHook+    , lifecycleHook+    , lhAutoScalingGroupName+    , lhDefaultResult+    , lhGlobalTimeout+    , lhHeartbeatTimeout+    , lhLifecycleHookName+    , lhLifecycleTransition+    , lhNotificationMetadata+    , lhNotificationTargetARN+    , lhRoleARN++    -- * Activity+    , Activity+    , activity+    , aActivityId+    , aAutoScalingGroupName+    , aCause+    , aDescription+    , aDetails+    , aEndTime+    , aProgress+    , aStartTime+    , aStatusCode+    , aStatusMessage++    -- * SuspendedProcess+    , SuspendedProcess+    , suspendedProcess+    , spProcessName+    , spSuspensionReason++    -- * MetricGranularityType+    , MetricGranularityType+    , metricGranularityType+    , mgtGranularity++    -- * Filter+    , Filter+    , filter'+    , fName+    , fValues++    -- * ProcessType+    , ProcessType+    , processType+    , ptProcessName++    -- * Alarm+    , Alarm+    , alarm+    , aAlarmARN+    , aAlarmName++    -- * EnabledMetric+    , EnabledMetric+    , enabledMetric+    , emGranularity+    , emMetric++    -- * Instance+    , Instance+    , instance'+    , iAvailabilityZone+    , iHealthStatus+    , iInstanceId+    , iLaunchConfigurationName+    , iLifecycleState++    -- * LifecycleState+    , LifecycleState (..)++    -- * AutoScalingInstanceDetails+    , AutoScalingInstanceDetails+    , autoScalingInstanceDetails+    , asidAutoScalingGroupName+    , asidAvailabilityZone+    , asidHealthStatus+    , asidInstanceId+    , asidLaunchConfigurationName+    , asidLifecycleState++    -- * ScalingActivityStatusCode+    , ScalingActivityStatusCode (..)+    ) where++import Network.AWS.Error+import Network.AWS.Prelude+import Network.AWS.Signing.V4+import qualified GHC.Exts++-- | Version @2011-01-01@ of the Amazon Auto Scaling service.+data AutoScaling++instance AWSService AutoScaling where+    type Sg AutoScaling = V4+    type Er AutoScaling = RESTError++    service = Service+        { _svcEndpoint     = regional+        , _svcAbbrev       = "AutoScaling"+        , _svcPrefix       = "autoscaling"+        , _svcVersion      = "2011-01-01"+        , _svcTargetPrefix = Nothing+        , _svcJSONVersion  = Nothing+        }++    handle = restError statusSuccess++ns :: Text+ns = "http://autoscaling.amazonaws.com/doc/2011-01-01/"++data TagDescription = TagDescription+    { _tdKey               :: Text+    , _tdPropagateAtLaunch :: Bool+    , _tdResourceId        :: Text+    , _tdResourceType      :: Text+    , _tdValue             :: Text+    } deriving (Eq, Ord, Show)++-- | 'TagDescription' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'tdKey' @::@ 'Text'+--+-- * 'tdPropagateAtLaunch' @::@ 'Bool'+--+-- * 'tdResourceId' @::@ 'Text'+--+-- * 'tdResourceType' @::@ 'Text'+--+-- * 'tdValue' @::@ 'Text'+--+tagDescription :: Text -- ^ 'tdResourceId'+               -> Text -- ^ 'tdResourceType'+               -> Text -- ^ 'tdKey'+               -> Text -- ^ 'tdValue'+               -> Bool -- ^ 'tdPropagateAtLaunch'+               -> TagDescription+tagDescription p1 p2 p3 p4 p5 = TagDescription+    { _tdResourceId        = p1+    , _tdResourceType      = p2+    , _tdKey               = p3+    , _tdValue             = p4+    , _tdPropagateAtLaunch = p5+    }++-- | The tag key.+tdKey :: Lens' TagDescription Text+tdKey = lens _tdKey (\s a -> s { _tdKey = a })++-- | Specifies whether the tag is applied to instances launched after the tag+-- is created. The same behavior applies to updates: If you change a tag, it+-- is applied to all instances launched after you made the change.+tdPropagateAtLaunch :: Lens' TagDescription Bool+tdPropagateAtLaunch =+    lens _tdPropagateAtLaunch (\s a -> s { _tdPropagateAtLaunch = a })++-- | The name of the group.+tdResourceId :: Lens' TagDescription Text+tdResourceId = lens _tdResourceId (\s a -> s { _tdResourceId = a })++-- | The kind of resource to which the tag is applied. Currently, Auto Scaling+-- supports the auto-scaling-group resource type.+tdResourceType :: Lens' TagDescription Text+tdResourceType = lens _tdResourceType (\s a -> s { _tdResourceType = a })++-- | The tag value.+tdValue :: Lens' TagDescription Text+tdValue = lens _tdValue (\s a -> s { _tdValue = a })++instance FromXML TagDescription where+    parseXML x = TagDescription+        <$> x .@  "Key"+        <*> x .@  "PropagateAtLaunch"+        <*> x .@  "ResourceId"+        <*> x .@  "ResourceType"+        <*> x .@  "Value"++instance ToQuery TagDescription where+    toQuery TagDescription{..} = mconcat+        [ "Key"               =? _tdKey+        , "PropagateAtLaunch" =? _tdPropagateAtLaunch+        , "ResourceId"        =? _tdResourceId+        , "ResourceType"      =? _tdResourceType+        , "Value"             =? _tdValue+        ]++data Tag = Tag+    { _tagKey               :: Text+    , _tagPropagateAtLaunch :: Bool+    , _tagResourceId        :: Text+    , _tagResourceType      :: Text+    , _tagValue             :: Text+    } deriving (Eq, Ord, Show)++-- | 'Tag' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'tagKey' @::@ 'Text'+--+-- * 'tagPropagateAtLaunch' @::@ 'Bool'+--+-- * 'tagResourceId' @::@ 'Text'+--+-- * 'tagResourceType' @::@ 'Text'+--+-- * 'tagValue' @::@ 'Text'+--+tag :: Text -- ^ 'tagResourceId'+    -> Text -- ^ 'tagResourceType'+    -> Text -- ^ 'tagKey'+    -> Text -- ^ 'tagValue'+    -> Bool -- ^ 'tagPropagateAtLaunch'+    -> Tag+tag p1 p2 p3 p4 p5 = Tag+    { _tagResourceId        = p1+    , _tagResourceType      = p2+    , _tagKey               = p3+    , _tagValue             = p4+    , _tagPropagateAtLaunch = p5+    }++-- | The tag key.+tagKey :: Lens' Tag Text+tagKey = lens _tagKey (\s a -> s { _tagKey = a })++-- | Specifies whether the tag is applied to instances launched after the tag+-- is created. The same behavior applies to updates: If you change a tag, it+-- is applied to all instances launched after you made the change.+tagPropagateAtLaunch :: Lens' Tag Bool+tagPropagateAtLaunch =+    lens _tagPropagateAtLaunch (\s a -> s { _tagPropagateAtLaunch = a })++-- | The name of the group.+tagResourceId :: Lens' Tag Text+tagResourceId = lens _tagResourceId (\s a -> s { _tagResourceId = a })++-- | The kind of resource to which the tag is applied. Currently, Auto Scaling+-- supports the auto-scaling-group resource type.+tagResourceType :: Lens' Tag Text+tagResourceType = lens _tagResourceType (\s a -> s { _tagResourceType = a })++-- | The tag value.+tagValue :: Lens' Tag Text+tagValue = lens _tagValue (\s a -> s { _tagValue = a })++instance FromXML Tag where+    parseXML x = Tag+        <$> x .@  "Key"+        <*> x .@  "PropagateAtLaunch"+        <*> x .@  "ResourceId"+        <*> x .@  "ResourceType"+        <*> x .@  "Value"++instance ToQuery Tag where+    toQuery Tag{..} = mconcat+        [ "Key"               =? _tagKey+        , "PropagateAtLaunch" =? _tagPropagateAtLaunch+        , "ResourceId"        =? _tagResourceId+        , "ResourceType"      =? _tagResourceType+        , "Value"             =? _tagValue+        ]++data NotificationConfiguration = NotificationConfiguration+    { _ncAutoScalingGroupName :: Maybe Text+    , _ncNotificationType     :: Maybe Text+    , _ncTopicARN             :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'NotificationConfiguration' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ncAutoScalingGroupName' @::@ 'Maybe' 'Text'+--+-- * 'ncNotificationType' @::@ 'Maybe' 'Text'+--+-- * 'ncTopicARN' @::@ 'Maybe' 'Text'+--+notificationConfiguration :: NotificationConfiguration+notificationConfiguration = NotificationConfiguration+    { _ncAutoScalingGroupName = Nothing+    , _ncTopicARN             = Nothing+    , _ncNotificationType     = Nothing+    }++-- | The name of the group.+ncAutoScalingGroupName :: Lens' NotificationConfiguration (Maybe Text)+ncAutoScalingGroupName =+    lens _ncAutoScalingGroupName (\s a -> s { _ncAutoScalingGroupName = a })++-- | The types of events for an action to start.+ncNotificationType :: Lens' NotificationConfiguration (Maybe Text)+ncNotificationType =+    lens _ncNotificationType (\s a -> s { _ncNotificationType = a })++-- | The Amazon Resource Name (ARN) of the Amazon Simple Notification Service+-- (SNS) topic.+ncTopicARN :: Lens' NotificationConfiguration (Maybe Text)+ncTopicARN = lens _ncTopicARN (\s a -> s { _ncTopicARN = a })++instance FromXML NotificationConfiguration where+    parseXML x = NotificationConfiguration+        <$> x .@? "AutoScalingGroupName"+        <*> x .@? "NotificationType"+        <*> x .@? "TopicARN"++instance ToQuery NotificationConfiguration where+    toQuery NotificationConfiguration{..} = mconcat+        [ "AutoScalingGroupName" =? _ncAutoScalingGroupName+        , "NotificationType"     =? _ncNotificationType+        , "TopicARN"             =? _ncTopicARN+        ]++data BlockDeviceMapping = BlockDeviceMapping+    { _bdmDeviceName  :: Text+    , _bdmEbs         :: Maybe Ebs+    , _bdmNoDevice    :: Maybe Bool+    , _bdmVirtualName :: Maybe Text+    } deriving (Eq, Show)++-- | 'BlockDeviceMapping' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'bdmDeviceName' @::@ 'Text'+--+-- * 'bdmEbs' @::@ 'Maybe' 'Ebs'+--+-- * 'bdmNoDevice' @::@ 'Maybe' 'Bool'+--+-- * 'bdmVirtualName' @::@ 'Maybe' 'Text'+--+blockDeviceMapping :: Text -- ^ 'bdmDeviceName'+                   -> BlockDeviceMapping+blockDeviceMapping p1 = BlockDeviceMapping+    { _bdmDeviceName  = p1+    , _bdmVirtualName = Nothing+    , _bdmEbs         = Nothing+    , _bdmNoDevice    = Nothing+    }++-- | The device name exposed to the EC2 instance (for example, /dev/sdh or+-- xvdh).+bdmDeviceName :: Lens' BlockDeviceMapping Text+bdmDeviceName = lens _bdmDeviceName (\s a -> s { _bdmDeviceName = a })++-- | The information about the Amazon EBS volume.+bdmEbs :: Lens' BlockDeviceMapping (Maybe Ebs)+bdmEbs = lens _bdmEbs (\s a -> s { _bdmEbs = a })++-- | Suppresses a device mapping. If NoDevice is set to true for the root+-- device, the instance might fail the EC2 health check. Auto Scaling+-- launches a replacement instance if the instance fails the health check.+bdmNoDevice :: Lens' BlockDeviceMapping (Maybe Bool)+bdmNoDevice = lens _bdmNoDevice (\s a -> s { _bdmNoDevice = a })++-- | The name of the virtual device, ephemeral0 to ephemeral3.+bdmVirtualName :: Lens' BlockDeviceMapping (Maybe Text)+bdmVirtualName = lens _bdmVirtualName (\s a -> s { _bdmVirtualName = a })++instance FromXML BlockDeviceMapping where+    parseXML x = BlockDeviceMapping+        <$> x .@  "DeviceName"+        <*> x .@? "Ebs"+        <*> x .@? "NoDevice"+        <*> x .@? "VirtualName"++instance ToQuery BlockDeviceMapping where+    toQuery BlockDeviceMapping{..} = mconcat+        [ "DeviceName"  =? _bdmDeviceName+        , "Ebs"         =? _bdmEbs+        , "NoDevice"    =? _bdmNoDevice+        , "VirtualName" =? _bdmVirtualName+        ]++data LaunchConfiguration = LaunchConfiguration+    { _lcAssociatePublicIpAddress :: Maybe Bool+    , _lcBlockDeviceMappings      :: List "BlockDeviceMappings" BlockDeviceMapping+    , _lcCreatedTime              :: RFC822+    , _lcEbsOptimized             :: Maybe Bool+    , _lcIamInstanceProfile       :: Maybe Text+    , _lcImageId                  :: Text+    , _lcInstanceMonitoring       :: Maybe InstanceMonitoring+    , _lcInstanceType             :: Text+    , _lcKernelId                 :: Maybe Text+    , _lcKeyName                  :: Maybe Text+    , _lcLaunchConfigurationARN   :: Maybe Text+    , _lcLaunchConfigurationName  :: Text+    , _lcPlacementTenancy         :: Maybe Text+    , _lcRamdiskId                :: Maybe Text+    , _lcSecurityGroups           :: List "SecurityGroups" Text+    , _lcSpotPrice                :: Maybe Text+    , _lcUserData                 :: Maybe Text+    } deriving (Eq, Show)++-- | 'LaunchConfiguration' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'lcAssociatePublicIpAddress' @::@ 'Maybe' 'Bool'+--+-- * 'lcBlockDeviceMappings' @::@ ['BlockDeviceMapping']+--+-- * 'lcCreatedTime' @::@ 'UTCTime'+--+-- * 'lcEbsOptimized' @::@ 'Maybe' 'Bool'+--+-- * 'lcIamInstanceProfile' @::@ 'Maybe' 'Text'+--+-- * 'lcImageId' @::@ 'Text'+--+-- * 'lcInstanceMonitoring' @::@ 'Maybe' 'InstanceMonitoring'+--+-- * 'lcInstanceType' @::@ 'Text'+--+-- * 'lcKernelId' @::@ 'Maybe' 'Text'+--+-- * 'lcKeyName' @::@ 'Maybe' 'Text'+--+-- * 'lcLaunchConfigurationARN' @::@ 'Maybe' 'Text'+--+-- * 'lcLaunchConfigurationName' @::@ 'Text'+--+-- * 'lcPlacementTenancy' @::@ 'Maybe' 'Text'+--+-- * 'lcRamdiskId' @::@ 'Maybe' 'Text'+--+-- * 'lcSecurityGroups' @::@ ['Text']+--+-- * 'lcSpotPrice' @::@ 'Maybe' 'Text'+--+-- * 'lcUserData' @::@ 'Maybe' 'Text'+--+launchConfiguration :: Text -- ^ 'lcLaunchConfigurationName'+                    -> Text -- ^ 'lcImageId'+                    -> Text -- ^ 'lcInstanceType'+                    -> UTCTime -- ^ 'lcCreatedTime'+                    -> LaunchConfiguration+launchConfiguration p1 p2 p3 p4 = LaunchConfiguration+    { _lcLaunchConfigurationName  = p1+    , _lcImageId                  = p2+    , _lcInstanceType             = p3+    , _lcCreatedTime              = withIso _Time (const id) p4+    , _lcLaunchConfigurationARN   = Nothing+    , _lcKeyName                  = Nothing+    , _lcSecurityGroups           = mempty+    , _lcUserData                 = Nothing+    , _lcKernelId                 = Nothing+    , _lcRamdiskId                = Nothing+    , _lcBlockDeviceMappings      = mempty+    , _lcInstanceMonitoring       = Nothing+    , _lcSpotPrice                = Nothing+    , _lcIamInstanceProfile       = Nothing+    , _lcEbsOptimized             = Nothing+    , _lcAssociatePublicIpAddress = Nothing+    , _lcPlacementTenancy         = Nothing+    }++-- | Specifies whether the EC2 instances are associated with a public IP+-- address (true) or not (false).+lcAssociatePublicIpAddress :: Lens' LaunchConfiguration (Maybe Bool)+lcAssociatePublicIpAddress =+    lens _lcAssociatePublicIpAddress+        (\s a -> s { _lcAssociatePublicIpAddress = a })++-- | A block device mapping that specifies how block devices are exposed to+-- the instance. Each mapping is made up of a virtualName and a deviceName.+lcBlockDeviceMappings :: Lens' LaunchConfiguration [BlockDeviceMapping]+lcBlockDeviceMappings =+    lens _lcBlockDeviceMappings (\s a -> s { _lcBlockDeviceMappings = a })+        . _List++-- | The creation date and time for the launch configuration.+lcCreatedTime :: Lens' LaunchConfiguration UTCTime+lcCreatedTime = lens _lcCreatedTime (\s a -> s { _lcCreatedTime = a }) . _Time++-- | Controls whether the instance is optimized for EBS I/O (true) or not+-- (false).+lcEbsOptimized :: Lens' LaunchConfiguration (Maybe Bool)+lcEbsOptimized = lens _lcEbsOptimized (\s a -> s { _lcEbsOptimized = a })++-- | The name or Amazon Resource Name (ARN) of the instance profile associated+-- with the IAM role for the instance.+lcIamInstanceProfile :: Lens' LaunchConfiguration (Maybe Text)+lcIamInstanceProfile =+    lens _lcIamInstanceProfile (\s a -> s { _lcIamInstanceProfile = a })++-- | The ID of the Amazon Machine Image (AMI).+lcImageId :: Lens' LaunchConfiguration Text+lcImageId = lens _lcImageId (\s a -> s { _lcImageId = a })++-- | Controls whether instances in this group are launched with detailed+-- monitoring.+lcInstanceMonitoring :: Lens' LaunchConfiguration (Maybe InstanceMonitoring)+lcInstanceMonitoring =+    lens _lcInstanceMonitoring (\s a -> s { _lcInstanceMonitoring = a })++-- | The instance type for the EC2 instances.+lcInstanceType :: Lens' LaunchConfiguration Text+lcInstanceType = lens _lcInstanceType (\s a -> s { _lcInstanceType = a })++-- | The ID of the kernel associated with the AMI.+lcKernelId :: Lens' LaunchConfiguration (Maybe Text)+lcKernelId = lens _lcKernelId (\s a -> s { _lcKernelId = a })++-- | The name of the key pair.+lcKeyName :: Lens' LaunchConfiguration (Maybe Text)+lcKeyName = lens _lcKeyName (\s a -> s { _lcKeyName = a })++-- | The Amazon Resource Name (ARN) of the launch configuration.+lcLaunchConfigurationARN :: Lens' LaunchConfiguration (Maybe Text)+lcLaunchConfigurationARN =+    lens _lcLaunchConfigurationARN+        (\s a -> s { _lcLaunchConfigurationARN = a })++-- | The name of the launch configuration.+lcLaunchConfigurationName :: Lens' LaunchConfiguration Text+lcLaunchConfigurationName =+    lens _lcLaunchConfigurationName+        (\s a -> s { _lcLaunchConfigurationName = a })++-- | The tenancy of the instance, either default or dedicated. An instance+-- with dedicated tenancy runs in an isolated, single-tenant hardware and+-- can only be launched in a VPC.+lcPlacementTenancy :: Lens' LaunchConfiguration (Maybe Text)+lcPlacementTenancy =+    lens _lcPlacementTenancy (\s a -> s { _lcPlacementTenancy = a })++-- | The ID of the RAM disk associated with the AMI.+lcRamdiskId :: Lens' LaunchConfiguration (Maybe Text)+lcRamdiskId = lens _lcRamdiskId (\s a -> s { _lcRamdiskId = a })++-- | The security groups to associate with the EC2 instances.+lcSecurityGroups :: Lens' LaunchConfiguration [Text]+lcSecurityGroups = lens _lcSecurityGroups (\s a -> s { _lcSecurityGroups = a }) . _List++-- | The price to bid when launching Spot Instances.+lcSpotPrice :: Lens' LaunchConfiguration (Maybe Text)+lcSpotPrice = lens _lcSpotPrice (\s a -> s { _lcSpotPrice = a })++-- | The user data available to the EC2 instances.+lcUserData :: Lens' LaunchConfiguration (Maybe Text)+lcUserData = lens _lcUserData (\s a -> s { _lcUserData = a })++instance FromXML LaunchConfiguration where+    parseXML x = LaunchConfiguration+        <$> x .@? "AssociatePublicIpAddress"+        <*> x .@  "BlockDeviceMappings"+        <*> x .@  "CreatedTime"+        <*> x .@? "EbsOptimized"+        <*> x .@? "IamInstanceProfile"+        <*> x .@  "ImageId"+        <*> x .@? "InstanceMonitoring"+        <*> x .@  "InstanceType"+        <*> x .@? "KernelId"+        <*> x .@? "KeyName"+        <*> x .@? "LaunchConfigurationARN"+        <*> x .@  "LaunchConfigurationName"+        <*> x .@? "PlacementTenancy"+        <*> x .@? "RamdiskId"+        <*> x .@  "SecurityGroups"+        <*> x .@? "SpotPrice"+        <*> x .@? "UserData"++instance ToQuery LaunchConfiguration where+    toQuery LaunchConfiguration{..} = mconcat+        [ "AssociatePublicIpAddress" =? _lcAssociatePublicIpAddress+        , "BlockDeviceMappings"      =? _lcBlockDeviceMappings+        , "CreatedTime"              =? _lcCreatedTime+        , "EbsOptimized"             =? _lcEbsOptimized+        , "IamInstanceProfile"       =? _lcIamInstanceProfile+        , "ImageId"                  =? _lcImageId+        , "InstanceMonitoring"       =? _lcInstanceMonitoring+        , "InstanceType"             =? _lcInstanceType+        , "KernelId"                 =? _lcKernelId+        , "KeyName"                  =? _lcKeyName+        , "LaunchConfigurationARN"   =? _lcLaunchConfigurationARN+        , "LaunchConfigurationName"  =? _lcLaunchConfigurationName+        , "PlacementTenancy"         =? _lcPlacementTenancy+        , "RamdiskId"                =? _lcRamdiskId+        , "SecurityGroups"           =? _lcSecurityGroups+        , "SpotPrice"                =? _lcSpotPrice+        , "UserData"                 =? _lcUserData+        ]++data AutoScalingGroup = AutoScalingGroup+    { _asgAutoScalingGroupARN     :: Maybe Text+    , _asgAutoScalingGroupName    :: Text+    , _asgAvailabilityZones       :: List1 "AvailabilityZones" Text+    , _asgCreatedTime             :: RFC822+    , _asgDefaultCooldown         :: Int+    , _asgDesiredCapacity         :: Int+    , _asgEnabledMetrics          :: List "EnabledMetrics" EnabledMetric+    , _asgHealthCheckGracePeriod  :: Maybe Int+    , _asgHealthCheckType         :: Text+    , _asgInstances               :: List "Instances" Instance+    , _asgLaunchConfigurationName :: Text+    , _asgLoadBalancerNames       :: List "LoadBalancerNames" Text+    , _asgMaxSize                 :: Int+    , _asgMinSize                 :: Int+    , _asgPlacementGroup          :: Maybe Text+    , _asgStatus                  :: Maybe Text+    , _asgSuspendedProcesses      :: List "SuspendedProcesses" SuspendedProcess+    , _asgTags                    :: List "Tags" TagDescription+    , _asgTerminationPolicies     :: List "TerminationPolicies" Text+    , _asgVPCZoneIdentifier       :: Maybe Text+    } deriving (Eq, Show)++-- | 'AutoScalingGroup' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'asgAutoScalingGroupARN' @::@ 'Maybe' 'Text'+--+-- * 'asgAutoScalingGroupName' @::@ 'Text'+--+-- * 'asgAvailabilityZones' @::@ 'NonEmpty' 'Text'+--+-- * 'asgCreatedTime' @::@ 'UTCTime'+--+-- * 'asgDefaultCooldown' @::@ 'Int'+--+-- * 'asgDesiredCapacity' @::@ 'Int'+--+-- * 'asgEnabledMetrics' @::@ ['EnabledMetric']+--+-- * 'asgHealthCheckGracePeriod' @::@ 'Maybe' 'Int'+--+-- * 'asgHealthCheckType' @::@ 'Text'+--+-- * 'asgInstances' @::@ ['Instance']+--+-- * 'asgLaunchConfigurationName' @::@ 'Text'+--+-- * 'asgLoadBalancerNames' @::@ ['Text']+--+-- * 'asgMaxSize' @::@ 'Int'+--+-- * 'asgMinSize' @::@ 'Int'+--+-- * 'asgPlacementGroup' @::@ 'Maybe' 'Text'+--+-- * 'asgStatus' @::@ 'Maybe' 'Text'+--+-- * 'asgSuspendedProcesses' @::@ ['SuspendedProcess']+--+-- * 'asgTags' @::@ ['TagDescription']+--+-- * 'asgTerminationPolicies' @::@ ['Text']+--+-- * 'asgVPCZoneIdentifier' @::@ 'Maybe' 'Text'+--+autoScalingGroup :: Text -- ^ 'asgAutoScalingGroupName'+                 -> Text -- ^ 'asgLaunchConfigurationName'+                 -> Int -- ^ 'asgMinSize'+                 -> Int -- ^ 'asgMaxSize'+                 -> Int -- ^ 'asgDesiredCapacity'+                 -> Int -- ^ 'asgDefaultCooldown'+                 -> NonEmpty Text -- ^ 'asgAvailabilityZones'+                 -> Text -- ^ 'asgHealthCheckType'+                 -> UTCTime -- ^ 'asgCreatedTime'+                 -> AutoScalingGroup+autoScalingGroup p1 p2 p3 p4 p5 p6 p7 p8 p9 = AutoScalingGroup+    { _asgAutoScalingGroupName    = p1+    , _asgLaunchConfigurationName = p2+    , _asgMinSize                 = p3+    , _asgMaxSize                 = p4+    , _asgDesiredCapacity         = p5+    , _asgDefaultCooldown         = p6+    , _asgAvailabilityZones       = withIso _List1 (const id) p7+    , _asgHealthCheckType         = p8+    , _asgCreatedTime             = withIso _Time (const id) p9+    , _asgAutoScalingGroupARN     = Nothing+    , _asgLoadBalancerNames       = mempty+    , _asgHealthCheckGracePeriod  = Nothing+    , _asgInstances               = mempty+    , _asgSuspendedProcesses      = mempty+    , _asgPlacementGroup          = Nothing+    , _asgVPCZoneIdentifier       = Nothing+    , _asgEnabledMetrics          = mempty+    , _asgStatus                  = Nothing+    , _asgTags                    = mempty+    , _asgTerminationPolicies     = mempty+    }++-- | The Amazon Resource Name (ARN) of the group.+asgAutoScalingGroupARN :: Lens' AutoScalingGroup (Maybe Text)+asgAutoScalingGroupARN =+    lens _asgAutoScalingGroupARN (\s a -> s { _asgAutoScalingGroupARN = a })++-- | The name of the group.+asgAutoScalingGroupName :: Lens' AutoScalingGroup Text+asgAutoScalingGroupName =+    lens _asgAutoScalingGroupName (\s a -> s { _asgAutoScalingGroupName = a })++-- | One or more Availability Zones for the group.+asgAvailabilityZones :: Lens' AutoScalingGroup (NonEmpty Text)+asgAvailabilityZones =+    lens _asgAvailabilityZones (\s a -> s { _asgAvailabilityZones = a })+        . _List1++-- | The date and time the group was created.+asgCreatedTime :: Lens' AutoScalingGroup UTCTime+asgCreatedTime = lens _asgCreatedTime (\s a -> s { _asgCreatedTime = a }) . _Time++-- | The number of seconds after a scaling activity completes before any+-- further scaling activities can start.+asgDefaultCooldown :: Lens' AutoScalingGroup Int+asgDefaultCooldown =+    lens _asgDefaultCooldown (\s a -> s { _asgDefaultCooldown = a })++-- | The size of the group.+asgDesiredCapacity :: Lens' AutoScalingGroup Int+asgDesiredCapacity =+    lens _asgDesiredCapacity (\s a -> s { _asgDesiredCapacity = a })++-- | The metrics enabled for this Auto Scaling group.+asgEnabledMetrics :: Lens' AutoScalingGroup [EnabledMetric]+asgEnabledMetrics =+    lens _asgEnabledMetrics (\s a -> s { _asgEnabledMetrics = a })+        . _List++-- | The amount of time that Auto Scaling waits before checking an instance's+-- health status. The grace period begins when an instance comes into+-- service.+asgHealthCheckGracePeriod :: Lens' AutoScalingGroup (Maybe Int)+asgHealthCheckGracePeriod =+    lens _asgHealthCheckGracePeriod+        (\s a -> s { _asgHealthCheckGracePeriod = a })++-- | The service of interest for the health status check, which can be either+-- EC2 for Amazon EC2 or ELB for Elastic Load Balancing.+asgHealthCheckType :: Lens' AutoScalingGroup Text+asgHealthCheckType =+    lens _asgHealthCheckType (\s a -> s { _asgHealthCheckType = a })++-- | The EC2 instances associated with the group.+asgInstances :: Lens' AutoScalingGroup [Instance]+asgInstances = lens _asgInstances (\s a -> s { _asgInstances = a }) . _List++-- | The name of the associated launch configuration.+asgLaunchConfigurationName :: Lens' AutoScalingGroup Text+asgLaunchConfigurationName =+    lens _asgLaunchConfigurationName+        (\s a -> s { _asgLaunchConfigurationName = a })++-- | One or more load balancers associated with the group.+asgLoadBalancerNames :: Lens' AutoScalingGroup [Text]+asgLoadBalancerNames =+    lens _asgLoadBalancerNames (\s a -> s { _asgLoadBalancerNames = a })+        . _List++-- | The maximum size of the group.+asgMaxSize :: Lens' AutoScalingGroup Int+asgMaxSize = lens _asgMaxSize (\s a -> s { _asgMaxSize = a })++-- | The minimum size of the group.+asgMinSize :: Lens' AutoScalingGroup Int+asgMinSize = lens _asgMinSize (\s a -> s { _asgMinSize = a })++-- | The name of the placement group into which you'll launch your instances,+-- if any. For more information, see Placement Groups.+asgPlacementGroup :: Lens' AutoScalingGroup (Maybe Text)+asgPlacementGroup =+    lens _asgPlacementGroup (\s a -> s { _asgPlacementGroup = a })++-- | The current state of the Auto Scaling group when a DeleteAutoScalingGroup+-- action is in progress.+asgStatus :: Lens' AutoScalingGroup (Maybe Text)+asgStatus = lens _asgStatus (\s a -> s { _asgStatus = a })++-- | The suspended processes associated with the group.+asgSuspendedProcesses :: Lens' AutoScalingGroup [SuspendedProcess]+asgSuspendedProcesses =+    lens _asgSuspendedProcesses (\s a -> s { _asgSuspendedProcesses = a })+        . _List++-- | The tags for the Auto Scaling group.+asgTags :: Lens' AutoScalingGroup [TagDescription]+asgTags = lens _asgTags (\s a -> s { _asgTags = a }) . _List++-- | The termination policies for this Auto Scaling group.+asgTerminationPolicies :: Lens' AutoScalingGroup [Text]+asgTerminationPolicies =+    lens _asgTerminationPolicies (\s a -> s { _asgTerminationPolicies = a })+        . _List++-- | One or more subnet IDs, if applicable, separated by commas. If you+-- specify VPCZoneIdentifier and AvailabilityZones, ensure that the+-- Availability Zones of the subnets match the values for AvailabilityZones.+asgVPCZoneIdentifier :: Lens' AutoScalingGroup (Maybe Text)+asgVPCZoneIdentifier =+    lens _asgVPCZoneIdentifier (\s a -> s { _asgVPCZoneIdentifier = a })++instance FromXML AutoScalingGroup where+    parseXML x = AutoScalingGroup+        <$> x .@? "AutoScalingGroupARN"+        <*> x .@  "AutoScalingGroupName"+        <*> x .@  "AvailabilityZones"+        <*> x .@  "CreatedTime"+        <*> x .@  "DefaultCooldown"+        <*> x .@  "DesiredCapacity"+        <*> x .@  "EnabledMetrics"+        <*> x .@? "HealthCheckGracePeriod"+        <*> x .@  "HealthCheckType"+        <*> x .@  "Instances"+        <*> x .@  "LaunchConfigurationName"+        <*> x .@  "LoadBalancerNames"+        <*> x .@  "MaxSize"+        <*> x .@  "MinSize"+        <*> x .@? "PlacementGroup"+        <*> x .@? "Status"+        <*> x .@  "SuspendedProcesses"+        <*> x .@  "Tags"+        <*> x .@  "TerminationPolicies"+        <*> x .@? "VPCZoneIdentifier"++instance ToQuery AutoScalingGroup where+    toQuery AutoScalingGroup{..} = mconcat+        [ "AutoScalingGroupARN"     =? _asgAutoScalingGroupARN+        , "AutoScalingGroupName"    =? _asgAutoScalingGroupName+        , "AvailabilityZones"       =? _asgAvailabilityZones+        , "CreatedTime"             =? _asgCreatedTime+        , "DefaultCooldown"         =? _asgDefaultCooldown+        , "DesiredCapacity"         =? _asgDesiredCapacity+        , "EnabledMetrics"          =? _asgEnabledMetrics+        , "HealthCheckGracePeriod"  =? _asgHealthCheckGracePeriod+        , "HealthCheckType"         =? _asgHealthCheckType+        , "Instances"               =? _asgInstances+        , "LaunchConfigurationName" =? _asgLaunchConfigurationName+        , "LoadBalancerNames"       =? _asgLoadBalancerNames+        , "MaxSize"                 =? _asgMaxSize+        , "MinSize"                 =? _asgMinSize+        , "PlacementGroup"          =? _asgPlacementGroup+        , "Status"                  =? _asgStatus+        , "SuspendedProcesses"      =? _asgSuspendedProcesses+        , "Tags"                    =? _asgTags+        , "TerminationPolicies"     =? _asgTerminationPolicies+        , "VPCZoneIdentifier"       =? _asgVPCZoneIdentifier+        ]++data ScalingPolicy = ScalingPolicy+    { _sp1AdjustmentType       :: Maybe Text+    , _sp1Alarms               :: List "Alarms" Alarm+    , _sp1AutoScalingGroupName :: Maybe Text+    , _sp1Cooldown             :: Maybe Int+    , _sp1MinAdjustmentStep    :: Maybe Int+    , _sp1PolicyARN            :: Maybe Text+    , _sp1PolicyName           :: Maybe Text+    , _sp1ScalingAdjustment    :: Maybe Int+    } deriving (Eq, Show)++-- | 'ScalingPolicy' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'sp1AdjustmentType' @::@ 'Maybe' 'Text'+--+-- * 'sp1Alarms' @::@ ['Alarm']+--+-- * 'sp1AutoScalingGroupName' @::@ 'Maybe' 'Text'+--+-- * 'sp1Cooldown' @::@ 'Maybe' 'Int'+--+-- * 'sp1MinAdjustmentStep' @::@ 'Maybe' 'Int'+--+-- * 'sp1PolicyARN' @::@ 'Maybe' 'Text'+--+-- * 'sp1PolicyName' @::@ 'Maybe' 'Text'+--+-- * 'sp1ScalingAdjustment' @::@ 'Maybe' 'Int'+--+scalingPolicy :: ScalingPolicy+scalingPolicy = ScalingPolicy+    { _sp1AutoScalingGroupName = Nothing+    , _sp1PolicyName           = Nothing+    , _sp1ScalingAdjustment    = Nothing+    , _sp1AdjustmentType       = Nothing+    , _sp1Cooldown             = Nothing+    , _sp1PolicyARN            = Nothing+    , _sp1Alarms               = mempty+    , _sp1MinAdjustmentStep    = Nothing+    }++-- | Specifies whether the ScalingAdjustment is an absolute number or a+-- percentage of the current capacity. Valid values are ChangeInCapacity,+-- ExactCapacity, and PercentChangeInCapacity.+sp1AdjustmentType :: Lens' ScalingPolicy (Maybe Text)+sp1AdjustmentType =+    lens _sp1AdjustmentType (\s a -> s { _sp1AdjustmentType = a })++-- | The CloudWatch Alarms related to the policy.+sp1Alarms :: Lens' ScalingPolicy [Alarm]+sp1Alarms = lens _sp1Alarms (\s a -> s { _sp1Alarms = a }) . _List++-- | The name of the Auto Scaling group associated with this scaling policy.+sp1AutoScalingGroupName :: Lens' ScalingPolicy (Maybe Text)+sp1AutoScalingGroupName =+    lens _sp1AutoScalingGroupName (\s a -> s { _sp1AutoScalingGroupName = a })++-- | The amount of time, in seconds, after a scaling activity completes before+-- any further trigger-related scaling activities can start.+sp1Cooldown :: Lens' ScalingPolicy (Maybe Int)+sp1Cooldown = lens _sp1Cooldown (\s a -> s { _sp1Cooldown = a })++-- | Changes the DesiredCapacity of the Auto Scaling group by at least the+-- specified number of instances.+sp1MinAdjustmentStep :: Lens' ScalingPolicy (Maybe Int)+sp1MinAdjustmentStep =+    lens _sp1MinAdjustmentStep (\s a -> s { _sp1MinAdjustmentStep = a })++-- | The Amazon Resource Name (ARN) of the policy.+sp1PolicyARN :: Lens' ScalingPolicy (Maybe Text)+sp1PolicyARN = lens _sp1PolicyARN (\s a -> s { _sp1PolicyARN = a })++-- | The name of the scaling policy.+sp1PolicyName :: Lens' ScalingPolicy (Maybe Text)+sp1PolicyName = lens _sp1PolicyName (\s a -> s { _sp1PolicyName = a })++-- | The number associated with the specified adjustment type. A positive+-- value adds to the current capacity and a negative value removes from the+-- current capacity.+sp1ScalingAdjustment :: Lens' ScalingPolicy (Maybe Int)+sp1ScalingAdjustment =+    lens _sp1ScalingAdjustment (\s a -> s { _sp1ScalingAdjustment = a })++instance FromXML ScalingPolicy where+    parseXML x = ScalingPolicy+        <$> x .@? "AdjustmentType"+        <*> x .@  "Alarms"+        <*> x .@? "AutoScalingGroupName"+        <*> x .@? "Cooldown"+        <*> x .@? "MinAdjustmentStep"+        <*> x .@? "PolicyARN"+        <*> x .@? "PolicyName"+        <*> x .@? "ScalingAdjustment"++instance ToQuery ScalingPolicy where+    toQuery ScalingPolicy{..} = mconcat+        [ "AdjustmentType"       =? _sp1AdjustmentType+        , "Alarms"               =? _sp1Alarms+        , "AutoScalingGroupName" =? _sp1AutoScalingGroupName+        , "Cooldown"             =? _sp1Cooldown+        , "MinAdjustmentStep"    =? _sp1MinAdjustmentStep+        , "PolicyARN"            =? _sp1PolicyARN+        , "PolicyName"           =? _sp1PolicyName+        , "ScalingAdjustment"    =? _sp1ScalingAdjustment+        ]++newtype InstanceMonitoring = InstanceMonitoring+    { _imEnabled :: Maybe Bool+    } deriving (Eq, Ord, Show)++-- | 'InstanceMonitoring' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'imEnabled' @::@ 'Maybe' 'Bool'+--+instanceMonitoring :: InstanceMonitoring+instanceMonitoring = InstanceMonitoring+    { _imEnabled = Nothing+    }++-- | If True, instance monitoring is enabled.+imEnabled :: Lens' InstanceMonitoring (Maybe Bool)+imEnabled = lens _imEnabled (\s a -> s { _imEnabled = a })++instance FromXML InstanceMonitoring where+    parseXML x = InstanceMonitoring+        <$> x .@? "Enabled"++instance ToQuery InstanceMonitoring where+    toQuery InstanceMonitoring{..} = mconcat+        [ "Enabled" =? _imEnabled+        ]++data ScheduledUpdateGroupAction = ScheduledUpdateGroupAction+    { _sugaAutoScalingGroupName :: Maybe Text+    , _sugaDesiredCapacity      :: Maybe Int+    , _sugaEndTime              :: Maybe RFC822+    , _sugaMaxSize              :: Maybe Int+    , _sugaMinSize              :: Maybe Int+    , _sugaRecurrence           :: Maybe Text+    , _sugaScheduledActionARN   :: Maybe Text+    , _sugaScheduledActionName  :: Maybe Text+    , _sugaStartTime            :: Maybe RFC822+    , _sugaTime                 :: Maybe RFC822+    } deriving (Eq, Ord, Show)++-- | 'ScheduledUpdateGroupAction' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'sugaAutoScalingGroupName' @::@ 'Maybe' 'Text'+--+-- * 'sugaDesiredCapacity' @::@ 'Maybe' 'Int'+--+-- * 'sugaEndTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'sugaMaxSize' @::@ 'Maybe' 'Int'+--+-- * 'sugaMinSize' @::@ 'Maybe' 'Int'+--+-- * 'sugaRecurrence' @::@ 'Maybe' 'Text'+--+-- * 'sugaScheduledActionARN' @::@ 'Maybe' 'Text'+--+-- * 'sugaScheduledActionName' @::@ 'Maybe' 'Text'+--+-- * 'sugaStartTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'sugaTime' @::@ 'Maybe' 'UTCTime'+--+scheduledUpdateGroupAction :: ScheduledUpdateGroupAction+scheduledUpdateGroupAction = ScheduledUpdateGroupAction+    { _sugaAutoScalingGroupName = Nothing+    , _sugaScheduledActionName  = Nothing+    , _sugaScheduledActionARN   = Nothing+    , _sugaTime                 = Nothing+    , _sugaStartTime            = Nothing+    , _sugaEndTime              = Nothing+    , _sugaRecurrence           = Nothing+    , _sugaMinSize              = Nothing+    , _sugaMaxSize              = Nothing+    , _sugaDesiredCapacity      = Nothing+    }++-- | The name of the group.+sugaAutoScalingGroupName :: Lens' ScheduledUpdateGroupAction (Maybe Text)+sugaAutoScalingGroupName =+    lens _sugaAutoScalingGroupName+        (\s a -> s { _sugaAutoScalingGroupName = a })++-- | The number of instances you prefer to maintain in the group.+sugaDesiredCapacity :: Lens' ScheduledUpdateGroupAction (Maybe Int)+sugaDesiredCapacity =+    lens _sugaDesiredCapacity (\s a -> s { _sugaDesiredCapacity = a })++-- | The time that the action is scheduled to end. This value can be up to one+-- month in the future.+sugaEndTime :: Lens' ScheduledUpdateGroupAction (Maybe UTCTime)+sugaEndTime = lens _sugaEndTime (\s a -> s { _sugaEndTime = a }) . mapping _Time++-- | The maximum size of the group.+sugaMaxSize :: Lens' ScheduledUpdateGroupAction (Maybe Int)+sugaMaxSize = lens _sugaMaxSize (\s a -> s { _sugaMaxSize = a })++-- | The minimum size of the group.+sugaMinSize :: Lens' ScheduledUpdateGroupAction (Maybe Int)+sugaMinSize = lens _sugaMinSize (\s a -> s { _sugaMinSize = a })++-- | The regular schedule that an action occurs.+sugaRecurrence :: Lens' ScheduledUpdateGroupAction (Maybe Text)+sugaRecurrence = lens _sugaRecurrence (\s a -> s { _sugaRecurrence = a })++-- | The Amazon Resource Name (ARN) of the scheduled action.+sugaScheduledActionARN :: Lens' ScheduledUpdateGroupAction (Maybe Text)+sugaScheduledActionARN =+    lens _sugaScheduledActionARN (\s a -> s { _sugaScheduledActionARN = a })++-- | The name of the scheduled action.+sugaScheduledActionName :: Lens' ScheduledUpdateGroupAction (Maybe Text)+sugaScheduledActionName =+    lens _sugaScheduledActionName (\s a -> s { _sugaScheduledActionName = a })++-- | The time that the action is scheduled to begin. This value can be up to+-- one month in the future. When StartTime and EndTime are specified with+-- Recurrence, they form the boundaries of when the recurring action will+-- start and stop.+sugaStartTime :: Lens' ScheduledUpdateGroupAction (Maybe UTCTime)+sugaStartTime = lens _sugaStartTime (\s a -> s { _sugaStartTime = a }) . mapping _Time++-- | Time is deprecated. The time that the action is scheduled to begin. Time+-- is an alias for StartTime.+sugaTime :: Lens' ScheduledUpdateGroupAction (Maybe UTCTime)+sugaTime = lens _sugaTime (\s a -> s { _sugaTime = a }) . mapping _Time++instance FromXML ScheduledUpdateGroupAction where+    parseXML x = ScheduledUpdateGroupAction+        <$> x .@? "AutoScalingGroupName"+        <*> x .@? "DesiredCapacity"+        <*> x .@? "EndTime"+        <*> x .@? "MaxSize"+        <*> x .@? "MinSize"+        <*> x .@? "Recurrence"+        <*> x .@? "ScheduledActionARN"+        <*> x .@? "ScheduledActionName"+        <*> x .@? "StartTime"+        <*> x .@? "Time"++instance ToQuery ScheduledUpdateGroupAction where+    toQuery ScheduledUpdateGroupAction{..} = mconcat+        [ "AutoScalingGroupName" =? _sugaAutoScalingGroupName+        , "DesiredCapacity"      =? _sugaDesiredCapacity+        , "EndTime"              =? _sugaEndTime+        , "MaxSize"              =? _sugaMaxSize+        , "MinSize"              =? _sugaMinSize+        , "Recurrence"           =? _sugaRecurrence+        , "ScheduledActionARN"   =? _sugaScheduledActionARN+        , "ScheduledActionName"  =? _sugaScheduledActionName+        , "StartTime"            =? _sugaStartTime+        , "Time"                 =? _sugaTime+        ]++data ScalingProcessQuery = ScalingProcessQuery+    { _spqAutoScalingGroupName :: Text+    , _spqScalingProcesses     :: List "ScalingProcesses" Text+    } deriving (Eq, Ord, Show)++-- | 'ScalingProcessQuery' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'spqAutoScalingGroupName' @::@ 'Text'+--+-- * 'spqScalingProcesses' @::@ ['Text']+--+scalingProcessQuery :: Text -- ^ 'spqAutoScalingGroupName'+                    -> ScalingProcessQuery+scalingProcessQuery p1 = ScalingProcessQuery+    { _spqAutoScalingGroupName = p1+    , _spqScalingProcesses     = mempty+    }++-- | The name or Amazon Resource Name (ARN) of the Auto Scaling group.+spqAutoScalingGroupName :: Lens' ScalingProcessQuery Text+spqAutoScalingGroupName =+    lens _spqAutoScalingGroupName (\s a -> s { _spqAutoScalingGroupName = a })++-- | One or more of the following processes: Launch Terminate HealthCheck+-- ReplaceUnhealthy AZRebalance AlarmNotification ScheduledActions+-- AddToLoadBalancer.+spqScalingProcesses :: Lens' ScalingProcessQuery [Text]+spqScalingProcesses =+    lens _spqScalingProcesses (\s a -> s { _spqScalingProcesses = a })+        . _List++instance FromXML ScalingProcessQuery where+    parseXML x = ScalingProcessQuery+        <$> x .@  "AutoScalingGroupName"+        <*> x .@  "ScalingProcesses"++instance ToQuery ScalingProcessQuery where+    toQuery ScalingProcessQuery{..} = mconcat+        [ "AutoScalingGroupName" =? _spqAutoScalingGroupName+        , "ScalingProcesses"     =? _spqScalingProcesses+        ]++data Ebs = Ebs+    { _ebsDeleteOnTermination :: Maybe Bool+    , _ebsIops                :: Maybe Nat+    , _ebsSnapshotId          :: Maybe Text+    , _ebsVolumeSize          :: Maybe Nat+    , _ebsVolumeType          :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'Ebs' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ebsDeleteOnTermination' @::@ 'Maybe' 'Bool'+--+-- * 'ebsIops' @::@ 'Maybe' 'Natural'+--+-- * 'ebsSnapshotId' @::@ 'Maybe' 'Text'+--+-- * 'ebsVolumeSize' @::@ 'Maybe' 'Natural'+--+-- * 'ebsVolumeType' @::@ 'Maybe' 'Text'+--+ebs :: Ebs+ebs = Ebs+    { _ebsSnapshotId          = Nothing+    , _ebsVolumeSize          = Nothing+    , _ebsVolumeType          = Nothing+    , _ebsDeleteOnTermination = Nothing+    , _ebsIops                = Nothing+    }++-- | Indicates whether to delete the volume on instance termination. Default:+-- true.+ebsDeleteOnTermination :: Lens' Ebs (Maybe Bool)+ebsDeleteOnTermination =+    lens _ebsDeleteOnTermination (\s a -> s { _ebsDeleteOnTermination = a })++-- | For Provisioned IOPS (SSD) volumes only. The number of I/O operations per+-- second (IOPS) to provision for the volume. Valid values: Range is 100 to+-- 4000. Default: None.+ebsIops :: Lens' Ebs (Maybe Natural)+ebsIops = lens _ebsIops (\s a -> s { _ebsIops = a }) . mapping _Nat++-- | The ID of the snapshot.+ebsSnapshotId :: Lens' Ebs (Maybe Text)+ebsSnapshotId = lens _ebsSnapshotId (\s a -> s { _ebsSnapshotId = a })++-- | The volume size, in gigabytes. Valid values: If the volume type is io1,+-- the minimum size of the volume is 10 GiB. If you specify SnapshotId and+-- VolumeSize, VolumeSize must be equal to or larger than the size of the+-- snapshot. Default: If you create a volume from a snapshot and you don't+-- specify a volume size, the default is the size of the snapshot. Required:+-- Required when the volume type is io1.+ebsVolumeSize :: Lens' Ebs (Maybe Natural)+ebsVolumeSize = lens _ebsVolumeSize (\s a -> s { _ebsVolumeSize = a }) . mapping _Nat++-- | The volume type. Valid values: standard | io1 | gp2 Default: standard.+ebsVolumeType :: Lens' Ebs (Maybe Text)+ebsVolumeType = lens _ebsVolumeType (\s a -> s { _ebsVolumeType = a })++instance FromXML Ebs where+    parseXML x = Ebs+        <$> x .@? "DeleteOnTermination"+        <*> x .@? "Iops"+        <*> x .@? "SnapshotId"+        <*> x .@? "VolumeSize"+        <*> x .@? "VolumeType"++instance ToQuery Ebs where+    toQuery Ebs{..} = mconcat+        [ "DeleteOnTermination" =? _ebsDeleteOnTermination+        , "Iops"                =? _ebsIops+        , "SnapshotId"          =? _ebsSnapshotId+        , "VolumeSize"          =? _ebsVolumeSize+        , "VolumeType"          =? _ebsVolumeType+        ]++newtype AdjustmentType = AdjustmentType+    { _atAdjustmentType :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'AdjustmentType' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'atAdjustmentType' @::@ 'Maybe' 'Text'+--+adjustmentType :: AdjustmentType+adjustmentType = AdjustmentType+    { _atAdjustmentType = Nothing+    }++-- | The policy adjustment type. The valid values are ChangeInCapacity,+-- ExactCapacity, and PercentChangeInCapacity. For more information, see+-- Dynamic Scaling in the Auto Scaling Developer Guide.+atAdjustmentType :: Lens' AdjustmentType (Maybe Text)+atAdjustmentType = lens _atAdjustmentType (\s a -> s { _atAdjustmentType = a })++instance FromXML AdjustmentType where+    parseXML x = AdjustmentType+        <$> x .@? "AdjustmentType"++instance ToQuery AdjustmentType where+    toQuery AdjustmentType{..} = mconcat+        [ "AdjustmentType" =? _atAdjustmentType+        ]++newtype MetricCollectionType = MetricCollectionType+    { _mctMetric :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'MetricCollectionType' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'mctMetric' @::@ 'Maybe' 'Text'+--+metricCollectionType :: MetricCollectionType+metricCollectionType = MetricCollectionType+    { _mctMetric = Nothing+    }++-- | The metric.+mctMetric :: Lens' MetricCollectionType (Maybe Text)+mctMetric = lens _mctMetric (\s a -> s { _mctMetric = a })++instance FromXML MetricCollectionType where+    parseXML x = MetricCollectionType+        <$> x .@? "Metric"++instance ToQuery MetricCollectionType where+    toQuery MetricCollectionType{..} = mconcat+        [ "Metric" =? _mctMetric+        ]++data LifecycleHook = LifecycleHook+    { _lhAutoScalingGroupName  :: Maybe Text+    , _lhDefaultResult         :: Maybe Text+    , _lhGlobalTimeout         :: Maybe Int+    , _lhHeartbeatTimeout      :: Maybe Int+    , _lhLifecycleHookName     :: Maybe Text+    , _lhLifecycleTransition   :: Maybe Text+    , _lhNotificationMetadata  :: Maybe Text+    , _lhNotificationTargetARN :: Maybe Text+    , _lhRoleARN               :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'LifecycleHook' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'lhAutoScalingGroupName' @::@ 'Maybe' 'Text'+--+-- * 'lhDefaultResult' @::@ 'Maybe' 'Text'+--+-- * 'lhGlobalTimeout' @::@ 'Maybe' 'Int'+--+-- * 'lhHeartbeatTimeout' @::@ 'Maybe' 'Int'+--+-- * 'lhLifecycleHookName' @::@ 'Maybe' 'Text'+--+-- * 'lhLifecycleTransition' @::@ 'Maybe' 'Text'+--+-- * 'lhNotificationMetadata' @::@ 'Maybe' 'Text'+--+-- * 'lhNotificationTargetARN' @::@ 'Maybe' 'Text'+--+-- * 'lhRoleARN' @::@ 'Maybe' 'Text'+--+lifecycleHook :: LifecycleHook+lifecycleHook = LifecycleHook+    { _lhLifecycleHookName     = Nothing+    , _lhAutoScalingGroupName  = Nothing+    , _lhLifecycleTransition   = Nothing+    , _lhNotificationTargetARN = Nothing+    , _lhRoleARN               = Nothing+    , _lhNotificationMetadata  = Nothing+    , _lhHeartbeatTimeout      = Nothing+    , _lhGlobalTimeout         = Nothing+    , _lhDefaultResult         = Nothing+    }++-- | The name of the Auto Scaling group for the lifecycle hook.+lhAutoScalingGroupName :: Lens' LifecycleHook (Maybe Text)+lhAutoScalingGroupName =+    lens _lhAutoScalingGroupName (\s a -> s { _lhAutoScalingGroupName = a })++-- | Defines the action the Auto Scaling group should take when the lifecycle+-- hook timeout elapses or if an unexpected failure occurs. The valid values+-- are CONTINUE and ABANDON. The default value is CONTINUE.+lhDefaultResult :: Lens' LifecycleHook (Maybe Text)+lhDefaultResult = lens _lhDefaultResult (\s a -> s { _lhDefaultResult = a })++-- | The maximum length of time an instance can remain in a Pending:Wait or+-- Terminating:Wait state. Currently, this value is set at 48 hours.+lhGlobalTimeout :: Lens' LifecycleHook (Maybe Int)+lhGlobalTimeout = lens _lhGlobalTimeout (\s a -> s { _lhGlobalTimeout = a })++-- | The amount of time that can elapse before the lifecycle hook times out.+-- When the lifecycle hook times out, Auto Scaling performs the action+-- defined in the DefaultResult parameter. You can prevent the lifecycle+-- hook from timing out by calling RecordLifecycleActionHeartbeat.+lhHeartbeatTimeout :: Lens' LifecycleHook (Maybe Int)+lhHeartbeatTimeout =+    lens _lhHeartbeatTimeout (\s a -> s { _lhHeartbeatTimeout = a })++-- | The name of the lifecycle hook.+lhLifecycleHookName :: Lens' LifecycleHook (Maybe Text)+lhLifecycleHookName =+    lens _lhLifecycleHookName (\s a -> s { _lhLifecycleHookName = a })++-- | The state of the EC2 instance to which you want to attach the lifecycle+-- hook. For a list of lifecycle hook types, see DescribeLifecycleHooks.+lhLifecycleTransition :: Lens' LifecycleHook (Maybe Text)+lhLifecycleTransition =+    lens _lhLifecycleTransition (\s a -> s { _lhLifecycleTransition = a })++-- | Additional information that you want to include any time Auto Scaling+-- sends a message to the notification target.+lhNotificationMetadata :: Lens' LifecycleHook (Maybe Text)+lhNotificationMetadata =+    lens _lhNotificationMetadata (\s a -> s { _lhNotificationMetadata = a })++-- | The ARN of the notification target that Auto Scaling uses to notify you+-- when an instance is in the transition state for the lifecycle hook. This+-- ARN target can be either an SQS queue or an SNS topic. The notification+-- message sent to the target includes the following: Lifecycle action token+-- User account ID Name of the Auto Scaling group Lifecycle hook name EC2+-- instance ID Lifecycle transition Notification metadata.+lhNotificationTargetARN :: Lens' LifecycleHook (Maybe Text)+lhNotificationTargetARN =+    lens _lhNotificationTargetARN (\s a -> s { _lhNotificationTargetARN = a })++-- | The ARN of the IAM role that allows the Auto Scaling group to publish to+-- the specified notification target.+lhRoleARN :: Lens' LifecycleHook (Maybe Text)+lhRoleARN = lens _lhRoleARN (\s a -> s { _lhRoleARN = a })++instance FromXML LifecycleHook where+    parseXML x = LifecycleHook+        <$> x .@? "AutoScalingGroupName"+        <*> x .@? "DefaultResult"+        <*> x .@? "GlobalTimeout"+        <*> x .@? "HeartbeatTimeout"+        <*> x .@? "LifecycleHookName"+        <*> x .@? "LifecycleTransition"+        <*> x .@? "NotificationMetadata"+        <*> x .@? "NotificationTargetARN"+        <*> x .@? "RoleARN"++instance ToQuery LifecycleHook where+    toQuery LifecycleHook{..} = mconcat+        [ "AutoScalingGroupName"  =? _lhAutoScalingGroupName+        , "DefaultResult"         =? _lhDefaultResult+        , "GlobalTimeout"         =? _lhGlobalTimeout+        , "HeartbeatTimeout"      =? _lhHeartbeatTimeout+        , "LifecycleHookName"     =? _lhLifecycleHookName+        , "LifecycleTransition"   =? _lhLifecycleTransition+        , "NotificationMetadata"  =? _lhNotificationMetadata+        , "NotificationTargetARN" =? _lhNotificationTargetARN+        , "RoleARN"               =? _lhRoleARN+        ]++data Activity = Activity+    { _aActivityId           :: Text+    , _aAutoScalingGroupName :: Text+    , _aCause                :: Text+    , _aDescription          :: Maybe Text+    , _aDetails              :: Maybe Text+    , _aEndTime              :: Maybe RFC822+    , _aProgress             :: Maybe Int+    , _aStartTime            :: RFC822+    , _aStatusCode           :: Text+    , _aStatusMessage        :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'Activity' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'aActivityId' @::@ 'Text'+--+-- * 'aAutoScalingGroupName' @::@ 'Text'+--+-- * 'aCause' @::@ 'Text'+--+-- * 'aDescription' @::@ 'Maybe' 'Text'+--+-- * 'aDetails' @::@ 'Maybe' 'Text'+--+-- * 'aEndTime' @::@ 'Maybe' 'UTCTime'+--+-- * 'aProgress' @::@ 'Maybe' 'Int'+--+-- * 'aStartTime' @::@ 'UTCTime'+--+-- * 'aStatusCode' @::@ 'Text'+--+-- * 'aStatusMessage' @::@ 'Maybe' 'Text'+--+activity :: Text -- ^ 'aActivityId'+         -> Text -- ^ 'aAutoScalingGroupName'+         -> Text -- ^ 'aCause'+         -> UTCTime -- ^ 'aStartTime'+         -> Text -- ^ 'aStatusCode'+         -> Activity+activity p1 p2 p3 p4 p5 = Activity+    { _aActivityId           = p1+    , _aAutoScalingGroupName = p2+    , _aCause                = p3+    , _aStartTime            = withIso _Time (const id) p4+    , _aStatusCode           = p5+    , _aDescription          = Nothing+    , _aEndTime              = Nothing+    , _aStatusMessage        = Nothing+    , _aProgress             = Nothing+    , _aDetails              = Nothing+    }++-- | The ID of the activity.+aActivityId :: Lens' Activity Text+aActivityId = lens _aActivityId (\s a -> s { _aActivityId = a })++-- | The name of the Auto Scaling group.+aAutoScalingGroupName :: Lens' Activity Text+aAutoScalingGroupName =+    lens _aAutoScalingGroupName (\s a -> s { _aAutoScalingGroupName = a })++-- | The reason the activity was begun.+aCause :: Lens' Activity Text+aCause = lens _aCause (\s a -> s { _aCause = a })++-- | A friendly, more verbose description of the scaling activity.+aDescription :: Lens' Activity (Maybe Text)+aDescription = lens _aDescription (\s a -> s { _aDescription = a })++-- | The details about the scaling activity.+aDetails :: Lens' Activity (Maybe Text)+aDetails = lens _aDetails (\s a -> s { _aDetails = a })++-- | The end time of this activity.+aEndTime :: Lens' Activity (Maybe UTCTime)+aEndTime = lens _aEndTime (\s a -> s { _aEndTime = a }) . mapping _Time++-- | A value between 0 and 100 that indicates the progress of the activity.+aProgress :: Lens' Activity (Maybe Int)+aProgress = lens _aProgress (\s a -> s { _aProgress = a })++-- | The start time of this activity.+aStartTime :: Lens' Activity UTCTime+aStartTime = lens _aStartTime (\s a -> s { _aStartTime = a }) . _Time++-- | The current status of the activity.+aStatusCode :: Lens' Activity Text+aStatusCode = lens _aStatusCode (\s a -> s { _aStatusCode = a })++-- | A friendly, more verbose description of the activity status.+aStatusMessage :: Lens' Activity (Maybe Text)+aStatusMessage = lens _aStatusMessage (\s a -> s { _aStatusMessage = a })++instance FromXML Activity where+    parseXML x = Activity+        <$> x .@  "ActivityId"+        <*> x .@  "AutoScalingGroupName"+        <*> x .@  "Cause"+        <*> x .@? "Description"+        <*> x .@? "Details"+        <*> x .@? "EndTime"+        <*> x .@? "Progress"+        <*> x .@  "StartTime"+        <*> x .@  "StatusCode"+        <*> x .@? "StatusMessage"++instance ToQuery Activity where+    toQuery Activity{..} = mconcat+        [ "ActivityId"           =? _aActivityId+        , "AutoScalingGroupName" =? _aAutoScalingGroupName+        , "Cause"                =? _aCause+        , "Description"          =? _aDescription+        , "Details"              =? _aDetails+        , "EndTime"              =? _aEndTime+        , "Progress"             =? _aProgress+        , "StartTime"            =? _aStartTime+        , "StatusCode"           =? _aStatusCode+        , "StatusMessage"        =? _aStatusMessage+        ]++data SuspendedProcess = SuspendedProcess+    { _spProcessName      :: Maybe Text+    , _spSuspensionReason :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'SuspendedProcess' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'spProcessName' @::@ 'Maybe' 'Text'+--+-- * 'spSuspensionReason' @::@ 'Maybe' 'Text'+--+suspendedProcess :: SuspendedProcess+suspendedProcess = SuspendedProcess+    { _spProcessName      = Nothing+    , _spSuspensionReason = Nothing+    }++-- | The name of the suspended process.+spProcessName :: Lens' SuspendedProcess (Maybe Text)+spProcessName = lens _spProcessName (\s a -> s { _spProcessName = a })++-- | The reason that the process was suspended.+spSuspensionReason :: Lens' SuspendedProcess (Maybe Text)+spSuspensionReason =+    lens _spSuspensionReason (\s a -> s { _spSuspensionReason = a })++instance FromXML SuspendedProcess where+    parseXML x = SuspendedProcess+        <$> x .@? "ProcessName"+        <*> x .@? "SuspensionReason"++instance ToQuery SuspendedProcess where+    toQuery SuspendedProcess{..} = mconcat+        [ "ProcessName"      =? _spProcessName+        , "SuspensionReason" =? _spSuspensionReason+        ]++newtype MetricGranularityType = MetricGranularityType+    { _mgtGranularity :: Maybe Text+    } deriving (Eq, Ord, Show, Monoid)++-- | 'MetricGranularityType' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'mgtGranularity' @::@ 'Maybe' 'Text'+--+metricGranularityType :: MetricGranularityType+metricGranularityType = MetricGranularityType+    { _mgtGranularity = Nothing+    }++-- | The granularity.+mgtGranularity :: Lens' MetricGranularityType (Maybe Text)+mgtGranularity = lens _mgtGranularity (\s a -> s { _mgtGranularity = a })++instance FromXML MetricGranularityType where+    parseXML x = MetricGranularityType+        <$> x .@? "Granularity"++instance ToQuery MetricGranularityType where+    toQuery MetricGranularityType{..} = mconcat+        [ "Granularity" =? _mgtGranularity+        ]++data Filter = Filter+    { _fName   :: Text+    , _fValues :: List "Values" Text+    } deriving (Eq, Ord, Show)++-- | 'Filter' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'fName' @::@ 'Text'+--+-- * 'fValues' @::@ ['Text']+--+filter' :: Text -- ^ 'fName'+        -> Filter+filter' p1 = Filter+    { _fName   = p1+    , _fValues = mempty+    }++-- | The name of the filter. The valid values are: "auto-scaling-group",+-- "key", "value", and "propagate-at-launch".+fName :: Lens' Filter Text+fName = lens _fName (\s a -> s { _fName = a })++-- | The value of the filter.+fValues :: Lens' Filter [Text]+fValues = lens _fValues (\s a -> s { _fValues = a }) . _List++instance FromXML Filter where+    parseXML x = Filter+        <$> x .@  "Name"+        <*> x .@  "Values"++instance ToQuery Filter where+    toQuery Filter{..} = mconcat+        [ "Name"   =? _fName+        , "Values" =? _fValues+        ]++newtype ProcessType = ProcessType+    { _ptProcessName :: Text+    } deriving (Eq, Ord, Show, Monoid, IsString)++-- | 'ProcessType' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'ptProcessName' @::@ 'Text'+--+processType :: Text -- ^ 'ptProcessName'+            -> ProcessType+processType p1 = ProcessType+    { _ptProcessName = p1+    }++-- | The name of the process.+ptProcessName :: Lens' ProcessType Text+ptProcessName = lens _ptProcessName (\s a -> s { _ptProcessName = a })++instance FromXML ProcessType where+    parseXML x = ProcessType+        <$> x .@  "ProcessName"++instance ToQuery ProcessType where+    toQuery ProcessType{..} = mconcat+        [ "ProcessName" =? _ptProcessName+        ]++data Alarm = Alarm+    { _aAlarmARN  :: Maybe Text+    , _aAlarmName :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'Alarm' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'aAlarmARN' @::@ 'Maybe' 'Text'+--+-- * 'aAlarmName' @::@ 'Maybe' 'Text'+--+alarm :: Alarm+alarm = Alarm+    { _aAlarmName = Nothing+    , _aAlarmARN  = Nothing+    }++-- | The Amazon Resource Name (ARN) of the alarm.+aAlarmARN :: Lens' Alarm (Maybe Text)+aAlarmARN = lens _aAlarmARN (\s a -> s { _aAlarmARN = a })++-- | The name of the alarm.+aAlarmName :: Lens' Alarm (Maybe Text)+aAlarmName = lens _aAlarmName (\s a -> s { _aAlarmName = a })++instance FromXML Alarm where+    parseXML x = Alarm+        <$> x .@? "AlarmARN"+        <*> x .@? "AlarmName"++instance ToQuery Alarm where+    toQuery Alarm{..} = mconcat+        [ "AlarmARN"  =? _aAlarmARN+        , "AlarmName" =? _aAlarmName+        ]++data EnabledMetric = EnabledMetric+    { _emGranularity :: Maybe Text+    , _emMetric      :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'EnabledMetric' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'emGranularity' @::@ 'Maybe' 'Text'+--+-- * 'emMetric' @::@ 'Maybe' 'Text'+--+enabledMetric :: EnabledMetric+enabledMetric = EnabledMetric+    { _emMetric      = Nothing+    , _emGranularity = Nothing+    }++-- | The granularity of the metric.+emGranularity :: Lens' EnabledMetric (Maybe Text)+emGranularity = lens _emGranularity (\s a -> s { _emGranularity = a })++-- | The name of the metric.+emMetric :: Lens' EnabledMetric (Maybe Text)+emMetric = lens _emMetric (\s a -> s { _emMetric = a })++instance FromXML EnabledMetric where+    parseXML x = EnabledMetric+        <$> x .@? "Granularity"+        <*> x .@? "Metric"++instance ToQuery EnabledMetric where+    toQuery EnabledMetric{..} = mconcat+        [ "Granularity" =? _emGranularity+        , "Metric"      =? _emMetric+        ]++data Instance = Instance+    { _iAvailabilityZone        :: Text+    , _iHealthStatus            :: Text+    , _iInstanceId              :: Text+    , _iLaunchConfigurationName :: Text+    , _iLifecycleState          :: Text+    } deriving (Eq, Ord, Show)++-- | 'Instance' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'iAvailabilityZone' @::@ 'Text'+--+-- * 'iHealthStatus' @::@ 'Text'+--+-- * 'iInstanceId' @::@ 'Text'+--+-- * 'iLaunchConfigurationName' @::@ 'Text'+--+-- * 'iLifecycleState' @::@ 'Text'+--+instance' :: Text -- ^ 'iInstanceId'+          -> Text -- ^ 'iAvailabilityZone'+          -> Text -- ^ 'iLifecycleState'+          -> Text -- ^ 'iHealthStatus'+          -> Text -- ^ 'iLaunchConfigurationName'+          -> Instance+instance' p1 p2 p3 p4 p5 = Instance+    { _iInstanceId              = p1+    , _iAvailabilityZone        = p2+    , _iLifecycleState          = p3+    , _iHealthStatus            = p4+    , _iLaunchConfigurationName = p5+    }++-- | The Availability Zone associated with this instance.+iAvailabilityZone :: Lens' Instance Text+iAvailabilityZone =+    lens _iAvailabilityZone (\s a -> s { _iAvailabilityZone = a })++-- | The health status of the instance.+iHealthStatus :: Lens' Instance Text+iHealthStatus = lens _iHealthStatus (\s a -> s { _iHealthStatus = a })++-- | The ID of the instance.+iInstanceId :: Lens' Instance Text+iInstanceId = lens _iInstanceId (\s a -> s { _iInstanceId = a })++-- | The launch configuration associated with the instance.+iLaunchConfigurationName :: Lens' Instance Text+iLaunchConfigurationName =+    lens _iLaunchConfigurationName+        (\s a -> s { _iLaunchConfigurationName = a })++-- | A description of the current lifecycle state. The Quarantined lifecycle+-- state is not used.+iLifecycleState :: Lens' Instance Text+iLifecycleState = lens _iLifecycleState (\s a -> s { _iLifecycleState = a })++instance FromXML Instance where+    parseXML x = Instance+        <$> x .@  "AvailabilityZone"+        <*> x .@  "HealthStatus"+        <*> x .@  "InstanceId"+        <*> x .@  "LaunchConfigurationName"+        <*> x .@  "LifecycleState"++instance ToQuery Instance where+    toQuery Instance{..} = mconcat+        [ "AvailabilityZone"        =? _iAvailabilityZone+        , "HealthStatus"            =? _iHealthStatus+        , "InstanceId"              =? _iInstanceId+        , "LaunchConfigurationName" =? _iLaunchConfigurationName+        , "LifecycleState"          =? _iLifecycleState+        ]++data LifecycleState+    = Detached           -- ^ Detached+    | Detaching          -- ^ Detaching+    | EnteringStandby    -- ^ EnteringStandby+    | InService          -- ^ InService+    | Pending            -- ^ Pending+    | PendingProceed     -- ^ Pending:Proceed+    | PendingWait        -- ^ Pending:Wait+    | Quarantined        -- ^ Quarantined+    | Standby            -- ^ Standby+    | Terminated         -- ^ Terminated+    | Terminating        -- ^ Terminating+    | TerminatingProceed -- ^ Terminating:Proceed+    | TerminatingWait    -- ^ Terminating:Wait+      deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable LifecycleState++instance FromText LifecycleState where+    parser = match "Detached"            Detached+         <|> match "Detaching"           Detaching+         <|> match "EnteringStandby"     EnteringStandby+         <|> match "InService"           InService+         <|> match "Pending"             Pending+         <|> match "Pending:Proceed"     PendingProceed+         <|> match "Pending:Wait"        PendingWait+         <|> match "Quarantined"         Quarantined+         <|> match "Standby"             Standby+         <|> match "Terminated"          Terminated+         <|> match "Terminating"         Terminating+         <|> match "Terminating:Proceed" TerminatingProceed+         <|> match "Terminating:Wait"    TerminatingWait++instance ToText LifecycleState where+    toText = \case+        Detached           -> "Detached"+        Detaching          -> "Detaching"+        EnteringStandby    -> "EnteringStandby"+        InService          -> "InService"+        Pending            -> "Pending"+        PendingProceed     -> "Pending:Proceed"+        PendingWait        -> "Pending:Wait"+        Quarantined        -> "Quarantined"+        Standby            -> "Standby"+        Terminated         -> "Terminated"+        Terminating        -> "Terminating"+        TerminatingProceed -> "Terminating:Proceed"+        TerminatingWait    -> "Terminating:Wait"++instance FromXML LifecycleState where+    parseXML = parseXMLText "LifecycleState"++instance ToQuery LifecycleState where+    toQuery = toQuery . toText++data AutoScalingInstanceDetails = AutoScalingInstanceDetails+    { _asidAutoScalingGroupName    :: Text+    , _asidAvailabilityZone        :: Text+    , _asidHealthStatus            :: Text+    , _asidInstanceId              :: Text+    , _asidLaunchConfigurationName :: Text+    , _asidLifecycleState          :: Text+    } deriving (Eq, Ord, Show)++-- | 'AutoScalingInstanceDetails' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'asidAutoScalingGroupName' @::@ 'Text'+--+-- * 'asidAvailabilityZone' @::@ 'Text'+--+-- * 'asidHealthStatus' @::@ 'Text'+--+-- * 'asidInstanceId' @::@ 'Text'+--+-- * 'asidLaunchConfigurationName' @::@ 'Text'+--+-- * 'asidLifecycleState' @::@ 'Text'+--+autoScalingInstanceDetails :: Text -- ^ 'asidInstanceId'+                           -> Text -- ^ 'asidAutoScalingGroupName'+                           -> Text -- ^ 'asidAvailabilityZone'+                           -> Text -- ^ 'asidLifecycleState'+                           -> Text -- ^ 'asidHealthStatus'+                           -> Text -- ^ 'asidLaunchConfigurationName'+                           -> AutoScalingInstanceDetails+autoScalingInstanceDetails p1 p2 p3 p4 p5 p6 = AutoScalingInstanceDetails+    { _asidInstanceId              = p1+    , _asidAutoScalingGroupName    = p2+    , _asidAvailabilityZone        = p3+    , _asidLifecycleState          = p4+    , _asidHealthStatus            = p5+    , _asidLaunchConfigurationName = p6+    }++-- | The name of the Auto Scaling group associated with the instance.+asidAutoScalingGroupName :: Lens' AutoScalingInstanceDetails Text+asidAutoScalingGroupName =+    lens _asidAutoScalingGroupName+        (\s a -> s { _asidAutoScalingGroupName = a })++-- | The Availability Zone for the instance.+asidAvailabilityZone :: Lens' AutoScalingInstanceDetails Text+asidAvailabilityZone =+    lens _asidAvailabilityZone (\s a -> s { _asidAvailabilityZone = a })++-- | The health status of this instance. "Healthy" means that the instance is+-- healthy and should remain in service. "Unhealthy" means that the instance+-- is unhealthy and Auto Scaling should terminate and replace it.+asidHealthStatus :: Lens' AutoScalingInstanceDetails Text+asidHealthStatus = lens _asidHealthStatus (\s a -> s { _asidHealthStatus = a })++-- | The ID of the instance.+asidInstanceId :: Lens' AutoScalingInstanceDetails Text+asidInstanceId = lens _asidInstanceId (\s a -> s { _asidInstanceId = a })++-- | The launch configuration associated with the instance.+asidLaunchConfigurationName :: Lens' AutoScalingInstanceDetails Text+asidLaunchConfigurationName =+    lens _asidLaunchConfigurationName+        (\s a -> s { _asidLaunchConfigurationName = a })++-- | The lifecycle state for the instance. For more information, see Auto+-- Scaling Instance States in the Auto Scaling Developer Guide.+asidLifecycleState :: Lens' AutoScalingInstanceDetails Text+asidLifecycleState =+    lens _asidLifecycleState (\s a -> s { _asidLifecycleState = a })++instance FromXML AutoScalingInstanceDetails where+    parseXML x = AutoScalingInstanceDetails+        <$> x .@  "AutoScalingGroupName"+        <*> x .@  "AvailabilityZone"+        <*> x .@  "HealthStatus"+        <*> x .@  "InstanceId"+        <*> x .@  "LaunchConfigurationName"+        <*> x .@  "LifecycleState"++instance ToQuery AutoScalingInstanceDetails where+    toQuery AutoScalingInstanceDetails{..} = mconcat+        [ "AutoScalingGroupName"    =? _asidAutoScalingGroupName+        , "AvailabilityZone"        =? _asidAvailabilityZone+        , "HealthStatus"            =? _asidHealthStatus+        , "InstanceId"              =? _asidInstanceId+        , "LaunchConfigurationName" =? _asidLaunchConfigurationName+        , "LifecycleState"          =? _asidLifecycleState+        ]++data ScalingActivityStatusCode+    = Cancelled                       -- ^ Cancelled+    | Failed                          -- ^ Failed+    | InProgress                      -- ^ InProgress+    | MidLifecycleAction              -- ^ MidLifecycleAction+    | PreInService                    -- ^ PreInService+    | Successful                      -- ^ Successful+    | WaitingForELBConnectionDraining -- ^ WaitingForELBConnectionDraining+    | WaitingForInstanceId            -- ^ WaitingForInstanceId+    | WaitingForSpotInstanceId        -- ^ WaitingForSpotInstanceId+    | WaitingForSpotInstanceRequestId -- ^ WaitingForSpotInstanceRequestId+      deriving (Eq, Ord, Show, Generic, Enum)++instance Hashable ScalingActivityStatusCode++instance FromText ScalingActivityStatusCode where+    parser = match "Cancelled"                       Cancelled+         <|> match "Failed"                          Failed+         <|> match "InProgress"                      InProgress+         <|> match "MidLifecycleAction"              MidLifecycleAction+         <|> match "PreInService"                    PreInService+         <|> match "Successful"                      Successful+         <|> match "WaitingForELBConnectionDraining" WaitingForELBConnectionDraining+         <|> match "WaitingForInstanceId"            WaitingForInstanceId+         <|> match "WaitingForSpotInstanceId"        WaitingForSpotInstanceId+         <|> match "WaitingForSpotInstanceRequestId" WaitingForSpotInstanceRequestId++instance ToText ScalingActivityStatusCode where+    toText = \case+        Cancelled                       -> "Cancelled"+        Failed                          -> "Failed"+        InProgress                      -> "InProgress"+        MidLifecycleAction              -> "MidLifecycleAction"+        PreInService                    -> "PreInService"+        Successful                      -> "Successful"+        WaitingForELBConnectionDraining -> "WaitingForELBConnectionDraining"+        WaitingForInstanceId            -> "WaitingForInstanceId"+        WaitingForSpotInstanceId        -> "WaitingForSpotInstanceId"+        WaitingForSpotInstanceRequestId -> "WaitingForSpotInstanceRequestId"++instance FromXML ScalingActivityStatusCode where+    parseXML = parseXMLText "ScalingActivityStatusCode"++instance ToQuery ScalingActivityStatusCode where+    toQuery = toQuery . toText
+ gen/Network/AWS/AutoScaling/UpdateAutoScalingGroup.hs view
@@ -0,0 +1,249 @@+{-# 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.AutoScaling.UpdateAutoScalingGroup+-- 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)++-- | Updates the configuration for the specified AutoScalingGroup. To update an+-- Auto Scaling group with a launch configuration that has the+-- InstanceMonitoring flag set to False, you must first ensure that collection+-- of group metrics is disabled. Otherwise, calls to UpdateAutoScalingGroup+-- will fail. If you have previously enabled group metrics collection, you can+-- disable collection of all group metrics by calling+-- DisableMetricsCollection. The new settings are registered upon the+-- completion of this call. Any launch configuration settings take effect on+-- any triggers after this call returns. Scaling activities that are currently+-- in progress aren't affected. If a new value is specified for MinSize+-- without specifying the value for DesiredCapacity, and if the new MinSize is+-- larger than the current size of the Auto Scaling group, there will be an+-- implicit call to SetDesiredCapacity to set the group to the new MinSize. If+-- a new value is specified for MaxSize without specifying the value for+-- DesiredCapacity, and the new MaxSize is smaller than the current size of+-- the Auto Scaling group, there will be an implicit call to+-- SetDesiredCapacity to set the group to the new MaxSize. All other optional+-- parameters are left unchanged if not passed in the request.+--+-- <http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_UpdateAutoScalingGroup.html>+module Network.AWS.AutoScaling.UpdateAutoScalingGroup+    (+    -- * Request+      UpdateAutoScalingGroup+    -- ** Request constructor+    , updateAutoScalingGroup+    -- ** Request lenses+    , uasgAutoScalingGroupName+    , uasgAvailabilityZones+    , uasgDefaultCooldown+    , uasgDesiredCapacity+    , uasgHealthCheckGracePeriod+    , uasgHealthCheckType+    , uasgLaunchConfigurationName+    , uasgMaxSize+    , uasgMinSize+    , uasgPlacementGroup+    , uasgTerminationPolicies+    , uasgVPCZoneIdentifier++    -- * Response+    , UpdateAutoScalingGroupResponse+    -- ** Response constructor+    , updateAutoScalingGroupResponse+    ) where++import Network.AWS.Prelude+import Network.AWS.Request.Query+import Network.AWS.AutoScaling.Types+import qualified GHC.Exts++data UpdateAutoScalingGroup = UpdateAutoScalingGroup+    { _uasgAutoScalingGroupName    :: Text+    , _uasgAvailabilityZones       :: List1 "AvailabilityZones" Text+    , _uasgDefaultCooldown         :: Maybe Int+    , _uasgDesiredCapacity         :: Maybe Int+    , _uasgHealthCheckGracePeriod  :: Maybe Int+    , _uasgHealthCheckType         :: Maybe Text+    , _uasgLaunchConfigurationName :: Maybe Text+    , _uasgMaxSize                 :: Maybe Int+    , _uasgMinSize                 :: Maybe Int+    , _uasgPlacementGroup          :: Maybe Text+    , _uasgTerminationPolicies     :: List "TerminationPolicies" Text+    , _uasgVPCZoneIdentifier       :: Maybe Text+    } deriving (Eq, Ord, Show)++-- | 'UpdateAutoScalingGroup' constructor.+--+-- The fields accessible through corresponding lenses are:+--+-- * 'uasgAutoScalingGroupName' @::@ 'Text'+--+-- * 'uasgAvailabilityZones' @::@ 'NonEmpty' 'Text'+--+-- * 'uasgDefaultCooldown' @::@ 'Maybe' 'Int'+--+-- * 'uasgDesiredCapacity' @::@ 'Maybe' 'Int'+--+-- * 'uasgHealthCheckGracePeriod' @::@ 'Maybe' 'Int'+--+-- * 'uasgHealthCheckType' @::@ 'Maybe' 'Text'+--+-- * 'uasgLaunchConfigurationName' @::@ 'Maybe' 'Text'+--+-- * 'uasgMaxSize' @::@ 'Maybe' 'Int'+--+-- * 'uasgMinSize' @::@ 'Maybe' 'Int'+--+-- * 'uasgPlacementGroup' @::@ 'Maybe' 'Text'+--+-- * 'uasgTerminationPolicies' @::@ ['Text']+--+-- * 'uasgVPCZoneIdentifier' @::@ 'Maybe' 'Text'+--+updateAutoScalingGroup :: Text -- ^ 'uasgAutoScalingGroupName'+                       -> NonEmpty Text -- ^ 'uasgAvailabilityZones'+                       -> UpdateAutoScalingGroup+updateAutoScalingGroup p1 p2 = UpdateAutoScalingGroup+    { _uasgAutoScalingGroupName    = p1+    , _uasgAvailabilityZones       = withIso _List1 (const id) p2+    , _uasgLaunchConfigurationName = Nothing+    , _uasgMinSize                 = Nothing+    , _uasgMaxSize                 = Nothing+    , _uasgDesiredCapacity         = Nothing+    , _uasgDefaultCooldown         = Nothing+    , _uasgHealthCheckType         = Nothing+    , _uasgHealthCheckGracePeriod  = Nothing+    , _uasgPlacementGroup          = Nothing+    , _uasgVPCZoneIdentifier       = Nothing+    , _uasgTerminationPolicies     = mempty+    }++-- | The name of the Auto Scaling group.+uasgAutoScalingGroupName :: Lens' UpdateAutoScalingGroup Text+uasgAutoScalingGroupName =+    lens _uasgAutoScalingGroupName+        (\s a -> s { _uasgAutoScalingGroupName = a })++-- | One or more Availability Zones for the group.+uasgAvailabilityZones :: Lens' UpdateAutoScalingGroup (NonEmpty Text)+uasgAvailabilityZones =+    lens _uasgAvailabilityZones (\s a -> s { _uasgAvailabilityZones = a })+        . _List1++-- | The amount of time, in seconds, after a scaling activity completes before+-- another scaling activity can start. For more information, see+-- Understanding Auto Scaling Cooldowns.+uasgDefaultCooldown :: Lens' UpdateAutoScalingGroup (Maybe Int)+uasgDefaultCooldown =+    lens _uasgDefaultCooldown (\s a -> s { _uasgDefaultCooldown = a })++-- | The number of EC2 instances that should be running in the Auto Scaling+-- group. This value must be greater than or equal to the minimum size of+-- the group and less than or equal to the maximum size of the group.+uasgDesiredCapacity :: Lens' UpdateAutoScalingGroup (Maybe Int)+uasgDesiredCapacity =+    lens _uasgDesiredCapacity (\s a -> s { _uasgDesiredCapacity = a })++-- | The amount of time, in second, that Auto Scaling waits before checking+-- the health status of an instance. The grace period begins when the+-- instance passes System Status and the Instance Status checks from Amazon+-- EC2. For more information, see DescribeInstanceStatus.+uasgHealthCheckGracePeriod :: Lens' UpdateAutoScalingGroup (Maybe Int)+uasgHealthCheckGracePeriod =+    lens _uasgHealthCheckGracePeriod+        (\s a -> s { _uasgHealthCheckGracePeriod = a })++-- | The type of health check for the instances in the Auto Scaling group. The+-- health check type can either be EC2 for Amazon EC2 or ELB for Elastic+-- Load Balancing.+uasgHealthCheckType :: Lens' UpdateAutoScalingGroup (Maybe Text)+uasgHealthCheckType =+    lens _uasgHealthCheckType (\s a -> s { _uasgHealthCheckType = a })++-- | The name of the launch configuration.+uasgLaunchConfigurationName :: Lens' UpdateAutoScalingGroup (Maybe Text)+uasgLaunchConfigurationName =+    lens _uasgLaunchConfigurationName+        (\s a -> s { _uasgLaunchConfigurationName = a })++-- | The maximum size of the Auto Scaling group.+uasgMaxSize :: Lens' UpdateAutoScalingGroup (Maybe Int)+uasgMaxSize = lens _uasgMaxSize (\s a -> s { _uasgMaxSize = a })++-- | The minimum size of the Auto Scaling group.+uasgMinSize :: Lens' UpdateAutoScalingGroup (Maybe Int)+uasgMinSize = lens _uasgMinSize (\s a -> s { _uasgMinSize = a })++-- | The name of the placement group into which you'll launch your instances,+-- if any. For more information, see Placement Groups.+uasgPlacementGroup :: Lens' UpdateAutoScalingGroup (Maybe Text)+uasgPlacementGroup =+    lens _uasgPlacementGroup (\s a -> s { _uasgPlacementGroup = a })++-- | A standalone termination policy or a list of termination policies used to+-- select the instance to terminate. The policies are executed in the order+-- that they are listed. For more information, see Choosing a Termination+-- Policy for Your Auto Scaling Group in the Auto Scaling Developer Guide.+uasgTerminationPolicies :: Lens' UpdateAutoScalingGroup [Text]+uasgTerminationPolicies =+    lens _uasgTerminationPolicies (\s a -> s { _uasgTerminationPolicies = a })+        . _List++-- | The subnet identifier for the Amazon VPC connection, if applicable. You+-- can specify several subnets in a comma-separated list. When you specify+-- VPCZoneIdentifier with AvailabilityZones, ensure that the subnets'+-- Availability Zones match the values you specify for AvailabilityZones.+-- For more information, see Auto Scaling and Amazon VPC in the Auto Scaling+-- Developer Guide.+uasgVPCZoneIdentifier :: Lens' UpdateAutoScalingGroup (Maybe Text)+uasgVPCZoneIdentifier =+    lens _uasgVPCZoneIdentifier (\s a -> s { _uasgVPCZoneIdentifier = a })++data UpdateAutoScalingGroupResponse = UpdateAutoScalingGroupResponse+    deriving (Eq, Ord, Show, Generic)++-- | 'UpdateAutoScalingGroupResponse' constructor.+updateAutoScalingGroupResponse :: UpdateAutoScalingGroupResponse+updateAutoScalingGroupResponse = UpdateAutoScalingGroupResponse++instance ToPath UpdateAutoScalingGroup where+    toPath = const "/"++instance ToQuery UpdateAutoScalingGroup where+    toQuery UpdateAutoScalingGroup{..} = mconcat+        [ "AutoScalingGroupName"    =? _uasgAutoScalingGroupName+        , "AvailabilityZones"       =? _uasgAvailabilityZones+        , "DefaultCooldown"         =? _uasgDefaultCooldown+        , "DesiredCapacity"         =? _uasgDesiredCapacity+        , "HealthCheckGracePeriod"  =? _uasgHealthCheckGracePeriod+        , "HealthCheckType"         =? _uasgHealthCheckType+        , "LaunchConfigurationName" =? _uasgLaunchConfigurationName+        , "MaxSize"                 =? _uasgMaxSize+        , "MinSize"                 =? _uasgMinSize+        , "PlacementGroup"          =? _uasgPlacementGroup+        , "TerminationPolicies"     =? _uasgTerminationPolicies+        , "VPCZoneIdentifier"       =? _uasgVPCZoneIdentifier+        ]++instance ToHeaders UpdateAutoScalingGroup++instance AWSRequest UpdateAutoScalingGroup where+    type Sv UpdateAutoScalingGroup = AutoScaling+    type Rs UpdateAutoScalingGroup = UpdateAutoScalingGroupResponse++    request  = post "UpdateAutoScalingGroup"+    response = nullResponse UpdateAutoScalingGroupResponse