packages feed

amazonka-elbv2 (empty) → 1.4.4

raw patch · 101 files changed

+7972/−0 lines, 101 filesdep +amazonka-coredep +amazonka-elbv2dep +amazonka-testsetup-changed

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

Files

+ LICENSE view
@@ -0,0 +1,367 @@+Mozilla Public License Version 2.0+==================================++1. Definitions+--------------++1.1. "Contributor"+    means each individual or legal entity that creates, contributes to+    the creation of, or owns Covered Software.++1.2. "Contributor Version"+    means the combination of the Contributions of others (if any) used+    by a Contributor and that particular Contributor's Contribution.++1.3. "Contribution"+    means Covered Software of a particular Contributor.++1.4. "Covered Software"+    means Source Code Form to which the initial Contributor has attached+    the notice in Exhibit A, the Executable Form of such Source Code+    Form, and Modifications of such Source Code Form, in each case+    including portions thereof.++1.5. "Incompatible With Secondary Licenses"+    means++    (a) that the initial Contributor has attached the notice described+        in Exhibit B to the Covered Software; or++    (b) that the Covered Software was made available under the terms of+        version 1.1 or earlier of the License, but not also under the+        terms of a Secondary License.++1.6. "Executable Form"+    means any form of the work other than Source Code Form.++1.7. "Larger Work"+    means a work that combines Covered Software with other material, in+    a separate file or files, that is not Covered Software.++1.8. "License"+    means this document.++1.9. "Licensable"+    means having the right to grant, to the maximum extent possible,+    whether at the time of the initial grant or subsequently, any and+    all of the rights conveyed by this License.++1.10. "Modifications"+    means any of the following:++    (a) any file in Source Code Form that results from an addition to,+        deletion from, or modification of the contents of Covered+        Software; or++    (b) any new file in Source Code Form that contains any Covered+        Software.++1.11. "Patent Claims" of a Contributor+    means any patent claim(s), including without limitation, method,+    process, and apparatus claims, in any patent Licensable by such+    Contributor that would be infringed, but for the grant of the+    License, by the making, using, selling, offering for sale, having+    made, import, or transfer of either its Contributions or its+    Contributor Version.++1.12. "Secondary License"+    means either the GNU General Public License, Version 2.0, the GNU+    Lesser General Public License, Version 2.1, the GNU Affero General+    Public License, Version 3.0, or any later versions of those+    licenses.++1.13. "Source Code Form"+    means the form of the work preferred for making modifications.++1.14. "You" (or "Your")+    means an individual or a legal entity exercising rights under this+    License. For legal entities, "You" includes any entity that+    controls, is controlled by, or is under common control with You. For+    purposes of this definition, "control" means (a) the power, direct+    or indirect, to cause the direction or management of such entity,+    whether by contract or otherwise, or (b) ownership of more than+    fifty percent (50%) of the outstanding shares or beneficial+    ownership of such entity.++2. License Grants and Conditions+--------------------------------++2.1. Grants++Each Contributor hereby grants You a world-wide, royalty-free,+non-exclusive license:++(a) under intellectual property rights (other than patent or trademark)+    Licensable by such Contributor to use, reproduce, make available,+    modify, display, perform, distribute, and otherwise exploit its+    Contributions, either on an unmodified basis, with Modifications, or+    as part of a Larger Work; and++(b) under Patent Claims of such Contributor to make, use, sell, offer+    for sale, have made, import, and otherwise transfer either its+    Contributions or its Contributor Version.++2.2. Effective Date++The licenses granted in Section 2.1 with respect to any Contribution+become effective for each Contribution on the date the Contributor first+distributes such Contribution.++2.3. Limitations on Grant Scope++The licenses granted in this Section 2 are the only rights granted under+this License. No additional rights or licenses will be implied from the+distribution or licensing of Covered Software under this License.+Notwithstanding Section 2.1(b) above, no patent license is granted by a+Contributor:++(a) for any code that a Contributor has removed from Covered Software;+    or++(b) for infringements caused by: (i) Your and any other third party's+    modifications of Covered Software, or (ii) the combination of its+    Contributions with other software (except as part of its Contributor+    Version); or++(c) under Patent Claims infringed by Covered Software in the absence of+    its Contributions.++This License does not grant any rights in the trademarks, service marks,+or logos of any Contributor (except as may be necessary to comply with+the notice requirements in Section 3.4).++2.4. Subsequent Licenses++No Contributor makes additional grants as a result of Your choice to+distribute the Covered Software under a subsequent version of this+License (see Section 10.2) or under the terms of a Secondary License (if+permitted under the terms of Section 3.3).++2.5. Representation++Each Contributor represents that the Contributor believes its+Contributions are its original creation(s) or it has sufficient rights+to grant the rights to its Contributions conveyed by this License.++2.6. Fair Use++This License is not intended to limit any rights You have under+applicable copyright doctrines of fair use, fair dealing, or other+equivalents.++2.7. Conditions++Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted+in Section 2.1.++3. Responsibilities+-------------------++3.1. Distribution of Source Form++All distribution of Covered Software in Source Code Form, including any+Modifications that You create or to which You contribute, must be under+the terms of this License. You must inform recipients that the Source+Code Form of the Covered Software is governed by the terms of this+License, and how they can obtain a copy of this License. You may not+attempt to alter or restrict the recipients' rights in the Source Code+Form.++3.2. Distribution of Executable Form++If You distribute Covered Software in Executable Form then:++(a) such Covered Software must also be made available in Source Code+    Form, as described in Section 3.1, and You must inform recipients of+    the Executable Form how they can obtain a copy of such Source Code+    Form by reasonable means in a timely manner, at a charge no more+    than the cost of distribution to the recipient; and++(b) You may distribute such Executable Form under the terms of this+    License, or sublicense it under different terms, provided that the+    license for the Executable Form does not attempt to limit or alter+    the recipients' rights in the Source Code Form under this License.++3.3. Distribution of a Larger Work++You may create and distribute a Larger Work under terms of Your choice,+provided that You also comply with the requirements of this License for+the Covered Software. If the Larger Work is a combination of Covered+Software with a work governed by one or more Secondary Licenses, and the+Covered Software is not Incompatible With Secondary Licenses, this+License permits You to additionally distribute such Covered Software+under the terms of such Secondary License(s), so that the recipient of+the Larger Work may, at their option, further distribute the Covered+Software under the terms of either this License or such Secondary+License(s).++3.4. Notices++You may not remove or alter the substance of any license notices+(including copyright notices, patent notices, disclaimers of warranty,+or limitations of liability) contained within the Source Code Form of+the Covered Software, except that You may alter any license notices to+the extent required to remedy known factual inaccuracies.++3.5. Application of Additional Terms++You may choose to offer, and to charge a fee for, warranty, support,+indemnity or liability obligations to one or more recipients of Covered+Software. However, You may do so only on Your own behalf, and not on+behalf of any Contributor. You must make it absolutely clear that any+such warranty, support, indemnity, or liability obligation is offered by+You alone, and You hereby agree to indemnify every Contributor for any+liability incurred by such Contributor as a result of warranty, support,+indemnity or liability terms You offer. You may include additional+disclaimers of warranty and limitations of liability specific to any+jurisdiction.++4. Inability to Comply Due to Statute or Regulation+---------------------------------------------------++If it is impossible for You to comply with any of the terms of this+License with respect to some or all of the Covered Software due to+statute, judicial order, or regulation then You must: (a) comply with+the terms of this License to the maximum extent possible; and (b)+describe the limitations and the code they affect. Such description must+be placed in a text file included with all distributions of the Covered+Software under this License. Except to the extent prohibited by statute+or regulation, such description must be sufficiently detailed for a+recipient of ordinary skill to be able to understand it.++5. Termination+--------------++5.1. The rights granted under this License will terminate automatically+if You fail to comply with any of its terms. However, if You become+compliant, then the rights granted under this License from a particular+Contributor are reinstated (a) provisionally, unless and until such+Contributor explicitly and finally terminates Your grants, and (b) on an+ongoing basis, if such Contributor fails to notify You of the+non-compliance by some reasonable means prior to 60 days after You have+come back into compliance. Moreover, Your grants from a particular+Contributor are reinstated on an ongoing basis if such Contributor+notifies You of the non-compliance by some reasonable means, this is the+first time You have received notice of non-compliance with this License+from such Contributor, and You become compliant prior to 30 days after+Your receipt of the notice.++5.2. If You initiate litigation against any entity by asserting a patent+infringement claim (excluding declaratory judgment actions,+counter-claims, and cross-claims) alleging that a Contributor Version+directly or indirectly infringes any patent, then the rights granted to+You by any and all Contributors for the Covered Software under Section+2.1 of this License shall terminate.++5.3. In the event of termination under Sections 5.1 or 5.2 above, all+end user license agreements (excluding distributors and resellers) which+have been validly granted by You or Your distributors under this License+prior to termination shall survive termination.++************************************************************************+*                                                                      *+*  6. Disclaimer of Warranty                                           *+*  -------------------------                                           *+*                                                                      *+*  Covered Software is provided under this License on an "as is"       *+*  basis, without warranty of any kind, either expressed, implied, or  *+*  statutory, including, without limitation, warranties that the       *+*  Covered Software is free of defects, merchantable, fit for a        *+*  particular purpose or non-infringing. The entire risk as to the     *+*  quality and performance of the Covered Software is with You.        *+*  Should any Covered Software prove defective in any respect, You     *+*  (not any Contributor) assume the cost of any necessary servicing,   *+*  repair, or correction. This disclaimer of warranty constitutes an   *+*  essential part of this License. No use of any Covered Software is   *+*  authorized under this License except under this disclaimer.         *+*                                                                      *+************************************************************************++************************************************************************+*                                                                      *+*  7. Limitation of Liability                                          *+*  --------------------------                                          *+*                                                                      *+*  Under no circumstances and under no legal theory, whether tort      *+*  (including negligence), contract, or otherwise, shall any           *+*  Contributor, or anyone who distributes Covered Software as          *+*  permitted above, be liable to You for any direct, indirect,         *+*  special, incidental, or consequential damages of any character      *+*  including, without limitation, damages for lost profits, loss of    *+*  goodwill, work stoppage, computer failure or malfunction, or any    *+*  and all other commercial damages or losses, even if such party      *+*  shall have been informed of the possibility of such damages. This   *+*  limitation of liability shall not apply to liability for death or   *+*  personal injury resulting from such party's negligence to the       *+*  extent applicable law prohibits such limitation. Some               *+*  jurisdictions do not allow the exclusion or limitation of           *+*  incidental or consequential damages, so this exclusion and          *+*  limitation may not apply to You.                                    *+*                                                                      *+************************************************************************++8. Litigation+-------------++Any litigation relating to this License may be brought only in the+courts of a jurisdiction where the defendant maintains its principal+place of business and such litigation shall be governed by laws of that+jurisdiction, without reference to its conflict-of-law provisions.+Nothing in this Section shall prevent a party's ability to bring+cross-claims or counter-claims.++9. Miscellaneous+----------------++This License represents the complete agreement concerning the subject+matter hereof. If any provision of this License is held to be+unenforceable, such provision shall be reformed only to the extent+necessary to make it enforceable. Any law or regulation which provides+that the language of a contract shall be construed against the drafter+shall not be used to construe this License against a Contributor.++10. Versions of the License+---------------------------++10.1. New Versions++Mozilla Foundation is the license steward. Except as provided in Section+10.3, no one other than the license steward has the right to modify or+publish new versions of this License. Each version will be given a+distinguishing version number.++10.2. Effect of New Versions++You may distribute the Covered Software under the terms of the version+of the License under which You originally received the Covered Software,+or under the terms of any subsequent version published by the license+steward.++10.3. Modified Versions++If you create software not governed by this License, and you want to+create a new license for such software, you may create and use a+modified version of this License if you rename the license and remove+any references to the name of the license steward (except to note that+such modified license differs from this License).++10.4. Distributing Source Code Form that is Incompatible With Secondary+Licenses++If You choose to distribute Source Code Form that is Incompatible With+Secondary Licenses under the terms of this version of the License, the+notice described in Exhibit B of this License must be attached.++Exhibit A - Source Code Form License Notice+-------------------------------------------++  This Source Code Form is subject to the terms of the Mozilla Public+  License, v. 2.0. If a copy of the MPL was not distributed with this+  file, You can obtain one at http://mozilla.org/MPL/2.0/.++If it is not possible or desirable to put the notice in a particular+file, then You may include the notice in a location (such as a LICENSE+file in a relevant directory) where a recipient would be likely to look+for such a notice.++You may add additional accurate notices of copyright ownership.
+ README.md view
@@ -0,0 +1,68 @@+# Amazon Elastic Load Balancing SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`1.4.4`+++## Description++Elastic Load Balancing++A load balancer distributes incoming traffic across targets, such as your EC2 instances. This enables you to increase the availability of your application. The load balancer also monitors the health of its registered targets and ensures that it routes traffic only to healthy targets. You configure your load balancer to accept incoming traffic by specifying one or more listeners, which are configured with a protocol and port number for connections from clients to the load balancer. You configure a target group with a protocol and port number for connections from the load balancer to the targets, and with health check settings to be used when checking the health status of the targets.++Elastic Load Balancing supports two types of load balancers: Classic load balancers and Application load balancers (new). A Classic load balancer makes routing and load balancing decisions either at the transport layer (TCP\/SSL) or the application layer (HTTP\/HTTPS), and supports either EC2-Classic or a VPC. An Application load balancer makes routing and load balancing decisions at the application layer (HTTP\/HTTPS), supports path-based routing, and can route requests to one or more ports on each EC2 instance or container instance in your virtual private cloud (VPC). For more information, see the <http://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/ Elastic Load Balancing User Guide>.++This reference covers the 2015-12-01 API, which supports Application load balancers. The 2012-06-01 API supports Classic load balancers.++To get started with an Application load balancer, complete the following tasks:++1.  Create a load balancer using < CreateLoadBalancer>.++2.  Create a target group using < CreateTargetGroup>.++3.  Register targets for the target group using < RegisterTargets>.++4.  Create one or more listeners for your load balancer using < CreateListener>.++5.  (Optional) Create one or more rules for content routing based on URL using < CreateRule>.++To delete an Application load balancer and its related resources, complete the following tasks:++1.  Delete the load balancer using < DeleteLoadBalancer>.++2.  Delete the target group using < DeleteTargetGroup>.++All Elastic Load Balancing operations are idempotent, which means that they complete at most one time. If you repeat an operation, it succeeds.++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-elbv2)+and the [AWS API Reference](https://aws.amazon.com/documentation/).++The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/amazonka),+which provides mechanisms for specifying AuthN/AuthZ information and sending requests.++Use of lenses is required for constructing and manipulating types.+This is due to the amount of nesting of AWS types and transparency regarding+de/serialisation into more palatable Haskell values.+The provided lenses should be compatible with any of the major lens libraries+[lens](http://hackage.haskell.org/package/lens) or [lens-family-core](http://hackage.haskell.org/package/lens-family-core).++## 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-elbv2` is released under the [Mozilla Public License Version 2.0](http://www.mozilla.org/MPL/).++Parts of the code are derived from AWS service descriptions, licensed under Apache 2.0.+Source files subject to this contain an additional licensing clause in their header.
+ Setup.hs view
@@ -0,0 +1,2 @@+import           Distribution.Simple+main = defaultMain
+ amazonka-elbv2.cabal view
@@ -0,0 +1,136 @@+name:                  amazonka-elbv2+version:               1.4.4+synopsis:              Amazon Elastic Load Balancing SDK.+homepage:              https://github.com/brendanhay/amazonka+bug-reports:           https://github.com/brendanhay/amazonka/issues+license:               OtherLicense+license-file:          LICENSE+author:                Brendan Hay+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>+copyright:             Copyright (c) 2013-2016 Brendan Hay+category:              Network, AWS, Cloud, Distributed Computing+build-type:            Simple+cabal-version:         >= 1.10+extra-source-files:    README.md fixture/*.yaml fixture/*.proto src/.gitkeep+description:+    Elastic Load Balancing++    A load balancer distributes incoming traffic across targets, such as your EC2 instances. This enables you to increase the availability of your application. The load balancer also monitors the health of its registered targets and ensures that it routes traffic only to healthy targets. You configure your load balancer to accept incoming traffic by specifying one or more listeners, which are configured with a protocol and port number for connections from clients to the load balancer. You configure a target group with a protocol and port number for connections from the load balancer to the targets, and with health check settings to be used when checking the health status of the targets.++    Elastic Load Balancing supports two types of load balancers: Classic load balancers and Application load balancers (new). A Classic load balancer makes routing and load balancing decisions either at the transport layer (TCP\/SSL) or the application layer (HTTP\/HTTPS), and supports either EC2-Classic or a VPC. An Application load balancer makes routing and load balancing decisions at the application layer (HTTP\/HTTPS), supports path-based routing, and can route requests to one or more ports on each EC2 instance or container instance in your virtual private cloud (VPC). For more information, see the <http://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/ Elastic Load Balancing User Guide>.++    This reference covers the 2015-12-01 API, which supports Application load balancers. The 2012-06-01 API supports Classic load balancers.++    To get started with an Application load balancer, complete the following tasks:++    1.  Create a load balancer using < CreateLoadBalancer>.++    2.  Create a target group using < CreateTargetGroup>.++    3.  Register targets for the target group using < RegisterTargets>.++    4.  Create one or more listeners for your load balancer using < CreateListener>.++    5.  (Optional) Create one or more rules for content routing based on URL using < CreateRule>.++    To delete an Application load balancer and its related resources, complete the following tasks:++    1.  Delete the load balancer using < DeleteLoadBalancer>.++    2.  Delete the target group using < DeleteTargetGroup>.++    All Elastic Load Balancing operations are idempotent, which means that they complete at most one time. If you repeat an operation, it succeeds.+    .+    The types from this library are intended to be used with+    <http://hackage.haskell.org/package/amazonka amazonka>, which provides+    mechanisms for specifying AuthN/AuthZ information and sending requests.+    .+    Use of lenses is required for constructing and manipulating types.+    This is due to the amount of nesting of AWS types and transparency regarding+    de/serialisation into more palatable Haskell values.+    The provided lenses should be compatible with any of the major lens libraries+    such as <http://hackage.haskell.org/package/lens lens> or+    <http://hackage.haskell.org/package/lens-family-core lens-family-core>.+    .+    See "Network.AWS.ELBv2" or <https://aws.amazon.com/documentation/ the AWS Documentation>+    to get started.++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.ELBv2+        , Network.AWS.ELBv2.AddTags+        , Network.AWS.ELBv2.CreateListener+        , Network.AWS.ELBv2.CreateLoadBalancer+        , Network.AWS.ELBv2.CreateRule+        , Network.AWS.ELBv2.CreateTargetGroup+        , Network.AWS.ELBv2.DeleteListener+        , Network.AWS.ELBv2.DeleteLoadBalancer+        , Network.AWS.ELBv2.DeleteRule+        , Network.AWS.ELBv2.DeleteTargetGroup+        , Network.AWS.ELBv2.DeregisterTargets+        , Network.AWS.ELBv2.DescribeListeners+        , Network.AWS.ELBv2.DescribeLoadBalancerAttributes+        , Network.AWS.ELBv2.DescribeLoadBalancers+        , Network.AWS.ELBv2.DescribeRules+        , Network.AWS.ELBv2.DescribeSSLPolicies+        , Network.AWS.ELBv2.DescribeTags+        , Network.AWS.ELBv2.DescribeTargetGroupAttributes+        , Network.AWS.ELBv2.DescribeTargetGroups+        , Network.AWS.ELBv2.DescribeTargetHealth+        , Network.AWS.ELBv2.ModifyListener+        , Network.AWS.ELBv2.ModifyLoadBalancerAttributes+        , Network.AWS.ELBv2.ModifyRule+        , Network.AWS.ELBv2.ModifyTargetGroup+        , Network.AWS.ELBv2.ModifyTargetGroupAttributes+        , Network.AWS.ELBv2.RegisterTargets+        , Network.AWS.ELBv2.RemoveTags+        , Network.AWS.ELBv2.SetRulePriorities+        , Network.AWS.ELBv2.SetSecurityGroups+        , Network.AWS.ELBv2.SetSubnets+        , Network.AWS.ELBv2.Types+        , Network.AWS.ELBv2.Waiters++    other-modules:+          Network.AWS.ELBv2.Types.Product+        , Network.AWS.ELBv2.Types.Sum++    build-depends:+          amazonka-core == 1.4.4.*+        , base          >= 4.7     && < 5++test-suite amazonka-elbv2-test+    type:              exitcode-stdio-1.0+    default-language:  Haskell2010+    hs-source-dirs:    test+    main-is:           Main.hs++    ghc-options:       -Wall -threaded++    -- This section is encoded by the template and any modules added by+    -- hand outside these namespaces will not correctly be added to the+    -- distribution package.+    other-modules:+          Test.AWS.ELBv2+        , Test.AWS.Gen.ELBv2+        , Test.AWS.ELBv2.Internal++    build-depends:+          amazonka-core == 1.4.4.*+        , amazonka-test == 1.4.4.*+        , amazonka-elbv2 == 1.4.4.*+        , base+        , bytestring+        , tasty+        , tasty-hunit+        , text+        , time+        , unordered-containers
+ fixture/AddTags.yaml view
+ fixture/AddTagsResponse.proto view
+ fixture/CreateListener.yaml view
+ fixture/CreateListenerResponse.proto view
+ fixture/CreateLoadBalancer.yaml view
+ fixture/CreateLoadBalancerResponse.proto view
+ fixture/CreateRule.yaml view
+ fixture/CreateRuleResponse.proto view
+ fixture/CreateTargetGroup.yaml view
+ fixture/CreateTargetGroupResponse.proto view
+ fixture/DeleteListener.yaml view
+ fixture/DeleteListenerResponse.proto view
+ fixture/DeleteLoadBalancer.yaml view
+ fixture/DeleteLoadBalancerResponse.proto view
+ fixture/DeleteRule.yaml view
+ fixture/DeleteRuleResponse.proto view
+ fixture/DeleteTargetGroup.yaml view
+ fixture/DeleteTargetGroupResponse.proto view
+ fixture/DeregisterTargets.yaml view
+ fixture/DeregisterTargetsResponse.proto view
+ fixture/DescribeListeners.yaml view
+ fixture/DescribeListenersResponse.proto view
+ fixture/DescribeLoadBalancerAttributes.yaml view
+ fixture/DescribeLoadBalancerAttributesResponse.proto view
+ fixture/DescribeLoadBalancers.yaml view
+ fixture/DescribeLoadBalancersResponse.proto view
+ fixture/DescribeRules.yaml view
+ fixture/DescribeRulesResponse.proto view
+ fixture/DescribeSSLPolicies.yaml view
+ fixture/DescribeSSLPoliciesResponse.proto view
+ fixture/DescribeTags.yaml view
+ fixture/DescribeTagsResponse.proto view
+ fixture/DescribeTargetGroupAttributes.yaml view
+ fixture/DescribeTargetGroupAttributesResponse.proto view
+ fixture/DescribeTargetGroups.yaml view
+ fixture/DescribeTargetGroupsResponse.proto view
+ fixture/DescribeTargetHealth.yaml view
+ fixture/DescribeTargetHealthResponse.proto view
+ fixture/ModifyListener.yaml view
+ fixture/ModifyListenerResponse.proto view
+ fixture/ModifyLoadBalancerAttributes.yaml view
+ fixture/ModifyLoadBalancerAttributesResponse.proto view
+ fixture/ModifyRule.yaml view
+ fixture/ModifyRuleResponse.proto view
+ fixture/ModifyTargetGroup.yaml view
+ fixture/ModifyTargetGroupAttributes.yaml view
+ fixture/ModifyTargetGroupAttributesResponse.proto view
+ fixture/ModifyTargetGroupResponse.proto view
+ fixture/RegisterTargets.yaml view
+ fixture/RegisterTargetsResponse.proto view
+ fixture/RemoveTags.yaml view
+ fixture/RemoveTagsResponse.proto view
+ fixture/SetRulePriorities.yaml view
+ fixture/SetRulePrioritiesResponse.proto view
+ fixture/SetSecurityGroups.yaml view
+ fixture/SetSecurityGroupsResponse.proto view
+ fixture/SetSubnets.yaml view
+ fixture/SetSubnetsResponse.proto view
+ gen/Network/AWS/ELBv2.hs view
@@ -0,0 +1,469 @@+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Elastic Load Balancing+--+-- A load balancer distributes incoming traffic across targets, such as your EC2 instances. This enables you to increase the availability of your application. The load balancer also monitors the health of its registered targets and ensures that it routes traffic only to healthy targets. You configure your load balancer to accept incoming traffic by specifying one or more listeners, which are configured with a protocol and port number for connections from clients to the load balancer. You configure a target group with a protocol and port number for connections from the load balancer to the targets, and with health check settings to be used when checking the health status of the targets.+--+-- Elastic Load Balancing supports two types of load balancers: Classic load balancers and Application load balancers (new). A Classic load balancer makes routing and load balancing decisions either at the transport layer (TCP\/SSL) or the application layer (HTTP\/HTTPS), and supports either EC2-Classic or a VPC. An Application load balancer makes routing and load balancing decisions at the application layer (HTTP\/HTTPS), supports path-based routing, and can route requests to one or more ports on each EC2 instance or container instance in your virtual private cloud (VPC). For more information, see the <http://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/ Elastic Load Balancing User Guide>.+--+-- This reference covers the 2015-12-01 API, which supports Application load balancers. The 2012-06-01 API supports Classic load balancers.+--+-- To get started with an Application load balancer, complete the following tasks:+--+-- 1.  Create a load balancer using < CreateLoadBalancer>.+--+-- 2.  Create a target group using < CreateTargetGroup>.+--+-- 3.  Register targets for the target group using < RegisterTargets>.+--+-- 4.  Create one or more listeners for your load balancer using < CreateListener>.+--+-- 5.  (Optional) Create one or more rules for content routing based on URL using < CreateRule>.+--+-- To delete an Application load balancer and its related resources, complete the following tasks:+--+-- 1.  Delete the load balancer using < DeleteLoadBalancer>.+--+-- 2.  Delete the target group using < DeleteTargetGroup>.+--+-- All Elastic Load Balancing operations are idempotent, which means that they complete at most one time. If you repeat an operation, it succeeds.+module Network.AWS.ELBv2+    (+    -- * Service Configuration+      eLBv2++    -- * Errors+    -- $errors++    -- ** InvalidConfigurationRequestException+    , _InvalidConfigurationRequestException++    -- ** SubnetNotFoundException+    , _SubnetNotFoundException++    -- ** TooManyTargetsException+    , _TooManyTargetsException++    -- ** RuleNotFoundException+    , _RuleNotFoundException++    -- ** InvalidSubnetException+    , _InvalidSubnetException++    -- ** TooManyRulesException+    , _TooManyRulesException++    -- ** TooManyTargetGroupsException+    , _TooManyTargetGroupsException++    -- ** DuplicateLoadBalancerNameException+    , _DuplicateLoadBalancerNameException++    -- ** IncompatibleProtocolsException+    , _IncompatibleProtocolsException++    -- ** TooManyCertificatesException+    , _TooManyCertificatesException++    -- ** DuplicateTagKeysException+    , _DuplicateTagKeysException++    -- ** DuplicateListenerException+    , _DuplicateListenerException++    -- ** TooManyTagsException+    , _TooManyTagsException++    -- ** DuplicateTargetGroupNameException+    , _DuplicateTargetGroupNameException++    -- ** HealthUnavailableException+    , _HealthUnavailableException++    -- ** PriorityInUseException+    , _PriorityInUseException++    -- ** TooManyLoadBalancersException+    , _TooManyLoadBalancersException++    -- ** UnsupportedProtocolException+    , _UnsupportedProtocolException++    -- ** InvalidTargetException+    , _InvalidTargetException++    -- ** InvalidSecurityGroupException+    , _InvalidSecurityGroupException++    -- ** TargetGroupNotFoundException+    , _TargetGroupNotFoundException++    -- ** ListenerNotFoundException+    , _ListenerNotFoundException++    -- ** TooManyRegistrationsForTargetIdException+    , _TooManyRegistrationsForTargetIdException++    -- ** TooManyListenersException+    , _TooManyListenersException++    -- ** TargetGroupAssociationLimitException+    , _TargetGroupAssociationLimitException++    -- ** OperationNotPermittedException+    , _OperationNotPermittedException++    -- ** SSLPolicyNotFoundException+    , _SSLPolicyNotFoundException++    -- ** InvalidSchemeException+    , _InvalidSchemeException++    -- ** LoadBalancerNotFoundException+    , _LoadBalancerNotFoundException++    -- ** ResourceInUseException+    , _ResourceInUseException++    -- ** CertificateNotFoundException+    , _CertificateNotFoundException++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** DescribeLoadBalancers (Paginated)+    , module Network.AWS.ELBv2.DescribeLoadBalancers++    -- ** DescribeTags+    , module Network.AWS.ELBv2.DescribeTags++    -- ** DeleteRule+    , module Network.AWS.ELBv2.DeleteRule++    -- ** RemoveTags+    , module Network.AWS.ELBv2.RemoveTags++    -- ** DeleteTargetGroup+    , module Network.AWS.ELBv2.DeleteTargetGroup++    -- ** SetSubnets+    , module Network.AWS.ELBv2.SetSubnets++    -- ** CreateRule+    , module Network.AWS.ELBv2.CreateRule++    -- ** SetSecurityGroups+    , module Network.AWS.ELBv2.SetSecurityGroups++    -- ** SetRulePriorities+    , module Network.AWS.ELBv2.SetRulePriorities++    -- ** DescribeTargetGroups (Paginated)+    , module Network.AWS.ELBv2.DescribeTargetGroups++    -- ** DescribeRules+    , module Network.AWS.ELBv2.DescribeRules++    -- ** DeleteLoadBalancer+    , module Network.AWS.ELBv2.DeleteLoadBalancer++    -- ** RegisterTargets+    , module Network.AWS.ELBv2.RegisterTargets++    -- ** ModifyListener+    , module Network.AWS.ELBv2.ModifyListener++    -- ** ModifyTargetGroup+    , module Network.AWS.ELBv2.ModifyTargetGroup++    -- ** ModifyTargetGroupAttributes+    , module Network.AWS.ELBv2.ModifyTargetGroupAttributes++    -- ** DescribeTargetGroupAttributes+    , module Network.AWS.ELBv2.DescribeTargetGroupAttributes++    -- ** DeleteListener+    , module Network.AWS.ELBv2.DeleteListener++    -- ** DescribeSSLPolicies+    , module Network.AWS.ELBv2.DescribeSSLPolicies++    -- ** DeregisterTargets+    , module Network.AWS.ELBv2.DeregisterTargets++    -- ** CreateListener+    , module Network.AWS.ELBv2.CreateListener++    -- ** CreateTargetGroup+    , module Network.AWS.ELBv2.CreateTargetGroup++    -- ** ModifyLoadBalancerAttributes+    , module Network.AWS.ELBv2.ModifyLoadBalancerAttributes++    -- ** AddTags+    , module Network.AWS.ELBv2.AddTags++    -- ** DescribeLoadBalancerAttributes+    , module Network.AWS.ELBv2.DescribeLoadBalancerAttributes++    -- ** DescribeListeners (Paginated)+    , module Network.AWS.ELBv2.DescribeListeners++    -- ** DescribeTargetHealth+    , module Network.AWS.ELBv2.DescribeTargetHealth++    -- ** CreateLoadBalancer+    , module Network.AWS.ELBv2.CreateLoadBalancer++    -- ** ModifyRule+    , module Network.AWS.ELBv2.ModifyRule++    -- * Types++    -- ** ActionTypeEnum+    , ActionTypeEnum (..)++    -- ** LoadBalancerSchemeEnum+    , LoadBalancerSchemeEnum (..)++    -- ** LoadBalancerStateEnum+    , LoadBalancerStateEnum (..)++    -- ** LoadBalancerTypeEnum+    , LoadBalancerTypeEnum (..)++    -- ** ProtocolEnum+    , ProtocolEnum (..)++    -- ** TargetHealthReasonEnum+    , TargetHealthReasonEnum (..)++    -- ** TargetHealthStateEnum+    , TargetHealthStateEnum (..)++    -- ** Action+    , Action+    , action+    , aType+    , aTargetGroupARN++    -- ** AvailabilityZone+    , AvailabilityZone+    , availabilityZone+    , azSubnetId+    , azZoneName++    -- ** Certificate+    , Certificate+    , certificate+    , cCertificateARN++    -- ** Cipher+    , Cipher+    , cipher+    , cPriority+    , cName++    -- ** Listener+    , Listener+    , listener+    , lSSLPolicy+    , lListenerARN+    , lProtocol+    , lDefaultActions+    , lCertificates+    , lLoadBalancerARN+    , lPort++    -- ** LoadBalancer+    , LoadBalancer+    , loadBalancer+    , lbState+    , lbSecurityGroups+    , lbLoadBalancerName+    , lbCreatedTime+    , lbVPCId+    , lbCanonicalHostedZoneId+    , lbAvailabilityZones+    , lbLoadBalancerARN+    , lbScheme+    , lbType+    , lbDNSName++    -- ** LoadBalancerAttribute+    , LoadBalancerAttribute+    , loadBalancerAttribute+    , lbaValue+    , lbaKey++    -- ** LoadBalancerState+    , LoadBalancerState+    , loadBalancerState+    , lbsReason+    , lbsCode++    -- ** Matcher+    , Matcher+    , matcher+    , mHTTPCode++    -- ** Rule+    , Rule+    , rule+    , rPriority+    , rActions+    , rConditions+    , rRuleARN+    , rIsDefault++    -- ** RuleCondition+    , RuleCondition+    , ruleCondition+    , rcField+    , rcValues++    -- ** RulePriorityPair+    , RulePriorityPair+    , rulePriorityPair+    , rppPriority+    , rppRuleARN++    -- ** SSLPolicy+    , SSLPolicy+    , sslPolicy+    , spCiphers+    , spName+    , spSSLProtocols++    -- ** Tag+    , Tag+    , tag+    , tagValue+    , tagKey++    -- ** TagDescription+    , TagDescription+    , tagDescription+    , tdResourceARN+    , tdTags++    -- ** TargetDescription+    , TargetDescription+    , targetDescription+    , tdPort+    , tdId++    -- ** TargetGroup+    , TargetGroup+    , targetGroup+    , tgMatcher+    , tgHealthCheckPath+    , tgUnhealthyThresholdCount+    , tgVPCId+    , tgTargetGroupARN+    , tgProtocol+    , tgHealthCheckIntervalSeconds+    , tgHealthyThresholdCount+    , tgHealthCheckProtocol+    , tgLoadBalancerARNs+    , tgHealthCheckTimeoutSeconds+    , tgHealthCheckPort+    , tgTargetGroupName+    , tgPort++    -- ** TargetGroupAttribute+    , TargetGroupAttribute+    , targetGroupAttribute+    , tgaValue+    , tgaKey++    -- ** TargetHealth+    , TargetHealth+    , targetHealth+    , thState+    , thReason+    , thDescription++    -- ** TargetHealthDescription+    , TargetHealthDescription+    , targetHealthDescription+    , thdTargetHealth+    , thdHealthCheckPort+    , thdTarget+    ) where++import           Network.AWS.ELBv2.AddTags+import           Network.AWS.ELBv2.CreateListener+import           Network.AWS.ELBv2.CreateLoadBalancer+import           Network.AWS.ELBv2.CreateRule+import           Network.AWS.ELBv2.CreateTargetGroup+import           Network.AWS.ELBv2.DeleteListener+import           Network.AWS.ELBv2.DeleteLoadBalancer+import           Network.AWS.ELBv2.DeleteRule+import           Network.AWS.ELBv2.DeleteTargetGroup+import           Network.AWS.ELBv2.DeregisterTargets+import           Network.AWS.ELBv2.DescribeListeners+import           Network.AWS.ELBv2.DescribeLoadBalancerAttributes+import           Network.AWS.ELBv2.DescribeLoadBalancers+import           Network.AWS.ELBv2.DescribeRules+import           Network.AWS.ELBv2.DescribeSSLPolicies+import           Network.AWS.ELBv2.DescribeTags+import           Network.AWS.ELBv2.DescribeTargetGroupAttributes+import           Network.AWS.ELBv2.DescribeTargetGroups+import           Network.AWS.ELBv2.DescribeTargetHealth+import           Network.AWS.ELBv2.ModifyListener+import           Network.AWS.ELBv2.ModifyLoadBalancerAttributes+import           Network.AWS.ELBv2.ModifyRule+import           Network.AWS.ELBv2.ModifyTargetGroup+import           Network.AWS.ELBv2.ModifyTargetGroupAttributes+import           Network.AWS.ELBv2.RegisterTargets+import           Network.AWS.ELBv2.RemoveTags+import           Network.AWS.ELBv2.SetRulePriorities+import           Network.AWS.ELBv2.SetSecurityGroups+import           Network.AWS.ELBv2.SetSubnets+import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Waiters++{- $errors+Error matchers are designed for use with the functions provided by+<http://hackage.haskell.org/package/lens/docs/Control-Exception-Lens.html Control.Exception.Lens>.+This allows catching (and rethrowing) service specific errors returned+by 'ELBv2'.+-}++{- $operations+Some AWS operations return results that are incomplete and require subsequent+requests in order to obtain the entire result set. The process of sending+subsequent requests to continue where a previous request left off is called+pagination. For example, the 'ListObjects' operation of Amazon S3 returns up to+1000 objects at a time, and you must send subsequent requests with the+appropriate Marker in order to retrieve the next page of results.++Operations that have an 'AWSPager' instance can transparently perform subsequent+requests, correctly setting Markers and other request facets to iterate through+the entire result set of a truncated API operation. Operations which support+this have an additional note in the documentation.++Many operations have the ability to filter results on the server side. See the+individual operation parameters for details.+-}++{- $waiters+Waiters poll by repeatedly sending a request until some remote success condition+configured by the 'Wait' specification is fulfilled. The 'Wait' specification+determines how many attempts should be made, in addition to delay and retry strategies.+-}
+ gen/Network/AWS/ELBv2/AddTags.hs view
@@ -0,0 +1,131 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.AddTags+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Adds the specified tags to the specified resource. You can tag your Application load balancers and your target groups.+--+-- Each tag consists of a key and an optional value. If a resource already has a tag with the same key, 'AddTags' updates its value.+--+-- To list the current tags for your resources, use < DescribeTags>. To remove tags from your resources, use < RemoveTags>.+module Network.AWS.ELBv2.AddTags+    (+    -- * Creating a Request+      addTags+    , AddTags+    -- * Request Lenses+    , atResourceARNs+    , atTags++    -- * Destructuring the Response+    , addTagsResponse+    , AddTagsResponse+    -- * Response Lenses+    , atrsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for AddTags.+--+-- /See:/ 'addTags' smart constructor.+data AddTags = AddTags'+    { _atResourceARNs :: ![Text]+    , _atTags         :: !(List1 Tag)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddTags' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'atResourceARNs'+--+-- * 'atTags'+addTags+    :: NonEmpty Tag -- ^ 'atTags'+    -> AddTags+addTags pTags_ =+    AddTags'+    { _atResourceARNs = mempty+    , _atTags = _List1 # pTags_+    }++-- | The Amazon Resource Name (ARN) of the resource.+atResourceARNs :: Lens' AddTags [Text]+atResourceARNs = lens _atResourceARNs (\ s a -> s{_atResourceARNs = a}) . _Coerce;++-- | The tags. Each resource can have a maximum of 10 tags.+atTags :: Lens' AddTags (NonEmpty Tag)+atTags = lens _atTags (\ s a -> s{_atTags = a}) . _List1;++instance AWSRequest AddTags where+        type Rs AddTags = AddTagsResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper "AddTagsResult"+              (\ s h x -> AddTagsResponse' <$> (pure (fromEnum s)))++instance Hashable AddTags++instance NFData AddTags++instance ToHeaders AddTags where+        toHeaders = const mempty++instance ToPath AddTags where+        toPath = const "/"++instance ToQuery AddTags where+        toQuery AddTags'{..}+          = mconcat+              ["Action" =: ("AddTags" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "ResourceArns" =:+                 toQueryList "member" _atResourceARNs,+               "Tags" =: toQueryList "member" _atTags]++-- | Contains the output of AddTags.+--+-- /See:/ 'addTagsResponse' smart constructor.+newtype AddTagsResponse = AddTagsResponse'+    { _atrsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'AddTagsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'atrsResponseStatus'+addTagsResponse+    :: Int -- ^ 'atrsResponseStatus'+    -> AddTagsResponse+addTagsResponse pResponseStatus_ =+    AddTagsResponse'+    { _atrsResponseStatus = pResponseStatus_+    }++-- | The response status code.+atrsResponseStatus :: Lens' AddTagsResponse Int+atrsResponseStatus = lens _atrsResponseStatus (\ s a -> s{_atrsResponseStatus = a});++instance NFData AddTagsResponse
+ gen/Network/AWS/ELBv2/CreateListener.hs view
@@ -0,0 +1,186 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.CreateListener+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a listener for the specified Application load balancer.+--+-- To update a listener, use < ModifyListener>. When you are finished with a listener, you can delete it using < DeleteListener>. If you are finished with both the listener and the load balancer, you can delete them both using < DeleteLoadBalancer>.+--+-- For more information, see <http://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html Listeners for Your Application Load Balancers> in the /Application Load Balancers Guide/.+module Network.AWS.ELBv2.CreateListener+    (+    -- * Creating a Request+      createListener+    , CreateListener+    -- * Request Lenses+    , clSSLPolicy+    , clCertificates+    , clLoadBalancerARN+    , clProtocol+    , clPort+    , clDefaultActions++    -- * Destructuring the Response+    , createListenerResponse+    , CreateListenerResponse+    -- * Response Lenses+    , clrsListeners+    , clrsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for CreateListener.+--+-- /See:/ 'createListener' smart constructor.+data CreateListener = CreateListener'+    { _clSSLPolicy       :: !(Maybe Text)+    , _clCertificates    :: !(Maybe [Certificate])+    , _clLoadBalancerARN :: !Text+    , _clProtocol        :: !ProtocolEnum+    , _clPort            :: !Nat+    , _clDefaultActions  :: ![Action]+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateListener' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'clSSLPolicy'+--+-- * 'clCertificates'+--+-- * 'clLoadBalancerARN'+--+-- * 'clProtocol'+--+-- * 'clPort'+--+-- * 'clDefaultActions'+createListener+    :: Text -- ^ 'clLoadBalancerARN'+    -> ProtocolEnum -- ^ 'clProtocol'+    -> Natural -- ^ 'clPort'+    -> CreateListener+createListener pLoadBalancerARN_ pProtocol_ pPort_ =+    CreateListener'+    { _clSSLPolicy = Nothing+    , _clCertificates = Nothing+    , _clLoadBalancerARN = pLoadBalancerARN_+    , _clProtocol = pProtocol_+    , _clPort = _Nat # pPort_+    , _clDefaultActions = mempty+    }++-- | The security policy that defines which ciphers and protocols are supported. The default is the current predefined security policy.+clSSLPolicy :: Lens' CreateListener (Maybe Text)+clSSLPolicy = lens _clSSLPolicy (\ s a -> s{_clSSLPolicy = a});++-- | The SSL server certificate. You must provide exactly one certificate if the protocol is HTTPS.+clCertificates :: Lens' CreateListener [Certificate]+clCertificates = lens _clCertificates (\ s a -> s{_clCertificates = a}) . _Default . _Coerce;++-- | The Amazon Resource Name (ARN) of the load balancer.+clLoadBalancerARN :: Lens' CreateListener Text+clLoadBalancerARN = lens _clLoadBalancerARN (\ s a -> s{_clLoadBalancerARN = a});++-- | The protocol for connections from clients to the load balancer.+clProtocol :: Lens' CreateListener ProtocolEnum+clProtocol = lens _clProtocol (\ s a -> s{_clProtocol = a});++-- | The port on which the load balancer is listening.+clPort :: Lens' CreateListener Natural+clPort = lens _clPort (\ s a -> s{_clPort = a}) . _Nat;++-- | The default actions for the listener.+clDefaultActions :: Lens' CreateListener [Action]+clDefaultActions = lens _clDefaultActions (\ s a -> s{_clDefaultActions = a}) . _Coerce;++instance AWSRequest CreateListener where+        type Rs CreateListener = CreateListenerResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper "CreateListenerResult"+              (\ s h x ->+                 CreateListenerResponse' <$>+                   (x .@? "Listeners" .!@ mempty >>=+                      may (parseXMLList "member"))+                     <*> (pure (fromEnum s)))++instance Hashable CreateListener++instance NFData CreateListener++instance ToHeaders CreateListener where+        toHeaders = const mempty++instance ToPath CreateListener where+        toPath = const "/"++instance ToQuery CreateListener where+        toQuery CreateListener'{..}+          = mconcat+              ["Action" =: ("CreateListener" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "SslPolicy" =: _clSSLPolicy,+               "Certificates" =:+                 toQuery (toQueryList "member" <$> _clCertificates),+               "LoadBalancerArn" =: _clLoadBalancerARN,+               "Protocol" =: _clProtocol, "Port" =: _clPort,+               "DefaultActions" =:+                 toQueryList "member" _clDefaultActions]++-- | Contains the output of CreateListener.+--+-- /See:/ 'createListenerResponse' smart constructor.+data CreateListenerResponse = CreateListenerResponse'+    { _clrsListeners      :: !(Maybe [Listener])+    , _clrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateListenerResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'clrsListeners'+--+-- * 'clrsResponseStatus'+createListenerResponse+    :: Int -- ^ 'clrsResponseStatus'+    -> CreateListenerResponse+createListenerResponse pResponseStatus_ =+    CreateListenerResponse'+    { _clrsListeners = Nothing+    , _clrsResponseStatus = pResponseStatus_+    }++-- | Information about the listener.+clrsListeners :: Lens' CreateListenerResponse [Listener]+clrsListeners = lens _clrsListeners (\ s a -> s{_clrsListeners = a}) . _Default . _Coerce;++-- | The response status code.+clrsResponseStatus :: Lens' CreateListenerResponse Int+clrsResponseStatus = lens _clrsResponseStatus (\ s a -> s{_clrsResponseStatus = a});++instance NFData CreateListenerResponse
+ gen/Network/AWS/ELBv2/CreateLoadBalancer.hs view
@@ -0,0 +1,185 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.CreateLoadBalancer+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates an Application load balancer.+--+-- To create listeners for your load balancer, use < CreateListener>. You can add security groups, subnets, and tags when you create your load balancer, or you can add them later using < SetSecurityGroups>, < SetSubnets>, and < AddTags>.+--+-- To describe your current load balancers, see < DescribeLoadBalancers>. When you are finished with a load balancer, you can delete it using < DeleteLoadBalancer>.+--+-- You can create up to 20 load balancers per region per account. You can request an increase for the number of load balancers for your account. For more information, see <http://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-limits.html Limits for Your Application Load Balancer> in the /Application Load Balancers Guide/.+module Network.AWS.ELBv2.CreateLoadBalancer+    (+    -- * Creating a Request+      createLoadBalancer+    , CreateLoadBalancer+    -- * Request Lenses+    , clbSecurityGroups+    , clbScheme+    , clbTags+    , clbName+    , clbSubnets++    -- * Destructuring the Response+    , createLoadBalancerResponse+    , CreateLoadBalancerResponse+    -- * Response Lenses+    , clbrsLoadBalancers+    , clbrsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for CreateLoadBalancer.+--+-- /See:/ 'createLoadBalancer' smart constructor.+data CreateLoadBalancer = CreateLoadBalancer'+    { _clbSecurityGroups :: !(Maybe [Text])+    , _clbScheme         :: !(Maybe LoadBalancerSchemeEnum)+    , _clbTags           :: !(Maybe (List1 Tag))+    , _clbName           :: !Text+    , _clbSubnets        :: ![Text]+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateLoadBalancer' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'clbSecurityGroups'+--+-- * 'clbScheme'+--+-- * 'clbTags'+--+-- * 'clbName'+--+-- * 'clbSubnets'+createLoadBalancer+    :: Text -- ^ 'clbName'+    -> CreateLoadBalancer+createLoadBalancer pName_ =+    CreateLoadBalancer'+    { _clbSecurityGroups = Nothing+    , _clbScheme = Nothing+    , _clbTags = Nothing+    , _clbName = pName_+    , _clbSubnets = mempty+    }++-- | The IDs of the security groups to assign to the load balancer.+clbSecurityGroups :: Lens' CreateLoadBalancer [Text]+clbSecurityGroups = lens _clbSecurityGroups (\ s a -> s{_clbSecurityGroups = a}) . _Default . _Coerce;++-- | The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the Internet.+--+-- The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can only route requests from clients with access to the VPC for the load balancer.+--+-- The default is an Internet-facing load balancer.+clbScheme :: Lens' CreateLoadBalancer (Maybe LoadBalancerSchemeEnum)+clbScheme = lens _clbScheme (\ s a -> s{_clbScheme = a});++-- | One or more tags to assign to the load balancer.+clbTags :: Lens' CreateLoadBalancer (Maybe (NonEmpty Tag))+clbTags = lens _clbTags (\ s a -> s{_clbTags = a}) . mapping _List1;++-- | The name of the load balancer.+--+-- This name must be unique within your AWS account, can have a maximum of 32 characters, must contain only alphanumeric characters or hyphens, and must not begin or end with a hyphen.+clbName :: Lens' CreateLoadBalancer Text+clbName = lens _clbName (\ s a -> s{_clbName = a});++-- | The IDs of the subnets to attach to the load balancer. You can specify only one subnet per Availability Zone. You must specify subnets from at least two Availability Zones.+clbSubnets :: Lens' CreateLoadBalancer [Text]+clbSubnets = lens _clbSubnets (\ s a -> s{_clbSubnets = a}) . _Coerce;++instance AWSRequest CreateLoadBalancer where+        type Rs CreateLoadBalancer =+             CreateLoadBalancerResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper "CreateLoadBalancerResult"+              (\ s h x ->+                 CreateLoadBalancerResponse' <$>+                   (x .@? "LoadBalancers" .!@ mempty >>=+                      may (parseXMLList "member"))+                     <*> (pure (fromEnum s)))++instance Hashable CreateLoadBalancer++instance NFData CreateLoadBalancer++instance ToHeaders CreateLoadBalancer where+        toHeaders = const mempty++instance ToPath CreateLoadBalancer where+        toPath = const "/"++instance ToQuery CreateLoadBalancer where+        toQuery CreateLoadBalancer'{..}+          = mconcat+              ["Action" =: ("CreateLoadBalancer" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "SecurityGroups" =:+                 toQuery+                   (toQueryList "member" <$> _clbSecurityGroups),+               "Scheme" =: _clbScheme,+               "Tags" =:+                 toQuery (toQueryList "member" <$> _clbTags),+               "Name" =: _clbName,+               "Subnets" =: toQueryList "member" _clbSubnets]++-- | Contains the output of CreateLoadBalancer.+--+-- /See:/ 'createLoadBalancerResponse' smart constructor.+data CreateLoadBalancerResponse = CreateLoadBalancerResponse'+    { _clbrsLoadBalancers  :: !(Maybe [LoadBalancer])+    , _clbrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateLoadBalancerResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'clbrsLoadBalancers'+--+-- * 'clbrsResponseStatus'+createLoadBalancerResponse+    :: Int -- ^ 'clbrsResponseStatus'+    -> CreateLoadBalancerResponse+createLoadBalancerResponse pResponseStatus_ =+    CreateLoadBalancerResponse'+    { _clbrsLoadBalancers = Nothing+    , _clbrsResponseStatus = pResponseStatus_+    }++-- | Information about the load balancer.+clbrsLoadBalancers :: Lens' CreateLoadBalancerResponse [LoadBalancer]+clbrsLoadBalancers = lens _clbrsLoadBalancers (\ s a -> s{_clbrsLoadBalancers = a}) . _Default . _Coerce;++-- | The response status code.+clbrsResponseStatus :: Lens' CreateLoadBalancerResponse Int+clbrsResponseStatus = lens _clbrsResponseStatus (\ s a -> s{_clbrsResponseStatus = a});++instance NFData CreateLoadBalancerResponse
+ gen/Network/AWS/ELBv2/CreateRule.hs view
@@ -0,0 +1,164 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.CreateRule+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a rule for the specified listener.+--+-- A rule consists conditions and actions. Rules are evaluated in priority order, from the lowest value to the highest value. When the conditions for a rule are met, the specified actions are taken. If no rule\'s conditions are met, the default actions for the listener are taken.+--+-- To view your current rules, use < DescribeRules>. To update a rule, use < ModifyRule>. To set the priorities of your rules, use < SetRulePriorities>. To delete a rule, use < DeleteRule>.+module Network.AWS.ELBv2.CreateRule+    (+    -- * Creating a Request+      createRule+    , CreateRule+    -- * Request Lenses+    , crListenerARN+    , crConditions+    , crPriority+    , crActions++    -- * Destructuring the Response+    , createRuleResponse+    , CreateRuleResponse+    -- * Response Lenses+    , crrsRules+    , crrsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for CreateRule.+--+-- /See:/ 'createRule' smart constructor.+data CreateRule = CreateRule'+    { _crListenerARN :: !Text+    , _crConditions  :: ![RuleCondition]+    , _crPriority    :: !Nat+    , _crActions     :: ![Action]+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'crListenerARN'+--+-- * 'crConditions'+--+-- * 'crPriority'+--+-- * 'crActions'+createRule+    :: Text -- ^ 'crListenerARN'+    -> Natural -- ^ 'crPriority'+    -> CreateRule+createRule pListenerARN_ pPriority_ =+    CreateRule'+    { _crListenerARN = pListenerARN_+    , _crConditions = mempty+    , _crPriority = _Nat # pPriority_+    , _crActions = mempty+    }++-- | The Amazon Resource Name (ARN) of the listener.+crListenerARN :: Lens' CreateRule Text+crListenerARN = lens _crListenerARN (\ s a -> s{_crListenerARN = a});++-- | The conditions.+crConditions :: Lens' CreateRule [RuleCondition]+crConditions = lens _crConditions (\ s a -> s{_crConditions = a}) . _Coerce;++-- | The priority for the rule. A listener can\'t have multiple rules with the same priority.+crPriority :: Lens' CreateRule Natural+crPriority = lens _crPriority (\ s a -> s{_crPriority = a}) . _Nat;++-- | The actions for the rule.+crActions :: Lens' CreateRule [Action]+crActions = lens _crActions (\ s a -> s{_crActions = a}) . _Coerce;++instance AWSRequest CreateRule where+        type Rs CreateRule = CreateRuleResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper "CreateRuleResult"+              (\ s h x ->+                 CreateRuleResponse' <$>+                   (x .@? "Rules" .!@ mempty >>=+                      may (parseXMLList "member"))+                     <*> (pure (fromEnum s)))++instance Hashable CreateRule++instance NFData CreateRule++instance ToHeaders CreateRule where+        toHeaders = const mempty++instance ToPath CreateRule where+        toPath = const "/"++instance ToQuery CreateRule where+        toQuery CreateRule'{..}+          = mconcat+              ["Action" =: ("CreateRule" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "ListenerArn" =: _crListenerARN,+               "Conditions" =: toQueryList "member" _crConditions,+               "Priority" =: _crPriority,+               "Actions" =: toQueryList "member" _crActions]++-- | Contains the output of CreateRule.+--+-- /See:/ 'createRuleResponse' smart constructor.+data CreateRuleResponse = CreateRuleResponse'+    { _crrsRules          :: !(Maybe [Rule])+    , _crrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateRuleResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'crrsRules'+--+-- * 'crrsResponseStatus'+createRuleResponse+    :: Int -- ^ 'crrsResponseStatus'+    -> CreateRuleResponse+createRuleResponse pResponseStatus_ =+    CreateRuleResponse'+    { _crrsRules = Nothing+    , _crrsResponseStatus = pResponseStatus_+    }++-- | Information about the rule.+crrsRules :: Lens' CreateRuleResponse [Rule]+crrsRules = lens _crrsRules (\ s a -> s{_crrsRules = a}) . _Default . _Coerce;++-- | The response status code.+crrsResponseStatus :: Lens' CreateRuleResponse Int+crrsResponseStatus = lens _crrsResponseStatus (\ s a -> s{_crrsResponseStatus = a});++instance NFData CreateRuleResponse
+ gen/Network/AWS/ELBv2/CreateTargetGroup.hs view
@@ -0,0 +1,251 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.CreateTargetGroup+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Creates a target group.+--+-- To register targets with the target group, use < RegisterTargets>. To update the health check settings for the target group, use < ModifyTargetGroup>. To monitor the health of targets in the target group, use < DescribeTargetHealth>.+--+-- To route traffic to the targets in a target group, specify the target group in an action using < CreateListener> or < CreateRule>.+--+-- To delete a target group, use < DeleteTargetGroup>.+--+-- For more information, see <http://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html Target Groups for Your Application Load Balancers> in the /Application Load Balancers Guide/.+module Network.AWS.ELBv2.CreateTargetGroup+    (+    -- * Creating a Request+      createTargetGroup+    , CreateTargetGroup+    -- * Request Lenses+    , ctgMatcher+    , ctgHealthCheckPath+    , ctgUnhealthyThresholdCount+    , ctgHealthCheckIntervalSeconds+    , ctgHealthyThresholdCount+    , ctgHealthCheckProtocol+    , ctgHealthCheckTimeoutSeconds+    , ctgHealthCheckPort+    , ctgName+    , ctgProtocol+    , ctgPort+    , ctgVPCId++    -- * Destructuring the Response+    , createTargetGroupResponse+    , CreateTargetGroupResponse+    -- * Response Lenses+    , ctgrsTargetGroups+    , ctgrsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for CreateTargetGroup.+--+-- /See:/ 'createTargetGroup' smart constructor.+data CreateTargetGroup = CreateTargetGroup'+    { _ctgMatcher                    :: !(Maybe Matcher)+    , _ctgHealthCheckPath            :: !(Maybe Text)+    , _ctgUnhealthyThresholdCount    :: !(Maybe Nat)+    , _ctgHealthCheckIntervalSeconds :: !(Maybe Nat)+    , _ctgHealthyThresholdCount      :: !(Maybe Nat)+    , _ctgHealthCheckProtocol        :: !(Maybe ProtocolEnum)+    , _ctgHealthCheckTimeoutSeconds  :: !(Maybe Nat)+    , _ctgHealthCheckPort            :: !(Maybe Text)+    , _ctgName                       :: !Text+    , _ctgProtocol                   :: !ProtocolEnum+    , _ctgPort                       :: !Nat+    , _ctgVPCId                      :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateTargetGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ctgMatcher'+--+-- * 'ctgHealthCheckPath'+--+-- * 'ctgUnhealthyThresholdCount'+--+-- * 'ctgHealthCheckIntervalSeconds'+--+-- * 'ctgHealthyThresholdCount'+--+-- * 'ctgHealthCheckProtocol'+--+-- * 'ctgHealthCheckTimeoutSeconds'+--+-- * 'ctgHealthCheckPort'+--+-- * 'ctgName'+--+-- * 'ctgProtocol'+--+-- * 'ctgPort'+--+-- * 'ctgVPCId'+createTargetGroup+    :: Text -- ^ 'ctgName'+    -> ProtocolEnum -- ^ 'ctgProtocol'+    -> Natural -- ^ 'ctgPort'+    -> Text -- ^ 'ctgVPCId'+    -> CreateTargetGroup+createTargetGroup pName_ pProtocol_ pPort_ pVPCId_ =+    CreateTargetGroup'+    { _ctgMatcher = Nothing+    , _ctgHealthCheckPath = Nothing+    , _ctgUnhealthyThresholdCount = Nothing+    , _ctgHealthCheckIntervalSeconds = Nothing+    , _ctgHealthyThresholdCount = Nothing+    , _ctgHealthCheckProtocol = Nothing+    , _ctgHealthCheckTimeoutSeconds = Nothing+    , _ctgHealthCheckPort = Nothing+    , _ctgName = pName_+    , _ctgProtocol = pProtocol_+    , _ctgPort = _Nat # pPort_+    , _ctgVPCId = pVPCId_+    }++-- | The HTTP codes to use when checking for a successful response from a target. The default is 200.+ctgMatcher :: Lens' CreateTargetGroup (Maybe Matcher)+ctgMatcher = lens _ctgMatcher (\ s a -> s{_ctgMatcher = a});++-- | The ping path that is the destination on the targets for health checks. The default is \/.+ctgHealthCheckPath :: Lens' CreateTargetGroup (Maybe Text)+ctgHealthCheckPath = lens _ctgHealthCheckPath (\ s a -> s{_ctgHealthCheckPath = a});++-- | The number of consecutive health check failures required before considering a target unhealthy. The default is 2.+ctgUnhealthyThresholdCount :: Lens' CreateTargetGroup (Maybe Natural)+ctgUnhealthyThresholdCount = lens _ctgUnhealthyThresholdCount (\ s a -> s{_ctgUnhealthyThresholdCount = a}) . mapping _Nat;++-- | The approximate amount of time, in seconds, between health checks of an individual target. The default is 30 seconds.+ctgHealthCheckIntervalSeconds :: Lens' CreateTargetGroup (Maybe Natural)+ctgHealthCheckIntervalSeconds = lens _ctgHealthCheckIntervalSeconds (\ s a -> s{_ctgHealthCheckIntervalSeconds = a}) . mapping _Nat;++-- | The number of consecutive health checks successes required before considering an unhealthy target healthy. The default is 5.+ctgHealthyThresholdCount :: Lens' CreateTargetGroup (Maybe Natural)+ctgHealthyThresholdCount = lens _ctgHealthyThresholdCount (\ s a -> s{_ctgHealthyThresholdCount = a}) . mapping _Nat;++-- | The protocol the load balancer uses when performing health checks on targets. The default is the HTTP protocol.+ctgHealthCheckProtocol :: Lens' CreateTargetGroup (Maybe ProtocolEnum)+ctgHealthCheckProtocol = lens _ctgHealthCheckProtocol (\ s a -> s{_ctgHealthCheckProtocol = a});++-- | The amount of time, in seconds, during which no response from a target means a failed health check. The default is 5 seconds.+ctgHealthCheckTimeoutSeconds :: Lens' CreateTargetGroup (Maybe Natural)+ctgHealthCheckTimeoutSeconds = lens _ctgHealthCheckTimeoutSeconds (\ s a -> s{_ctgHealthCheckTimeoutSeconds = a}) . mapping _Nat;++-- | The port the load balancer uses when performing health checks on targets. The default is 'traffic-port', which indicates the port on which each target receives traffic from the load balancer.+ctgHealthCheckPort :: Lens' CreateTargetGroup (Maybe Text)+ctgHealthCheckPort = lens _ctgHealthCheckPort (\ s a -> s{_ctgHealthCheckPort = a});++-- | The name of the target group.+ctgName :: Lens' CreateTargetGroup Text+ctgName = lens _ctgName (\ s a -> s{_ctgName = a});++-- | The protocol to use for routing traffic to the targets.+ctgProtocol :: Lens' CreateTargetGroup ProtocolEnum+ctgProtocol = lens _ctgProtocol (\ s a -> s{_ctgProtocol = a});++-- | The port on which the targets receive traffic. This port is used unless you specify a port override when registering the target.+ctgPort :: Lens' CreateTargetGroup Natural+ctgPort = lens _ctgPort (\ s a -> s{_ctgPort = a}) . _Nat;++-- | The identifier of the virtual private cloud (VPC).+ctgVPCId :: Lens' CreateTargetGroup Text+ctgVPCId = lens _ctgVPCId (\ s a -> s{_ctgVPCId = a});++instance AWSRequest CreateTargetGroup where+        type Rs CreateTargetGroup = CreateTargetGroupResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper "CreateTargetGroupResult"+              (\ s h x ->+                 CreateTargetGroupResponse' <$>+                   (x .@? "TargetGroups" .!@ mempty >>=+                      may (parseXMLList "member"))+                     <*> (pure (fromEnum s)))++instance Hashable CreateTargetGroup++instance NFData CreateTargetGroup++instance ToHeaders CreateTargetGroup where+        toHeaders = const mempty++instance ToPath CreateTargetGroup where+        toPath = const "/"++instance ToQuery CreateTargetGroup where+        toQuery CreateTargetGroup'{..}+          = mconcat+              ["Action" =: ("CreateTargetGroup" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "Matcher" =: _ctgMatcher,+               "HealthCheckPath" =: _ctgHealthCheckPath,+               "UnhealthyThresholdCount" =:+                 _ctgUnhealthyThresholdCount,+               "HealthCheckIntervalSeconds" =:+                 _ctgHealthCheckIntervalSeconds,+               "HealthyThresholdCount" =: _ctgHealthyThresholdCount,+               "HealthCheckProtocol" =: _ctgHealthCheckProtocol,+               "HealthCheckTimeoutSeconds" =:+                 _ctgHealthCheckTimeoutSeconds,+               "HealthCheckPort" =: _ctgHealthCheckPort,+               "Name" =: _ctgName, "Protocol" =: _ctgProtocol,+               "Port" =: _ctgPort, "VpcId" =: _ctgVPCId]++-- | Contains the output of CreateTargetGroup.+--+-- /See:/ 'createTargetGroupResponse' smart constructor.+data CreateTargetGroupResponse = CreateTargetGroupResponse'+    { _ctgrsTargetGroups   :: !(Maybe [TargetGroup])+    , _ctgrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateTargetGroupResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ctgrsTargetGroups'+--+-- * 'ctgrsResponseStatus'+createTargetGroupResponse+    :: Int -- ^ 'ctgrsResponseStatus'+    -> CreateTargetGroupResponse+createTargetGroupResponse pResponseStatus_ =+    CreateTargetGroupResponse'+    { _ctgrsTargetGroups = Nothing+    , _ctgrsResponseStatus = pResponseStatus_+    }++-- | Information about the target group.+ctgrsTargetGroups :: Lens' CreateTargetGroupResponse [TargetGroup]+ctgrsTargetGroups = lens _ctgrsTargetGroups (\ s a -> s{_ctgrsTargetGroups = a}) . _Default . _Coerce;++-- | The response status code.+ctgrsResponseStatus :: Lens' CreateTargetGroupResponse Int+ctgrsResponseStatus = lens _ctgrsResponseStatus (\ s a -> s{_ctgrsResponseStatus = a});++instance NFData CreateTargetGroupResponse
+ gen/Network/AWS/ELBv2/DeleteListener.hs view
@@ -0,0 +1,119 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.DeleteListener+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified listener.+--+-- Alternatively, your listener is deleted when you delete the load balancer it is attached to using < DeleteLoadBalancer>.+module Network.AWS.ELBv2.DeleteListener+    (+    -- * Creating a Request+      deleteListener+    , DeleteListener+    -- * Request Lenses+    , dlListenerARN++    -- * Destructuring the Response+    , deleteListenerResponse+    , DeleteListenerResponse+    -- * Response Lenses+    , dlrsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for DeleteListener.+--+-- /See:/ 'deleteListener' smart constructor.+newtype DeleteListener = DeleteListener'+    { _dlListenerARN :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteListener' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dlListenerARN'+deleteListener+    :: Text -- ^ 'dlListenerARN'+    -> DeleteListener+deleteListener pListenerARN_ =+    DeleteListener'+    { _dlListenerARN = pListenerARN_+    }++-- | The Amazon Resource Name (ARN) of the listener.+dlListenerARN :: Lens' DeleteListener Text+dlListenerARN = lens _dlListenerARN (\ s a -> s{_dlListenerARN = a});++instance AWSRequest DeleteListener where+        type Rs DeleteListener = DeleteListenerResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper "DeleteListenerResult"+              (\ s h x ->+                 DeleteListenerResponse' <$> (pure (fromEnum s)))++instance Hashable DeleteListener++instance NFData DeleteListener++instance ToHeaders DeleteListener where+        toHeaders = const mempty++instance ToPath DeleteListener where+        toPath = const "/"++instance ToQuery DeleteListener where+        toQuery DeleteListener'{..}+          = mconcat+              ["Action" =: ("DeleteListener" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "ListenerArn" =: _dlListenerARN]++-- | Contains the output of DeleteListener.+--+-- /See:/ 'deleteListenerResponse' smart constructor.+newtype DeleteListenerResponse = DeleteListenerResponse'+    { _dlrsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteListenerResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dlrsResponseStatus'+deleteListenerResponse+    :: Int -- ^ 'dlrsResponseStatus'+    -> DeleteListenerResponse+deleteListenerResponse pResponseStatus_ =+    DeleteListenerResponse'+    { _dlrsResponseStatus = pResponseStatus_+    }++-- | The response status code.+dlrsResponseStatus :: Lens' DeleteListenerResponse Int+dlrsResponseStatus = lens _dlrsResponseStatus (\ s a -> s{_dlrsResponseStatus = a});++instance NFData DeleteListenerResponse
+ gen/Network/AWS/ELBv2/DeleteLoadBalancer.hs view
@@ -0,0 +1,122 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.DeleteLoadBalancer+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified load balancer and its attached listeners.+--+-- You can\'t delete a load balancer if deletion protection is enabled. If the load balancer does not exist or has already been deleted, the call succeeds.+--+-- Deleting a load balancer does not affect its registered targets. For example, your EC2 instances continue to run and are still registered to their target groups. If you no longer need these EC2 instances, you can stop or terminate them.+module Network.AWS.ELBv2.DeleteLoadBalancer+    (+    -- * Creating a Request+      deleteLoadBalancer+    , DeleteLoadBalancer+    -- * Request Lenses+    , dlbLoadBalancerARN++    -- * Destructuring the Response+    , deleteLoadBalancerResponse+    , DeleteLoadBalancerResponse+    -- * Response Lenses+    , drsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for DeleteLoadBalancer.+--+-- /See:/ 'deleteLoadBalancer' smart constructor.+newtype DeleteLoadBalancer = DeleteLoadBalancer'+    { _dlbLoadBalancerARN :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteLoadBalancer' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dlbLoadBalancerARN'+deleteLoadBalancer+    :: Text -- ^ 'dlbLoadBalancerARN'+    -> DeleteLoadBalancer+deleteLoadBalancer pLoadBalancerARN_ =+    DeleteLoadBalancer'+    { _dlbLoadBalancerARN = pLoadBalancerARN_+    }++-- | The Amazon Resource Name (ARN) of the load balancer.+dlbLoadBalancerARN :: Lens' DeleteLoadBalancer Text+dlbLoadBalancerARN = lens _dlbLoadBalancerARN (\ s a -> s{_dlbLoadBalancerARN = a});++instance AWSRequest DeleteLoadBalancer where+        type Rs DeleteLoadBalancer =+             DeleteLoadBalancerResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper "DeleteLoadBalancerResult"+              (\ s h x ->+                 DeleteLoadBalancerResponse' <$> (pure (fromEnum s)))++instance Hashable DeleteLoadBalancer++instance NFData DeleteLoadBalancer++instance ToHeaders DeleteLoadBalancer where+        toHeaders = const mempty++instance ToPath DeleteLoadBalancer where+        toPath = const "/"++instance ToQuery DeleteLoadBalancer where+        toQuery DeleteLoadBalancer'{..}+          = mconcat+              ["Action" =: ("DeleteLoadBalancer" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "LoadBalancerArn" =: _dlbLoadBalancerARN]++-- | Contains the output of DeleteLoadBalancer.+--+-- /See:/ 'deleteLoadBalancerResponse' smart constructor.+newtype DeleteLoadBalancerResponse = DeleteLoadBalancerResponse'+    { _drsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteLoadBalancerResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drsResponseStatus'+deleteLoadBalancerResponse+    :: Int -- ^ 'drsResponseStatus'+    -> DeleteLoadBalancerResponse+deleteLoadBalancerResponse pResponseStatus_ =+    DeleteLoadBalancerResponse'+    { _drsResponseStatus = pResponseStatus_+    }++-- | The response status code.+drsResponseStatus :: Lens' DeleteLoadBalancerResponse Int+drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a});++instance NFData DeleteLoadBalancerResponse
+ gen/Network/AWS/ELBv2/DeleteRule.hs view
@@ -0,0 +1,117 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.DeleteRule+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified rule.+module Network.AWS.ELBv2.DeleteRule+    (+    -- * Creating a Request+      deleteRule+    , DeleteRule+    -- * Request Lenses+    , drRuleARN++    -- * Destructuring the Response+    , deleteRuleResponse+    , DeleteRuleResponse+    -- * Response Lenses+    , drrsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for DeleteRule.+--+-- /See:/ 'deleteRule' smart constructor.+newtype DeleteRule = DeleteRule'+    { _drRuleARN :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drRuleARN'+deleteRule+    :: Text -- ^ 'drRuleARN'+    -> DeleteRule+deleteRule pRuleARN_ =+    DeleteRule'+    { _drRuleARN = pRuleARN_+    }++-- | The Amazon Resource Name (ARN) of the rule.+drRuleARN :: Lens' DeleteRule Text+drRuleARN = lens _drRuleARN (\ s a -> s{_drRuleARN = a});++instance AWSRequest DeleteRule where+        type Rs DeleteRule = DeleteRuleResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper "DeleteRuleResult"+              (\ s h x ->+                 DeleteRuleResponse' <$> (pure (fromEnum s)))++instance Hashable DeleteRule++instance NFData DeleteRule++instance ToHeaders DeleteRule where+        toHeaders = const mempty++instance ToPath DeleteRule where+        toPath = const "/"++instance ToQuery DeleteRule where+        toQuery DeleteRule'{..}+          = mconcat+              ["Action" =: ("DeleteRule" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "RuleArn" =: _drRuleARN]++-- | Contains the output of DeleteRule.+--+-- /See:/ 'deleteRuleResponse' smart constructor.+newtype DeleteRuleResponse = DeleteRuleResponse'+    { _drrsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteRuleResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drrsResponseStatus'+deleteRuleResponse+    :: Int -- ^ 'drrsResponseStatus'+    -> DeleteRuleResponse+deleteRuleResponse pResponseStatus_ =+    DeleteRuleResponse'+    { _drrsResponseStatus = pResponseStatus_+    }++-- | The response status code.+drrsResponseStatus :: Lens' DeleteRuleResponse Int+drrsResponseStatus = lens _drrsResponseStatus (\ s a -> s{_drrsResponseStatus = a});++instance NFData DeleteRuleResponse
+ gen/Network/AWS/ELBv2/DeleteTargetGroup.hs view
@@ -0,0 +1,119 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.DeleteTargetGroup+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deletes the specified target group.+--+-- You can delete a target group if it is not referenced by any actions. Deleting a target group also deletes any associated health checks.+module Network.AWS.ELBv2.DeleteTargetGroup+    (+    -- * Creating a Request+      deleteTargetGroup+    , DeleteTargetGroup+    -- * Request Lenses+    , dtgTargetGroupARN++    -- * Destructuring the Response+    , deleteTargetGroupResponse+    , DeleteTargetGroupResponse+    -- * Response Lenses+    , dtgrsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for DeleteTargetGroup.+--+-- /See:/ 'deleteTargetGroup' smart constructor.+newtype DeleteTargetGroup = DeleteTargetGroup'+    { _dtgTargetGroupARN :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteTargetGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtgTargetGroupARN'+deleteTargetGroup+    :: Text -- ^ 'dtgTargetGroupARN'+    -> DeleteTargetGroup+deleteTargetGroup pTargetGroupARN_ =+    DeleteTargetGroup'+    { _dtgTargetGroupARN = pTargetGroupARN_+    }++-- | The Amazon Resource Name (ARN) of the target group.+dtgTargetGroupARN :: Lens' DeleteTargetGroup Text+dtgTargetGroupARN = lens _dtgTargetGroupARN (\ s a -> s{_dtgTargetGroupARN = a});++instance AWSRequest DeleteTargetGroup where+        type Rs DeleteTargetGroup = DeleteTargetGroupResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper "DeleteTargetGroupResult"+              (\ s h x ->+                 DeleteTargetGroupResponse' <$> (pure (fromEnum s)))++instance Hashable DeleteTargetGroup++instance NFData DeleteTargetGroup++instance ToHeaders DeleteTargetGroup where+        toHeaders = const mempty++instance ToPath DeleteTargetGroup where+        toPath = const "/"++instance ToQuery DeleteTargetGroup where+        toQuery DeleteTargetGroup'{..}+          = mconcat+              ["Action" =: ("DeleteTargetGroup" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "TargetGroupArn" =: _dtgTargetGroupARN]++-- | Contains the output of DeleteTargetGroup.+--+-- /See:/ 'deleteTargetGroupResponse' smart constructor.+newtype DeleteTargetGroupResponse = DeleteTargetGroupResponse'+    { _dtgrsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteTargetGroupResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtgrsResponseStatus'+deleteTargetGroupResponse+    :: Int -- ^ 'dtgrsResponseStatus'+    -> DeleteTargetGroupResponse+deleteTargetGroupResponse pResponseStatus_ =+    DeleteTargetGroupResponse'+    { _dtgrsResponseStatus = pResponseStatus_+    }++-- | The response status code.+dtgrsResponseStatus :: Lens' DeleteTargetGroupResponse Int+dtgrsResponseStatus = lens _dtgrsResponseStatus (\ s a -> s{_dtgrsResponseStatus = a});++instance NFData DeleteTargetGroupResponse
+ gen/Network/AWS/ELBv2/DeregisterTargets.hs view
@@ -0,0 +1,127 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.DeregisterTargets+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Deregisters the specified targets from the specified target group. After the targets are deregistered, they no longer receive traffic from the load balancer.+module Network.AWS.ELBv2.DeregisterTargets+    (+    -- * Creating a Request+      deregisterTargets+    , DeregisterTargets+    -- * Request Lenses+    , dtTargetGroupARN+    , dtTargets++    -- * Destructuring the Response+    , deregisterTargetsResponse+    , DeregisterTargetsResponse+    -- * Response Lenses+    , dtsrsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for DeregisterTargets.+--+-- /See:/ 'deregisterTargets' smart constructor.+data DeregisterTargets = DeregisterTargets'+    { _dtTargetGroupARN :: !Text+    , _dtTargets        :: ![TargetDescription]+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeregisterTargets' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtTargetGroupARN'+--+-- * 'dtTargets'+deregisterTargets+    :: Text -- ^ 'dtTargetGroupARN'+    -> DeregisterTargets+deregisterTargets pTargetGroupARN_ =+    DeregisterTargets'+    { _dtTargetGroupARN = pTargetGroupARN_+    , _dtTargets = mempty+    }++-- | The Amazon Resource Name (ARN) of the target group.+dtTargetGroupARN :: Lens' DeregisterTargets Text+dtTargetGroupARN = lens _dtTargetGroupARN (\ s a -> s{_dtTargetGroupARN = a});++-- | The targets.+dtTargets :: Lens' DeregisterTargets [TargetDescription]+dtTargets = lens _dtTargets (\ s a -> s{_dtTargets = a}) . _Coerce;++instance AWSRequest DeregisterTargets where+        type Rs DeregisterTargets = DeregisterTargetsResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper "DeregisterTargetsResult"+              (\ s h x ->+                 DeregisterTargetsResponse' <$> (pure (fromEnum s)))++instance Hashable DeregisterTargets++instance NFData DeregisterTargets++instance ToHeaders DeregisterTargets where+        toHeaders = const mempty++instance ToPath DeregisterTargets where+        toPath = const "/"++instance ToQuery DeregisterTargets where+        toQuery DeregisterTargets'{..}+          = mconcat+              ["Action" =: ("DeregisterTargets" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "TargetGroupArn" =: _dtTargetGroupARN,+               "Targets" =: toQueryList "member" _dtTargets]++-- | Contains the output of DeregisterTargets.+--+-- /See:/ 'deregisterTargetsResponse' smart constructor.+newtype DeregisterTargetsResponse = DeregisterTargetsResponse'+    { _dtsrsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeregisterTargetsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtsrsResponseStatus'+deregisterTargetsResponse+    :: Int -- ^ 'dtsrsResponseStatus'+    -> DeregisterTargetsResponse+deregisterTargetsResponse pResponseStatus_ =+    DeregisterTargetsResponse'+    { _dtsrsResponseStatus = pResponseStatus_+    }++-- | The response status code.+dtsrsResponseStatus :: Lens' DeregisterTargetsResponse Int+dtsrsResponseStatus = lens _dtsrsResponseStatus (\ s a -> s{_dtsrsResponseStatus = a});++instance NFData DeregisterTargetsResponse
+ gen/Network/AWS/ELBv2/DescribeListeners.hs view
@@ -0,0 +1,178 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.DescribeListeners+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the specified listeners or the listeners for the specified load balancer. You must specify either a load balancer or one or more listeners.+--+-- This operation returns paginated results.+module Network.AWS.ELBv2.DescribeListeners+    (+    -- * Creating a Request+      describeListeners+    , DescribeListeners+    -- * Request Lenses+    , dlListenerARNs+    , dlLoadBalancerARN+    , dlMarker+    , dlPageSize++    -- * Destructuring the Response+    , describeListenersResponse+    , DescribeListenersResponse+    -- * Response Lenses+    , dlsrsNextMarker+    , dlsrsListeners+    , dlsrsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Pager+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for DescribeListeners.+--+-- /See:/ 'describeListeners' smart constructor.+data DescribeListeners = DescribeListeners'+    { _dlListenerARNs    :: !(Maybe [Text])+    , _dlLoadBalancerARN :: !(Maybe Text)+    , _dlMarker          :: !(Maybe Text)+    , _dlPageSize        :: !(Maybe Nat)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeListeners' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dlListenerARNs'+--+-- * 'dlLoadBalancerARN'+--+-- * 'dlMarker'+--+-- * 'dlPageSize'+describeListeners+    :: DescribeListeners+describeListeners =+    DescribeListeners'+    { _dlListenerARNs = Nothing+    , _dlLoadBalancerARN = Nothing+    , _dlMarker = Nothing+    , _dlPageSize = Nothing+    }++-- | The Amazon Resource Names (ARN) of the listeners.+dlListenerARNs :: Lens' DescribeListeners [Text]+dlListenerARNs = lens _dlListenerARNs (\ s a -> s{_dlListenerARNs = a}) . _Default . _Coerce;++-- | The Amazon Resource Name (ARN) of the load balancer.+dlLoadBalancerARN :: Lens' DescribeListeners (Maybe Text)+dlLoadBalancerARN = lens _dlLoadBalancerARN (\ s a -> s{_dlLoadBalancerARN = a});++-- | The marker for the next set of results. (You received this marker from a previous call.)+dlMarker :: Lens' DescribeListeners (Maybe Text)+dlMarker = lens _dlMarker (\ s a -> s{_dlMarker = a});++-- | The maximum number of results to return with this call.+dlPageSize :: Lens' DescribeListeners (Maybe Natural)+dlPageSize = lens _dlPageSize (\ s a -> s{_dlPageSize = a}) . mapping _Nat;++instance AWSPager DescribeListeners where+        page rq rs+          | stop (rs ^. dlsrsNextMarker) = Nothing+          | stop (rs ^. dlsrsListeners) = Nothing+          | otherwise =+            Just $ rq & dlMarker .~ rs ^. dlsrsNextMarker++instance AWSRequest DescribeListeners where+        type Rs DescribeListeners = DescribeListenersResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper "DescribeListenersResult"+              (\ s h x ->+                 DescribeListenersResponse' <$>+                   (x .@? "NextMarker") <*>+                     (x .@? "Listeners" .!@ mempty >>=+                        may (parseXMLList "member"))+                     <*> (pure (fromEnum s)))++instance Hashable DescribeListeners++instance NFData DescribeListeners++instance ToHeaders DescribeListeners where+        toHeaders = const mempty++instance ToPath DescribeListeners where+        toPath = const "/"++instance ToQuery DescribeListeners where+        toQuery DescribeListeners'{..}+          = mconcat+              ["Action" =: ("DescribeListeners" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "ListenerArns" =:+                 toQuery (toQueryList "member" <$> _dlListenerARNs),+               "LoadBalancerArn" =: _dlLoadBalancerARN,+               "Marker" =: _dlMarker, "PageSize" =: _dlPageSize]++-- | Contains the output of DescribeListeners.+--+-- /See:/ 'describeListenersResponse' smart constructor.+data DescribeListenersResponse = DescribeListenersResponse'+    { _dlsrsNextMarker     :: !(Maybe Text)+    , _dlsrsListeners      :: !(Maybe [Listener])+    , _dlsrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeListenersResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dlsrsNextMarker'+--+-- * 'dlsrsListeners'+--+-- * 'dlsrsResponseStatus'+describeListenersResponse+    :: Int -- ^ 'dlsrsResponseStatus'+    -> DescribeListenersResponse+describeListenersResponse pResponseStatus_ =+    DescribeListenersResponse'+    { _dlsrsNextMarker = Nothing+    , _dlsrsListeners = Nothing+    , _dlsrsResponseStatus = pResponseStatus_+    }++-- | The marker to use when requesting the next set of results. If there are no additional results, the string is empty.+dlsrsNextMarker :: Lens' DescribeListenersResponse (Maybe Text)+dlsrsNextMarker = lens _dlsrsNextMarker (\ s a -> s{_dlsrsNextMarker = a});++-- | Information about the listeners.+dlsrsListeners :: Lens' DescribeListenersResponse [Listener]+dlsrsListeners = lens _dlsrsListeners (\ s a -> s{_dlsrsListeners = a}) . _Default . _Coerce;++-- | The response status code.+dlsrsResponseStatus :: Lens' DescribeListenersResponse Int+dlsrsResponseStatus = lens _dlsrsResponseStatus (\ s a -> s{_dlsrsResponseStatus = a});++instance NFData DescribeListenersResponse
+ gen/Network/AWS/ELBv2/DescribeLoadBalancerAttributes.hs view
@@ -0,0 +1,135 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.DescribeLoadBalancerAttributes+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the attributes for the specified load balancer.+module Network.AWS.ELBv2.DescribeLoadBalancerAttributes+    (+    -- * Creating a Request+      describeLoadBalancerAttributes+    , DescribeLoadBalancerAttributes+    -- * Request Lenses+    , dlbaLoadBalancerARN++    -- * Destructuring the Response+    , describeLoadBalancerAttributesResponse+    , DescribeLoadBalancerAttributesResponse+    -- * Response Lenses+    , dlbarsAttributes+    , dlbarsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for DescribeLoadBalancerAttributes.+--+-- /See:/ 'describeLoadBalancerAttributes' smart constructor.+newtype DescribeLoadBalancerAttributes = DescribeLoadBalancerAttributes'+    { _dlbaLoadBalancerARN :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeLoadBalancerAttributes' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dlbaLoadBalancerARN'+describeLoadBalancerAttributes+    :: Text -- ^ 'dlbaLoadBalancerARN'+    -> DescribeLoadBalancerAttributes+describeLoadBalancerAttributes pLoadBalancerARN_ =+    DescribeLoadBalancerAttributes'+    { _dlbaLoadBalancerARN = pLoadBalancerARN_+    }++-- | The Amazon Resource Name (ARN) of the load balancer.+dlbaLoadBalancerARN :: Lens' DescribeLoadBalancerAttributes Text+dlbaLoadBalancerARN = lens _dlbaLoadBalancerARN (\ s a -> s{_dlbaLoadBalancerARN = a});++instance AWSRequest DescribeLoadBalancerAttributes+         where+        type Rs DescribeLoadBalancerAttributes =+             DescribeLoadBalancerAttributesResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper+              "DescribeLoadBalancerAttributesResult"+              (\ s h x ->+                 DescribeLoadBalancerAttributesResponse' <$>+                   (x .@? "Attributes" .!@ mempty >>=+                      may (parseXMLList "member"))+                     <*> (pure (fromEnum s)))++instance Hashable DescribeLoadBalancerAttributes++instance NFData DescribeLoadBalancerAttributes++instance ToHeaders DescribeLoadBalancerAttributes+         where+        toHeaders = const mempty++instance ToPath DescribeLoadBalancerAttributes where+        toPath = const "/"++instance ToQuery DescribeLoadBalancerAttributes where+        toQuery DescribeLoadBalancerAttributes'{..}+          = mconcat+              ["Action" =:+                 ("DescribeLoadBalancerAttributes" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "LoadBalancerArn" =: _dlbaLoadBalancerARN]++-- | Contains the output of DescribeLoadBalancerAttributes.+--+-- /See:/ 'describeLoadBalancerAttributesResponse' smart constructor.+data DescribeLoadBalancerAttributesResponse = DescribeLoadBalancerAttributesResponse'+    { _dlbarsAttributes     :: !(Maybe [LoadBalancerAttribute])+    , _dlbarsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeLoadBalancerAttributesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dlbarsAttributes'+--+-- * 'dlbarsResponseStatus'+describeLoadBalancerAttributesResponse+    :: Int -- ^ 'dlbarsResponseStatus'+    -> DescribeLoadBalancerAttributesResponse+describeLoadBalancerAttributesResponse pResponseStatus_ =+    DescribeLoadBalancerAttributesResponse'+    { _dlbarsAttributes = Nothing+    , _dlbarsResponseStatus = pResponseStatus_+    }++-- | Information about the load balancer attributes.+dlbarsAttributes :: Lens' DescribeLoadBalancerAttributesResponse [LoadBalancerAttribute]+dlbarsAttributes = lens _dlbarsAttributes (\ s a -> s{_dlbarsAttributes = a}) . _Default . _Coerce;++-- | The response status code.+dlbarsResponseStatus :: Lens' DescribeLoadBalancerAttributesResponse Int+dlbarsResponseStatus = lens _dlbarsResponseStatus (\ s a -> s{_dlbarsResponseStatus = a});++instance NFData+         DescribeLoadBalancerAttributesResponse
+ gen/Network/AWS/ELBv2/DescribeLoadBalancers.hs view
@@ -0,0 +1,183 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.DescribeLoadBalancers+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the specified Application load balancers or all of your Application load balancers.+--+-- To describe the listeners for a load balancer, use < DescribeListeners>. To describe the attributes for a load balancer, use < DescribeLoadBalancerAttributes>.+--+-- This operation returns paginated results.+module Network.AWS.ELBv2.DescribeLoadBalancers+    (+    -- * Creating a Request+      describeLoadBalancers+    , DescribeLoadBalancers+    -- * Request Lenses+    , dlbNames+    , dlbLoadBalancerARNs+    , dlbMarker+    , dlbPageSize++    -- * Destructuring the Response+    , describeLoadBalancersResponse+    , DescribeLoadBalancersResponse+    -- * Response Lenses+    , dlbrsLoadBalancers+    , dlbrsNextMarker+    , dlbrsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Pager+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for DescribeLoadBalancers.+--+-- /See:/ 'describeLoadBalancers' smart constructor.+data DescribeLoadBalancers = DescribeLoadBalancers'+    { _dlbNames            :: !(Maybe [Text])+    , _dlbLoadBalancerARNs :: !(Maybe [Text])+    , _dlbMarker           :: !(Maybe Text)+    , _dlbPageSize         :: !(Maybe Nat)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeLoadBalancers' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dlbNames'+--+-- * 'dlbLoadBalancerARNs'+--+-- * 'dlbMarker'+--+-- * 'dlbPageSize'+describeLoadBalancers+    :: DescribeLoadBalancers+describeLoadBalancers =+    DescribeLoadBalancers'+    { _dlbNames = Nothing+    , _dlbLoadBalancerARNs = Nothing+    , _dlbMarker = Nothing+    , _dlbPageSize = Nothing+    }++-- | The names of the load balancers.+dlbNames :: Lens' DescribeLoadBalancers [Text]+dlbNames = lens _dlbNames (\ s a -> s{_dlbNames = a}) . _Default . _Coerce;++-- | The Amazon Resource Names (ARN) of the load balancers.+dlbLoadBalancerARNs :: Lens' DescribeLoadBalancers [Text]+dlbLoadBalancerARNs = lens _dlbLoadBalancerARNs (\ s a -> s{_dlbLoadBalancerARNs = a}) . _Default . _Coerce;++-- | The marker for the next set of results. (You received this marker from a previous call.)+dlbMarker :: Lens' DescribeLoadBalancers (Maybe Text)+dlbMarker = lens _dlbMarker (\ s a -> s{_dlbMarker = a});++-- | The maximum number of results to return with this call.+dlbPageSize :: Lens' DescribeLoadBalancers (Maybe Natural)+dlbPageSize = lens _dlbPageSize (\ s a -> s{_dlbPageSize = a}) . mapping _Nat;++instance AWSPager DescribeLoadBalancers where+        page rq rs+          | stop (rs ^. dlbrsNextMarker) = Nothing+          | stop (rs ^. dlbrsLoadBalancers) = Nothing+          | otherwise =+            Just $ rq & dlbMarker .~ rs ^. dlbrsNextMarker++instance AWSRequest DescribeLoadBalancers where+        type Rs DescribeLoadBalancers =+             DescribeLoadBalancersResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper "DescribeLoadBalancersResult"+              (\ s h x ->+                 DescribeLoadBalancersResponse' <$>+                   (x .@? "LoadBalancers" .!@ mempty >>=+                      may (parseXMLList "member"))+                     <*> (x .@? "NextMarker")+                     <*> (pure (fromEnum s)))++instance Hashable DescribeLoadBalancers++instance NFData DescribeLoadBalancers++instance ToHeaders DescribeLoadBalancers where+        toHeaders = const mempty++instance ToPath DescribeLoadBalancers where+        toPath = const "/"++instance ToQuery DescribeLoadBalancers where+        toQuery DescribeLoadBalancers'{..}+          = mconcat+              ["Action" =: ("DescribeLoadBalancers" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "Names" =:+                 toQuery (toQueryList "member" <$> _dlbNames),+               "LoadBalancerArns" =:+                 toQuery+                   (toQueryList "member" <$> _dlbLoadBalancerARNs),+               "Marker" =: _dlbMarker, "PageSize" =: _dlbPageSize]++-- | Contains the output of DescribeLoadBalancers.+--+-- /See:/ 'describeLoadBalancersResponse' smart constructor.+data DescribeLoadBalancersResponse = DescribeLoadBalancersResponse'+    { _dlbrsLoadBalancers  :: !(Maybe [LoadBalancer])+    , _dlbrsNextMarker     :: !(Maybe Text)+    , _dlbrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeLoadBalancersResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dlbrsLoadBalancers'+--+-- * 'dlbrsNextMarker'+--+-- * 'dlbrsResponseStatus'+describeLoadBalancersResponse+    :: Int -- ^ 'dlbrsResponseStatus'+    -> DescribeLoadBalancersResponse+describeLoadBalancersResponse pResponseStatus_ =+    DescribeLoadBalancersResponse'+    { _dlbrsLoadBalancers = Nothing+    , _dlbrsNextMarker = Nothing+    , _dlbrsResponseStatus = pResponseStatus_+    }++-- | Information about the load balancers.+dlbrsLoadBalancers :: Lens' DescribeLoadBalancersResponse [LoadBalancer]+dlbrsLoadBalancers = lens _dlbrsLoadBalancers (\ s a -> s{_dlbrsLoadBalancers = a}) . _Default . _Coerce;++-- | The marker to use when requesting the next set of results. If there are no additional results, the string is empty.+dlbrsNextMarker :: Lens' DescribeLoadBalancersResponse (Maybe Text)+dlbrsNextMarker = lens _dlbrsNextMarker (\ s a -> s{_dlbrsNextMarker = a});++-- | The response status code.+dlbrsResponseStatus :: Lens' DescribeLoadBalancersResponse Int+dlbrsResponseStatus = lens _dlbrsResponseStatus (\ s a -> s{_dlbrsResponseStatus = a});++instance NFData DescribeLoadBalancersResponse
+ gen/Network/AWS/ELBv2/DescribeRules.hs view
@@ -0,0 +1,139 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.DescribeRules+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the specified rules or the rules for the specified listener. You must specify either a listener or one or more rules.+module Network.AWS.ELBv2.DescribeRules+    (+    -- * Creating a Request+      describeRules+    , DescribeRules+    -- * Request Lenses+    , drListenerARN+    , drRuleARNs++    -- * Destructuring the Response+    , describeRulesResponse+    , DescribeRulesResponse+    -- * Response Lenses+    , drsrsRules+    , drsrsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for DescribeRules.+--+-- /See:/ 'describeRules' smart constructor.+data DescribeRules = DescribeRules'+    { _drListenerARN :: !(Maybe Text)+    , _drRuleARNs    :: !(Maybe [Text])+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeRules' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drListenerARN'+--+-- * 'drRuleARNs'+describeRules+    :: DescribeRules+describeRules =+    DescribeRules'+    { _drListenerARN = Nothing+    , _drRuleARNs = Nothing+    }++-- | The Amazon Resource Name (ARN) of the listener.+drListenerARN :: Lens' DescribeRules (Maybe Text)+drListenerARN = lens _drListenerARN (\ s a -> s{_drListenerARN = a});++-- | The Amazon Resource Names (ARN) of the rules.+drRuleARNs :: Lens' DescribeRules [Text]+drRuleARNs = lens _drRuleARNs (\ s a -> s{_drRuleARNs = a}) . _Default . _Coerce;++instance AWSRequest DescribeRules where+        type Rs DescribeRules = DescribeRulesResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper "DescribeRulesResult"+              (\ s h x ->+                 DescribeRulesResponse' <$>+                   (x .@? "Rules" .!@ mempty >>=+                      may (parseXMLList "member"))+                     <*> (pure (fromEnum s)))++instance Hashable DescribeRules++instance NFData DescribeRules++instance ToHeaders DescribeRules where+        toHeaders = const mempty++instance ToPath DescribeRules where+        toPath = const "/"++instance ToQuery DescribeRules where+        toQuery DescribeRules'{..}+          = mconcat+              ["Action" =: ("DescribeRules" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "ListenerArn" =: _drListenerARN,+               "RuleArns" =:+                 toQuery (toQueryList "member" <$> _drRuleARNs)]++-- | Contains the output of DescribeRules.+--+-- /See:/ 'describeRulesResponse' smart constructor.+data DescribeRulesResponse = DescribeRulesResponse'+    { _drsrsRules          :: !(Maybe [Rule])+    , _drsrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeRulesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drsrsRules'+--+-- * 'drsrsResponseStatus'+describeRulesResponse+    :: Int -- ^ 'drsrsResponseStatus'+    -> DescribeRulesResponse+describeRulesResponse pResponseStatus_ =+    DescribeRulesResponse'+    { _drsrsRules = Nothing+    , _drsrsResponseStatus = pResponseStatus_+    }++-- | Information about the rules.+drsrsRules :: Lens' DescribeRulesResponse [Rule]+drsrsRules = lens _drsrsRules (\ s a -> s{_drsrsRules = a}) . _Default . _Coerce;++-- | The response status code.+drsrsResponseStatus :: Lens' DescribeRulesResponse Int+drsrsResponseStatus = lens _drsrsResponseStatus (\ s a -> s{_drsrsResponseStatus = a});++instance NFData DescribeRulesResponse
+ gen/Network/AWS/ELBv2/DescribeSSLPolicies.hs view
@@ -0,0 +1,161 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.DescribeSSLPolicies+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the specified policies or all policies used for SSL negotiation.+--+-- Note that the only supported policy at this time is ELBSecurityPolicy-2015-05.+module Network.AWS.ELBv2.DescribeSSLPolicies+    (+    -- * Creating a Request+      describeSSLPolicies+    , DescribeSSLPolicies+    -- * Request Lenses+    , dspNames+    , dspMarker+    , dspPageSize++    -- * Destructuring the Response+    , describeSSLPoliciesResponse+    , DescribeSSLPoliciesResponse+    -- * Response Lenses+    , dsprsSSLPolicies+    , dsprsNextMarker+    , dsprsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for DescribeSSLPolicies.+--+-- /See:/ 'describeSSLPolicies' smart constructor.+data DescribeSSLPolicies = DescribeSSLPolicies'+    { _dspNames    :: !(Maybe [Text])+    , _dspMarker   :: !(Maybe Text)+    , _dspPageSize :: !(Maybe Nat)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeSSLPolicies' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dspNames'+--+-- * 'dspMarker'+--+-- * 'dspPageSize'+describeSSLPolicies+    :: DescribeSSLPolicies+describeSSLPolicies =+    DescribeSSLPolicies'+    { _dspNames = Nothing+    , _dspMarker = Nothing+    , _dspPageSize = Nothing+    }++-- | The names of the policies.+dspNames :: Lens' DescribeSSLPolicies [Text]+dspNames = lens _dspNames (\ s a -> s{_dspNames = a}) . _Default . _Coerce;++-- | The marker for the next set of results. (You received this marker from a previous call.)+dspMarker :: Lens' DescribeSSLPolicies (Maybe Text)+dspMarker = lens _dspMarker (\ s a -> s{_dspMarker = a});++-- | The maximum number of results to return with this call.+dspPageSize :: Lens' DescribeSSLPolicies (Maybe Natural)+dspPageSize = lens _dspPageSize (\ s a -> s{_dspPageSize = a}) . mapping _Nat;++instance AWSRequest DescribeSSLPolicies where+        type Rs DescribeSSLPolicies =+             DescribeSSLPoliciesResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper "DescribeSSLPoliciesResult"+              (\ s h x ->+                 DescribeSSLPoliciesResponse' <$>+                   (x .@? "SslPolicies" .!@ mempty >>=+                      may (parseXMLList "member"))+                     <*> (x .@? "NextMarker")+                     <*> (pure (fromEnum s)))++instance Hashable DescribeSSLPolicies++instance NFData DescribeSSLPolicies++instance ToHeaders DescribeSSLPolicies where+        toHeaders = const mempty++instance ToPath DescribeSSLPolicies where+        toPath = const "/"++instance ToQuery DescribeSSLPolicies where+        toQuery DescribeSSLPolicies'{..}+          = mconcat+              ["Action" =: ("DescribeSSLPolicies" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "Names" =:+                 toQuery (toQueryList "member" <$> _dspNames),+               "Marker" =: _dspMarker, "PageSize" =: _dspPageSize]++-- | Contains the output of DescribeSSLPolicies.+--+-- /See:/ 'describeSSLPoliciesResponse' smart constructor.+data DescribeSSLPoliciesResponse = DescribeSSLPoliciesResponse'+    { _dsprsSSLPolicies    :: !(Maybe [SSLPolicy])+    , _dsprsNextMarker     :: !(Maybe Text)+    , _dsprsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeSSLPoliciesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsprsSSLPolicies'+--+-- * 'dsprsNextMarker'+--+-- * 'dsprsResponseStatus'+describeSSLPoliciesResponse+    :: Int -- ^ 'dsprsResponseStatus'+    -> DescribeSSLPoliciesResponse+describeSSLPoliciesResponse pResponseStatus_ =+    DescribeSSLPoliciesResponse'+    { _dsprsSSLPolicies = Nothing+    , _dsprsNextMarker = Nothing+    , _dsprsResponseStatus = pResponseStatus_+    }++-- | Information about the policies.+dsprsSSLPolicies :: Lens' DescribeSSLPoliciesResponse [SSLPolicy]+dsprsSSLPolicies = lens _dsprsSSLPolicies (\ s a -> s{_dsprsSSLPolicies = a}) . _Default . _Coerce;++-- | The marker to use when requesting the next set of results. If there are no additional results, the string is empty.+dsprsNextMarker :: Lens' DescribeSSLPoliciesResponse (Maybe Text)+dsprsNextMarker = lens _dsprsNextMarker (\ s a -> s{_dsprsNextMarker = a});++-- | The response status code.+dsprsResponseStatus :: Lens' DescribeSSLPoliciesResponse Int+dsprsResponseStatus = lens _dsprsResponseStatus (\ s a -> s{_dsprsResponseStatus = a});++instance NFData DescribeSSLPoliciesResponse
+ gen/Network/AWS/ELBv2/DescribeTags.hs view
@@ -0,0 +1,129 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.DescribeTags+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the tags for the specified resources.+module Network.AWS.ELBv2.DescribeTags+    (+    -- * Creating a Request+      describeTags+    , DescribeTags+    -- * Request Lenses+    , dtResourceARNs++    -- * Destructuring the Response+    , describeTagsResponse+    , DescribeTagsResponse+    -- * Response Lenses+    , dtrsTagDescriptions+    , dtrsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for DescribeTags.+--+-- /See:/ 'describeTags' smart constructor.+newtype DescribeTags = DescribeTags'+    { _dtResourceARNs :: [Text]+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeTags' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtResourceARNs'+describeTags+    :: DescribeTags+describeTags =+    DescribeTags'+    { _dtResourceARNs = mempty+    }++-- | The Amazon Resource Names (ARN) of the resources.+dtResourceARNs :: Lens' DescribeTags [Text]+dtResourceARNs = lens _dtResourceARNs (\ s a -> s{_dtResourceARNs = a}) . _Coerce;++instance AWSRequest DescribeTags where+        type Rs DescribeTags = DescribeTagsResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper "DescribeTagsResult"+              (\ s h x ->+                 DescribeTagsResponse' <$>+                   (x .@? "TagDescriptions" .!@ mempty >>=+                      may (parseXMLList "member"))+                     <*> (pure (fromEnum s)))++instance Hashable DescribeTags++instance NFData DescribeTags++instance ToHeaders DescribeTags where+        toHeaders = const mempty++instance ToPath DescribeTags where+        toPath = const "/"++instance ToQuery DescribeTags where+        toQuery DescribeTags'{..}+          = mconcat+              ["Action" =: ("DescribeTags" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "ResourceArns" =:+                 toQueryList "member" _dtResourceARNs]++-- | Contains the output of DescribeTags.+--+-- /See:/ 'describeTagsResponse' smart constructor.+data DescribeTagsResponse = DescribeTagsResponse'+    { _dtrsTagDescriptions :: !(Maybe [TagDescription])+    , _dtrsResponseStatus  :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeTagsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtrsTagDescriptions'+--+-- * 'dtrsResponseStatus'+describeTagsResponse+    :: Int -- ^ 'dtrsResponseStatus'+    -> DescribeTagsResponse+describeTagsResponse pResponseStatus_ =+    DescribeTagsResponse'+    { _dtrsTagDescriptions = Nothing+    , _dtrsResponseStatus = pResponseStatus_+    }++-- | Information about the tags.+dtrsTagDescriptions :: Lens' DescribeTagsResponse [TagDescription]+dtrsTagDescriptions = lens _dtrsTagDescriptions (\ s a -> s{_dtrsTagDescriptions = a}) . _Default . _Coerce;++-- | The response status code.+dtrsResponseStatus :: Lens' DescribeTagsResponse Int+dtrsResponseStatus = lens _dtrsResponseStatus (\ s a -> s{_dtrsResponseStatus = a});++instance NFData DescribeTagsResponse
+ gen/Network/AWS/ELBv2/DescribeTargetGroupAttributes.hs view
@@ -0,0 +1,134 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.DescribeTargetGroupAttributes+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the attributes for the specified target group.+module Network.AWS.ELBv2.DescribeTargetGroupAttributes+    (+    -- * Creating a Request+      describeTargetGroupAttributes+    , DescribeTargetGroupAttributes+    -- * Request Lenses+    , dtgaTargetGroupARN++    -- * Destructuring the Response+    , describeTargetGroupAttributesResponse+    , DescribeTargetGroupAttributesResponse+    -- * Response Lenses+    , dtgarsAttributes+    , dtgarsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for DescribeTargetGroupAttributes.+--+-- /See:/ 'describeTargetGroupAttributes' smart constructor.+newtype DescribeTargetGroupAttributes = DescribeTargetGroupAttributes'+    { _dtgaTargetGroupARN :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeTargetGroupAttributes' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtgaTargetGroupARN'+describeTargetGroupAttributes+    :: Text -- ^ 'dtgaTargetGroupARN'+    -> DescribeTargetGroupAttributes+describeTargetGroupAttributes pTargetGroupARN_ =+    DescribeTargetGroupAttributes'+    { _dtgaTargetGroupARN = pTargetGroupARN_+    }++-- | The Amazon Resource Name (ARN) of the target group.+dtgaTargetGroupARN :: Lens' DescribeTargetGroupAttributes Text+dtgaTargetGroupARN = lens _dtgaTargetGroupARN (\ s a -> s{_dtgaTargetGroupARN = a});++instance AWSRequest DescribeTargetGroupAttributes+         where+        type Rs DescribeTargetGroupAttributes =+             DescribeTargetGroupAttributesResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper+              "DescribeTargetGroupAttributesResult"+              (\ s h x ->+                 DescribeTargetGroupAttributesResponse' <$>+                   (x .@? "Attributes" .!@ mempty >>=+                      may (parseXMLList "member"))+                     <*> (pure (fromEnum s)))++instance Hashable DescribeTargetGroupAttributes++instance NFData DescribeTargetGroupAttributes++instance ToHeaders DescribeTargetGroupAttributes+         where+        toHeaders = const mempty++instance ToPath DescribeTargetGroupAttributes where+        toPath = const "/"++instance ToQuery DescribeTargetGroupAttributes where+        toQuery DescribeTargetGroupAttributes'{..}+          = mconcat+              ["Action" =:+                 ("DescribeTargetGroupAttributes" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "TargetGroupArn" =: _dtgaTargetGroupARN]++-- | Contains the output of DescribeTargetGroupAttributes.+--+-- /See:/ 'describeTargetGroupAttributesResponse' smart constructor.+data DescribeTargetGroupAttributesResponse = DescribeTargetGroupAttributesResponse'+    { _dtgarsAttributes     :: !(Maybe [TargetGroupAttribute])+    , _dtgarsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeTargetGroupAttributesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtgarsAttributes'+--+-- * 'dtgarsResponseStatus'+describeTargetGroupAttributesResponse+    :: Int -- ^ 'dtgarsResponseStatus'+    -> DescribeTargetGroupAttributesResponse+describeTargetGroupAttributesResponse pResponseStatus_ =+    DescribeTargetGroupAttributesResponse'+    { _dtgarsAttributes = Nothing+    , _dtgarsResponseStatus = pResponseStatus_+    }++-- | Information about the target group attributes+dtgarsAttributes :: Lens' DescribeTargetGroupAttributesResponse [TargetGroupAttribute]+dtgarsAttributes = lens _dtgarsAttributes (\ s a -> s{_dtgarsAttributes = a}) . _Default . _Coerce;++-- | The response status code.+dtgarsResponseStatus :: Lens' DescribeTargetGroupAttributesResponse Int+dtgarsResponseStatus = lens _dtgarsResponseStatus (\ s a -> s{_dtgarsResponseStatus = a});++instance NFData DescribeTargetGroupAttributesResponse
+ gen/Network/AWS/ELBv2/DescribeTargetGroups.hs view
@@ -0,0 +1,193 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.DescribeTargetGroups+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the specified target groups or all of your target groups. By default, all target groups are described. Alternatively, you can specify one of the following to filter the results: the ARN of the load balancer, the names of one or more target groups, or the ARNs of one or more target groups.+--+-- To describe the targets for a target group, use < DescribeTargetHealth>. To describe the attributes of a target group, use < DescribeTargetGroupAttributes>.+--+-- This operation returns paginated results.+module Network.AWS.ELBv2.DescribeTargetGroups+    (+    -- * Creating a Request+      describeTargetGroups+    , DescribeTargetGroups+    -- * Request Lenses+    , dtgTargetGroupARNs+    , dtgNames+    , dtgLoadBalancerARN+    , dtgMarker+    , dtgPageSize++    -- * Destructuring the Response+    , describeTargetGroupsResponse+    , DescribeTargetGroupsResponse+    -- * Response Lenses+    , dtgsrsNextMarker+    , dtgsrsTargetGroups+    , dtgsrsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Pager+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for DescribeTargetGroups.+--+-- /See:/ 'describeTargetGroups' smart constructor.+data DescribeTargetGroups = DescribeTargetGroups'+    { _dtgTargetGroupARNs :: !(Maybe [Text])+    , _dtgNames           :: !(Maybe [Text])+    , _dtgLoadBalancerARN :: !(Maybe Text)+    , _dtgMarker          :: !(Maybe Text)+    , _dtgPageSize        :: !(Maybe Nat)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeTargetGroups' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtgTargetGroupARNs'+--+-- * 'dtgNames'+--+-- * 'dtgLoadBalancerARN'+--+-- * 'dtgMarker'+--+-- * 'dtgPageSize'+describeTargetGroups+    :: DescribeTargetGroups+describeTargetGroups =+    DescribeTargetGroups'+    { _dtgTargetGroupARNs = Nothing+    , _dtgNames = Nothing+    , _dtgLoadBalancerARN = Nothing+    , _dtgMarker = Nothing+    , _dtgPageSize = Nothing+    }++-- | The Amazon Resource Names (ARN) of the target groups.+dtgTargetGroupARNs :: Lens' DescribeTargetGroups [Text]+dtgTargetGroupARNs = lens _dtgTargetGroupARNs (\ s a -> s{_dtgTargetGroupARNs = a}) . _Default . _Coerce;++-- | The names of the target groups.+dtgNames :: Lens' DescribeTargetGroups [Text]+dtgNames = lens _dtgNames (\ s a -> s{_dtgNames = a}) . _Default . _Coerce;++-- | The Amazon Resource Name (ARN) of the load balancer.+dtgLoadBalancerARN :: Lens' DescribeTargetGroups (Maybe Text)+dtgLoadBalancerARN = lens _dtgLoadBalancerARN (\ s a -> s{_dtgLoadBalancerARN = a});++-- | The marker for the next set of results. (You received this marker from a previous call.)+dtgMarker :: Lens' DescribeTargetGroups (Maybe Text)+dtgMarker = lens _dtgMarker (\ s a -> s{_dtgMarker = a});++-- | The maximum number of results to return with this call.+dtgPageSize :: Lens' DescribeTargetGroups (Maybe Natural)+dtgPageSize = lens _dtgPageSize (\ s a -> s{_dtgPageSize = a}) . mapping _Nat;++instance AWSPager DescribeTargetGroups where+        page rq rs+          | stop (rs ^. dtgsrsNextMarker) = Nothing+          | stop (rs ^. dtgsrsTargetGroups) = Nothing+          | otherwise =+            Just $ rq & dtgMarker .~ rs ^. dtgsrsNextMarker++instance AWSRequest DescribeTargetGroups where+        type Rs DescribeTargetGroups =+             DescribeTargetGroupsResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper "DescribeTargetGroupsResult"+              (\ s h x ->+                 DescribeTargetGroupsResponse' <$>+                   (x .@? "NextMarker") <*>+                     (x .@? "TargetGroups" .!@ mempty >>=+                        may (parseXMLList "member"))+                     <*> (pure (fromEnum s)))++instance Hashable DescribeTargetGroups++instance NFData DescribeTargetGroups++instance ToHeaders DescribeTargetGroups where+        toHeaders = const mempty++instance ToPath DescribeTargetGroups where+        toPath = const "/"++instance ToQuery DescribeTargetGroups where+        toQuery DescribeTargetGroups'{..}+          = mconcat+              ["Action" =: ("DescribeTargetGroups" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "TargetGroupArns" =:+                 toQuery+                   (toQueryList "member" <$> _dtgTargetGroupARNs),+               "Names" =:+                 toQuery (toQueryList "member" <$> _dtgNames),+               "LoadBalancerArn" =: _dtgLoadBalancerARN,+               "Marker" =: _dtgMarker, "PageSize" =: _dtgPageSize]++-- | Contains the output of DescribeTargetGroups.+--+-- /See:/ 'describeTargetGroupsResponse' smart constructor.+data DescribeTargetGroupsResponse = DescribeTargetGroupsResponse'+    { _dtgsrsNextMarker     :: !(Maybe Text)+    , _dtgsrsTargetGroups   :: !(Maybe [TargetGroup])+    , _dtgsrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeTargetGroupsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtgsrsNextMarker'+--+-- * 'dtgsrsTargetGroups'+--+-- * 'dtgsrsResponseStatus'+describeTargetGroupsResponse+    :: Int -- ^ 'dtgsrsResponseStatus'+    -> DescribeTargetGroupsResponse+describeTargetGroupsResponse pResponseStatus_ =+    DescribeTargetGroupsResponse'+    { _dtgsrsNextMarker = Nothing+    , _dtgsrsTargetGroups = Nothing+    , _dtgsrsResponseStatus = pResponseStatus_+    }++-- | The marker to use when requesting the next set of results. If there are no additional results, the string is empty.+dtgsrsNextMarker :: Lens' DescribeTargetGroupsResponse (Maybe Text)+dtgsrsNextMarker = lens _dtgsrsNextMarker (\ s a -> s{_dtgsrsNextMarker = a});++-- | Information about the target groups.+dtgsrsTargetGroups :: Lens' DescribeTargetGroupsResponse [TargetGroup]+dtgsrsTargetGroups = lens _dtgsrsTargetGroups (\ s a -> s{_dtgsrsTargetGroups = a}) . _Default . _Coerce;++-- | The response status code.+dtgsrsResponseStatus :: Lens' DescribeTargetGroupsResponse Int+dtgsrsResponseStatus = lens _dtgsrsResponseStatus (\ s a -> s{_dtgsrsResponseStatus = a});++instance NFData DescribeTargetGroupsResponse
+ gen/Network/AWS/ELBv2/DescribeTargetHealth.hs view
@@ -0,0 +1,141 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.DescribeTargetHealth+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Describes the health of the specified targets or all of your targets.+module Network.AWS.ELBv2.DescribeTargetHealth+    (+    -- * Creating a Request+      describeTargetHealth+    , DescribeTargetHealth+    -- * Request Lenses+    , dthTargets+    , dthTargetGroupARN++    -- * Destructuring the Response+    , describeTargetHealthResponse+    , DescribeTargetHealthResponse+    -- * Response Lenses+    , dthrsTargetHealthDescriptions+    , dthrsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for DescribeTargetHealth.+--+-- /See:/ 'describeTargetHealth' smart constructor.+data DescribeTargetHealth = DescribeTargetHealth'+    { _dthTargets        :: !(Maybe [TargetDescription])+    , _dthTargetGroupARN :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeTargetHealth' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dthTargets'+--+-- * 'dthTargetGroupARN'+describeTargetHealth+    :: Text -- ^ 'dthTargetGroupARN'+    -> DescribeTargetHealth+describeTargetHealth pTargetGroupARN_ =+    DescribeTargetHealth'+    { _dthTargets = Nothing+    , _dthTargetGroupARN = pTargetGroupARN_+    }++-- | The targets.+dthTargets :: Lens' DescribeTargetHealth [TargetDescription]+dthTargets = lens _dthTargets (\ s a -> s{_dthTargets = a}) . _Default . _Coerce;++-- | The Amazon Resource Name (ARN) of the target group.+dthTargetGroupARN :: Lens' DescribeTargetHealth Text+dthTargetGroupARN = lens _dthTargetGroupARN (\ s a -> s{_dthTargetGroupARN = a});++instance AWSRequest DescribeTargetHealth where+        type Rs DescribeTargetHealth =+             DescribeTargetHealthResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper "DescribeTargetHealthResult"+              (\ s h x ->+                 DescribeTargetHealthResponse' <$>+                   (x .@? "TargetHealthDescriptions" .!@ mempty >>=+                      may (parseXMLList "member"))+                     <*> (pure (fromEnum s)))++instance Hashable DescribeTargetHealth++instance NFData DescribeTargetHealth++instance ToHeaders DescribeTargetHealth where+        toHeaders = const mempty++instance ToPath DescribeTargetHealth where+        toPath = const "/"++instance ToQuery DescribeTargetHealth where+        toQuery DescribeTargetHealth'{..}+          = mconcat+              ["Action" =: ("DescribeTargetHealth" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "Targets" =:+                 toQuery (toQueryList "member" <$> _dthTargets),+               "TargetGroupArn" =: _dthTargetGroupARN]++-- | Contains the output of DescribeTargetHealth.+--+-- /See:/ 'describeTargetHealthResponse' smart constructor.+data DescribeTargetHealthResponse = DescribeTargetHealthResponse'+    { _dthrsTargetHealthDescriptions :: !(Maybe [TargetHealthDescription])+    , _dthrsResponseStatus           :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeTargetHealthResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dthrsTargetHealthDescriptions'+--+-- * 'dthrsResponseStatus'+describeTargetHealthResponse+    :: Int -- ^ 'dthrsResponseStatus'+    -> DescribeTargetHealthResponse+describeTargetHealthResponse pResponseStatus_ =+    DescribeTargetHealthResponse'+    { _dthrsTargetHealthDescriptions = Nothing+    , _dthrsResponseStatus = pResponseStatus_+    }++-- | Information about the health of the targets.+dthrsTargetHealthDescriptions :: Lens' DescribeTargetHealthResponse [TargetHealthDescription]+dthrsTargetHealthDescriptions = lens _dthrsTargetHealthDescriptions (\ s a -> s{_dthrsTargetHealthDescriptions = a}) . _Default . _Coerce;++-- | The response status code.+dthrsResponseStatus :: Lens' DescribeTargetHealthResponse Int+dthrsResponseStatus = lens _dthrsResponseStatus (\ s a -> s{_dthrsResponseStatus = a});++instance NFData DescribeTargetHealthResponse
+ gen/Network/AWS/ELBv2/ModifyListener.hs view
@@ -0,0 +1,182 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.ModifyListener+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies the specified properties of the specified listener.+--+-- Any properties that you do not specify retain their current values. However, changing the protocol from HTTPS to HTTP removes the security policy and SSL certificate properties. If you change the protocol from HTTP to HTTPS, you must add the security policy.+module Network.AWS.ELBv2.ModifyListener+    (+    -- * Creating a Request+      modifyListener+    , ModifyListener+    -- * Request Lenses+    , mlSSLPolicy+    , mlProtocol+    , mlDefaultActions+    , mlCertificates+    , mlPort+    , mlListenerARN++    -- * Destructuring the Response+    , modifyListenerResponse+    , ModifyListenerResponse+    -- * Response Lenses+    , mlrsListeners+    , mlrsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for ModifyListener.+--+-- /See:/ 'modifyListener' smart constructor.+data ModifyListener = ModifyListener'+    { _mlSSLPolicy      :: !(Maybe Text)+    , _mlProtocol       :: !(Maybe ProtocolEnum)+    , _mlDefaultActions :: !(Maybe [Action])+    , _mlCertificates   :: !(Maybe [Certificate])+    , _mlPort           :: !(Maybe Nat)+    , _mlListenerARN    :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ModifyListener' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mlSSLPolicy'+--+-- * 'mlProtocol'+--+-- * 'mlDefaultActions'+--+-- * 'mlCertificates'+--+-- * 'mlPort'+--+-- * 'mlListenerARN'+modifyListener+    :: Text -- ^ 'mlListenerARN'+    -> ModifyListener+modifyListener pListenerARN_ =+    ModifyListener'+    { _mlSSLPolicy = Nothing+    , _mlProtocol = Nothing+    , _mlDefaultActions = Nothing+    , _mlCertificates = Nothing+    , _mlPort = Nothing+    , _mlListenerARN = pListenerARN_+    }++-- | The security policy that defines which ciphers and protocols are supported.+mlSSLPolicy :: Lens' ModifyListener (Maybe Text)+mlSSLPolicy = lens _mlSSLPolicy (\ s a -> s{_mlSSLPolicy = a});++-- | The protocol for connections from clients to the load balancer.+mlProtocol :: Lens' ModifyListener (Maybe ProtocolEnum)+mlProtocol = lens _mlProtocol (\ s a -> s{_mlProtocol = a});++-- | The default actions.+mlDefaultActions :: Lens' ModifyListener [Action]+mlDefaultActions = lens _mlDefaultActions (\ s a -> s{_mlDefaultActions = a}) . _Default . _Coerce;++-- | The SSL server certificate.+mlCertificates :: Lens' ModifyListener [Certificate]+mlCertificates = lens _mlCertificates (\ s a -> s{_mlCertificates = a}) . _Default . _Coerce;++-- | The port for connections from clients to the load balancer.+mlPort :: Lens' ModifyListener (Maybe Natural)+mlPort = lens _mlPort (\ s a -> s{_mlPort = a}) . mapping _Nat;++-- | The Amazon Resource Name (ARN) of the listener.+mlListenerARN :: Lens' ModifyListener Text+mlListenerARN = lens _mlListenerARN (\ s a -> s{_mlListenerARN = a});++instance AWSRequest ModifyListener where+        type Rs ModifyListener = ModifyListenerResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper "ModifyListenerResult"+              (\ s h x ->+                 ModifyListenerResponse' <$>+                   (x .@? "Listeners" .!@ mempty >>=+                      may (parseXMLList "member"))+                     <*> (pure (fromEnum s)))++instance Hashable ModifyListener++instance NFData ModifyListener++instance ToHeaders ModifyListener where+        toHeaders = const mempty++instance ToPath ModifyListener where+        toPath = const "/"++instance ToQuery ModifyListener where+        toQuery ModifyListener'{..}+          = mconcat+              ["Action" =: ("ModifyListener" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "SslPolicy" =: _mlSSLPolicy,+               "Protocol" =: _mlProtocol,+               "DefaultActions" =:+                 toQuery (toQueryList "member" <$> _mlDefaultActions),+               "Certificates" =:+                 toQuery (toQueryList "member" <$> _mlCertificates),+               "Port" =: _mlPort, "ListenerArn" =: _mlListenerARN]++-- | Contains the output of ModifyListener.+--+-- /See:/ 'modifyListenerResponse' smart constructor.+data ModifyListenerResponse = ModifyListenerResponse'+    { _mlrsListeners      :: !(Maybe [Listener])+    , _mlrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ModifyListenerResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mlrsListeners'+--+-- * 'mlrsResponseStatus'+modifyListenerResponse+    :: Int -- ^ 'mlrsResponseStatus'+    -> ModifyListenerResponse+modifyListenerResponse pResponseStatus_ =+    ModifyListenerResponse'+    { _mlrsListeners = Nothing+    , _mlrsResponseStatus = pResponseStatus_+    }++-- | Information about the modified listeners.+mlrsListeners :: Lens' ModifyListenerResponse [Listener]+mlrsListeners = lens _mlrsListeners (\ s a -> s{_mlrsListeners = a}) . _Default . _Coerce;++-- | The response status code.+mlrsResponseStatus :: Lens' ModifyListenerResponse Int+mlrsResponseStatus = lens _mlrsResponseStatus (\ s a -> s{_mlrsResponseStatus = a});++instance NFData ModifyListenerResponse
+ gen/Network/AWS/ELBv2/ModifyLoadBalancerAttributes.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.ModifyLoadBalancerAttributes+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies the specified attributes of the specified load balancer.+--+-- If any of the specified attributes can\'t be modified as requested, the call fails. Any existing attributes that you do not modify retain their current values.+module Network.AWS.ELBv2.ModifyLoadBalancerAttributes+    (+    -- * Creating a Request+      modifyLoadBalancerAttributes+    , ModifyLoadBalancerAttributes+    -- * Request Lenses+    , mlbaLoadBalancerARN+    , mlbaAttributes++    -- * Destructuring the Response+    , modifyLoadBalancerAttributesResponse+    , ModifyLoadBalancerAttributesResponse+    -- * Response Lenses+    , mlbarsAttributes+    , mlbarsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for ModifyLoadBalancerAttributes.+--+-- /See:/ 'modifyLoadBalancerAttributes' smart constructor.+data ModifyLoadBalancerAttributes = ModifyLoadBalancerAttributes'+    { _mlbaLoadBalancerARN :: !Text+    , _mlbaAttributes      :: ![LoadBalancerAttribute]+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ModifyLoadBalancerAttributes' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mlbaLoadBalancerARN'+--+-- * 'mlbaAttributes'+modifyLoadBalancerAttributes+    :: Text -- ^ 'mlbaLoadBalancerARN'+    -> ModifyLoadBalancerAttributes+modifyLoadBalancerAttributes pLoadBalancerARN_ =+    ModifyLoadBalancerAttributes'+    { _mlbaLoadBalancerARN = pLoadBalancerARN_+    , _mlbaAttributes = mempty+    }++-- | The Amazon Resource Name (ARN) of the load balancer.+mlbaLoadBalancerARN :: Lens' ModifyLoadBalancerAttributes Text+mlbaLoadBalancerARN = lens _mlbaLoadBalancerARN (\ s a -> s{_mlbaLoadBalancerARN = a});++-- | The load balancer attributes.+mlbaAttributes :: Lens' ModifyLoadBalancerAttributes [LoadBalancerAttribute]+mlbaAttributes = lens _mlbaAttributes (\ s a -> s{_mlbaAttributes = a}) . _Coerce;++instance AWSRequest ModifyLoadBalancerAttributes+         where+        type Rs ModifyLoadBalancerAttributes =+             ModifyLoadBalancerAttributesResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper+              "ModifyLoadBalancerAttributesResult"+              (\ s h x ->+                 ModifyLoadBalancerAttributesResponse' <$>+                   (x .@? "Attributes" .!@ mempty >>=+                      may (parseXMLList "member"))+                     <*> (pure (fromEnum s)))++instance Hashable ModifyLoadBalancerAttributes++instance NFData ModifyLoadBalancerAttributes++instance ToHeaders ModifyLoadBalancerAttributes where+        toHeaders = const mempty++instance ToPath ModifyLoadBalancerAttributes where+        toPath = const "/"++instance ToQuery ModifyLoadBalancerAttributes where+        toQuery ModifyLoadBalancerAttributes'{..}+          = mconcat+              ["Action" =:+                 ("ModifyLoadBalancerAttributes" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "LoadBalancerArn" =: _mlbaLoadBalancerARN,+               "Attributes" =: toQueryList "member" _mlbaAttributes]++-- | Contains the output of ModifyLoadBalancerAttributes.+--+-- /See:/ 'modifyLoadBalancerAttributesResponse' smart constructor.+data ModifyLoadBalancerAttributesResponse = ModifyLoadBalancerAttributesResponse'+    { _mlbarsAttributes     :: !(Maybe [LoadBalancerAttribute])+    , _mlbarsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ModifyLoadBalancerAttributesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mlbarsAttributes'+--+-- * 'mlbarsResponseStatus'+modifyLoadBalancerAttributesResponse+    :: Int -- ^ 'mlbarsResponseStatus'+    -> ModifyLoadBalancerAttributesResponse+modifyLoadBalancerAttributesResponse pResponseStatus_ =+    ModifyLoadBalancerAttributesResponse'+    { _mlbarsAttributes = Nothing+    , _mlbarsResponseStatus = pResponseStatus_+    }++-- | Information about the load balancer attributes.+mlbarsAttributes :: Lens' ModifyLoadBalancerAttributesResponse [LoadBalancerAttribute]+mlbarsAttributes = lens _mlbarsAttributes (\ s a -> s{_mlbarsAttributes = a}) . _Default . _Coerce;++-- | The response status code.+mlbarsResponseStatus :: Lens' ModifyLoadBalancerAttributesResponse Int+mlbarsResponseStatus = lens _mlbarsResponseStatus (\ s a -> s{_mlbarsResponseStatus = a});++instance NFData ModifyLoadBalancerAttributesResponse
+ gen/Network/AWS/ELBv2/ModifyRule.hs view
@@ -0,0 +1,155 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.ModifyRule+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies the specified rule.+--+-- Any existing properties that you do not modify retain their current values.+--+-- To modify the default action, use < ModifyListener>.+module Network.AWS.ELBv2.ModifyRule+    (+    -- * Creating a Request+      modifyRule+    , ModifyRule+    -- * Request Lenses+    , mrActions+    , mrConditions+    , mrRuleARN++    -- * Destructuring the Response+    , modifyRuleResponse+    , ModifyRuleResponse+    -- * Response Lenses+    , mrrsRules+    , mrrsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for ModifyRules.+--+-- /See:/ 'modifyRule' smart constructor.+data ModifyRule = ModifyRule'+    { _mrActions    :: !(Maybe [Action])+    , _mrConditions :: !(Maybe [RuleCondition])+    , _mrRuleARN    :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ModifyRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mrActions'+--+-- * 'mrConditions'+--+-- * 'mrRuleARN'+modifyRule+    :: Text -- ^ 'mrRuleARN'+    -> ModifyRule+modifyRule pRuleARN_ =+    ModifyRule'+    { _mrActions = Nothing+    , _mrConditions = Nothing+    , _mrRuleARN = pRuleARN_+    }++-- | The actions.+mrActions :: Lens' ModifyRule [Action]+mrActions = lens _mrActions (\ s a -> s{_mrActions = a}) . _Default . _Coerce;++-- | The conditions.+mrConditions :: Lens' ModifyRule [RuleCondition]+mrConditions = lens _mrConditions (\ s a -> s{_mrConditions = a}) . _Default . _Coerce;++-- | The Amazon Resource Name (ARN) of the rule.+mrRuleARN :: Lens' ModifyRule Text+mrRuleARN = lens _mrRuleARN (\ s a -> s{_mrRuleARN = a});++instance AWSRequest ModifyRule where+        type Rs ModifyRule = ModifyRuleResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper "ModifyRuleResult"+              (\ s h x ->+                 ModifyRuleResponse' <$>+                   (x .@? "Rules" .!@ mempty >>=+                      may (parseXMLList "member"))+                     <*> (pure (fromEnum s)))++instance Hashable ModifyRule++instance NFData ModifyRule++instance ToHeaders ModifyRule where+        toHeaders = const mempty++instance ToPath ModifyRule where+        toPath = const "/"++instance ToQuery ModifyRule where+        toQuery ModifyRule'{..}+          = mconcat+              ["Action" =: ("ModifyRule" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "Actions" =:+                 toQuery (toQueryList "member" <$> _mrActions),+               "Conditions" =:+                 toQuery (toQueryList "member" <$> _mrConditions),+               "RuleArn" =: _mrRuleARN]++-- | Contains the output of ModifyRules.+--+-- /See:/ 'modifyRuleResponse' smart constructor.+data ModifyRuleResponse = ModifyRuleResponse'+    { _mrrsRules          :: !(Maybe [Rule])+    , _mrrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ModifyRuleResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mrrsRules'+--+-- * 'mrrsResponseStatus'+modifyRuleResponse+    :: Int -- ^ 'mrrsResponseStatus'+    -> ModifyRuleResponse+modifyRuleResponse pResponseStatus_ =+    ModifyRuleResponse'+    { _mrrsRules = Nothing+    , _mrrsResponseStatus = pResponseStatus_+    }++-- | Information about the rule.+mrrsRules :: Lens' ModifyRuleResponse [Rule]+mrrsRules = lens _mrrsRules (\ s a -> s{_mrrsRules = a}) . _Default . _Coerce;++-- | The response status code.+mrrsResponseStatus :: Lens' ModifyRuleResponse Int+mrrsResponseStatus = lens _mrrsResponseStatus (\ s a -> s{_mrrsResponseStatus = a});++instance NFData ModifyRuleResponse
+ gen/Network/AWS/ELBv2/ModifyTargetGroup.hs view
@@ -0,0 +1,214 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.ModifyTargetGroup+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies the health checks used when evaluating the health state of the targets in the specified target group.+--+-- To monitor the health of the targets, use < DescribeTargetHealth>.+module Network.AWS.ELBv2.ModifyTargetGroup+    (+    -- * Creating a Request+      modifyTargetGroup+    , ModifyTargetGroup+    -- * Request Lenses+    , mtgMatcher+    , mtgHealthCheckPath+    , mtgUnhealthyThresholdCount+    , mtgHealthCheckIntervalSeconds+    , mtgHealthyThresholdCount+    , mtgHealthCheckProtocol+    , mtgHealthCheckTimeoutSeconds+    , mtgHealthCheckPort+    , mtgTargetGroupARN++    -- * Destructuring the Response+    , modifyTargetGroupResponse+    , ModifyTargetGroupResponse+    -- * Response Lenses+    , mtgrsTargetGroups+    , mtgrsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for ModifyTargetGroup.+--+-- /See:/ 'modifyTargetGroup' smart constructor.+data ModifyTargetGroup = ModifyTargetGroup'+    { _mtgMatcher                    :: !(Maybe Matcher)+    , _mtgHealthCheckPath            :: !(Maybe Text)+    , _mtgUnhealthyThresholdCount    :: !(Maybe Nat)+    , _mtgHealthCheckIntervalSeconds :: !(Maybe Nat)+    , _mtgHealthyThresholdCount      :: !(Maybe Nat)+    , _mtgHealthCheckProtocol        :: !(Maybe ProtocolEnum)+    , _mtgHealthCheckTimeoutSeconds  :: !(Maybe Nat)+    , _mtgHealthCheckPort            :: !(Maybe Text)+    , _mtgTargetGroupARN             :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ModifyTargetGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mtgMatcher'+--+-- * 'mtgHealthCheckPath'+--+-- * 'mtgUnhealthyThresholdCount'+--+-- * 'mtgHealthCheckIntervalSeconds'+--+-- * 'mtgHealthyThresholdCount'+--+-- * 'mtgHealthCheckProtocol'+--+-- * 'mtgHealthCheckTimeoutSeconds'+--+-- * 'mtgHealthCheckPort'+--+-- * 'mtgTargetGroupARN'+modifyTargetGroup+    :: Text -- ^ 'mtgTargetGroupARN'+    -> ModifyTargetGroup+modifyTargetGroup pTargetGroupARN_ =+    ModifyTargetGroup'+    { _mtgMatcher = Nothing+    , _mtgHealthCheckPath = Nothing+    , _mtgUnhealthyThresholdCount = Nothing+    , _mtgHealthCheckIntervalSeconds = Nothing+    , _mtgHealthyThresholdCount = Nothing+    , _mtgHealthCheckProtocol = Nothing+    , _mtgHealthCheckTimeoutSeconds = Nothing+    , _mtgHealthCheckPort = Nothing+    , _mtgTargetGroupARN = pTargetGroupARN_+    }++-- | The HTTP codes to use when checking for a successful response from a target.+mtgMatcher :: Lens' ModifyTargetGroup (Maybe Matcher)+mtgMatcher = lens _mtgMatcher (\ s a -> s{_mtgMatcher = a});++-- | The ping path that is the destination for the health check request.+mtgHealthCheckPath :: Lens' ModifyTargetGroup (Maybe Text)+mtgHealthCheckPath = lens _mtgHealthCheckPath (\ s a -> s{_mtgHealthCheckPath = a});++-- | The number of consecutive health check failures required before considering the target unhealthy.+mtgUnhealthyThresholdCount :: Lens' ModifyTargetGroup (Maybe Natural)+mtgUnhealthyThresholdCount = lens _mtgUnhealthyThresholdCount (\ s a -> s{_mtgUnhealthyThresholdCount = a}) . mapping _Nat;++-- | The approximate amount of time, in seconds, between health checks of an individual target.+mtgHealthCheckIntervalSeconds :: Lens' ModifyTargetGroup (Maybe Natural)+mtgHealthCheckIntervalSeconds = lens _mtgHealthCheckIntervalSeconds (\ s a -> s{_mtgHealthCheckIntervalSeconds = a}) . mapping _Nat;++-- | The number of consecutive health checks successes required before considering an unhealthy target healthy.+mtgHealthyThresholdCount :: Lens' ModifyTargetGroup (Maybe Natural)+mtgHealthyThresholdCount = lens _mtgHealthyThresholdCount (\ s a -> s{_mtgHealthyThresholdCount = a}) . mapping _Nat;++-- | The protocol to use to connect with the target.+mtgHealthCheckProtocol :: Lens' ModifyTargetGroup (Maybe ProtocolEnum)+mtgHealthCheckProtocol = lens _mtgHealthCheckProtocol (\ s a -> s{_mtgHealthCheckProtocol = a});++-- | The amount of time, in seconds, during which no response means a failed health check.+mtgHealthCheckTimeoutSeconds :: Lens' ModifyTargetGroup (Maybe Natural)+mtgHealthCheckTimeoutSeconds = lens _mtgHealthCheckTimeoutSeconds (\ s a -> s{_mtgHealthCheckTimeoutSeconds = a}) . mapping _Nat;++-- | The port to use to connect with the target.+mtgHealthCheckPort :: Lens' ModifyTargetGroup (Maybe Text)+mtgHealthCheckPort = lens _mtgHealthCheckPort (\ s a -> s{_mtgHealthCheckPort = a});++-- | The Amazon Resource Name (ARN) of the target group.+mtgTargetGroupARN :: Lens' ModifyTargetGroup Text+mtgTargetGroupARN = lens _mtgTargetGroupARN (\ s a -> s{_mtgTargetGroupARN = a});++instance AWSRequest ModifyTargetGroup where+        type Rs ModifyTargetGroup = ModifyTargetGroupResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper "ModifyTargetGroupResult"+              (\ s h x ->+                 ModifyTargetGroupResponse' <$>+                   (x .@? "TargetGroups" .!@ mempty >>=+                      may (parseXMLList "member"))+                     <*> (pure (fromEnum s)))++instance Hashable ModifyTargetGroup++instance NFData ModifyTargetGroup++instance ToHeaders ModifyTargetGroup where+        toHeaders = const mempty++instance ToPath ModifyTargetGroup where+        toPath = const "/"++instance ToQuery ModifyTargetGroup where+        toQuery ModifyTargetGroup'{..}+          = mconcat+              ["Action" =: ("ModifyTargetGroup" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "Matcher" =: _mtgMatcher,+               "HealthCheckPath" =: _mtgHealthCheckPath,+               "UnhealthyThresholdCount" =:+                 _mtgUnhealthyThresholdCount,+               "HealthCheckIntervalSeconds" =:+                 _mtgHealthCheckIntervalSeconds,+               "HealthyThresholdCount" =: _mtgHealthyThresholdCount,+               "HealthCheckProtocol" =: _mtgHealthCheckProtocol,+               "HealthCheckTimeoutSeconds" =:+                 _mtgHealthCheckTimeoutSeconds,+               "HealthCheckPort" =: _mtgHealthCheckPort,+               "TargetGroupArn" =: _mtgTargetGroupARN]++-- | Contains the output of ModifyTargetGroup.+--+-- /See:/ 'modifyTargetGroupResponse' smart constructor.+data ModifyTargetGroupResponse = ModifyTargetGroupResponse'+    { _mtgrsTargetGroups   :: !(Maybe [TargetGroup])+    , _mtgrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ModifyTargetGroupResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mtgrsTargetGroups'+--+-- * 'mtgrsResponseStatus'+modifyTargetGroupResponse+    :: Int -- ^ 'mtgrsResponseStatus'+    -> ModifyTargetGroupResponse+modifyTargetGroupResponse pResponseStatus_ =+    ModifyTargetGroupResponse'+    { _mtgrsTargetGroups = Nothing+    , _mtgrsResponseStatus = pResponseStatus_+    }++-- | Information about the target group.+mtgrsTargetGroups :: Lens' ModifyTargetGroupResponse [TargetGroup]+mtgrsTargetGroups = lens _mtgrsTargetGroups (\ s a -> s{_mtgrsTargetGroups = a}) . _Default . _Coerce;++-- | The response status code.+mtgrsResponseStatus :: Lens' ModifyTargetGroupResponse Int+mtgrsResponseStatus = lens _mtgrsResponseStatus (\ s a -> s{_mtgrsResponseStatus = a});++instance NFData ModifyTargetGroupResponse
+ gen/Network/AWS/ELBv2/ModifyTargetGroupAttributes.hs view
@@ -0,0 +1,142 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.ModifyTargetGroupAttributes+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Modifies the specified attributes of the specified target group.+module Network.AWS.ELBv2.ModifyTargetGroupAttributes+    (+    -- * Creating a Request+      modifyTargetGroupAttributes+    , ModifyTargetGroupAttributes+    -- * Request Lenses+    , mtgaTargetGroupARN+    , mtgaAttributes++    -- * Destructuring the Response+    , modifyTargetGroupAttributesResponse+    , ModifyTargetGroupAttributesResponse+    -- * Response Lenses+    , mtgarsAttributes+    , mtgarsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for ModifyTargetGroupAttributes.+--+-- /See:/ 'modifyTargetGroupAttributes' smart constructor.+data ModifyTargetGroupAttributes = ModifyTargetGroupAttributes'+    { _mtgaTargetGroupARN :: !Text+    , _mtgaAttributes     :: ![TargetGroupAttribute]+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ModifyTargetGroupAttributes' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mtgaTargetGroupARN'+--+-- * 'mtgaAttributes'+modifyTargetGroupAttributes+    :: Text -- ^ 'mtgaTargetGroupARN'+    -> ModifyTargetGroupAttributes+modifyTargetGroupAttributes pTargetGroupARN_ =+    ModifyTargetGroupAttributes'+    { _mtgaTargetGroupARN = pTargetGroupARN_+    , _mtgaAttributes = mempty+    }++-- | The Amazon Resource Name (ARN) of the target group.+mtgaTargetGroupARN :: Lens' ModifyTargetGroupAttributes Text+mtgaTargetGroupARN = lens _mtgaTargetGroupARN (\ s a -> s{_mtgaTargetGroupARN = a});++-- | The attributes.+mtgaAttributes :: Lens' ModifyTargetGroupAttributes [TargetGroupAttribute]+mtgaAttributes = lens _mtgaAttributes (\ s a -> s{_mtgaAttributes = a}) . _Coerce;++instance AWSRequest ModifyTargetGroupAttributes where+        type Rs ModifyTargetGroupAttributes =+             ModifyTargetGroupAttributesResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper+              "ModifyTargetGroupAttributesResult"+              (\ s h x ->+                 ModifyTargetGroupAttributesResponse' <$>+                   (x .@? "Attributes" .!@ mempty >>=+                      may (parseXMLList "member"))+                     <*> (pure (fromEnum s)))++instance Hashable ModifyTargetGroupAttributes++instance NFData ModifyTargetGroupAttributes++instance ToHeaders ModifyTargetGroupAttributes where+        toHeaders = const mempty++instance ToPath ModifyTargetGroupAttributes where+        toPath = const "/"++instance ToQuery ModifyTargetGroupAttributes where+        toQuery ModifyTargetGroupAttributes'{..}+          = mconcat+              ["Action" =:+                 ("ModifyTargetGroupAttributes" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "TargetGroupArn" =: _mtgaTargetGroupARN,+               "Attributes" =: toQueryList "member" _mtgaAttributes]++-- | Contains the output of ModifyTargetGroupAttributes.+--+-- /See:/ 'modifyTargetGroupAttributesResponse' smart constructor.+data ModifyTargetGroupAttributesResponse = ModifyTargetGroupAttributesResponse'+    { _mtgarsAttributes     :: !(Maybe [TargetGroupAttribute])+    , _mtgarsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ModifyTargetGroupAttributesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mtgarsAttributes'+--+-- * 'mtgarsResponseStatus'+modifyTargetGroupAttributesResponse+    :: Int -- ^ 'mtgarsResponseStatus'+    -> ModifyTargetGroupAttributesResponse+modifyTargetGroupAttributesResponse pResponseStatus_ =+    ModifyTargetGroupAttributesResponse'+    { _mtgarsAttributes = Nothing+    , _mtgarsResponseStatus = pResponseStatus_+    }++-- | Information about the attributes.+mtgarsAttributes :: Lens' ModifyTargetGroupAttributesResponse [TargetGroupAttribute]+mtgarsAttributes = lens _mtgarsAttributes (\ s a -> s{_mtgarsAttributes = a}) . _Default . _Coerce;++-- | The response status code.+mtgarsResponseStatus :: Lens' ModifyTargetGroupAttributesResponse Int+mtgarsResponseStatus = lens _mtgarsResponseStatus (\ s a -> s{_mtgarsResponseStatus = a});++instance NFData ModifyTargetGroupAttributesResponse
+ gen/Network/AWS/ELBv2/RegisterTargets.hs view
@@ -0,0 +1,131 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.RegisterTargets+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Registers the specified targets with the specified target group.+--+-- The target must be in the virtual private cloud (VPC) that you specified for the target group.+--+-- To remove a target from a target group, use < DeregisterTargets>.+module Network.AWS.ELBv2.RegisterTargets+    (+    -- * Creating a Request+      registerTargets+    , RegisterTargets+    -- * Request Lenses+    , rtTargetGroupARN+    , rtTargets++    -- * Destructuring the Response+    , registerTargetsResponse+    , RegisterTargetsResponse+    -- * Response Lenses+    , rrsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for RegisterTargets.+--+-- /See:/ 'registerTargets' smart constructor.+data RegisterTargets = RegisterTargets'+    { _rtTargetGroupARN :: !Text+    , _rtTargets        :: ![TargetDescription]+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'RegisterTargets' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rtTargetGroupARN'+--+-- * 'rtTargets'+registerTargets+    :: Text -- ^ 'rtTargetGroupARN'+    -> RegisterTargets+registerTargets pTargetGroupARN_ =+    RegisterTargets'+    { _rtTargetGroupARN = pTargetGroupARN_+    , _rtTargets = mempty+    }++-- | The Amazon Resource Name (ARN) of the target group.+rtTargetGroupARN :: Lens' RegisterTargets Text+rtTargetGroupARN = lens _rtTargetGroupARN (\ s a -> s{_rtTargetGroupARN = a});++-- | The targets.+rtTargets :: Lens' RegisterTargets [TargetDescription]+rtTargets = lens _rtTargets (\ s a -> s{_rtTargets = a}) . _Coerce;++instance AWSRequest RegisterTargets where+        type Rs RegisterTargets = RegisterTargetsResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper "RegisterTargetsResult"+              (\ s h x ->+                 RegisterTargetsResponse' <$> (pure (fromEnum s)))++instance Hashable RegisterTargets++instance NFData RegisterTargets++instance ToHeaders RegisterTargets where+        toHeaders = const mempty++instance ToPath RegisterTargets where+        toPath = const "/"++instance ToQuery RegisterTargets where+        toQuery RegisterTargets'{..}+          = mconcat+              ["Action" =: ("RegisterTargets" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "TargetGroupArn" =: _rtTargetGroupARN,+               "Targets" =: toQueryList "member" _rtTargets]++-- | Contains the output of RegisterTargets.+--+-- /See:/ 'registerTargetsResponse' smart constructor.+newtype RegisterTargetsResponse = RegisterTargetsResponse'+    { _rrsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'RegisterTargetsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rrsResponseStatus'+registerTargetsResponse+    :: Int -- ^ 'rrsResponseStatus'+    -> RegisterTargetsResponse+registerTargetsResponse pResponseStatus_ =+    RegisterTargetsResponse'+    { _rrsResponseStatus = pResponseStatus_+    }++-- | The response status code.+rrsResponseStatus :: Lens' RegisterTargetsResponse Int+rrsResponseStatus = lens _rrsResponseStatus (\ s a -> s{_rrsResponseStatus = a});++instance NFData RegisterTargetsResponse
+ gen/Network/AWS/ELBv2/RemoveTags.hs view
@@ -0,0 +1,129 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.RemoveTags+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Removes the specified tags from the specified resource.+--+-- To list the current tags for your resources, use < DescribeTags>.+module Network.AWS.ELBv2.RemoveTags+    (+    -- * Creating a Request+      removeTags+    , RemoveTags+    -- * Request Lenses+    , rtResourceARNs+    , rtTagKeys++    -- * Destructuring the Response+    , removeTagsResponse+    , RemoveTagsResponse+    -- * Response Lenses+    , rtrsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for RemoveTags.+--+-- /See:/ 'removeTags' smart constructor.+data RemoveTags = RemoveTags'+    { _rtResourceARNs :: ![Text]+    , _rtTagKeys      :: ![Text]+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'RemoveTags' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rtResourceARNs'+--+-- * 'rtTagKeys'+removeTags+    :: RemoveTags+removeTags =+    RemoveTags'+    { _rtResourceARNs = mempty+    , _rtTagKeys = mempty+    }++-- | The Amazon Resource Name (ARN) of the resource.+rtResourceARNs :: Lens' RemoveTags [Text]+rtResourceARNs = lens _rtResourceARNs (\ s a -> s{_rtResourceARNs = a}) . _Coerce;++-- | The tag keys for the tags to remove.+rtTagKeys :: Lens' RemoveTags [Text]+rtTagKeys = lens _rtTagKeys (\ s a -> s{_rtTagKeys = a}) . _Coerce;++instance AWSRequest RemoveTags where+        type Rs RemoveTags = RemoveTagsResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper "RemoveTagsResult"+              (\ s h x ->+                 RemoveTagsResponse' <$> (pure (fromEnum s)))++instance Hashable RemoveTags++instance NFData RemoveTags++instance ToHeaders RemoveTags where+        toHeaders = const mempty++instance ToPath RemoveTags where+        toPath = const "/"++instance ToQuery RemoveTags where+        toQuery RemoveTags'{..}+          = mconcat+              ["Action" =: ("RemoveTags" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "ResourceArns" =:+                 toQueryList "member" _rtResourceARNs,+               "TagKeys" =: toQueryList "member" _rtTagKeys]++-- | Contains the output of RemoveTags.+--+-- /See:/ 'removeTagsResponse' smart constructor.+newtype RemoveTagsResponse = RemoveTagsResponse'+    { _rtrsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'RemoveTagsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rtrsResponseStatus'+removeTagsResponse+    :: Int -- ^ 'rtrsResponseStatus'+    -> RemoveTagsResponse+removeTagsResponse pResponseStatus_ =+    RemoveTagsResponse'+    { _rtrsResponseStatus = pResponseStatus_+    }++-- | The response status code.+rtrsResponseStatus :: Lens' RemoveTagsResponse Int+rtrsResponseStatus = lens _rtrsResponseStatus (\ s a -> s{_rtrsResponseStatus = a});++instance NFData RemoveTagsResponse
+ gen/Network/AWS/ELBv2/SetRulePriorities.hs view
@@ -0,0 +1,131 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.SetRulePriorities+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Sets the priorities of the specified rules.+--+-- You can reorder the rules as long as there are no priority conflicts in the new order. Any existing rules that you do not specify retain their current priority.+module Network.AWS.ELBv2.SetRulePriorities+    (+    -- * Creating a Request+      setRulePriorities+    , SetRulePriorities+    -- * Request Lenses+    , srpRulePriorities++    -- * Destructuring the Response+    , setRulePrioritiesResponse+    , SetRulePrioritiesResponse+    -- * Response Lenses+    , srprsRules+    , srprsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for SetRulePriorities.+--+-- /See:/ 'setRulePriorities' smart constructor.+newtype SetRulePriorities = SetRulePriorities'+    { _srpRulePriorities :: [RulePriorityPair]+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SetRulePriorities' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'srpRulePriorities'+setRulePriorities+    :: SetRulePriorities+setRulePriorities =+    SetRulePriorities'+    { _srpRulePriorities = mempty+    }++-- | The rule priorities.+srpRulePriorities :: Lens' SetRulePriorities [RulePriorityPair]+srpRulePriorities = lens _srpRulePriorities (\ s a -> s{_srpRulePriorities = a}) . _Coerce;++instance AWSRequest SetRulePriorities where+        type Rs SetRulePriorities = SetRulePrioritiesResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper "SetRulePrioritiesResult"+              (\ s h x ->+                 SetRulePrioritiesResponse' <$>+                   (x .@? "Rules" .!@ mempty >>=+                      may (parseXMLList "member"))+                     <*> (pure (fromEnum s)))++instance Hashable SetRulePriorities++instance NFData SetRulePriorities++instance ToHeaders SetRulePriorities where+        toHeaders = const mempty++instance ToPath SetRulePriorities where+        toPath = const "/"++instance ToQuery SetRulePriorities where+        toQuery SetRulePriorities'{..}+          = mconcat+              ["Action" =: ("SetRulePriorities" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "RulePriorities" =:+                 toQueryList "member" _srpRulePriorities]++-- | Contains the output of SetRulePriorities.+--+-- /See:/ 'setRulePrioritiesResponse' smart constructor.+data SetRulePrioritiesResponse = SetRulePrioritiesResponse'+    { _srprsRules          :: !(Maybe [Rule])+    , _srprsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SetRulePrioritiesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'srprsRules'+--+-- * 'srprsResponseStatus'+setRulePrioritiesResponse+    :: Int -- ^ 'srprsResponseStatus'+    -> SetRulePrioritiesResponse+setRulePrioritiesResponse pResponseStatus_ =+    SetRulePrioritiesResponse'+    { _srprsRules = Nothing+    , _srprsResponseStatus = pResponseStatus_+    }++-- | Information about the rules.+srprsRules :: Lens' SetRulePrioritiesResponse [Rule]+srprsRules = lens _srprsRules (\ s a -> s{_srprsRules = a}) . _Default . _Coerce;++-- | The response status code.+srprsResponseStatus :: Lens' SetRulePrioritiesResponse Int+srprsResponseStatus = lens _srprsResponseStatus (\ s a -> s{_srprsResponseStatus = a});++instance NFData SetRulePrioritiesResponse
+ gen/Network/AWS/ELBv2/SetSecurityGroups.hs view
@@ -0,0 +1,140 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.SetSecurityGroups+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Associates the specified security groups with the specified load balancer. The specified security groups override the previously associated security groups.+module Network.AWS.ELBv2.SetSecurityGroups+    (+    -- * Creating a Request+      setSecurityGroups+    , SetSecurityGroups+    -- * Request Lenses+    , ssgLoadBalancerARN+    , ssgSecurityGroups++    -- * Destructuring the Response+    , setSecurityGroupsResponse+    , SetSecurityGroupsResponse+    -- * Response Lenses+    , ssgrsSecurityGroupIds+    , ssgrsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for SetSecurityGroups.+--+-- /See:/ 'setSecurityGroups' smart constructor.+data SetSecurityGroups = SetSecurityGroups'+    { _ssgLoadBalancerARN :: !Text+    , _ssgSecurityGroups  :: ![Text]+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SetSecurityGroups' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ssgLoadBalancerARN'+--+-- * 'ssgSecurityGroups'+setSecurityGroups+    :: Text -- ^ 'ssgLoadBalancerARN'+    -> SetSecurityGroups+setSecurityGroups pLoadBalancerARN_ =+    SetSecurityGroups'+    { _ssgLoadBalancerARN = pLoadBalancerARN_+    , _ssgSecurityGroups = mempty+    }++-- | The Amazon Resource Name (ARN) of the load balancer.+ssgLoadBalancerARN :: Lens' SetSecurityGroups Text+ssgLoadBalancerARN = lens _ssgLoadBalancerARN (\ s a -> s{_ssgLoadBalancerARN = a});++-- | The IDs of the security groups.+ssgSecurityGroups :: Lens' SetSecurityGroups [Text]+ssgSecurityGroups = lens _ssgSecurityGroups (\ s a -> s{_ssgSecurityGroups = a}) . _Coerce;++instance AWSRequest SetSecurityGroups where+        type Rs SetSecurityGroups = SetSecurityGroupsResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper "SetSecurityGroupsResult"+              (\ s h x ->+                 SetSecurityGroupsResponse' <$>+                   (x .@? "SecurityGroupIds" .!@ mempty >>=+                      may (parseXMLList "member"))+                     <*> (pure (fromEnum s)))++instance Hashable SetSecurityGroups++instance NFData SetSecurityGroups++instance ToHeaders SetSecurityGroups where+        toHeaders = const mempty++instance ToPath SetSecurityGroups where+        toPath = const "/"++instance ToQuery SetSecurityGroups where+        toQuery SetSecurityGroups'{..}+          = mconcat+              ["Action" =: ("SetSecurityGroups" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "LoadBalancerArn" =: _ssgLoadBalancerARN,+               "SecurityGroups" =:+                 toQueryList "member" _ssgSecurityGroups]++-- | Contains the output of SetSecurityGroups.+--+-- /See:/ 'setSecurityGroupsResponse' smart constructor.+data SetSecurityGroupsResponse = SetSecurityGroupsResponse'+    { _ssgrsSecurityGroupIds :: !(Maybe [Text])+    , _ssgrsResponseStatus   :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SetSecurityGroupsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ssgrsSecurityGroupIds'+--+-- * 'ssgrsResponseStatus'+setSecurityGroupsResponse+    :: Int -- ^ 'ssgrsResponseStatus'+    -> SetSecurityGroupsResponse+setSecurityGroupsResponse pResponseStatus_ =+    SetSecurityGroupsResponse'+    { _ssgrsSecurityGroupIds = Nothing+    , _ssgrsResponseStatus = pResponseStatus_+    }++-- | The IDs of the security groups associated with the load balancer.+ssgrsSecurityGroupIds :: Lens' SetSecurityGroupsResponse [Text]+ssgrsSecurityGroupIds = lens _ssgrsSecurityGroupIds (\ s a -> s{_ssgrsSecurityGroupIds = a}) . _Default . _Coerce;++-- | The response status code.+ssgrsResponseStatus :: Lens' SetSecurityGroupsResponse Int+ssgrsResponseStatus = lens _ssgrsResponseStatus (\ s a -> s{_ssgrsResponseStatus = a});++instance NFData SetSecurityGroupsResponse
+ gen/Network/AWS/ELBv2/SetSubnets.hs view
@@ -0,0 +1,139 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.SetSubnets+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+-- Enables the Availability Zone for the specified subnets for the specified load balancer. The specified subnets replace the previously enabled subnets.+module Network.AWS.ELBv2.SetSubnets+    (+    -- * Creating a Request+      setSubnets+    , SetSubnets+    -- * Request Lenses+    , ssLoadBalancerARN+    , ssSubnets++    -- * Destructuring the Response+    , setSubnetsResponse+    , SetSubnetsResponse+    -- * Response Lenses+    , ssrsAvailabilityZones+    , ssrsResponseStatus+    ) where++import           Network.AWS.ELBv2.Types+import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Contains the parameters for SetSubnets.+--+-- /See:/ 'setSubnets' smart constructor.+data SetSubnets = SetSubnets'+    { _ssLoadBalancerARN :: !Text+    , _ssSubnets         :: ![Text]+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SetSubnets' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ssLoadBalancerARN'+--+-- * 'ssSubnets'+setSubnets+    :: Text -- ^ 'ssLoadBalancerARN'+    -> SetSubnets+setSubnets pLoadBalancerARN_ =+    SetSubnets'+    { _ssLoadBalancerARN = pLoadBalancerARN_+    , _ssSubnets = mempty+    }++-- | The Amazon Resource Name (ARN) of the load balancer.+ssLoadBalancerARN :: Lens' SetSubnets Text+ssLoadBalancerARN = lens _ssLoadBalancerARN (\ s a -> s{_ssLoadBalancerARN = a});++-- | The IDs of the subnets. You must specify at least two subnets. You can add only one subnet per Availability Zone.+ssSubnets :: Lens' SetSubnets [Text]+ssSubnets = lens _ssSubnets (\ s a -> s{_ssSubnets = a}) . _Coerce;++instance AWSRequest SetSubnets where+        type Rs SetSubnets = SetSubnetsResponse+        request = postQuery eLBv2+        response+          = receiveXMLWrapper "SetSubnetsResult"+              (\ s h x ->+                 SetSubnetsResponse' <$>+                   (x .@? "AvailabilityZones" .!@ mempty >>=+                      may (parseXMLList "member"))+                     <*> (pure (fromEnum s)))++instance Hashable SetSubnets++instance NFData SetSubnets++instance ToHeaders SetSubnets where+        toHeaders = const mempty++instance ToPath SetSubnets where+        toPath = const "/"++instance ToQuery SetSubnets where+        toQuery SetSubnets'{..}+          = mconcat+              ["Action" =: ("SetSubnets" :: ByteString),+               "Version" =: ("2015-12-01" :: ByteString),+               "LoadBalancerArn" =: _ssLoadBalancerARN,+               "Subnets" =: toQueryList "member" _ssSubnets]++-- | Contains the output of SetSubnets.+--+-- /See:/ 'setSubnetsResponse' smart constructor.+data SetSubnetsResponse = SetSubnetsResponse'+    { _ssrsAvailabilityZones :: !(Maybe [AvailabilityZone])+    , _ssrsResponseStatus    :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SetSubnetsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ssrsAvailabilityZones'+--+-- * 'ssrsResponseStatus'+setSubnetsResponse+    :: Int -- ^ 'ssrsResponseStatus'+    -> SetSubnetsResponse+setSubnetsResponse pResponseStatus_ =+    SetSubnetsResponse'+    { _ssrsAvailabilityZones = Nothing+    , _ssrsResponseStatus = pResponseStatus_+    }++-- | Information about the subnet and Availability Zone.+ssrsAvailabilityZones :: Lens' SetSubnetsResponse [AvailabilityZone]+ssrsAvailabilityZones = lens _ssrsAvailabilityZones (\ s a -> s{_ssrsAvailabilityZones = a}) . _Default . _Coerce;++-- | The response status code.+ssrsResponseStatus :: Lens' SetSubnetsResponse Int+ssrsResponseStatus = lens _ssrsResponseStatus (\ s a -> s{_ssrsResponseStatus = a});++instance NFData SetSubnetsResponse
+ gen/Network/AWS/ELBv2/Types.hs view
@@ -0,0 +1,413 @@+{-# LANGUAGE OverloadedStrings #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.Types+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.ELBv2.Types+    (+    -- * Service Configuration+      eLBv2++    -- * Errors+    , _InvalidConfigurationRequestException+    , _SubnetNotFoundException+    , _TooManyTargetsException+    , _RuleNotFoundException+    , _InvalidSubnetException+    , _TooManyRulesException+    , _TooManyTargetGroupsException+    , _DuplicateLoadBalancerNameException+    , _IncompatibleProtocolsException+    , _TooManyCertificatesException+    , _DuplicateTagKeysException+    , _DuplicateListenerException+    , _TooManyTagsException+    , _DuplicateTargetGroupNameException+    , _HealthUnavailableException+    , _PriorityInUseException+    , _TooManyLoadBalancersException+    , _UnsupportedProtocolException+    , _InvalidTargetException+    , _InvalidSecurityGroupException+    , _TargetGroupNotFoundException+    , _ListenerNotFoundException+    , _TooManyRegistrationsForTargetIdException+    , _TooManyListenersException+    , _TargetGroupAssociationLimitException+    , _OperationNotPermittedException+    , _SSLPolicyNotFoundException+    , _InvalidSchemeException+    , _LoadBalancerNotFoundException+    , _ResourceInUseException+    , _CertificateNotFoundException++    -- * ActionTypeEnum+    , ActionTypeEnum (..)++    -- * LoadBalancerSchemeEnum+    , LoadBalancerSchemeEnum (..)++    -- * LoadBalancerStateEnum+    , LoadBalancerStateEnum (..)++    -- * LoadBalancerTypeEnum+    , LoadBalancerTypeEnum (..)++    -- * ProtocolEnum+    , ProtocolEnum (..)++    -- * TargetHealthReasonEnum+    , TargetHealthReasonEnum (..)++    -- * TargetHealthStateEnum+    , TargetHealthStateEnum (..)++    -- * Action+    , Action+    , action+    , aType+    , aTargetGroupARN++    -- * AvailabilityZone+    , AvailabilityZone+    , availabilityZone+    , azSubnetId+    , azZoneName++    -- * Certificate+    , Certificate+    , certificate+    , cCertificateARN++    -- * Cipher+    , Cipher+    , cipher+    , cPriority+    , cName++    -- * Listener+    , Listener+    , listener+    , lSSLPolicy+    , lListenerARN+    , lProtocol+    , lDefaultActions+    , lCertificates+    , lLoadBalancerARN+    , lPort++    -- * LoadBalancer+    , LoadBalancer+    , loadBalancer+    , lbState+    , lbSecurityGroups+    , lbLoadBalancerName+    , lbCreatedTime+    , lbVPCId+    , lbCanonicalHostedZoneId+    , lbAvailabilityZones+    , lbLoadBalancerARN+    , lbScheme+    , lbType+    , lbDNSName++    -- * LoadBalancerAttribute+    , LoadBalancerAttribute+    , loadBalancerAttribute+    , lbaValue+    , lbaKey++    -- * LoadBalancerState+    , LoadBalancerState+    , loadBalancerState+    , lbsReason+    , lbsCode++    -- * Matcher+    , Matcher+    , matcher+    , mHTTPCode++    -- * Rule+    , Rule+    , rule+    , rPriority+    , rActions+    , rConditions+    , rRuleARN+    , rIsDefault++    -- * RuleCondition+    , RuleCondition+    , ruleCondition+    , rcField+    , rcValues++    -- * RulePriorityPair+    , RulePriorityPair+    , rulePriorityPair+    , rppPriority+    , rppRuleARN++    -- * SSLPolicy+    , SSLPolicy+    , sslPolicy+    , spCiphers+    , spName+    , spSSLProtocols++    -- * Tag+    , Tag+    , tag+    , tagValue+    , tagKey++    -- * TagDescription+    , TagDescription+    , tagDescription+    , tdResourceARN+    , tdTags++    -- * TargetDescription+    , TargetDescription+    , targetDescription+    , tdPort+    , tdId++    -- * TargetGroup+    , TargetGroup+    , targetGroup+    , tgMatcher+    , tgHealthCheckPath+    , tgUnhealthyThresholdCount+    , tgVPCId+    , tgTargetGroupARN+    , tgProtocol+    , tgHealthCheckIntervalSeconds+    , tgHealthyThresholdCount+    , tgHealthCheckProtocol+    , tgLoadBalancerARNs+    , tgHealthCheckTimeoutSeconds+    , tgHealthCheckPort+    , tgTargetGroupName+    , tgPort++    -- * TargetGroupAttribute+    , TargetGroupAttribute+    , targetGroupAttribute+    , tgaValue+    , tgaKey++    -- * TargetHealth+    , TargetHealth+    , targetHealth+    , thState+    , thReason+    , thDescription++    -- * TargetHealthDescription+    , TargetHealthDescription+    , targetHealthDescription+    , thdTargetHealth+    , thdHealthCheckPort+    , thdTarget+    ) where++import           Network.AWS.ELBv2.Types.Product+import           Network.AWS.ELBv2.Types.Sum+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Sign.V4++-- | API version '2015-12-01' of the Amazon Elastic Load Balancing SDK configuration.+eLBv2 :: Service+eLBv2 =+    Service+    { _svcAbbrev = "ELBv2"+    , _svcSigner = v4+    , _svcPrefix = "elasticloadbalancing"+    , _svcVersion = "2015-12-01"+    , _svcEndpoint = defaultEndpoint eLBv2+    , _svcTimeout = Just 70+    , _svcCheck = statusSuccess+    , _svcError = parseXMLError "ELBv2"+    , _svcRetry = retry+    }+  where+    retry =+        Exponential+        { _retryBase = 5.0e-2+        , _retryGrowth = 2+        , _retryAttempts = 5+        , _retryCheck = check+        }+    check e+      | has (hasStatus 429) e = Just "too_many_requests"+      | has (hasCode "ThrottlingException" . hasStatus 400) e =+          Just "throttling_exception"+      | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"+      | has (hasStatus 504) e = Just "gateway_timeout"+      | has (hasStatus 502) e = Just "bad_gateway"+      | has (hasStatus 503) e = Just "service_unavailable"+      | has (hasStatus 500) e = Just "general_server_error"+      | has (hasStatus 509) e = Just "limit_exceeded"+      | otherwise = Nothing++-- | The requested configuration is not valid.+_InvalidConfigurationRequestException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidConfigurationRequestException =+    _ServiceError . hasStatus 400 . hasCode "InvalidConfigurationRequest"++-- | The specified subnet does not exist.+_SubnetNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError+_SubnetNotFoundException =+    _ServiceError . hasStatus 400 . hasCode "SubnetNotFound"++-- | You\'ve reached the limit on the number of targets.+_TooManyTargetsException :: AsError a => Getting (First ServiceError) a ServiceError+_TooManyTargetsException =+    _ServiceError . hasStatus 400 . hasCode "TooManyTargets"++-- | The specified rule does not exist.+_RuleNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError+_RuleNotFoundException = _ServiceError . hasStatus 400 . hasCode "RuleNotFound"++-- | The specified subnet is out of available addresses.+_InvalidSubnetException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidSubnetException =+    _ServiceError . hasStatus 400 . hasCode "InvalidSubnet"++-- | You\'ve reached the limit on the number of rules per load balancer.+_TooManyRulesException :: AsError a => Getting (First ServiceError) a ServiceError+_TooManyRulesException = _ServiceError . hasStatus 400 . hasCode "TooManyRules"++-- | You\'ve reached the limit on the number of target groups for your AWS account.+_TooManyTargetGroupsException :: AsError a => Getting (First ServiceError) a ServiceError+_TooManyTargetGroupsException =+    _ServiceError . hasStatus 400 . hasCode "TooManyTargetGroups"++-- | A load balancer with the specified name already exists for this account.+_DuplicateLoadBalancerNameException :: AsError a => Getting (First ServiceError) a ServiceError+_DuplicateLoadBalancerNameException =+    _ServiceError . hasStatus 400 . hasCode "DuplicateLoadBalancerName"++-- | The specified configuration is not valid with this protocol.+_IncompatibleProtocolsException :: AsError a => Getting (First ServiceError) a ServiceError+_IncompatibleProtocolsException =+    _ServiceError . hasStatus 400 . hasCode "IncompatibleProtocols"++-- | You\'ve reached the limit on the number of certificates per listener.+_TooManyCertificatesException :: AsError a => Getting (First ServiceError) a ServiceError+_TooManyCertificatesException =+    _ServiceError . hasStatus 400 . hasCode "TooManyCertificates"++-- | A tag key was specified more than once.+_DuplicateTagKeysException :: AsError a => Getting (First ServiceError) a ServiceError+_DuplicateTagKeysException =+    _ServiceError . hasStatus 400 . hasCode "DuplicateTagKeys"++-- | A listener with the specified port already exists.+_DuplicateListenerException :: AsError a => Getting (First ServiceError) a ServiceError+_DuplicateListenerException =+    _ServiceError . hasStatus 400 . hasCode "DuplicateListener"++-- | You\'ve reached the limit on the number of tags per load balancer.+_TooManyTagsException :: AsError a => Getting (First ServiceError) a ServiceError+_TooManyTagsException = _ServiceError . hasStatus 400 . hasCode "TooManyTags"++-- | A target group with the specified name already exists.+_DuplicateTargetGroupNameException :: AsError a => Getting (First ServiceError) a ServiceError+_DuplicateTargetGroupNameException =+    _ServiceError . hasStatus 400 . hasCode "DuplicateTargetGroupName"++-- | The health of the specified targets could not be retrieved due to an internal error.+_HealthUnavailableException :: AsError a => Getting (First ServiceError) a ServiceError+_HealthUnavailableException =+    _ServiceError . hasStatus 500 . hasCode "HealthUnavailable"++-- | The specified priority is in use.+_PriorityInUseException :: AsError a => Getting (First ServiceError) a ServiceError+_PriorityInUseException =+    _ServiceError . hasStatus 400 . hasCode "PriorityInUse"++-- | You\'ve reached the limit on the number of load balancers for your AWS account.+_TooManyLoadBalancersException :: AsError a => Getting (First ServiceError) a ServiceError+_TooManyLoadBalancersException =+    _ServiceError . hasStatus 400 . hasCode "TooManyLoadBalancers"++-- | The specified protocol is not supported.+_UnsupportedProtocolException :: AsError a => Getting (First ServiceError) a ServiceError+_UnsupportedProtocolException =+    _ServiceError . hasStatus 400 . hasCode "UnsupportedProtocol"++-- | The specified target does not exist or is not in the same VPC as the target group.+_InvalidTargetException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidTargetException =+    _ServiceError . hasStatus 400 . hasCode "InvalidTarget"++-- | The specified security group does not exist.+_InvalidSecurityGroupException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidSecurityGroupException =+    _ServiceError . hasStatus 400 . hasCode "InvalidSecurityGroup"++-- | The specified target group does not exist.+_TargetGroupNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError+_TargetGroupNotFoundException =+    _ServiceError . hasStatus 400 . hasCode "TargetGroupNotFound"++-- | The specified listener does not exist.+_ListenerNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError+_ListenerNotFoundException =+    _ServiceError . hasStatus 400 . hasCode "ListenerNotFound"++-- | You\'ve reached the limit on the number of times a target can be registered with a load balancer.+_TooManyRegistrationsForTargetIdException :: AsError a => Getting (First ServiceError) a ServiceError+_TooManyRegistrationsForTargetIdException =+    _ServiceError . hasStatus 400 . hasCode "TooManyRegistrationsForTargetId"++-- | You\'ve reached the limit on the number of listeners per load balancer.+_TooManyListenersException :: AsError a => Getting (First ServiceError) a ServiceError+_TooManyListenersException =+    _ServiceError . hasStatus 400 . hasCode "TooManyListeners"++-- | You\'ve reached the limit on the number of load balancers per target group.+_TargetGroupAssociationLimitException :: AsError a => Getting (First ServiceError) a ServiceError+_TargetGroupAssociationLimitException =+    _ServiceError . hasStatus 400 . hasCode "TargetGroupAssociationLimit"++-- | This operation is not allowed.+_OperationNotPermittedException :: AsError a => Getting (First ServiceError) a ServiceError+_OperationNotPermittedException =+    _ServiceError . hasStatus 400 . hasCode "OperationNotPermitted"++-- | The specified SSL policy does not exist.+_SSLPolicyNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError+_SSLPolicyNotFoundException =+    _ServiceError . hasStatus 400 . hasCode "SSLPolicyNotFound"++-- | The requested scheme is not valid.+_InvalidSchemeException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidSchemeException =+    _ServiceError . hasStatus 400 . hasCode "InvalidScheme"++-- | The specified load balancer does not exist.+_LoadBalancerNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError+_LoadBalancerNotFoundException =+    _ServiceError . hasStatus 400 . hasCode "LoadBalancerNotFound"++-- | A specified resource is in use.+_ResourceInUseException :: AsError a => Getting (First ServiceError) a ServiceError+_ResourceInUseException =+    _ServiceError . hasStatus 400 . hasCode "ResourceInUse"++-- | The specified certificate does not exist.+_CertificateNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError+_CertificateNotFoundException =+    _ServiceError . hasStatus 400 . hasCode "CertificateNotFound"
+ gen/Network/AWS/ELBv2/Types/Product.hs view
@@ -0,0 +1,1218 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.Types.Product+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.ELBv2.Types.Product where++import           Network.AWS.ELBv2.Types.Sum+import           Network.AWS.Lens+import           Network.AWS.Prelude++-- | Information about an action.+--+-- /See:/ 'action' smart constructor.+data Action = Action'+    { _aType           :: !ActionTypeEnum+    , _aTargetGroupARN :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Action' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'aType'+--+-- * 'aTargetGroupARN'+action+    :: ActionTypeEnum -- ^ 'aType'+    -> Text -- ^ 'aTargetGroupARN'+    -> Action+action pType_ pTargetGroupARN_ =+    Action'+    { _aType = pType_+    , _aTargetGroupARN = pTargetGroupARN_+    }++-- | The type of action.+aType :: Lens' Action ActionTypeEnum+aType = lens _aType (\ s a -> s{_aType = a});++-- | The Amazon Resource Name (ARN) of the target group.+aTargetGroupARN :: Lens' Action Text+aTargetGroupARN = lens _aTargetGroupARN (\ s a -> s{_aTargetGroupARN = a});++instance FromXML Action where+        parseXML x+          = Action' <$>+              (x .@ "Type") <*> (x .@ "TargetGroupArn")++instance Hashable Action++instance NFData Action++instance ToQuery Action where+        toQuery Action'{..}+          = mconcat+              ["Type" =: _aType,+               "TargetGroupArn" =: _aTargetGroupARN]++-- | Information about an Availability Zone.+--+-- /See:/ 'availabilityZone' smart constructor.+data AvailabilityZone = AvailabilityZone'+    { _azSubnetId :: !(Maybe Text)+    , _azZoneName :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'AvailabilityZone' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'azSubnetId'+--+-- * 'azZoneName'+availabilityZone+    :: AvailabilityZone+availabilityZone =+    AvailabilityZone'+    { _azSubnetId = Nothing+    , _azZoneName = Nothing+    }++-- | The ID of the subnet.+azSubnetId :: Lens' AvailabilityZone (Maybe Text)+azSubnetId = lens _azSubnetId (\ s a -> s{_azSubnetId = a});++-- | The name of the Availability Zone.+azZoneName :: Lens' AvailabilityZone (Maybe Text)+azZoneName = lens _azZoneName (\ s a -> s{_azZoneName = a});++instance FromXML AvailabilityZone where+        parseXML x+          = AvailabilityZone' <$>+              (x .@? "SubnetId") <*> (x .@? "ZoneName")++instance Hashable AvailabilityZone++instance NFData AvailabilityZone++-- | Information about an SSL server certificate deployed on a load balancer.+--+-- /See:/ 'certificate' smart constructor.+newtype Certificate = Certificate'+    { _cCertificateARN :: Maybe Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Certificate' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cCertificateARN'+certificate+    :: Certificate+certificate =+    Certificate'+    { _cCertificateARN = Nothing+    }++-- | The Amazon Resource Name (ARN) of the certificate.+cCertificateARN :: Lens' Certificate (Maybe Text)+cCertificateARN = lens _cCertificateARN (\ s a -> s{_cCertificateARN = a});++instance FromXML Certificate where+        parseXML x+          = Certificate' <$> (x .@? "CertificateArn")++instance Hashable Certificate++instance NFData Certificate++instance ToQuery Certificate where+        toQuery Certificate'{..}+          = mconcat ["CertificateArn" =: _cCertificateARN]++-- | Information about a cipher used in a policy.+--+-- /See:/ 'cipher' smart constructor.+data Cipher = Cipher'+    { _cPriority :: !(Maybe Int)+    , _cName     :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Cipher' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cPriority'+--+-- * 'cName'+cipher+    :: Cipher+cipher =+    Cipher'+    { _cPriority = Nothing+    , _cName = Nothing+    }++-- | The priority of the cipher.+cPriority :: Lens' Cipher (Maybe Int)+cPriority = lens _cPriority (\ s a -> s{_cPriority = a});++-- | The name of the cipher.+cName :: Lens' Cipher (Maybe Text)+cName = lens _cName (\ s a -> s{_cName = a});++instance FromXML Cipher where+        parseXML x+          = Cipher' <$> (x .@? "Priority") <*> (x .@? "Name")++instance Hashable Cipher++instance NFData Cipher++-- | Information about a listener.+--+-- /See:/ 'listener' smart constructor.+data Listener = Listener'+    { _lSSLPolicy       :: !(Maybe Text)+    , _lListenerARN     :: !(Maybe Text)+    , _lProtocol        :: !(Maybe ProtocolEnum)+    , _lDefaultActions  :: !(Maybe [Action])+    , _lCertificates    :: !(Maybe [Certificate])+    , _lLoadBalancerARN :: !(Maybe Text)+    , _lPort            :: !(Maybe Nat)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Listener' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lSSLPolicy'+--+-- * 'lListenerARN'+--+-- * 'lProtocol'+--+-- * 'lDefaultActions'+--+-- * 'lCertificates'+--+-- * 'lLoadBalancerARN'+--+-- * 'lPort'+listener+    :: Listener+listener =+    Listener'+    { _lSSLPolicy = Nothing+    , _lListenerARN = Nothing+    , _lProtocol = Nothing+    , _lDefaultActions = Nothing+    , _lCertificates = Nothing+    , _lLoadBalancerARN = Nothing+    , _lPort = Nothing+    }++-- | The security policy that defines which ciphers and protocols are supported. The default is the current predefined security policy.+lSSLPolicy :: Lens' Listener (Maybe Text)+lSSLPolicy = lens _lSSLPolicy (\ s a -> s{_lSSLPolicy = a});++-- | The Amazon Resource Name (ARN) of the listener.+lListenerARN :: Lens' Listener (Maybe Text)+lListenerARN = lens _lListenerARN (\ s a -> s{_lListenerARN = a});++-- | The protocol for connections from clients to the load balancer.+lProtocol :: Lens' Listener (Maybe ProtocolEnum)+lProtocol = lens _lProtocol (\ s a -> s{_lProtocol = a});++-- | The default actions for the listener.+lDefaultActions :: Lens' Listener [Action]+lDefaultActions = lens _lDefaultActions (\ s a -> s{_lDefaultActions = a}) . _Default . _Coerce;++-- | The SSL server certificate. You must provide a certificate if the protocol is HTTPS.+lCertificates :: Lens' Listener [Certificate]+lCertificates = lens _lCertificates (\ s a -> s{_lCertificates = a}) . _Default . _Coerce;++-- | The Amazon Resource Name (ARN) of the load balancer.+lLoadBalancerARN :: Lens' Listener (Maybe Text)+lLoadBalancerARN = lens _lLoadBalancerARN (\ s a -> s{_lLoadBalancerARN = a});++-- | The port on which the load balancer is listening.+lPort :: Lens' Listener (Maybe Natural)+lPort = lens _lPort (\ s a -> s{_lPort = a}) . mapping _Nat;++instance FromXML Listener where+        parseXML x+          = Listener' <$>+              (x .@? "SslPolicy") <*> (x .@? "ListenerArn") <*>+                (x .@? "Protocol")+                <*>+                (x .@? "DefaultActions" .!@ mempty >>=+                   may (parseXMLList "member"))+                <*>+                (x .@? "Certificates" .!@ mempty >>=+                   may (parseXMLList "member"))+                <*> (x .@? "LoadBalancerArn")+                <*> (x .@? "Port")++instance Hashable Listener++instance NFData Listener++-- | Information about a load balancer.+--+-- /See:/ 'loadBalancer' smart constructor.+data LoadBalancer = LoadBalancer'+    { _lbState                 :: !(Maybe LoadBalancerState)+    , _lbSecurityGroups        :: !(Maybe [Text])+    , _lbLoadBalancerName      :: !(Maybe Text)+    , _lbCreatedTime           :: !(Maybe ISO8601)+    , _lbVPCId                 :: !(Maybe Text)+    , _lbCanonicalHostedZoneId :: !(Maybe Text)+    , _lbAvailabilityZones     :: !(Maybe [AvailabilityZone])+    , _lbLoadBalancerARN       :: !(Maybe Text)+    , _lbScheme                :: !(Maybe LoadBalancerSchemeEnum)+    , _lbType                  :: !(Maybe LoadBalancerTypeEnum)+    , _lbDNSName               :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'LoadBalancer' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lbState'+--+-- * 'lbSecurityGroups'+--+-- * 'lbLoadBalancerName'+--+-- * 'lbCreatedTime'+--+-- * 'lbVPCId'+--+-- * 'lbCanonicalHostedZoneId'+--+-- * 'lbAvailabilityZones'+--+-- * 'lbLoadBalancerARN'+--+-- * 'lbScheme'+--+-- * 'lbType'+--+-- * 'lbDNSName'+loadBalancer+    :: LoadBalancer+loadBalancer =+    LoadBalancer'+    { _lbState = Nothing+    , _lbSecurityGroups = Nothing+    , _lbLoadBalancerName = Nothing+    , _lbCreatedTime = Nothing+    , _lbVPCId = Nothing+    , _lbCanonicalHostedZoneId = Nothing+    , _lbAvailabilityZones = Nothing+    , _lbLoadBalancerARN = Nothing+    , _lbScheme = Nothing+    , _lbType = Nothing+    , _lbDNSName = Nothing+    }++-- | The state of the load balancer.+lbState :: Lens' LoadBalancer (Maybe LoadBalancerState)+lbState = lens _lbState (\ s a -> s{_lbState = a});++-- | The IDs of the security groups for the load balancer.+lbSecurityGroups :: Lens' LoadBalancer [Text]+lbSecurityGroups = lens _lbSecurityGroups (\ s a -> s{_lbSecurityGroups = a}) . _Default . _Coerce;++-- | The name of the load balancer.+lbLoadBalancerName :: Lens' LoadBalancer (Maybe Text)+lbLoadBalancerName = lens _lbLoadBalancerName (\ s a -> s{_lbLoadBalancerName = a});++-- | The date and time the load balancer was created.+lbCreatedTime :: Lens' LoadBalancer (Maybe UTCTime)+lbCreatedTime = lens _lbCreatedTime (\ s a -> s{_lbCreatedTime = a}) . mapping _Time;++-- | The ID of the VPC for the load balancer.+lbVPCId :: Lens' LoadBalancer (Maybe Text)+lbVPCId = lens _lbVPCId (\ s a -> s{_lbVPCId = a});++-- | The ID of the Amazon Route 53 hosted zone associated with the load balancer.+lbCanonicalHostedZoneId :: Lens' LoadBalancer (Maybe Text)+lbCanonicalHostedZoneId = lens _lbCanonicalHostedZoneId (\ s a -> s{_lbCanonicalHostedZoneId = a});++-- | The Availability Zones for the load balancer.+lbAvailabilityZones :: Lens' LoadBalancer [AvailabilityZone]+lbAvailabilityZones = lens _lbAvailabilityZones (\ s a -> s{_lbAvailabilityZones = a}) . _Default . _Coerce;++-- | The Amazon Resource Name (ARN) of the load balancer.+lbLoadBalancerARN :: Lens' LoadBalancer (Maybe Text)+lbLoadBalancerARN = lens _lbLoadBalancerARN (\ s a -> s{_lbLoadBalancerARN = a});++-- | The nodes of an Internet-facing load balancer have public IP addresses. The DNS name of an Internet-facing load balancer is publicly resolvable to the public IP addresses of the nodes. Therefore, Internet-facing load balancers can route requests from clients over the Internet.+--+-- The nodes of an internal load balancer have only private IP addresses. The DNS name of an internal load balancer is publicly resolvable to the private IP addresses of the nodes. Therefore, internal load balancers can only route requests from clients with access to the VPC for the load balancer.+lbScheme :: Lens' LoadBalancer (Maybe LoadBalancerSchemeEnum)+lbScheme = lens _lbScheme (\ s a -> s{_lbScheme = a});++-- | The type of load balancer.+lbType :: Lens' LoadBalancer (Maybe LoadBalancerTypeEnum)+lbType = lens _lbType (\ s a -> s{_lbType = a});++-- | The public DNS name of the load balancer.+lbDNSName :: Lens' LoadBalancer (Maybe Text)+lbDNSName = lens _lbDNSName (\ s a -> s{_lbDNSName = a});++instance FromXML LoadBalancer where+        parseXML x+          = LoadBalancer' <$>+              (x .@? "State") <*>+                (x .@? "SecurityGroups" .!@ mempty >>=+                   may (parseXMLList "member"))+                <*> (x .@? "LoadBalancerName")+                <*> (x .@? "CreatedTime")+                <*> (x .@? "VpcId")+                <*> (x .@? "CanonicalHostedZoneId")+                <*>+                (x .@? "AvailabilityZones" .!@ mempty >>=+                   may (parseXMLList "member"))+                <*> (x .@? "LoadBalancerArn")+                <*> (x .@? "Scheme")+                <*> (x .@? "Type")+                <*> (x .@? "DNSName")++instance Hashable LoadBalancer++instance NFData LoadBalancer++-- | Information about a load balancer attribute.+--+-- /See:/ 'loadBalancerAttribute' smart constructor.+data LoadBalancerAttribute = LoadBalancerAttribute'+    { _lbaValue :: !(Maybe Text)+    , _lbaKey   :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'LoadBalancerAttribute' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lbaValue'+--+-- * 'lbaKey'+loadBalancerAttribute+    :: LoadBalancerAttribute+loadBalancerAttribute =+    LoadBalancerAttribute'+    { _lbaValue = Nothing+    , _lbaKey = Nothing+    }++-- | The value of the attribute.+lbaValue :: Lens' LoadBalancerAttribute (Maybe Text)+lbaValue = lens _lbaValue (\ s a -> s{_lbaValue = a});++-- | The name of the attribute.+--+-- -   'access_logs.s3.enabled' - Indicates whether access logs stored in Amazon S3 are enabled.+--+-- -   'access_logs.s3.bucket' - The name of the S3 bucket for the access logs. This attribute is required if access logs in Amazon S3 are enabled. The bucket must exist in the same region as the load balancer and have a bucket policy that grants Elastic Load Balancing permission to write to the bucket.+--+-- -   'access_logs.s3.prefix' - The prefix for the location in the S3 bucket. If you don\'t specify a prefix, the access logs are stored in the root of the bucket.+--+-- -   'deletion_protection.enabled' - Indicates whether deletion protection is enabled.+--+-- -   'idle_timeout.timeout_seconds' - The idle timeout value, in seconds. The valid range is 1-3600. The default is 60 seconds.+--+lbaKey :: Lens' LoadBalancerAttribute (Maybe Text)+lbaKey = lens _lbaKey (\ s a -> s{_lbaKey = a});++instance FromXML LoadBalancerAttribute where+        parseXML x+          = LoadBalancerAttribute' <$>+              (x .@? "Value") <*> (x .@? "Key")++instance Hashable LoadBalancerAttribute++instance NFData LoadBalancerAttribute++instance ToQuery LoadBalancerAttribute where+        toQuery LoadBalancerAttribute'{..}+          = mconcat ["Value" =: _lbaValue, "Key" =: _lbaKey]++-- | Information about the state of the load balancer.+--+-- /See:/ 'loadBalancerState' smart constructor.+data LoadBalancerState = LoadBalancerState'+    { _lbsReason :: !(Maybe Text)+    , _lbsCode   :: !(Maybe LoadBalancerStateEnum)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'LoadBalancerState' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lbsReason'+--+-- * 'lbsCode'+loadBalancerState+    :: LoadBalancerState+loadBalancerState =+    LoadBalancerState'+    { _lbsReason = Nothing+    , _lbsCode = Nothing+    }++-- | A description of the state.+lbsReason :: Lens' LoadBalancerState (Maybe Text)+lbsReason = lens _lbsReason (\ s a -> s{_lbsReason = a});++-- | The state code. The initial state of the load balancer is 'provisioning'. After the load balancer is fully set up and ready to route traffic, its state is 'active'. If the load balancer could not be set up, its state is 'failed'.+lbsCode :: Lens' LoadBalancerState (Maybe LoadBalancerStateEnum)+lbsCode = lens _lbsCode (\ s a -> s{_lbsCode = a});++instance FromXML LoadBalancerState where+        parseXML x+          = LoadBalancerState' <$>+              (x .@? "Reason") <*> (x .@? "Code")++instance Hashable LoadBalancerState++instance NFData LoadBalancerState++-- | Information to use when checking for a successful response from a target.+--+-- /See:/ 'matcher' smart constructor.+newtype Matcher = Matcher'+    { _mHTTPCode :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Matcher' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'mHTTPCode'+matcher+    :: Text -- ^ 'mHTTPCode'+    -> Matcher+matcher pHTTPCode_ =+    Matcher'+    { _mHTTPCode = pHTTPCode_+    }++-- | The HTTP codes. The default value is 200. You can specify multiple values (for example, \"200,202\") or a range of values (for example, \"200-299\").+mHTTPCode :: Lens' Matcher Text+mHTTPCode = lens _mHTTPCode (\ s a -> s{_mHTTPCode = a});++instance FromXML Matcher where+        parseXML x = Matcher' <$> (x .@ "HttpCode")++instance Hashable Matcher++instance NFData Matcher++instance ToQuery Matcher where+        toQuery Matcher'{..}+          = mconcat ["HttpCode" =: _mHTTPCode]++-- | Information about a rule.+--+-- /See:/ 'rule' smart constructor.+data Rule = Rule'+    { _rPriority   :: !(Maybe Text)+    , _rActions    :: !(Maybe [Action])+    , _rConditions :: !(Maybe [RuleCondition])+    , _rRuleARN    :: !(Maybe Text)+    , _rIsDefault  :: !(Maybe Bool)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Rule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rPriority'+--+-- * 'rActions'+--+-- * 'rConditions'+--+-- * 'rRuleARN'+--+-- * 'rIsDefault'+rule+    :: Rule+rule =+    Rule'+    { _rPriority = Nothing+    , _rActions = Nothing+    , _rConditions = Nothing+    , _rRuleARN = Nothing+    , _rIsDefault = Nothing+    }++-- | The priority.+rPriority :: Lens' Rule (Maybe Text)+rPriority = lens _rPriority (\ s a -> s{_rPriority = a});++-- | The actions.+rActions :: Lens' Rule [Action]+rActions = lens _rActions (\ s a -> s{_rActions = a}) . _Default . _Coerce;++-- | The conditions.+rConditions :: Lens' Rule [RuleCondition]+rConditions = lens _rConditions (\ s a -> s{_rConditions = a}) . _Default . _Coerce;++-- | The Amazon Resource Name (ARN) of the rule.+rRuleARN :: Lens' Rule (Maybe Text)+rRuleARN = lens _rRuleARN (\ s a -> s{_rRuleARN = a});++-- | Indicates whether this is the default rule.+rIsDefault :: Lens' Rule (Maybe Bool)+rIsDefault = lens _rIsDefault (\ s a -> s{_rIsDefault = a});++instance FromXML Rule where+        parseXML x+          = Rule' <$>+              (x .@? "Priority") <*>+                (x .@? "Actions" .!@ mempty >>=+                   may (parseXMLList "member"))+                <*>+                (x .@? "Conditions" .!@ mempty >>=+                   may (parseXMLList "member"))+                <*> (x .@? "RuleArn")+                <*> (x .@? "IsDefault")++instance Hashable Rule++instance NFData Rule++-- | Information about a condition for a rule.+--+-- /See:/ 'ruleCondition' smart constructor.+data RuleCondition = RuleCondition'+    { _rcField  :: !(Maybe Text)+    , _rcValues :: !(Maybe [Text])+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'RuleCondition' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rcField'+--+-- * 'rcValues'+ruleCondition+    :: RuleCondition+ruleCondition =+    RuleCondition'+    { _rcField = Nothing+    , _rcValues = Nothing+    }++-- | The name of the field. The possible value is 'path-pattern'.+rcField :: Lens' RuleCondition (Maybe Text)+rcField = lens _rcField (\ s a -> s{_rcField = a});++-- | The values for the field.+--+-- A path pattern is case sensitive, can be up to 255 characters in length, and can contain any of the following characters:+--+-- -   A-Z, a-z, 0-9+--+-- -   _ - . > \/ ~ \" \' \' : ++--+-- -   &amp; (using &amp;amp;)+--+-- -   * (matches 0 or more characters)+--+-- -   ? (matches exactly 1 character)+--+rcValues :: Lens' RuleCondition [Text]+rcValues = lens _rcValues (\ s a -> s{_rcValues = a}) . _Default . _Coerce;++instance FromXML RuleCondition where+        parseXML x+          = RuleCondition' <$>+              (x .@? "Field") <*>+                (x .@? "Values" .!@ mempty >>=+                   may (parseXMLList "member"))++instance Hashable RuleCondition++instance NFData RuleCondition++instance ToQuery RuleCondition where+        toQuery RuleCondition'{..}+          = mconcat+              ["Field" =: _rcField,+               "Values" =:+                 toQuery (toQueryList "member" <$> _rcValues)]++-- | Information about the priorities for the rules for a listener.+--+-- /See:/ 'rulePriorityPair' smart constructor.+data RulePriorityPair = RulePriorityPair'+    { _rppPriority :: !(Maybe Nat)+    , _rppRuleARN  :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'RulePriorityPair' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rppPriority'+--+-- * 'rppRuleARN'+rulePriorityPair+    :: RulePriorityPair+rulePriorityPair =+    RulePriorityPair'+    { _rppPriority = Nothing+    , _rppRuleARN = Nothing+    }++-- | The rule priority.+rppPriority :: Lens' RulePriorityPair (Maybe Natural)+rppPriority = lens _rppPriority (\ s a -> s{_rppPriority = a}) . mapping _Nat;++-- | The Amazon Resource Name (ARN) of the rule.+rppRuleARN :: Lens' RulePriorityPair (Maybe Text)+rppRuleARN = lens _rppRuleARN (\ s a -> s{_rppRuleARN = a});++instance Hashable RulePriorityPair++instance NFData RulePriorityPair++instance ToQuery RulePriorityPair where+        toQuery RulePriorityPair'{..}+          = mconcat+              ["Priority" =: _rppPriority,+               "RuleArn" =: _rppRuleARN]++-- | Information about a policy used for SSL negotiation.+--+-- /See:/ 'sslPolicy' smart constructor.+data SSLPolicy = SSLPolicy'+    { _spCiphers      :: !(Maybe [Cipher])+    , _spName         :: !(Maybe Text)+    , _spSSLProtocols :: !(Maybe [Text])+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'SSLPolicy' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'spCiphers'+--+-- * 'spName'+--+-- * 'spSSLProtocols'+sslPolicy+    :: SSLPolicy+sslPolicy =+    SSLPolicy'+    { _spCiphers = Nothing+    , _spName = Nothing+    , _spSSLProtocols = Nothing+    }++-- | The ciphers.+spCiphers :: Lens' SSLPolicy [Cipher]+spCiphers = lens _spCiphers (\ s a -> s{_spCiphers = a}) . _Default . _Coerce;++-- | The name of the policy.+spName :: Lens' SSLPolicy (Maybe Text)+spName = lens _spName (\ s a -> s{_spName = a});++-- | The protocols.+spSSLProtocols :: Lens' SSLPolicy [Text]+spSSLProtocols = lens _spSSLProtocols (\ s a -> s{_spSSLProtocols = a}) . _Default . _Coerce;++instance FromXML SSLPolicy where+        parseXML x+          = SSLPolicy' <$>+              (x .@? "Ciphers" .!@ mempty >>=+                 may (parseXMLList "member"))+                <*> (x .@? "Name")+                <*>+                (x .@? "SslProtocols" .!@ mempty >>=+                   may (parseXMLList "member"))++instance Hashable SSLPolicy++instance NFData SSLPolicy++-- | Information about a tag.+--+-- /See:/ 'tag' smart constructor.+data Tag = Tag'+    { _tagValue :: !(Maybe Text)+    , _tagKey   :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Tag' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tagValue'+--+-- * 'tagKey'+tag+    :: Text -- ^ 'tagKey'+    -> Tag+tag pKey_ =+    Tag'+    { _tagValue = Nothing+    , _tagKey = pKey_+    }++-- | The value of the tag.+tagValue :: Lens' Tag (Maybe Text)+tagValue = lens _tagValue (\ s a -> s{_tagValue = a});++-- | The key of the tag.+tagKey :: Lens' Tag Text+tagKey = lens _tagKey (\ s a -> s{_tagKey = a});++instance FromXML Tag where+        parseXML x+          = Tag' <$> (x .@? "Value") <*> (x .@ "Key")++instance Hashable Tag++instance NFData Tag++instance ToQuery Tag where+        toQuery Tag'{..}+          = mconcat ["Value" =: _tagValue, "Key" =: _tagKey]++-- | The tags associated with a resource.+--+-- /See:/ 'tagDescription' smart constructor.+data TagDescription = TagDescription'+    { _tdResourceARN :: !(Maybe Text)+    , _tdTags        :: !(Maybe (List1 Tag))+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'TagDescription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tdResourceARN'+--+-- * 'tdTags'+tagDescription+    :: TagDescription+tagDescription =+    TagDescription'+    { _tdResourceARN = Nothing+    , _tdTags = Nothing+    }++-- | The Amazon Resource Name (ARN) of the resource.+tdResourceARN :: Lens' TagDescription (Maybe Text)+tdResourceARN = lens _tdResourceARN (\ s a -> s{_tdResourceARN = a});++-- | Information about the tags.+tdTags :: Lens' TagDescription (Maybe (NonEmpty Tag))+tdTags = lens _tdTags (\ s a -> s{_tdTags = a}) . mapping _List1;++instance FromXML TagDescription where+        parseXML x+          = TagDescription' <$>+              (x .@? "ResourceArn") <*>+                (x .@? "Tags" .!@ mempty >>=+                   may (parseXMLList1 "member"))++instance Hashable TagDescription++instance NFData TagDescription++-- | Information about a target.+--+-- /See:/ 'targetDescription' smart constructor.+data TargetDescription = TargetDescription'+    { _tdPort :: !(Maybe Nat)+    , _tdId   :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetDescription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tdPort'+--+-- * 'tdId'+targetDescription+    :: Text -- ^ 'tdId'+    -> TargetDescription+targetDescription pId_ =+    TargetDescription'+    { _tdPort = Nothing+    , _tdId = pId_+    }++-- | The port on which the target is listening.+tdPort :: Lens' TargetDescription (Maybe Natural)+tdPort = lens _tdPort (\ s a -> s{_tdPort = a}) . mapping _Nat;++-- | The ID of the target.+tdId :: Lens' TargetDescription Text+tdId = lens _tdId (\ s a -> s{_tdId = a});++instance FromXML TargetDescription where+        parseXML x+          = TargetDescription' <$>+              (x .@? "Port") <*> (x .@ "Id")++instance Hashable TargetDescription++instance NFData TargetDescription++instance ToQuery TargetDescription where+        toQuery TargetDescription'{..}+          = mconcat ["Port" =: _tdPort, "Id" =: _tdId]++-- | Information about a target group.+--+-- /See:/ 'targetGroup' smart constructor.+data TargetGroup = TargetGroup'+    { _tgMatcher                    :: !(Maybe Matcher)+    , _tgHealthCheckPath            :: !(Maybe Text)+    , _tgUnhealthyThresholdCount    :: !(Maybe Nat)+    , _tgVPCId                      :: !(Maybe Text)+    , _tgTargetGroupARN             :: !(Maybe Text)+    , _tgProtocol                   :: !(Maybe ProtocolEnum)+    , _tgHealthCheckIntervalSeconds :: !(Maybe Nat)+    , _tgHealthyThresholdCount      :: !(Maybe Nat)+    , _tgHealthCheckProtocol        :: !(Maybe ProtocolEnum)+    , _tgLoadBalancerARNs           :: !(Maybe [Text])+    , _tgHealthCheckTimeoutSeconds  :: !(Maybe Nat)+    , _tgHealthCheckPort            :: !(Maybe Text)+    , _tgTargetGroupName            :: !(Maybe Text)+    , _tgPort                       :: !(Maybe Nat)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetGroup' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tgMatcher'+--+-- * 'tgHealthCheckPath'+--+-- * 'tgUnhealthyThresholdCount'+--+-- * 'tgVPCId'+--+-- * 'tgTargetGroupARN'+--+-- * 'tgProtocol'+--+-- * 'tgHealthCheckIntervalSeconds'+--+-- * 'tgHealthyThresholdCount'+--+-- * 'tgHealthCheckProtocol'+--+-- * 'tgLoadBalancerARNs'+--+-- * 'tgHealthCheckTimeoutSeconds'+--+-- * 'tgHealthCheckPort'+--+-- * 'tgTargetGroupName'+--+-- * 'tgPort'+targetGroup+    :: TargetGroup+targetGroup =+    TargetGroup'+    { _tgMatcher = Nothing+    , _tgHealthCheckPath = Nothing+    , _tgUnhealthyThresholdCount = Nothing+    , _tgVPCId = Nothing+    , _tgTargetGroupARN = Nothing+    , _tgProtocol = Nothing+    , _tgHealthCheckIntervalSeconds = Nothing+    , _tgHealthyThresholdCount = Nothing+    , _tgHealthCheckProtocol = Nothing+    , _tgLoadBalancerARNs = Nothing+    , _tgHealthCheckTimeoutSeconds = Nothing+    , _tgHealthCheckPort = Nothing+    , _tgTargetGroupName = Nothing+    , _tgPort = Nothing+    }++-- | The HTTP codes to use when checking for a successful response from a target.+tgMatcher :: Lens' TargetGroup (Maybe Matcher)+tgMatcher = lens _tgMatcher (\ s a -> s{_tgMatcher = a});++-- | The destination for the health check request.+tgHealthCheckPath :: Lens' TargetGroup (Maybe Text)+tgHealthCheckPath = lens _tgHealthCheckPath (\ s a -> s{_tgHealthCheckPath = a});++-- | The number of consecutive health check failures required before considering the target unhealthy.+tgUnhealthyThresholdCount :: Lens' TargetGroup (Maybe Natural)+tgUnhealthyThresholdCount = lens _tgUnhealthyThresholdCount (\ s a -> s{_tgUnhealthyThresholdCount = a}) . mapping _Nat;++-- | The ID of the VPC for the targets.+tgVPCId :: Lens' TargetGroup (Maybe Text)+tgVPCId = lens _tgVPCId (\ s a -> s{_tgVPCId = a});++-- | The Amazon Resource Name (ARN) of the target group.+tgTargetGroupARN :: Lens' TargetGroup (Maybe Text)+tgTargetGroupARN = lens _tgTargetGroupARN (\ s a -> s{_tgTargetGroupARN = a});++-- | The protocol to use for routing traffic to the targets.+tgProtocol :: Lens' TargetGroup (Maybe ProtocolEnum)+tgProtocol = lens _tgProtocol (\ s a -> s{_tgProtocol = a});++-- | The approximate amount of time, in seconds, between health checks of an individual target.+tgHealthCheckIntervalSeconds :: Lens' TargetGroup (Maybe Natural)+tgHealthCheckIntervalSeconds = lens _tgHealthCheckIntervalSeconds (\ s a -> s{_tgHealthCheckIntervalSeconds = a}) . mapping _Nat;++-- | The number of consecutive health checks successes required before considering an unhealthy target healthy.+tgHealthyThresholdCount :: Lens' TargetGroup (Maybe Natural)+tgHealthyThresholdCount = lens _tgHealthyThresholdCount (\ s a -> s{_tgHealthyThresholdCount = a}) . mapping _Nat;++-- | The protocol to use to connect with the target.+tgHealthCheckProtocol :: Lens' TargetGroup (Maybe ProtocolEnum)+tgHealthCheckProtocol = lens _tgHealthCheckProtocol (\ s a -> s{_tgHealthCheckProtocol = a});++-- | The Amazon Resource Names (ARN) of the load balancers that route traffic to this target group.+tgLoadBalancerARNs :: Lens' TargetGroup [Text]+tgLoadBalancerARNs = lens _tgLoadBalancerARNs (\ s a -> s{_tgLoadBalancerARNs = a}) . _Default . _Coerce;++-- | The amount of time, in seconds, during which no response means a failed health check.+tgHealthCheckTimeoutSeconds :: Lens' TargetGroup (Maybe Natural)+tgHealthCheckTimeoutSeconds = lens _tgHealthCheckTimeoutSeconds (\ s a -> s{_tgHealthCheckTimeoutSeconds = a}) . mapping _Nat;++-- | The port to use to connect with the target.+tgHealthCheckPort :: Lens' TargetGroup (Maybe Text)+tgHealthCheckPort = lens _tgHealthCheckPort (\ s a -> s{_tgHealthCheckPort = a});++-- | The name of the target group.+tgTargetGroupName :: Lens' TargetGroup (Maybe Text)+tgTargetGroupName = lens _tgTargetGroupName (\ s a -> s{_tgTargetGroupName = a});++-- | The port on which the targets are listening.+tgPort :: Lens' TargetGroup (Maybe Natural)+tgPort = lens _tgPort (\ s a -> s{_tgPort = a}) . mapping _Nat;++instance FromXML TargetGroup where+        parseXML x+          = TargetGroup' <$>+              (x .@? "Matcher") <*> (x .@? "HealthCheckPath") <*>+                (x .@? "UnhealthyThresholdCount")+                <*> (x .@? "VpcId")+                <*> (x .@? "TargetGroupArn")+                <*> (x .@? "Protocol")+                <*> (x .@? "HealthCheckIntervalSeconds")+                <*> (x .@? "HealthyThresholdCount")+                <*> (x .@? "HealthCheckProtocol")+                <*>+                (x .@? "LoadBalancerArns" .!@ mempty >>=+                   may (parseXMLList "member"))+                <*> (x .@? "HealthCheckTimeoutSeconds")+                <*> (x .@? "HealthCheckPort")+                <*> (x .@? "TargetGroupName")+                <*> (x .@? "Port")++instance Hashable TargetGroup++instance NFData TargetGroup++-- | Information about a target group attribute.+--+-- /See:/ 'targetGroupAttribute' smart constructor.+data TargetGroupAttribute = TargetGroupAttribute'+    { _tgaValue :: !(Maybe Text)+    , _tgaKey   :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetGroupAttribute' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tgaValue'+--+-- * 'tgaKey'+targetGroupAttribute+    :: TargetGroupAttribute+targetGroupAttribute =+    TargetGroupAttribute'+    { _tgaValue = Nothing+    , _tgaKey = Nothing+    }++-- | The value of the attribute.+tgaValue :: Lens' TargetGroupAttribute (Maybe Text)+tgaValue = lens _tgaValue (\ s a -> s{_tgaValue = a});++-- | The name of the attribute.+--+-- -   'deregistration_delay.timeout_seconds' - The amount time for Elastic Load Balancing to wait before changing the state of a deregistering target from 'draining' to 'unused'. The range is 0-3600 seconds. The default value is 300 seconds.+--+-- -   'stickiness.enabled' - Indicates whether sticky sessions are enabled.+--+-- -   'stickiness.type' - The type of sticky sessions. The possible value is 'lb_cookie'.+--+-- -   'stickiness.lb_cookie.duration_seconds' - The time period, in seconds, during which requests from a client should be routed to the same target. After this time period expires, the load balancer-generated cookie is considered stale. The range is 1 second to 1 week (604800 seconds). The default value is 1 day (86400 seconds).+--+tgaKey :: Lens' TargetGroupAttribute (Maybe Text)+tgaKey = lens _tgaKey (\ s a -> s{_tgaKey = a});++instance FromXML TargetGroupAttribute where+        parseXML x+          = TargetGroupAttribute' <$>+              (x .@? "Value") <*> (x .@? "Key")++instance Hashable TargetGroupAttribute++instance NFData TargetGroupAttribute++instance ToQuery TargetGroupAttribute where+        toQuery TargetGroupAttribute'{..}+          = mconcat ["Value" =: _tgaValue, "Key" =: _tgaKey]++-- | Information about the current health of a target.+--+-- /See:/ 'targetHealth' smart constructor.+data TargetHealth = TargetHealth'+    { _thState       :: !(Maybe TargetHealthStateEnum)+    , _thReason      :: !(Maybe TargetHealthReasonEnum)+    , _thDescription :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetHealth' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'thState'+--+-- * 'thReason'+--+-- * 'thDescription'+targetHealth+    :: TargetHealth+targetHealth =+    TargetHealth'+    { _thState = Nothing+    , _thReason = Nothing+    , _thDescription = Nothing+    }++-- | The state of the target.+thState :: Lens' TargetHealth (Maybe TargetHealthStateEnum)+thState = lens _thState (\ s a -> s{_thState = a});++-- | The reason code. If the target state is 'healthy', a reason code is not provided.+--+-- If the target state is 'initial', the reason code can be one of the following values:+--+-- -   'Elb.RegistrationInProgress' - The target is in the process of being registered with the load balancer.+--+-- -   'Elb.InitialHealthChecking' - The load balancer is still sending the target the minimum number of health checks required to determine its health status.+--+-- If the target state is 'unhealthy', the reason code can be one of the following values:+--+-- -   'Target.ResponseCodeMismatch' - The health checks did not return an expected HTTP code.+--+-- -   'Target.Timeout' - The health check requests timed out.+--+-- -   'Target.FailedHealthChecks' - The health checks failed because the connection to the target timed out, the target response was malformed, or the target failed the health check for an unknown reason.+--+-- -   'Elb.InternalError' - The health checks failed due to an internal error.+--+-- If the target state is 'unused', the reason code can be one of the following values:+--+-- -   'Target.NotRegistered' - The target is not registered with the target group.+--+-- -   'Target.NotInUse' - The target group is not used by any load balancer or the target is in an Availability Zone that is not enabled for its load balancer.+--+-- -   'Target.InvalidState' - The target is in the stopped or terminated state.+--+-- If the target state is 'draining', the reason code can be the following value:+--+-- -   'Target.DeregistrationInProgress' - The target is in the process of being deregistered and the deregistration delay period has not expired.+--+thReason :: Lens' TargetHealth (Maybe TargetHealthReasonEnum)+thReason = lens _thReason (\ s a -> s{_thReason = a});++-- | A description of the target health that provides additional details. If the state is 'healthy', a description is not provided.+thDescription :: Lens' TargetHealth (Maybe Text)+thDescription = lens _thDescription (\ s a -> s{_thDescription = a});++instance FromXML TargetHealth where+        parseXML x+          = TargetHealth' <$>+              (x .@? "State") <*> (x .@? "Reason") <*>+                (x .@? "Description")++instance Hashable TargetHealth++instance NFData TargetHealth++-- | Information about the health of a target.+--+-- /See:/ 'targetHealthDescription' smart constructor.+data TargetHealthDescription = TargetHealthDescription'+    { _thdTargetHealth    :: !(Maybe TargetHealth)+    , _thdHealthCheckPort :: !(Maybe Text)+    , _thdTarget          :: !(Maybe TargetDescription)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'TargetHealthDescription' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'thdTargetHealth'+--+-- * 'thdHealthCheckPort'+--+-- * 'thdTarget'+targetHealthDescription+    :: TargetHealthDescription+targetHealthDescription =+    TargetHealthDescription'+    { _thdTargetHealth = Nothing+    , _thdHealthCheckPort = Nothing+    , _thdTarget = Nothing+    }++-- | The health information for the target.+thdTargetHealth :: Lens' TargetHealthDescription (Maybe TargetHealth)+thdTargetHealth = lens _thdTargetHealth (\ s a -> s{_thdTargetHealth = a});++-- | The port to use to connect with the target.+thdHealthCheckPort :: Lens' TargetHealthDescription (Maybe Text)+thdHealthCheckPort = lens _thdHealthCheckPort (\ s a -> s{_thdHealthCheckPort = a});++-- | The description of the target.+thdTarget :: Lens' TargetHealthDescription (Maybe TargetDescription)+thdTarget = lens _thdTarget (\ s a -> s{_thdTarget = a});++instance FromXML TargetHealthDescription where+        parseXML x+          = TargetHealthDescription' <$>+              (x .@? "TargetHealth") <*> (x .@? "HealthCheckPort")+                <*> (x .@? "Target")++instance Hashable TargetHealthDescription++instance NFData TargetHealthDescription
+ gen/Network/AWS/ELBv2/Types/Sum.hs view
@@ -0,0 +1,232 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.Types.Sum+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.ELBv2.Types.Sum where++import           Network.AWS.Prelude++data ActionTypeEnum =+    Forward+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)++instance FromText ActionTypeEnum where+    parser = takeLowerText >>= \case+        "forward" -> pure Forward+        e -> fromTextError $ "Failure parsing ActionTypeEnum from value: '" <> e+           <> "'. Accepted values: forward"++instance ToText ActionTypeEnum where+    toText = \case+        Forward -> "forward"++instance Hashable     ActionTypeEnum+instance NFData       ActionTypeEnum+instance ToByteString ActionTypeEnum+instance ToQuery      ActionTypeEnum+instance ToHeader     ActionTypeEnum++instance FromXML ActionTypeEnum where+    parseXML = parseXMLText "ActionTypeEnum"++data LoadBalancerSchemeEnum+    = Internal+    | InternetFacing+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)++instance FromText LoadBalancerSchemeEnum where+    parser = takeLowerText >>= \case+        "internal" -> pure Internal+        "internet-facing" -> pure InternetFacing+        e -> fromTextError $ "Failure parsing LoadBalancerSchemeEnum from value: '" <> e+           <> "'. Accepted values: internal, internet-facing"++instance ToText LoadBalancerSchemeEnum where+    toText = \case+        Internal -> "internal"+        InternetFacing -> "internet-facing"++instance Hashable     LoadBalancerSchemeEnum+instance NFData       LoadBalancerSchemeEnum+instance ToByteString LoadBalancerSchemeEnum+instance ToQuery      LoadBalancerSchemeEnum+instance ToHeader     LoadBalancerSchemeEnum++instance FromXML LoadBalancerSchemeEnum where+    parseXML = parseXMLText "LoadBalancerSchemeEnum"++data LoadBalancerStateEnum+    = Active+    | Failed+    | Provisioning+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)++instance FromText LoadBalancerStateEnum where+    parser = takeLowerText >>= \case+        "active" -> pure Active+        "failed" -> pure Failed+        "provisioning" -> pure Provisioning+        e -> fromTextError $ "Failure parsing LoadBalancerStateEnum from value: '" <> e+           <> "'. Accepted values: active, failed, provisioning"++instance ToText LoadBalancerStateEnum where+    toText = \case+        Active -> "active"+        Failed -> "failed"+        Provisioning -> "provisioning"++instance Hashable     LoadBalancerStateEnum+instance NFData       LoadBalancerStateEnum+instance ToByteString LoadBalancerStateEnum+instance ToQuery      LoadBalancerStateEnum+instance ToHeader     LoadBalancerStateEnum++instance FromXML LoadBalancerStateEnum where+    parseXML = parseXMLText "LoadBalancerStateEnum"++data LoadBalancerTypeEnum =+    Application+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)++instance FromText LoadBalancerTypeEnum where+    parser = takeLowerText >>= \case+        "application" -> pure Application+        e -> fromTextError $ "Failure parsing LoadBalancerTypeEnum from value: '" <> e+           <> "'. Accepted values: application"++instance ToText LoadBalancerTypeEnum where+    toText = \case+        Application -> "application"++instance Hashable     LoadBalancerTypeEnum+instance NFData       LoadBalancerTypeEnum+instance ToByteString LoadBalancerTypeEnum+instance ToQuery      LoadBalancerTypeEnum+instance ToHeader     LoadBalancerTypeEnum++instance FromXML LoadBalancerTypeEnum where+    parseXML = parseXMLText "LoadBalancerTypeEnum"++data ProtocolEnum+    = HTTP+    | HTTPS+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)++instance FromText ProtocolEnum where+    parser = takeLowerText >>= \case+        "http" -> pure HTTP+        "https" -> pure HTTPS+        e -> fromTextError $ "Failure parsing ProtocolEnum from value: '" <> e+           <> "'. Accepted values: http, https"++instance ToText ProtocolEnum where+    toText = \case+        HTTP -> "HTTP"+        HTTPS -> "HTTPS"++instance Hashable     ProtocolEnum+instance NFData       ProtocolEnum+instance ToByteString ProtocolEnum+instance ToQuery      ProtocolEnum+instance ToHeader     ProtocolEnum++instance FromXML ProtocolEnum where+    parseXML = parseXMLText "ProtocolEnum"++data TargetHealthReasonEnum+    = Elb_InitialHealthChecking+    | Elb_InternalError+    | Elb_RegistrationInProgress+    | Target_DeregistrationInProgress+    | Target_FailedHealthChecks+    | Target_InvalidState+    | Target_NotInUse+    | Target_NotRegistered+    | Target_ResponseCodeMismatch+    | Target_Timeout+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)++instance FromText TargetHealthReasonEnum where+    parser = takeLowerText >>= \case+        "elb.initialhealthchecking" -> pure Elb_InitialHealthChecking+        "elb.internalerror" -> pure Elb_InternalError+        "elb.registrationinprogress" -> pure Elb_RegistrationInProgress+        "target.deregistrationinprogress" -> pure Target_DeregistrationInProgress+        "target.failedhealthchecks" -> pure Target_FailedHealthChecks+        "target.invalidstate" -> pure Target_InvalidState+        "target.notinuse" -> pure Target_NotInUse+        "target.notregistered" -> pure Target_NotRegistered+        "target.responsecodemismatch" -> pure Target_ResponseCodeMismatch+        "target.timeout" -> pure Target_Timeout+        e -> fromTextError $ "Failure parsing TargetHealthReasonEnum from value: '" <> e+           <> "'. Accepted values: elb.initialhealthchecking, elb.internalerror, elb.registrationinprogress, target.deregistrationinprogress, target.failedhealthchecks, target.invalidstate, target.notinuse, target.notregistered, target.responsecodemismatch, target.timeout"++instance ToText TargetHealthReasonEnum where+    toText = \case+        Elb_InitialHealthChecking -> "Elb.InitialHealthChecking"+        Elb_InternalError -> "Elb.InternalError"+        Elb_RegistrationInProgress -> "Elb.RegistrationInProgress"+        Target_DeregistrationInProgress -> "Target.DeregistrationInProgress"+        Target_FailedHealthChecks -> "Target.FailedHealthChecks"+        Target_InvalidState -> "Target.InvalidState"+        Target_NotInUse -> "Target.NotInUse"+        Target_NotRegistered -> "Target.NotRegistered"+        Target_ResponseCodeMismatch -> "Target.ResponseCodeMismatch"+        Target_Timeout -> "Target.Timeout"++instance Hashable     TargetHealthReasonEnum+instance NFData       TargetHealthReasonEnum+instance ToByteString TargetHealthReasonEnum+instance ToQuery      TargetHealthReasonEnum+instance ToHeader     TargetHealthReasonEnum++instance FromXML TargetHealthReasonEnum where+    parseXML = parseXMLText "TargetHealthReasonEnum"++data TargetHealthStateEnum+    = Draining+    | Healthy+    | Initial+    | Unhealthy+    | Unused+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)++instance FromText TargetHealthStateEnum where+    parser = takeLowerText >>= \case+        "draining" -> pure Draining+        "healthy" -> pure Healthy+        "initial" -> pure Initial+        "unhealthy" -> pure Unhealthy+        "unused" -> pure Unused+        e -> fromTextError $ "Failure parsing TargetHealthStateEnum from value: '" <> e+           <> "'. Accepted values: draining, healthy, initial, unhealthy, unused"++instance ToText TargetHealthStateEnum where+    toText = \case+        Draining -> "draining"+        Healthy -> "healthy"+        Initial -> "initial"+        Unhealthy -> "unhealthy"+        Unused -> "unused"++instance Hashable     TargetHealthStateEnum+instance NFData       TargetHealthStateEnum+instance ToByteString TargetHealthStateEnum+instance ToQuery      TargetHealthStateEnum+instance ToHeader     TargetHealthStateEnum++instance FromXML TargetHealthStateEnum where+    parseXML = parseXMLText "TargetHealthStateEnum"
+ gen/Network/AWS/ELBv2/Waiters.hs view
@@ -0,0 +1,21 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TypeFamilies      #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.ELBv2.Waiters+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.ELBv2.Waiters where++import           Network.AWS.ELBv2.Types+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Waiter
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,21 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Main+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Main (main) where++import Test.Tasty+import Test.AWS.ELBv2+import Test.AWS.ELBv2.Internal++main :: IO ()+main = defaultMain $ testGroup "ELBv2"+    [ testGroup "tests"    tests+    , testGroup "fixtures" fixtures+    ]
+ test/Test/AWS/ELBv2.hs view
@@ -0,0 +1,26 @@+{-# LANGUAGE OverloadedStrings #-}++-- Module      : Test.AWS.ELBv2+-- Copyright   : (c) 2013-2016 Brendan Hay+-- 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 Test.AWS.ELBv2+    ( tests+    , fixtures+    ) where++import           Network.AWS.ELBv2+import           Test.AWS.Gen.ELBv2+import           Test.Tasty++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/AWS/ELBv2/Internal.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE OverloadedStrings #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Test.AWS.ELBv2.Internal+-- Copyright   : (c) 2013-2016 Brendan Hay+-- 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 Test.AWS.ELBv2.Internal where++import Test.AWS.Prelude
+ test/Test/AWS/Gen/ELBv2.hs view
@@ -0,0 +1,561 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-orphans        #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Test.AWS.Gen.ELBv2+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Test.AWS.Gen.ELBv2 where++import Data.Proxy+import Test.AWS.Fixture+import Test.AWS.Prelude+import Test.Tasty+import Network.AWS.ELBv2+import Test.AWS.ELBv2.Internal++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+--     [ testGroup "request"+--         [ requestDescribeLoadBalancers $+--             describeLoadBalancers+--+--         , requestDescribeTags $+--             describeTags+--+--         , requestDeleteRule $+--             deleteRule+--+--         , requestRemoveTags $+--             removeTags+--+--         , requestDeleteTargetGroup $+--             deleteTargetGroup+--+--         , requestSetSubnets $+--             setSubnets+--+--         , requestCreateRule $+--             createRule+--+--         , requestSetSecurityGroups $+--             setSecurityGroups+--+--         , requestSetRulePriorities $+--             setRulePriorities+--+--         , requestDescribeTargetGroups $+--             describeTargetGroups+--+--         , requestDescribeRules $+--             describeRules+--+--         , requestDeleteLoadBalancer $+--             deleteLoadBalancer+--+--         , requestRegisterTargets $+--             registerTargets+--+--         , requestModifyListener $+--             modifyListener+--+--         , requestModifyTargetGroup $+--             modifyTargetGroup+--+--         , requestModifyTargetGroupAttributes $+--             modifyTargetGroupAttributes+--+--         , requestDescribeTargetGroupAttributes $+--             describeTargetGroupAttributes+--+--         , requestDeleteListener $+--             deleteListener+--+--         , requestDescribeSSLPolicies $+--             describeSSLPolicies+--+--         , requestDeregisterTargets $+--             deregisterTargets+--+--         , requestCreateListener $+--             createListener+--+--         , requestCreateTargetGroup $+--             createTargetGroup+--+--         , requestModifyLoadBalancerAttributes $+--             modifyLoadBalancerAttributes+--+--         , requestAddTags $+--             addTags+--+--         , requestDescribeLoadBalancerAttributes $+--             describeLoadBalancerAttributes+--+--         , requestDescribeListeners $+--             describeListeners+--+--         , requestDescribeTargetHealth $+--             describeTargetHealth+--+--         , requestCreateLoadBalancer $+--             createLoadBalancer+--+--         , requestModifyRule $+--             modifyRule+--+--           ]++--     , testGroup "response"+--         [ responseDescribeLoadBalancers $+--             describeLoadBalancersResponse+--+--         , responseDescribeTags $+--             describeTagsResponse+--+--         , responseDeleteRule $+--             deleteRuleResponse+--+--         , responseRemoveTags $+--             removeTagsResponse+--+--         , responseDeleteTargetGroup $+--             deleteTargetGroupResponse+--+--         , responseSetSubnets $+--             setSubnetsResponse+--+--         , responseCreateRule $+--             createRuleResponse+--+--         , responseSetSecurityGroups $+--             setSecurityGroupsResponse+--+--         , responseSetRulePriorities $+--             setRulePrioritiesResponse+--+--         , responseDescribeTargetGroups $+--             describeTargetGroupsResponse+--+--         , responseDescribeRules $+--             describeRulesResponse+--+--         , responseDeleteLoadBalancer $+--             deleteLoadBalancerResponse+--+--         , responseRegisterTargets $+--             registerTargetsResponse+--+--         , responseModifyListener $+--             modifyListenerResponse+--+--         , responseModifyTargetGroup $+--             modifyTargetGroupResponse+--+--         , responseModifyTargetGroupAttributes $+--             modifyTargetGroupAttributesResponse+--+--         , responseDescribeTargetGroupAttributes $+--             describeTargetGroupAttributesResponse+--+--         , responseDeleteListener $+--             deleteListenerResponse+--+--         , responseDescribeSSLPolicies $+--             describeSSLPoliciesResponse+--+--         , responseDeregisterTargets $+--             deregisterTargetsResponse+--+--         , responseCreateListener $+--             createListenerResponse+--+--         , responseCreateTargetGroup $+--             createTargetGroupResponse+--+--         , responseModifyLoadBalancerAttributes $+--             modifyLoadBalancerAttributesResponse+--+--         , responseAddTags $+--             addTagsResponse+--+--         , responseDescribeLoadBalancerAttributes $+--             describeLoadBalancerAttributesResponse+--+--         , responseDescribeListeners $+--             describeListenersResponse+--+--         , responseDescribeTargetHealth $+--             describeTargetHealthResponse+--+--         , responseCreateLoadBalancer $+--             createLoadBalancerResponse+--+--         , responseModifyRule $+--             modifyRuleResponse+--+--           ]+--     ]++-- Requests++requestDescribeLoadBalancers :: DescribeLoadBalancers -> TestTree+requestDescribeLoadBalancers = req+    "DescribeLoadBalancers"+    "fixture/DescribeLoadBalancers.yaml"++requestDescribeTags :: DescribeTags -> TestTree+requestDescribeTags = req+    "DescribeTags"+    "fixture/DescribeTags.yaml"++requestDeleteRule :: DeleteRule -> TestTree+requestDeleteRule = req+    "DeleteRule"+    "fixture/DeleteRule.yaml"++requestRemoveTags :: RemoveTags -> TestTree+requestRemoveTags = req+    "RemoveTags"+    "fixture/RemoveTags.yaml"++requestDeleteTargetGroup :: DeleteTargetGroup -> TestTree+requestDeleteTargetGroup = req+    "DeleteTargetGroup"+    "fixture/DeleteTargetGroup.yaml"++requestSetSubnets :: SetSubnets -> TestTree+requestSetSubnets = req+    "SetSubnets"+    "fixture/SetSubnets.yaml"++requestCreateRule :: CreateRule -> TestTree+requestCreateRule = req+    "CreateRule"+    "fixture/CreateRule.yaml"++requestSetSecurityGroups :: SetSecurityGroups -> TestTree+requestSetSecurityGroups = req+    "SetSecurityGroups"+    "fixture/SetSecurityGroups.yaml"++requestSetRulePriorities :: SetRulePriorities -> TestTree+requestSetRulePriorities = req+    "SetRulePriorities"+    "fixture/SetRulePriorities.yaml"++requestDescribeTargetGroups :: DescribeTargetGroups -> TestTree+requestDescribeTargetGroups = req+    "DescribeTargetGroups"+    "fixture/DescribeTargetGroups.yaml"++requestDescribeRules :: DescribeRules -> TestTree+requestDescribeRules = req+    "DescribeRules"+    "fixture/DescribeRules.yaml"++requestDeleteLoadBalancer :: DeleteLoadBalancer -> TestTree+requestDeleteLoadBalancer = req+    "DeleteLoadBalancer"+    "fixture/DeleteLoadBalancer.yaml"++requestRegisterTargets :: RegisterTargets -> TestTree+requestRegisterTargets = req+    "RegisterTargets"+    "fixture/RegisterTargets.yaml"++requestModifyListener :: ModifyListener -> TestTree+requestModifyListener = req+    "ModifyListener"+    "fixture/ModifyListener.yaml"++requestModifyTargetGroup :: ModifyTargetGroup -> TestTree+requestModifyTargetGroup = req+    "ModifyTargetGroup"+    "fixture/ModifyTargetGroup.yaml"++requestModifyTargetGroupAttributes :: ModifyTargetGroupAttributes -> TestTree+requestModifyTargetGroupAttributes = req+    "ModifyTargetGroupAttributes"+    "fixture/ModifyTargetGroupAttributes.yaml"++requestDescribeTargetGroupAttributes :: DescribeTargetGroupAttributes -> TestTree+requestDescribeTargetGroupAttributes = req+    "DescribeTargetGroupAttributes"+    "fixture/DescribeTargetGroupAttributes.yaml"++requestDeleteListener :: DeleteListener -> TestTree+requestDeleteListener = req+    "DeleteListener"+    "fixture/DeleteListener.yaml"++requestDescribeSSLPolicies :: DescribeSSLPolicies -> TestTree+requestDescribeSSLPolicies = req+    "DescribeSSLPolicies"+    "fixture/DescribeSSLPolicies.yaml"++requestDeregisterTargets :: DeregisterTargets -> TestTree+requestDeregisterTargets = req+    "DeregisterTargets"+    "fixture/DeregisterTargets.yaml"++requestCreateListener :: CreateListener -> TestTree+requestCreateListener = req+    "CreateListener"+    "fixture/CreateListener.yaml"++requestCreateTargetGroup :: CreateTargetGroup -> TestTree+requestCreateTargetGroup = req+    "CreateTargetGroup"+    "fixture/CreateTargetGroup.yaml"++requestModifyLoadBalancerAttributes :: ModifyLoadBalancerAttributes -> TestTree+requestModifyLoadBalancerAttributes = req+    "ModifyLoadBalancerAttributes"+    "fixture/ModifyLoadBalancerAttributes.yaml"++requestAddTags :: AddTags -> TestTree+requestAddTags = req+    "AddTags"+    "fixture/AddTags.yaml"++requestDescribeLoadBalancerAttributes :: DescribeLoadBalancerAttributes -> TestTree+requestDescribeLoadBalancerAttributes = req+    "DescribeLoadBalancerAttributes"+    "fixture/DescribeLoadBalancerAttributes.yaml"++requestDescribeListeners :: DescribeListeners -> TestTree+requestDescribeListeners = req+    "DescribeListeners"+    "fixture/DescribeListeners.yaml"++requestDescribeTargetHealth :: DescribeTargetHealth -> TestTree+requestDescribeTargetHealth = req+    "DescribeTargetHealth"+    "fixture/DescribeTargetHealth.yaml"++requestCreateLoadBalancer :: CreateLoadBalancer -> TestTree+requestCreateLoadBalancer = req+    "CreateLoadBalancer"+    "fixture/CreateLoadBalancer.yaml"++requestModifyRule :: ModifyRule -> TestTree+requestModifyRule = req+    "ModifyRule"+    "fixture/ModifyRule.yaml"++-- Responses++responseDescribeLoadBalancers :: DescribeLoadBalancersResponse -> TestTree+responseDescribeLoadBalancers = res+    "DescribeLoadBalancersResponse"+    "fixture/DescribeLoadBalancersResponse.proto"+    eLBv2+    (Proxy :: Proxy DescribeLoadBalancers)++responseDescribeTags :: DescribeTagsResponse -> TestTree+responseDescribeTags = res+    "DescribeTagsResponse"+    "fixture/DescribeTagsResponse.proto"+    eLBv2+    (Proxy :: Proxy DescribeTags)++responseDeleteRule :: DeleteRuleResponse -> TestTree+responseDeleteRule = res+    "DeleteRuleResponse"+    "fixture/DeleteRuleResponse.proto"+    eLBv2+    (Proxy :: Proxy DeleteRule)++responseRemoveTags :: RemoveTagsResponse -> TestTree+responseRemoveTags = res+    "RemoveTagsResponse"+    "fixture/RemoveTagsResponse.proto"+    eLBv2+    (Proxy :: Proxy RemoveTags)++responseDeleteTargetGroup :: DeleteTargetGroupResponse -> TestTree+responseDeleteTargetGroup = res+    "DeleteTargetGroupResponse"+    "fixture/DeleteTargetGroupResponse.proto"+    eLBv2+    (Proxy :: Proxy DeleteTargetGroup)++responseSetSubnets :: SetSubnetsResponse -> TestTree+responseSetSubnets = res+    "SetSubnetsResponse"+    "fixture/SetSubnetsResponse.proto"+    eLBv2+    (Proxy :: Proxy SetSubnets)++responseCreateRule :: CreateRuleResponse -> TestTree+responseCreateRule = res+    "CreateRuleResponse"+    "fixture/CreateRuleResponse.proto"+    eLBv2+    (Proxy :: Proxy CreateRule)++responseSetSecurityGroups :: SetSecurityGroupsResponse -> TestTree+responseSetSecurityGroups = res+    "SetSecurityGroupsResponse"+    "fixture/SetSecurityGroupsResponse.proto"+    eLBv2+    (Proxy :: Proxy SetSecurityGroups)++responseSetRulePriorities :: SetRulePrioritiesResponse -> TestTree+responseSetRulePriorities = res+    "SetRulePrioritiesResponse"+    "fixture/SetRulePrioritiesResponse.proto"+    eLBv2+    (Proxy :: Proxy SetRulePriorities)++responseDescribeTargetGroups :: DescribeTargetGroupsResponse -> TestTree+responseDescribeTargetGroups = res+    "DescribeTargetGroupsResponse"+    "fixture/DescribeTargetGroupsResponse.proto"+    eLBv2+    (Proxy :: Proxy DescribeTargetGroups)++responseDescribeRules :: DescribeRulesResponse -> TestTree+responseDescribeRules = res+    "DescribeRulesResponse"+    "fixture/DescribeRulesResponse.proto"+    eLBv2+    (Proxy :: Proxy DescribeRules)++responseDeleteLoadBalancer :: DeleteLoadBalancerResponse -> TestTree+responseDeleteLoadBalancer = res+    "DeleteLoadBalancerResponse"+    "fixture/DeleteLoadBalancerResponse.proto"+    eLBv2+    (Proxy :: Proxy DeleteLoadBalancer)++responseRegisterTargets :: RegisterTargetsResponse -> TestTree+responseRegisterTargets = res+    "RegisterTargetsResponse"+    "fixture/RegisterTargetsResponse.proto"+    eLBv2+    (Proxy :: Proxy RegisterTargets)++responseModifyListener :: ModifyListenerResponse -> TestTree+responseModifyListener = res+    "ModifyListenerResponse"+    "fixture/ModifyListenerResponse.proto"+    eLBv2+    (Proxy :: Proxy ModifyListener)++responseModifyTargetGroup :: ModifyTargetGroupResponse -> TestTree+responseModifyTargetGroup = res+    "ModifyTargetGroupResponse"+    "fixture/ModifyTargetGroupResponse.proto"+    eLBv2+    (Proxy :: Proxy ModifyTargetGroup)++responseModifyTargetGroupAttributes :: ModifyTargetGroupAttributesResponse -> TestTree+responseModifyTargetGroupAttributes = res+    "ModifyTargetGroupAttributesResponse"+    "fixture/ModifyTargetGroupAttributesResponse.proto"+    eLBv2+    (Proxy :: Proxy ModifyTargetGroupAttributes)++responseDescribeTargetGroupAttributes :: DescribeTargetGroupAttributesResponse -> TestTree+responseDescribeTargetGroupAttributes = res+    "DescribeTargetGroupAttributesResponse"+    "fixture/DescribeTargetGroupAttributesResponse.proto"+    eLBv2+    (Proxy :: Proxy DescribeTargetGroupAttributes)++responseDeleteListener :: DeleteListenerResponse -> TestTree+responseDeleteListener = res+    "DeleteListenerResponse"+    "fixture/DeleteListenerResponse.proto"+    eLBv2+    (Proxy :: Proxy DeleteListener)++responseDescribeSSLPolicies :: DescribeSSLPoliciesResponse -> TestTree+responseDescribeSSLPolicies = res+    "DescribeSSLPoliciesResponse"+    "fixture/DescribeSSLPoliciesResponse.proto"+    eLBv2+    (Proxy :: Proxy DescribeSSLPolicies)++responseDeregisterTargets :: DeregisterTargetsResponse -> TestTree+responseDeregisterTargets = res+    "DeregisterTargetsResponse"+    "fixture/DeregisterTargetsResponse.proto"+    eLBv2+    (Proxy :: Proxy DeregisterTargets)++responseCreateListener :: CreateListenerResponse -> TestTree+responseCreateListener = res+    "CreateListenerResponse"+    "fixture/CreateListenerResponse.proto"+    eLBv2+    (Proxy :: Proxy CreateListener)++responseCreateTargetGroup :: CreateTargetGroupResponse -> TestTree+responseCreateTargetGroup = res+    "CreateTargetGroupResponse"+    "fixture/CreateTargetGroupResponse.proto"+    eLBv2+    (Proxy :: Proxy CreateTargetGroup)++responseModifyLoadBalancerAttributes :: ModifyLoadBalancerAttributesResponse -> TestTree+responseModifyLoadBalancerAttributes = res+    "ModifyLoadBalancerAttributesResponse"+    "fixture/ModifyLoadBalancerAttributesResponse.proto"+    eLBv2+    (Proxy :: Proxy ModifyLoadBalancerAttributes)++responseAddTags :: AddTagsResponse -> TestTree+responseAddTags = res+    "AddTagsResponse"+    "fixture/AddTagsResponse.proto"+    eLBv2+    (Proxy :: Proxy AddTags)++responseDescribeLoadBalancerAttributes :: DescribeLoadBalancerAttributesResponse -> TestTree+responseDescribeLoadBalancerAttributes = res+    "DescribeLoadBalancerAttributesResponse"+    "fixture/DescribeLoadBalancerAttributesResponse.proto"+    eLBv2+    (Proxy :: Proxy DescribeLoadBalancerAttributes)++responseDescribeListeners :: DescribeListenersResponse -> TestTree+responseDescribeListeners = res+    "DescribeListenersResponse"+    "fixture/DescribeListenersResponse.proto"+    eLBv2+    (Proxy :: Proxy DescribeListeners)++responseDescribeTargetHealth :: DescribeTargetHealthResponse -> TestTree+responseDescribeTargetHealth = res+    "DescribeTargetHealthResponse"+    "fixture/DescribeTargetHealthResponse.proto"+    eLBv2+    (Proxy :: Proxy DescribeTargetHealth)++responseCreateLoadBalancer :: CreateLoadBalancerResponse -> TestTree+responseCreateLoadBalancer = res+    "CreateLoadBalancerResponse"+    "fixture/CreateLoadBalancerResponse.proto"+    eLBv2+    (Proxy :: Proxy CreateLoadBalancer)++responseModifyRule :: ModifyRuleResponse -> TestTree+responseModifyRule = res+    "ModifyRuleResponse"+    "fixture/ModifyRuleResponse.proto"+    eLBv2+    (Proxy :: Proxy ModifyRule)