packages feed

amazonka-cloudwatch-events (empty) → 1.4.0

raw patch · 49 files changed

+3517/−0 lines, 49 filesdep +amazonka-cloudwatch-eventsdep +amazonka-coredep +amazonka-testsetup-changed

Dependencies added: amazonka-cloudwatch-events, amazonka-core, 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,59 @@+# Amazon CloudWatch Events SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`1.4.0`+++## Description++Amazon CloudWatch Events helps you to respond to state changes in your+AWS resources. When your resources change state they automatically send+events into an event stream. You can create rules that match selected+events in the stream and route them to targets to take action. You can+also use rules to take action on a pre-determined schedule. For example,+you can configure rules to:++-   Automatically invoke an AWS Lambda function to update DNS entries+    when an event notifies you that Amazon EC2 instance enters the+    running state.+-   Direct specific API records from CloudTrail to an Amazon Kinesis+    stream for detailed analysis of potential security or availability+    risks.+-   Periodically invoke a built-in target to create a snapshot of an+    Amazon EBS volume.++For more information about Amazon CloudWatch Events features, see the+<http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide Amazon CloudWatch Developer Guide>.++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-cloudwatch-events)+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-cloudwatch-events` 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-cloudwatch-events.cabal view
@@ -0,0 +1,110 @@+name:                  amazonka-cloudwatch-events+version:               1.4.0+synopsis:              Amazon CloudWatch Events 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+description:+    Amazon CloudWatch Events helps you to respond to state changes in your+    AWS resources. When your resources change state they automatically send+    events into an event stream. You can create rules that match selected+    events in the stream and route them to targets to take action. You can+    also use rules to take action on a pre-determined schedule. For example,+    you can configure rules to:++    -   Automatically invoke an AWS Lambda function to update DNS entries+        when an event notifies you that Amazon EC2 instance enters the+        running state.+    -   Direct specific API records from CloudTrail to an Amazon Kinesis+        stream for detailed analysis of potential security or availability+        risks.+    -   Periodically invoke a built-in target to create a snapshot of an+        Amazon EBS volume.++    For more information about Amazon CloudWatch Events features, see the+    <http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide Amazon CloudWatch Developer Guide>.+    .+    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.CloudWatchEvents" 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.CloudWatchEvents+        , Network.AWS.CloudWatchEvents.DeleteRule+        , Network.AWS.CloudWatchEvents.DescribeRule+        , Network.AWS.CloudWatchEvents.DisableRule+        , Network.AWS.CloudWatchEvents.EnableRule+        , Network.AWS.CloudWatchEvents.ListRuleNamesByTarget+        , Network.AWS.CloudWatchEvents.ListRules+        , Network.AWS.CloudWatchEvents.ListTargetsByRule+        , Network.AWS.CloudWatchEvents.PutEvents+        , Network.AWS.CloudWatchEvents.PutRule+        , Network.AWS.CloudWatchEvents.PutTargets+        , Network.AWS.CloudWatchEvents.RemoveTargets+        , Network.AWS.CloudWatchEvents.TestEventPattern+        , Network.AWS.CloudWatchEvents.Types+        , Network.AWS.CloudWatchEvents.Waiters++    other-modules:+          Network.AWS.CloudWatchEvents.Types.Product+        , Network.AWS.CloudWatchEvents.Types.Sum++    build-depends:+          amazonka-core == 1.4.0.*+        , base          >= 4.7     && < 5++test-suite amazonka-cloudwatch-events-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.CloudWatchEvents+        , Test.AWS.Gen.CloudWatchEvents+        , Test.AWS.CloudWatchEvents.Internal++    build-depends:+          amazonka-core == 1.4.0.*+        , amazonka-test == 1.4.0.*+        , amazonka-cloudwatch-events == 1.4.0.*+        , base+        , bytestring+        , tasty+        , tasty-hunit+        , text+        , time+        , unordered-containers
+ fixture/DeleteRule.yaml view
+ fixture/DeleteRuleResponse.proto view
+ fixture/DescribeRule.yaml view
+ fixture/DescribeRuleResponse.proto view
+ fixture/DisableRule.yaml view
+ fixture/DisableRuleResponse.proto view
+ fixture/EnableRule.yaml view
+ fixture/EnableRuleResponse.proto view
+ fixture/ListRuleNamesByTarget.yaml view
+ fixture/ListRuleNamesByTargetResponse.proto view
+ fixture/ListRules.yaml view
+ fixture/ListRulesResponse.proto view
+ fixture/ListTargetsByRule.yaml view
+ fixture/ListTargetsByRuleResponse.proto view
+ fixture/PutEvents.yaml view
+ fixture/PutEventsResponse.proto view
+ fixture/PutRule.yaml view
+ fixture/PutRuleResponse.proto view
+ fixture/PutTargets.yaml view
+ fixture/PutTargetsResponse.proto view
+ fixture/RemoveTargets.yaml view
+ fixture/RemoveTargetsResponse.proto view
+ fixture/TestEventPattern.yaml view
+ fixture/TestEventPatternResponse.proto view
+ gen/Network/AWS/CloudWatchEvents.hs view
@@ -0,0 +1,195 @@+{-# 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.CloudWatchEvents+-- 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)+--+-- Amazon CloudWatch Events helps you to respond to state changes in your+-- AWS resources. When your resources change state they automatically send+-- events into an event stream. You can create rules that match selected+-- events in the stream and route them to targets to take action. You can+-- also use rules to take action on a pre-determined schedule. For example,+-- you can configure rules to:+--+-- -   Automatically invoke an AWS Lambda function to update DNS entries+--     when an event notifies you that Amazon EC2 instance enters the+--     running state.+-- -   Direct specific API records from CloudTrail to an Amazon Kinesis+--     stream for detailed analysis of potential security or availability+--     risks.+-- -   Periodically invoke a built-in target to create a snapshot of an+--     Amazon EBS volume.+--+-- For more information about Amazon CloudWatch Events features, see the+-- <http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide Amazon CloudWatch Developer Guide>.+module Network.AWS.CloudWatchEvents+    (+    -- * Service Configuration+      cloudWatchEvents++    -- * Errors+    -- $errors++    -- ** ConcurrentModificationException+    , _ConcurrentModificationException++    -- ** InvalidEventPatternException+    , _InvalidEventPatternException++    -- ** InternalException+    , _InternalException++    -- ** ResourceNotFoundException+    , _ResourceNotFoundException++    -- ** LimitExceededException+    , _LimitExceededException++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** RemoveTargets+    , module Network.AWS.CloudWatchEvents.RemoveTargets++    -- ** DeleteRule+    , module Network.AWS.CloudWatchEvents.DeleteRule++    -- ** ListRules+    , module Network.AWS.CloudWatchEvents.ListRules++    -- ** PutRule+    , module Network.AWS.CloudWatchEvents.PutRule++    -- ** DisableRule+    , module Network.AWS.CloudWatchEvents.DisableRule++    -- ** ListTargetsByRule+    , module Network.AWS.CloudWatchEvents.ListTargetsByRule++    -- ** DescribeRule+    , module Network.AWS.CloudWatchEvents.DescribeRule++    -- ** EnableRule+    , module Network.AWS.CloudWatchEvents.EnableRule++    -- ** ListRuleNamesByTarget+    , module Network.AWS.CloudWatchEvents.ListRuleNamesByTarget++    -- ** TestEventPattern+    , module Network.AWS.CloudWatchEvents.TestEventPattern++    -- ** PutTargets+    , module Network.AWS.CloudWatchEvents.PutTargets++    -- ** PutEvents+    , module Network.AWS.CloudWatchEvents.PutEvents++    -- * Types++    -- ** RuleState+    , RuleState (..)++    -- ** PutEventsRequestEntry+    , PutEventsRequestEntry+    , putEventsRequestEntry+    , pereTime+    , pereDetailType+    , pereResources+    , pereSource+    , pereDetail++    -- ** PutEventsResultEntry+    , PutEventsResultEntry+    , putEventsResultEntry+    , pereErrorCode+    , pereErrorMessage+    , pereEventId++    -- ** PutTargetsResultEntry+    , PutTargetsResultEntry+    , putTargetsResultEntry+    , ptreTargetId+    , ptreErrorCode+    , ptreErrorMessage++    -- ** RemoveTargetsResultEntry+    , RemoveTargetsResultEntry+    , removeTargetsResultEntry+    , rtreTargetId+    , rtreErrorCode+    , rtreErrorMessage++    -- ** Rule+    , Rule+    , rule+    , rEventPattern+    , rState+    , rARN+    , rScheduleExpression+    , rName+    , rDescription+    , rRoleARN++    -- ** Target+    , Target+    , target+    , tInput+    , tInputPath+    , tId+    , tARN+    ) where++import           Network.AWS.CloudWatchEvents.DeleteRule+import           Network.AWS.CloudWatchEvents.DescribeRule+import           Network.AWS.CloudWatchEvents.DisableRule+import           Network.AWS.CloudWatchEvents.EnableRule+import           Network.AWS.CloudWatchEvents.ListRuleNamesByTarget+import           Network.AWS.CloudWatchEvents.ListRules+import           Network.AWS.CloudWatchEvents.ListTargetsByRule+import           Network.AWS.CloudWatchEvents.PutEvents+import           Network.AWS.CloudWatchEvents.PutRule+import           Network.AWS.CloudWatchEvents.PutTargets+import           Network.AWS.CloudWatchEvents.RemoveTargets+import           Network.AWS.CloudWatchEvents.TestEventPattern+import           Network.AWS.CloudWatchEvents.Types+import           Network.AWS.CloudWatchEvents.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 'CloudWatchEvents'.+-}++{- $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/CloudWatchEvents/DeleteRule.hs view
@@ -0,0 +1,106 @@+{-# 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.CloudWatchEvents.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 a rule. You must remove all targets from a rule using+-- < RemoveTargets> before you can delete the rule.+--+-- __Note:__ When you delete a rule, incoming events might still continue+-- to match to the deleted rule. Please allow a short period of time for+-- changes to take effect.+module Network.AWS.CloudWatchEvents.DeleteRule+    (+    -- * Creating a Request+      deleteRule+    , DeleteRule+    -- * Request Lenses+    , drName++    -- * Destructuring the Response+    , deleteRuleResponse+    , DeleteRuleResponse+    ) where++import           Network.AWS.CloudWatchEvents.Types+import           Network.AWS.CloudWatchEvents.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Container for the parameters to the < DeleteRule> operation.+--+-- /See:/ 'deleteRule' smart constructor.+newtype DeleteRule = DeleteRule'+    { _drName :: 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:+--+-- * 'drName'+deleteRule+    :: Text -- ^ 'drName'+    -> DeleteRule+deleteRule pName_ =+    DeleteRule'+    { _drName = pName_+    }++-- | The name of the rule to be deleted.+drName :: Lens' DeleteRule Text+drName = lens _drName (\ s a -> s{_drName = a});++instance AWSRequest DeleteRule where+        type Rs DeleteRule = DeleteRuleResponse+        request = postJSON cloudWatchEvents+        response = receiveNull DeleteRuleResponse'++instance Hashable DeleteRule++instance ToHeaders DeleteRule where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSEvents.DeleteRule" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeleteRule where+        toJSON DeleteRule'{..}+          = object (catMaybes [Just ("Name" .= _drName)])++instance ToPath DeleteRule where+        toPath = const "/"++instance ToQuery DeleteRule where+        toQuery = const mempty++-- | /See:/ 'deleteRuleResponse' smart constructor.+data DeleteRuleResponse =+    DeleteRuleResponse'+    deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteRuleResponse' with the minimum fields required to make a request.+--+deleteRuleResponse+    :: DeleteRuleResponse+deleteRuleResponse = DeleteRuleResponse'
+ gen/Network/AWS/CloudWatchEvents/DescribeRule.hs view
@@ -0,0 +1,190 @@+{-# 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.CloudWatchEvents.DescribeRule+-- 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 details of the specified rule.+module Network.AWS.CloudWatchEvents.DescribeRule+    (+    -- * Creating a Request+      describeRule+    , DescribeRule+    -- * Request Lenses+    , desName++    -- * Destructuring the Response+    , describeRuleResponse+    , DescribeRuleResponse+    -- * Response Lenses+    , drrsEventPattern+    , drrsState+    , drrsARN+    , drrsScheduleExpression+    , drrsName+    , drrsDescription+    , drrsRoleARN+    , drrsResponseStatus+    ) where++import           Network.AWS.CloudWatchEvents.Types+import           Network.AWS.CloudWatchEvents.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Container for the parameters to the < DescribeRule> operation.+--+-- /See:/ 'describeRule' smart constructor.+newtype DescribeRule = DescribeRule'+    { _desName :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'desName'+describeRule+    :: Text -- ^ 'desName'+    -> DescribeRule+describeRule pName_ =+    DescribeRule'+    { _desName = pName_+    }++-- | The name of the rule you want to describe details for.+desName :: Lens' DescribeRule Text+desName = lens _desName (\ s a -> s{_desName = a});++instance AWSRequest DescribeRule where+        type Rs DescribeRule = DescribeRuleResponse+        request = postJSON cloudWatchEvents+        response+          = receiveJSON+              (\ s h x ->+                 DescribeRuleResponse' <$>+                   (x .?> "EventPattern") <*> (x .?> "State") <*>+                     (x .?> "Arn")+                     <*> (x .?> "ScheduleExpression")+                     <*> (x .?> "Name")+                     <*> (x .?> "Description")+                     <*> (x .?> "RoleArn")+                     <*> (pure (fromEnum s)))++instance Hashable DescribeRule++instance ToHeaders DescribeRule where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSEvents.DescribeRule" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DescribeRule where+        toJSON DescribeRule'{..}+          = object (catMaybes [Just ("Name" .= _desName)])++instance ToPath DescribeRule where+        toPath = const "/"++instance ToQuery DescribeRule where+        toQuery = const mempty++-- | The result of the < DescribeRule> operation.+--+-- /See:/ 'describeRuleResponse' smart constructor.+data DescribeRuleResponse = DescribeRuleResponse'+    { _drrsEventPattern       :: !(Maybe Text)+    , _drrsState              :: !(Maybe RuleState)+    , _drrsARN                :: !(Maybe Text)+    , _drrsScheduleExpression :: !(Maybe Text)+    , _drrsName               :: !(Maybe Text)+    , _drrsDescription        :: !(Maybe Text)+    , _drrsRoleARN            :: !(Maybe Text)+    , _drrsResponseStatus     :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeRuleResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drrsEventPattern'+--+-- * 'drrsState'+--+-- * 'drrsARN'+--+-- * 'drrsScheduleExpression'+--+-- * 'drrsName'+--+-- * 'drrsDescription'+--+-- * 'drrsRoleARN'+--+-- * 'drrsResponseStatus'+describeRuleResponse+    :: Int -- ^ 'drrsResponseStatus'+    -> DescribeRuleResponse+describeRuleResponse pResponseStatus_ =+    DescribeRuleResponse'+    { _drrsEventPattern = Nothing+    , _drrsState = Nothing+    , _drrsARN = Nothing+    , _drrsScheduleExpression = Nothing+    , _drrsName = Nothing+    , _drrsDescription = Nothing+    , _drrsRoleARN = Nothing+    , _drrsResponseStatus = pResponseStatus_+    }++-- | The event pattern.+drrsEventPattern :: Lens' DescribeRuleResponse (Maybe Text)+drrsEventPattern = lens _drrsEventPattern (\ s a -> s{_drrsEventPattern = a});++-- | Specifies whether the rule is enabled or disabled.+drrsState :: Lens' DescribeRuleResponse (Maybe RuleState)+drrsState = lens _drrsState (\ s a -> s{_drrsState = a});++-- | The Amazon Resource Name (ARN) associated with the rule.+drrsARN :: Lens' DescribeRuleResponse (Maybe Text)+drrsARN = lens _drrsARN (\ s a -> s{_drrsARN = a});++-- | The scheduling expression. For example, \"cron(0 20 * * ? *)\", \"rate(5+-- minutes)\".+drrsScheduleExpression :: Lens' DescribeRuleResponse (Maybe Text)+drrsScheduleExpression = lens _drrsScheduleExpression (\ s a -> s{_drrsScheduleExpression = a});++-- | The rule\'s name.+drrsName :: Lens' DescribeRuleResponse (Maybe Text)+drrsName = lens _drrsName (\ s a -> s{_drrsName = a});++-- | The rule\'s description.+drrsDescription :: Lens' DescribeRuleResponse (Maybe Text)+drrsDescription = lens _drrsDescription (\ s a -> s{_drrsDescription = a});++-- | The Amazon Resource Name (ARN) of the IAM role associated with the rule.+drrsRoleARN :: Lens' DescribeRuleResponse (Maybe Text)+drrsRoleARN = lens _drrsRoleARN (\ s a -> s{_drrsRoleARN = a});++-- | The response status code.+drrsResponseStatus :: Lens' DescribeRuleResponse Int+drrsResponseStatus = lens _drrsResponseStatus (\ s a -> s{_drrsResponseStatus = a});
+ gen/Network/AWS/CloudWatchEvents/DisableRule.hs view
@@ -0,0 +1,106 @@+{-# 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.CloudWatchEvents.DisableRule+-- 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)+--+-- Disables a rule. A disabled rule won\'t match any events, and won\'t+-- self-trigger if it has a schedule expression.+--+-- __Note:__ When you disable a rule, incoming events might still continue+-- to match to the disabled rule. Please allow a short period of time for+-- changes to take effect.+module Network.AWS.CloudWatchEvents.DisableRule+    (+    -- * Creating a Request+      disableRule+    , DisableRule+    -- * Request Lenses+    , dName++    -- * Destructuring the Response+    , disableRuleResponse+    , DisableRuleResponse+    ) where++import           Network.AWS.CloudWatchEvents.Types+import           Network.AWS.CloudWatchEvents.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Container for the parameters to the < DisableRule> operation.+--+-- /See:/ 'disableRule' smart constructor.+newtype DisableRule = DisableRule'+    { _dName :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DisableRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dName'+disableRule+    :: Text -- ^ 'dName'+    -> DisableRule+disableRule pName_ =+    DisableRule'+    { _dName = pName_+    }++-- | The name of the rule you want to disable.+dName :: Lens' DisableRule Text+dName = lens _dName (\ s a -> s{_dName = a});++instance AWSRequest DisableRule where+        type Rs DisableRule = DisableRuleResponse+        request = postJSON cloudWatchEvents+        response = receiveNull DisableRuleResponse'++instance Hashable DisableRule++instance ToHeaders DisableRule where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSEvents.DisableRule" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DisableRule where+        toJSON DisableRule'{..}+          = object (catMaybes [Just ("Name" .= _dName)])++instance ToPath DisableRule where+        toPath = const "/"++instance ToQuery DisableRule where+        toQuery = const mempty++-- | /See:/ 'disableRuleResponse' smart constructor.+data DisableRuleResponse =+    DisableRuleResponse'+    deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DisableRuleResponse' with the minimum fields required to make a request.+--+disableRuleResponse+    :: DisableRuleResponse+disableRuleResponse = DisableRuleResponse'
+ gen/Network/AWS/CloudWatchEvents/EnableRule.hs view
@@ -0,0 +1,105 @@+{-# 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.CloudWatchEvents.EnableRule+-- 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 a rule. If the rule does not exist, the operation fails.+--+-- __Note:__ When you enable a rule, incoming events might not immediately+-- start matching to a newly enabled rule. Please allow a short period of+-- time for changes to take effect.+module Network.AWS.CloudWatchEvents.EnableRule+    (+    -- * Creating a Request+      enableRule+    , EnableRule+    -- * Request Lenses+    , erName++    -- * Destructuring the Response+    , enableRuleResponse+    , EnableRuleResponse+    ) where++import           Network.AWS.CloudWatchEvents.Types+import           Network.AWS.CloudWatchEvents.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Container for the parameters to the < EnableRule> operation.+--+-- /See:/ 'enableRule' smart constructor.+newtype EnableRule = EnableRule'+    { _erName :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnableRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'erName'+enableRule+    :: Text -- ^ 'erName'+    -> EnableRule+enableRule pName_ =+    EnableRule'+    { _erName = pName_+    }++-- | The name of the rule that you want to enable.+erName :: Lens' EnableRule Text+erName = lens _erName (\ s a -> s{_erName = a});++instance AWSRequest EnableRule where+        type Rs EnableRule = EnableRuleResponse+        request = postJSON cloudWatchEvents+        response = receiveNull EnableRuleResponse'++instance Hashable EnableRule++instance ToHeaders EnableRule where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSEvents.EnableRule" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON EnableRule where+        toJSON EnableRule'{..}+          = object (catMaybes [Just ("Name" .= _erName)])++instance ToPath EnableRule where+        toPath = const "/"++instance ToQuery EnableRule where+        toQuery = const mempty++-- | /See:/ 'enableRuleResponse' smart constructor.+data EnableRuleResponse =+    EnableRuleResponse'+    deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'EnableRuleResponse' with the minimum fields required to make a request.+--+enableRuleResponse+    :: EnableRuleResponse+enableRuleResponse = EnableRuleResponse'
+ gen/Network/AWS/CloudWatchEvents/ListRuleNamesByTarget.hs view
@@ -0,0 +1,170 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.CloudWatchEvents.ListRuleNamesByTarget+-- 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)+--+-- Lists the names of the rules that the given target is put to. You can+-- see which of the rules in Amazon CloudWatch Events can invoke a specific+-- target in your account. If you have more rules in your account than the+-- given limit, the results will be paginated. In that case, use the next+-- token returned in the response and repeat ListRulesByTarget until the+-- NextToken in the response is returned as null.+module Network.AWS.CloudWatchEvents.ListRuleNamesByTarget+    (+    -- * Creating a Request+      listRuleNamesByTarget+    , ListRuleNamesByTarget+    -- * Request Lenses+    , lrnbtNextToken+    , lrnbtLimit+    , lrnbtTargetARN++    -- * Destructuring the Response+    , listRuleNamesByTargetResponse+    , ListRuleNamesByTargetResponse+    -- * Response Lenses+    , lrnbtrsRuleNames+    , lrnbtrsNextToken+    , lrnbtrsResponseStatus+    ) where++import           Network.AWS.CloudWatchEvents.Types+import           Network.AWS.CloudWatchEvents.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Container for the parameters to the < ListRuleNamesByTarget> operation.+--+-- /See:/ 'listRuleNamesByTarget' smart constructor.+data ListRuleNamesByTarget = ListRuleNamesByTarget'+    { _lrnbtNextToken :: !(Maybe Text)+    , _lrnbtLimit     :: !(Maybe Nat)+    , _lrnbtTargetARN :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListRuleNamesByTarget' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lrnbtNextToken'+--+-- * 'lrnbtLimit'+--+-- * 'lrnbtTargetARN'+listRuleNamesByTarget+    :: Text -- ^ 'lrnbtTargetARN'+    -> ListRuleNamesByTarget+listRuleNamesByTarget pTargetARN_ =+    ListRuleNamesByTarget'+    { _lrnbtNextToken = Nothing+    , _lrnbtLimit = Nothing+    , _lrnbtTargetARN = pTargetARN_+    }++-- | The token returned by a previous call to indicate that there is more+-- data available.+lrnbtNextToken :: Lens' ListRuleNamesByTarget (Maybe Text)+lrnbtNextToken = lens _lrnbtNextToken (\ s a -> s{_lrnbtNextToken = a});++-- | The maximum number of results to return.+lrnbtLimit :: Lens' ListRuleNamesByTarget (Maybe Natural)+lrnbtLimit = lens _lrnbtLimit (\ s a -> s{_lrnbtLimit = a}) . mapping _Nat;++-- | The Amazon Resource Name (ARN) of the target resource that you want to+-- list the rules for.+lrnbtTargetARN :: Lens' ListRuleNamesByTarget Text+lrnbtTargetARN = lens _lrnbtTargetARN (\ s a -> s{_lrnbtTargetARN = a});++instance AWSRequest ListRuleNamesByTarget where+        type Rs ListRuleNamesByTarget =+             ListRuleNamesByTargetResponse+        request = postJSON cloudWatchEvents+        response+          = receiveJSON+              (\ s h x ->+                 ListRuleNamesByTargetResponse' <$>+                   (x .?> "RuleNames" .!@ mempty) <*>+                     (x .?> "NextToken")+                     <*> (pure (fromEnum s)))++instance Hashable ListRuleNamesByTarget++instance ToHeaders ListRuleNamesByTarget where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSEvents.ListRuleNamesByTarget" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListRuleNamesByTarget where+        toJSON ListRuleNamesByTarget'{..}+          = object+              (catMaybes+                 [("NextToken" .=) <$> _lrnbtNextToken,+                  ("Limit" .=) <$> _lrnbtLimit,+                  Just ("TargetArn" .= _lrnbtTargetARN)])++instance ToPath ListRuleNamesByTarget where+        toPath = const "/"++instance ToQuery ListRuleNamesByTarget where+        toQuery = const mempty++-- | The result of the < ListRuleNamesByTarget> operation.+--+-- /See:/ 'listRuleNamesByTargetResponse' smart constructor.+data ListRuleNamesByTargetResponse = ListRuleNamesByTargetResponse'+    { _lrnbtrsRuleNames      :: !(Maybe [Text])+    , _lrnbtrsNextToken      :: !(Maybe Text)+    , _lrnbtrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListRuleNamesByTargetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lrnbtrsRuleNames'+--+-- * 'lrnbtrsNextToken'+--+-- * 'lrnbtrsResponseStatus'+listRuleNamesByTargetResponse+    :: Int -- ^ 'lrnbtrsResponseStatus'+    -> ListRuleNamesByTargetResponse+listRuleNamesByTargetResponse pResponseStatus_ =+    ListRuleNamesByTargetResponse'+    { _lrnbtrsRuleNames = Nothing+    , _lrnbtrsNextToken = Nothing+    , _lrnbtrsResponseStatus = pResponseStatus_+    }++-- | List of rules names that can invoke the given target.+lrnbtrsRuleNames :: Lens' ListRuleNamesByTargetResponse [Text]+lrnbtrsRuleNames = lens _lrnbtrsRuleNames (\ s a -> s{_lrnbtrsRuleNames = a}) . _Default . _Coerce;++-- | Indicates that there are additional results to retrieve.+lrnbtrsNextToken :: Lens' ListRuleNamesByTargetResponse (Maybe Text)+lrnbtrsNextToken = lens _lrnbtrsNextToken (\ s a -> s{_lrnbtrsNextToken = a});++-- | The response status code.+lrnbtrsResponseStatus :: Lens' ListRuleNamesByTargetResponse Int+lrnbtrsResponseStatus = lens _lrnbtrsResponseStatus (\ s a -> s{_lrnbtrsResponseStatus = a});
+ gen/Network/AWS/CloudWatchEvents/ListRules.hs view
@@ -0,0 +1,166 @@+{-# 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.CloudWatchEvents.ListRules+-- 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)+--+-- Lists the Amazon CloudWatch Events rules in your account. You can either+-- list all the rules or you can provide a prefix to match to the rule+-- names. If you have more rules in your account than the given limit, the+-- results will be paginated. In that case, use the next token returned in+-- the response and repeat ListRules until the NextToken in the response is+-- returned as null.+module Network.AWS.CloudWatchEvents.ListRules+    (+    -- * Creating a Request+      listRules+    , ListRules+    -- * Request Lenses+    , lrNextToken+    , lrNamePrefix+    , lrLimit++    -- * Destructuring the Response+    , listRulesResponse+    , ListRulesResponse+    -- * Response Lenses+    , lrrsRules+    , lrrsNextToken+    , lrrsResponseStatus+    ) where++import           Network.AWS.CloudWatchEvents.Types+import           Network.AWS.CloudWatchEvents.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Container for the parameters to the < ListRules> operation.+--+-- /See:/ 'listRules' smart constructor.+data ListRules = ListRules'+    { _lrNextToken  :: !(Maybe Text)+    , _lrNamePrefix :: !(Maybe Text)+    , _lrLimit      :: !(Maybe Nat)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListRules' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lrNextToken'+--+-- * 'lrNamePrefix'+--+-- * 'lrLimit'+listRules+    :: ListRules+listRules =+    ListRules'+    { _lrNextToken = Nothing+    , _lrNamePrefix = Nothing+    , _lrLimit = Nothing+    }++-- | The token returned by a previous call to indicate that there is more+-- data available.+lrNextToken :: Lens' ListRules (Maybe Text)+lrNextToken = lens _lrNextToken (\ s a -> s{_lrNextToken = a});++-- | The prefix matching the rule name.+lrNamePrefix :: Lens' ListRules (Maybe Text)+lrNamePrefix = lens _lrNamePrefix (\ s a -> s{_lrNamePrefix = a});++-- | The maximum number of results to return.+lrLimit :: Lens' ListRules (Maybe Natural)+lrLimit = lens _lrLimit (\ s a -> s{_lrLimit = a}) . mapping _Nat;++instance AWSRequest ListRules where+        type Rs ListRules = ListRulesResponse+        request = postJSON cloudWatchEvents+        response+          = receiveJSON+              (\ s h x ->+                 ListRulesResponse' <$>+                   (x .?> "Rules" .!@ mempty) <*> (x .?> "NextToken")+                     <*> (pure (fromEnum s)))++instance Hashable ListRules++instance ToHeaders ListRules where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSEvents.ListRules" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListRules where+        toJSON ListRules'{..}+          = object+              (catMaybes+                 [("NextToken" .=) <$> _lrNextToken,+                  ("NamePrefix" .=) <$> _lrNamePrefix,+                  ("Limit" .=) <$> _lrLimit])++instance ToPath ListRules where+        toPath = const "/"++instance ToQuery ListRules where+        toQuery = const mempty++-- | The result of the < ListRules> operation.+--+-- /See:/ 'listRulesResponse' smart constructor.+data ListRulesResponse = ListRulesResponse'+    { _lrrsRules          :: !(Maybe [Rule])+    , _lrrsNextToken      :: !(Maybe Text)+    , _lrrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListRulesResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lrrsRules'+--+-- * 'lrrsNextToken'+--+-- * 'lrrsResponseStatus'+listRulesResponse+    :: Int -- ^ 'lrrsResponseStatus'+    -> ListRulesResponse+listRulesResponse pResponseStatus_ =+    ListRulesResponse'+    { _lrrsRules = Nothing+    , _lrrsNextToken = Nothing+    , _lrrsResponseStatus = pResponseStatus_+    }++-- | List of rules matching the specified criteria.+lrrsRules :: Lens' ListRulesResponse [Rule]+lrrsRules = lens _lrrsRules (\ s a -> s{_lrrsRules = a}) . _Default . _Coerce;++-- | Indicates that there are additional results to retrieve.+lrrsNextToken :: Lens' ListRulesResponse (Maybe Text)+lrrsNextToken = lens _lrrsNextToken (\ s a -> s{_lrrsNextToken = a});++-- | The response status code.+lrrsResponseStatus :: Lens' ListRulesResponse Int+lrrsResponseStatus = lens _lrrsResponseStatus (\ s a -> s{_lrrsResponseStatus = a});
+ gen/Network/AWS/CloudWatchEvents/ListTargetsByRule.hs view
@@ -0,0 +1,162 @@+{-# 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.CloudWatchEvents.ListTargetsByRule+-- 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)+--+-- Lists of targets assigned to the rule.+module Network.AWS.CloudWatchEvents.ListTargetsByRule+    (+    -- * Creating a Request+      listTargetsByRule+    , ListTargetsByRule+    -- * Request Lenses+    , ltbrNextToken+    , ltbrLimit+    , ltbrRule++    -- * Destructuring the Response+    , listTargetsByRuleResponse+    , ListTargetsByRuleResponse+    -- * Response Lenses+    , ltbrrsNextToken+    , ltbrrsTargets+    , ltbrrsResponseStatus+    ) where++import           Network.AWS.CloudWatchEvents.Types+import           Network.AWS.CloudWatchEvents.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Container for the parameters to the < ListTargetsByRule> operation.+--+-- /See:/ 'listTargetsByRule' smart constructor.+data ListTargetsByRule = ListTargetsByRule'+    { _ltbrNextToken :: !(Maybe Text)+    , _ltbrLimit     :: !(Maybe Nat)+    , _ltbrRule      :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListTargetsByRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ltbrNextToken'+--+-- * 'ltbrLimit'+--+-- * 'ltbrRule'+listTargetsByRule+    :: Text -- ^ 'ltbrRule'+    -> ListTargetsByRule+listTargetsByRule pRule_ =+    ListTargetsByRule'+    { _ltbrNextToken = Nothing+    , _ltbrLimit = Nothing+    , _ltbrRule = pRule_+    }++-- | The token returned by a previous call to indicate that there is more+-- data available.+ltbrNextToken :: Lens' ListTargetsByRule (Maybe Text)+ltbrNextToken = lens _ltbrNextToken (\ s a -> s{_ltbrNextToken = a});++-- | The maximum number of results to return.+ltbrLimit :: Lens' ListTargetsByRule (Maybe Natural)+ltbrLimit = lens _ltbrLimit (\ s a -> s{_ltbrLimit = a}) . mapping _Nat;++-- | The name of the rule whose targets you want to list.+ltbrRule :: Lens' ListTargetsByRule Text+ltbrRule = lens _ltbrRule (\ s a -> s{_ltbrRule = a});++instance AWSRequest ListTargetsByRule where+        type Rs ListTargetsByRule = ListTargetsByRuleResponse+        request = postJSON cloudWatchEvents+        response+          = receiveJSON+              (\ s h x ->+                 ListTargetsByRuleResponse' <$>+                   (x .?> "NextToken") <*> (x .?> "Targets" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance Hashable ListTargetsByRule++instance ToHeaders ListTargetsByRule where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSEvents.ListTargetsByRule" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON ListTargetsByRule where+        toJSON ListTargetsByRule'{..}+          = object+              (catMaybes+                 [("NextToken" .=) <$> _ltbrNextToken,+                  ("Limit" .=) <$> _ltbrLimit,+                  Just ("Rule" .= _ltbrRule)])++instance ToPath ListTargetsByRule where+        toPath = const "/"++instance ToQuery ListTargetsByRule where+        toQuery = const mempty++-- | The result of the < ListTargetsByRule> operation.+--+-- /See:/ 'listTargetsByRuleResponse' smart constructor.+data ListTargetsByRuleResponse = ListTargetsByRuleResponse'+    { _ltbrrsNextToken      :: !(Maybe Text)+    , _ltbrrsTargets        :: !(Maybe [Target])+    , _ltbrrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'ListTargetsByRuleResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ltbrrsNextToken'+--+-- * 'ltbrrsTargets'+--+-- * 'ltbrrsResponseStatus'+listTargetsByRuleResponse+    :: Int -- ^ 'ltbrrsResponseStatus'+    -> ListTargetsByRuleResponse+listTargetsByRuleResponse pResponseStatus_ =+    ListTargetsByRuleResponse'+    { _ltbrrsNextToken = Nothing+    , _ltbrrsTargets = Nothing+    , _ltbrrsResponseStatus = pResponseStatus_+    }++-- | Indicates that there are additional results to retrieve.+ltbrrsNextToken :: Lens' ListTargetsByRuleResponse (Maybe Text)+ltbrrsNextToken = lens _ltbrrsNextToken (\ s a -> s{_ltbrrsNextToken = a});++-- | Lists the targets assigned to the rule.+ltbrrsTargets :: Lens' ListTargetsByRuleResponse [Target]+ltbrrsTargets = lens _ltbrrsTargets (\ s a -> s{_ltbrrsTargets = a}) . _Default . _Coerce;++-- | The response status code.+ltbrrsResponseStatus :: Lens' ListTargetsByRuleResponse Int+ltbrrsResponseStatus = lens _ltbrrsResponseStatus (\ s a -> s{_ltbrrsResponseStatus = a});
+ gen/Network/AWS/CloudWatchEvents/PutEvents.hs view
@@ -0,0 +1,146 @@+{-# 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.CloudWatchEvents.PutEvents+-- 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)+--+-- Sends custom events to Amazon CloudWatch Events so that they can be+-- matched to rules.+module Network.AWS.CloudWatchEvents.PutEvents+    (+    -- * Creating a Request+      putEvents+    , PutEvents+    -- * Request Lenses+    , peEntries++    -- * Destructuring the Response+    , putEventsResponse+    , PutEventsResponse+    -- * Response Lenses+    , persFailedEntryCount+    , persEntries+    , persResponseStatus+    ) where++import           Network.AWS.CloudWatchEvents.Types+import           Network.AWS.CloudWatchEvents.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Container for the parameters to the < PutEvents> operation.+--+-- /See:/ 'putEvents' smart constructor.+newtype PutEvents = PutEvents'+    { _peEntries :: List1 PutEventsRequestEntry+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'PutEvents' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'peEntries'+putEvents+    :: NonEmpty PutEventsRequestEntry -- ^ 'peEntries'+    -> PutEvents+putEvents pEntries_ =+    PutEvents'+    { _peEntries = _List1 # pEntries_+    }++-- | The entry that defines an event in your system. You can specify several+-- parameters for the entry such as the source and type of the event,+-- resources associated with the event, and so on.+peEntries :: Lens' PutEvents (NonEmpty PutEventsRequestEntry)+peEntries = lens _peEntries (\ s a -> s{_peEntries = a}) . _List1;++instance AWSRequest PutEvents where+        type Rs PutEvents = PutEventsResponse+        request = postJSON cloudWatchEvents+        response+          = receiveJSON+              (\ s h x ->+                 PutEventsResponse' <$>+                   (x .?> "FailedEntryCount") <*>+                     (x .?> "Entries" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance Hashable PutEvents++instance ToHeaders PutEvents where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSEvents.PutEvents" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON PutEvents where+        toJSON PutEvents'{..}+          = object (catMaybes [Just ("Entries" .= _peEntries)])++instance ToPath PutEvents where+        toPath = const "/"++instance ToQuery PutEvents where+        toQuery = const mempty++-- | The result of the < PutEvents> operation.+--+-- /See:/ 'putEventsResponse' smart constructor.+data PutEventsResponse = PutEventsResponse'+    { _persFailedEntryCount :: !(Maybe Int)+    , _persEntries          :: !(Maybe [PutEventsResultEntry])+    , _persResponseStatus   :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'PutEventsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'persFailedEntryCount'+--+-- * 'persEntries'+--+-- * 'persResponseStatus'+putEventsResponse+    :: Int -- ^ 'persResponseStatus'+    -> PutEventsResponse+putEventsResponse pResponseStatus_ =+    PutEventsResponse'+    { _persFailedEntryCount = Nothing+    , _persEntries = Nothing+    , _persResponseStatus = pResponseStatus_+    }++-- | The number of failed entries.+persFailedEntryCount :: Lens' PutEventsResponse (Maybe Int)+persFailedEntryCount = lens _persFailedEntryCount (\ s a -> s{_persFailedEntryCount = a});++-- | A list of successfully and unsuccessfully ingested events results. If+-- the ingestion was successful, the entry will have the event ID in it. If+-- not, then the ErrorCode and ErrorMessage can be used to identify the+-- problem with the entry.+persEntries :: Lens' PutEventsResponse [PutEventsResultEntry]+persEntries = lens _persEntries (\ s a -> s{_persEntries = a}) . _Default . _Coerce;++-- | The response status code.+persResponseStatus :: Lens' PutEventsResponse Int+persResponseStatus = lens _persResponseStatus (\ s a -> s{_persResponseStatus = a});
+ gen/Network/AWS/CloudWatchEvents/PutRule.hs view
@@ -0,0 +1,201 @@+{-# 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.CloudWatchEvents.PutRule+-- 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 or updates a rule. Rules are enabled by default, or based on+-- value of the State parameter. You can disable a rule using+-- < DisableRule>.+--+-- __Note:__ When you create or update a rule, incoming events might not+-- immediately start matching to new or updated rules. Please allow a short+-- period of time for changes to take effect.+--+-- A rule must contain at least an EventPattern or ScheduleExpression.+-- Rules with EventPatterns are triggered when a matching event is+-- observed. Rules with ScheduleExpressions self-trigger based on the given+-- schedule. A rule can have both an EventPattern and a ScheduleExpression,+-- in which case the rule will trigger on matching events as well as on a+-- schedule.+--+-- __Note:__ Most services in AWS treat : or \/ as the same character in+-- Amazon Resource Names (ARNs). However, CloudWatch Events uses an exact+-- match in event patterns and rules. Be sure to use the correct ARN+-- characters when creating event patterns so that they match the ARN+-- syntax in the event you want to match.+module Network.AWS.CloudWatchEvents.PutRule+    (+    -- * Creating a Request+      putRule+    , PutRule+    -- * Request Lenses+    , prEventPattern+    , prState+    , prScheduleExpression+    , prDescription+    , prRoleARN+    , prName++    -- * Destructuring the Response+    , putRuleResponse+    , PutRuleResponse+    -- * Response Lenses+    , prrsRuleARN+    , prrsResponseStatus+    ) where++import           Network.AWS.CloudWatchEvents.Types+import           Network.AWS.CloudWatchEvents.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Container for the parameters to the < PutRule> operation.+--+-- /See:/ 'putRule' smart constructor.+data PutRule = PutRule'+    { _prEventPattern       :: !(Maybe Text)+    , _prState              :: !(Maybe RuleState)+    , _prScheduleExpression :: !(Maybe Text)+    , _prDescription        :: !(Maybe Text)+    , _prRoleARN            :: !(Maybe Text)+    , _prName               :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'PutRule' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'prEventPattern'+--+-- * 'prState'+--+-- * 'prScheduleExpression'+--+-- * 'prDescription'+--+-- * 'prRoleARN'+--+-- * 'prName'+putRule+    :: Text -- ^ 'prName'+    -> PutRule+putRule pName_ =+    PutRule'+    { _prEventPattern = Nothing+    , _prState = Nothing+    , _prScheduleExpression = Nothing+    , _prDescription = Nothing+    , _prRoleARN = Nothing+    , _prName = pName_+    }++-- | The event pattern.+prEventPattern :: Lens' PutRule (Maybe Text)+prEventPattern = lens _prEventPattern (\ s a -> s{_prEventPattern = a});++-- | Indicates whether the rule is enabled or disabled.+prState :: Lens' PutRule (Maybe RuleState)+prState = lens _prState (\ s a -> s{_prState = a});++-- | The scheduling expression. For example, \"cron(0 20 * * ? *)\", \"rate(5+-- minutes)\".+prScheduleExpression :: Lens' PutRule (Maybe Text)+prScheduleExpression = lens _prScheduleExpression (\ s a -> s{_prScheduleExpression = a});++-- | A description of the rule.+prDescription :: Lens' PutRule (Maybe Text)+prDescription = lens _prDescription (\ s a -> s{_prDescription = a});++-- | The Amazon Resource Name (ARN) of the IAM role associated with the rule.+prRoleARN :: Lens' PutRule (Maybe Text)+prRoleARN = lens _prRoleARN (\ s a -> s{_prRoleARN = a});++-- | The name of the rule that you are creating or updating.+prName :: Lens' PutRule Text+prName = lens _prName (\ s a -> s{_prName = a});++instance AWSRequest PutRule where+        type Rs PutRule = PutRuleResponse+        request = postJSON cloudWatchEvents+        response+          = receiveJSON+              (\ s h x ->+                 PutRuleResponse' <$>+                   (x .?> "RuleArn") <*> (pure (fromEnum s)))++instance Hashable PutRule++instance ToHeaders PutRule where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSEvents.PutRule" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON PutRule where+        toJSON PutRule'{..}+          = object+              (catMaybes+                 [("EventPattern" .=) <$> _prEventPattern,+                  ("State" .=) <$> _prState,+                  ("ScheduleExpression" .=) <$> _prScheduleExpression,+                  ("Description" .=) <$> _prDescription,+                  ("RoleArn" .=) <$> _prRoleARN,+                  Just ("Name" .= _prName)])++instance ToPath PutRule where+        toPath = const "/"++instance ToQuery PutRule where+        toQuery = const mempty++-- | The result of the < PutRule> operation.+--+-- /See:/ 'putRuleResponse' smart constructor.+data PutRuleResponse = PutRuleResponse'+    { _prrsRuleARN        :: !(Maybe Text)+    , _prrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'PutRuleResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'prrsRuleARN'+--+-- * 'prrsResponseStatus'+putRuleResponse+    :: Int -- ^ 'prrsResponseStatus'+    -> PutRuleResponse+putRuleResponse pResponseStatus_ =+    PutRuleResponse'+    { _prrsRuleARN = Nothing+    , _prrsResponseStatus = pResponseStatus_+    }++-- | The Amazon Resource Name (ARN) that identifies the rule.+prrsRuleARN :: Lens' PutRuleResponse (Maybe Text)+prrsRuleARN = lens _prrsRuleARN (\ s a -> s{_prrsRuleARN = a});++-- | The response status code.+prrsResponseStatus :: Lens' PutRuleResponse Int+prrsResponseStatus = lens _prrsResponseStatus (\ s a -> s{_prrsResponseStatus = a});
+ gen/Network/AWS/CloudWatchEvents/PutTargets.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.CloudWatchEvents.PutTargets+-- 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 target(s) to a rule. Targets are the resources that can be invoked+-- when a rule is triggered. For example, AWS Lambda functions, Amazon+-- Kinesis streams, and built-in targets. Updates the target(s) if they are+-- already associated with the role. In other words, if there is already a+-- target with the given target ID, then the target associated with that ID+-- is updated.+--+-- In order to be able to make API calls against the resources you own,+-- Amazon CloudWatch Events needs the appropriate permissions. For AWS+-- Lambda and Amazon SNS resources, CloudWatch Events relies on+-- resource-based policies. For Amazon Kinesis streams, CloudWatch Events+-- relies on IAM roles. For more information, see+-- <http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/EventsTargetPermissions.html Permissions for Sending Events to Targets>+-- in the __/Amazon CloudWatch Developer Guide/__.+--+-- __Input__ and __InputPath__ are mutually-exclusive and optional+-- parameters of a target. When a rule is triggered due to a matched event,+-- if for a target:+--+-- -   Neither __Input__ nor __InputPath__ is specified, then the entire+--     event is passed to the target in JSON form.+-- -   __InputPath__ is specified in the form of JSONPath (e.g.+--     __$.detail__), then only the part of the event specified in the path+--     is passed to the target (e.g. only the detail part of the event is+--     passed).+-- -   __Input__ is specified in the form of a valid JSON, then the matched+--     event is overridden with this constant.+--+-- __Note:__ When you add targets to a rule, when the associated rule+-- triggers, new or updated targets might not be immediately invoked.+-- Please allow a short period of time for changes to take effect.+module Network.AWS.CloudWatchEvents.PutTargets+    (+    -- * Creating a Request+      putTargets+    , PutTargets+    -- * Request Lenses+    , ptRule+    , ptTargets++    -- * Destructuring the Response+    , putTargetsResponse+    , PutTargetsResponse+    -- * Response Lenses+    , ptrsFailedEntryCount+    , ptrsFailedEntries+    , ptrsResponseStatus+    ) where++import           Network.AWS.CloudWatchEvents.Types+import           Network.AWS.CloudWatchEvents.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Container for the parameters to the < PutTargets> operation.+--+-- /See:/ 'putTargets' smart constructor.+data PutTargets = PutTargets'+    { _ptRule    :: !Text+    , _ptTargets :: ![Target]+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'PutTargets' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ptRule'+--+-- * 'ptTargets'+putTargets+    :: Text -- ^ 'ptRule'+    -> PutTargets+putTargets pRule_ =+    PutTargets'+    { _ptRule = pRule_+    , _ptTargets = mempty+    }++-- | The name of the rule you want to add targets to.+ptRule :: Lens' PutTargets Text+ptRule = lens _ptRule (\ s a -> s{_ptRule = a});++-- | List of targets you want to update or add to the rule.+ptTargets :: Lens' PutTargets [Target]+ptTargets = lens _ptTargets (\ s a -> s{_ptTargets = a}) . _Coerce;++instance AWSRequest PutTargets where+        type Rs PutTargets = PutTargetsResponse+        request = postJSON cloudWatchEvents+        response+          = receiveJSON+              (\ s h x ->+                 PutTargetsResponse' <$>+                   (x .?> "FailedEntryCount") <*>+                     (x .?> "FailedEntries" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance Hashable PutTargets++instance ToHeaders PutTargets where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSEvents.PutTargets" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON PutTargets where+        toJSON PutTargets'{..}+          = object+              (catMaybes+                 [Just ("Rule" .= _ptRule),+                  Just ("Targets" .= _ptTargets)])++instance ToPath PutTargets where+        toPath = const "/"++instance ToQuery PutTargets where+        toQuery = const mempty++-- | The result of the < PutTargets> operation.+--+-- /See:/ 'putTargetsResponse' smart constructor.+data PutTargetsResponse = PutTargetsResponse'+    { _ptrsFailedEntryCount :: !(Maybe Int)+    , _ptrsFailedEntries    :: !(Maybe [PutTargetsResultEntry])+    , _ptrsResponseStatus   :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'PutTargetsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ptrsFailedEntryCount'+--+-- * 'ptrsFailedEntries'+--+-- * 'ptrsResponseStatus'+putTargetsResponse+    :: Int -- ^ 'ptrsResponseStatus'+    -> PutTargetsResponse+putTargetsResponse pResponseStatus_ =+    PutTargetsResponse'+    { _ptrsFailedEntryCount = Nothing+    , _ptrsFailedEntries = Nothing+    , _ptrsResponseStatus = pResponseStatus_+    }++-- | The number of failed entries.+ptrsFailedEntryCount :: Lens' PutTargetsResponse (Maybe Int)+ptrsFailedEntryCount = lens _ptrsFailedEntryCount (\ s a -> s{_ptrsFailedEntryCount = a});++-- | An array of failed target entries.+ptrsFailedEntries :: Lens' PutTargetsResponse [PutTargetsResultEntry]+ptrsFailedEntries = lens _ptrsFailedEntries (\ s a -> s{_ptrsFailedEntries = a}) . _Default . _Coerce;++-- | The response status code.+ptrsResponseStatus :: Lens' PutTargetsResponse Int+ptrsResponseStatus = lens _ptrsResponseStatus (\ s a -> s{_ptrsResponseStatus = a});
+ gen/Network/AWS/CloudWatchEvents/RemoveTargets.hs view
@@ -0,0 +1,157 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.CloudWatchEvents.RemoveTargets+-- 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 target(s) from a rule so that when the rule is triggered, those+-- targets will no longer be invoked.+--+-- __Note:__ When you remove a target, when the associated rule triggers,+-- removed targets might still continue to be invoked. Please allow a short+-- period of time for changes to take effect.+module Network.AWS.CloudWatchEvents.RemoveTargets+    (+    -- * Creating a Request+      removeTargets+    , RemoveTargets+    -- * Request Lenses+    , rtRule+    , rtIds++    -- * Destructuring the Response+    , removeTargetsResponse+    , RemoveTargetsResponse+    -- * Response Lenses+    , rtrsFailedEntryCount+    , rtrsFailedEntries+    , rtrsResponseStatus+    ) where++import           Network.AWS.CloudWatchEvents.Types+import           Network.AWS.CloudWatchEvents.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Container for the parameters to the < RemoveTargets> operation.+--+-- /See:/ 'removeTargets' smart constructor.+data RemoveTargets = RemoveTargets'+    { _rtRule :: !Text+    , _rtIds  :: !(List1 Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'RemoveTargets' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rtRule'+--+-- * 'rtIds'+removeTargets+    :: Text -- ^ 'rtRule'+    -> NonEmpty Text -- ^ 'rtIds'+    -> RemoveTargets+removeTargets pRule_ pIds_ =+    RemoveTargets'+    { _rtRule = pRule_+    , _rtIds = _List1 # pIds_+    }++-- | The name of the rule you want to remove targets from.+rtRule :: Lens' RemoveTargets Text+rtRule = lens _rtRule (\ s a -> s{_rtRule = a});++-- | The list of target IDs to remove from the rule.+rtIds :: Lens' RemoveTargets (NonEmpty Text)+rtIds = lens _rtIds (\ s a -> s{_rtIds = a}) . _List1;++instance AWSRequest RemoveTargets where+        type Rs RemoveTargets = RemoveTargetsResponse+        request = postJSON cloudWatchEvents+        response+          = receiveJSON+              (\ s h x ->+                 RemoveTargetsResponse' <$>+                   (x .?> "FailedEntryCount") <*>+                     (x .?> "FailedEntries" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance Hashable RemoveTargets++instance ToHeaders RemoveTargets where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSEvents.RemoveTargets" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON RemoveTargets where+        toJSON RemoveTargets'{..}+          = object+              (catMaybes+                 [Just ("Rule" .= _rtRule), Just ("Ids" .= _rtIds)])++instance ToPath RemoveTargets where+        toPath = const "/"++instance ToQuery RemoveTargets where+        toQuery = const mempty++-- | The result of the < RemoveTargets> operation.+--+-- /See:/ 'removeTargetsResponse' smart constructor.+data RemoveTargetsResponse = RemoveTargetsResponse'+    { _rtrsFailedEntryCount :: !(Maybe Int)+    , _rtrsFailedEntries    :: !(Maybe [RemoveTargetsResultEntry])+    , _rtrsResponseStatus   :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'RemoveTargetsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rtrsFailedEntryCount'+--+-- * 'rtrsFailedEntries'+--+-- * 'rtrsResponseStatus'+removeTargetsResponse+    :: Int -- ^ 'rtrsResponseStatus'+    -> RemoveTargetsResponse+removeTargetsResponse pResponseStatus_ =+    RemoveTargetsResponse'+    { _rtrsFailedEntryCount = Nothing+    , _rtrsFailedEntries = Nothing+    , _rtrsResponseStatus = pResponseStatus_+    }++-- | The number of failed entries.+rtrsFailedEntryCount :: Lens' RemoveTargetsResponse (Maybe Int)+rtrsFailedEntryCount = lens _rtrsFailedEntryCount (\ s a -> s{_rtrsFailedEntryCount = a});++-- | An array of failed target entries.+rtrsFailedEntries :: Lens' RemoveTargetsResponse [RemoveTargetsResultEntry]+rtrsFailedEntries = lens _rtrsFailedEntries (\ s a -> s{_rtrsFailedEntries = a}) . _Default . _Coerce;++-- | The response status code.+rtrsResponseStatus :: Lens' RemoveTargetsResponse Int+rtrsResponseStatus = lens _rtrsResponseStatus (\ s a -> s{_rtrsResponseStatus = a});
+ gen/Network/AWS/CloudWatchEvents/TestEventPattern.hs view
@@ -0,0 +1,148 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.CloudWatchEvents.TestEventPattern+-- 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)+--+-- Tests whether an event pattern matches the provided event.+--+-- __Note:__ Most services in AWS treat : or \/ as the same character in+-- Amazon Resource Names (ARNs). However, CloudWatch Events uses an exact+-- match in event patterns and rules. Be sure to use the correct ARN+-- characters when creating event patterns so that they match the ARN+-- syntax in the event you want to match.+module Network.AWS.CloudWatchEvents.TestEventPattern+    (+    -- * Creating a Request+      testEventPattern+    , TestEventPattern+    -- * Request Lenses+    , tepEventPattern+    , tepEvent++    -- * Destructuring the Response+    , testEventPatternResponse+    , TestEventPatternResponse+    -- * Response Lenses+    , teprsResult+    , teprsResponseStatus+    ) where++import           Network.AWS.CloudWatchEvents.Types+import           Network.AWS.CloudWatchEvents.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Container for the parameters to the < TestEventPattern> operation.+--+-- /See:/ 'testEventPattern' smart constructor.+data TestEventPattern = TestEventPattern'+    { _tepEventPattern :: !Text+    , _tepEvent        :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'TestEventPattern' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tepEventPattern'+--+-- * 'tepEvent'+testEventPattern+    :: Text -- ^ 'tepEventPattern'+    -> Text -- ^ 'tepEvent'+    -> TestEventPattern+testEventPattern pEventPattern_ pEvent_ =+    TestEventPattern'+    { _tepEventPattern = pEventPattern_+    , _tepEvent = pEvent_+    }++-- | The event pattern you want to test.+tepEventPattern :: Lens' TestEventPattern Text+tepEventPattern = lens _tepEventPattern (\ s a -> s{_tepEventPattern = a});++-- | The event in the JSON format to test against the event pattern.+tepEvent :: Lens' TestEventPattern Text+tepEvent = lens _tepEvent (\ s a -> s{_tepEvent = a});++instance AWSRequest TestEventPattern where+        type Rs TestEventPattern = TestEventPatternResponse+        request = postJSON cloudWatchEvents+        response+          = receiveJSON+              (\ s h x ->+                 TestEventPatternResponse' <$>+                   (x .?> "Result") <*> (pure (fromEnum s)))++instance Hashable TestEventPattern++instance ToHeaders TestEventPattern where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSEvents.TestEventPattern" :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON TestEventPattern where+        toJSON TestEventPattern'{..}+          = object+              (catMaybes+                 [Just ("EventPattern" .= _tepEventPattern),+                  Just ("Event" .= _tepEvent)])++instance ToPath TestEventPattern where+        toPath = const "/"++instance ToQuery TestEventPattern where+        toQuery = const mempty++-- | The result of the < TestEventPattern> operation.+--+-- /See:/ 'testEventPatternResponse' smart constructor.+data TestEventPatternResponse = TestEventPatternResponse'+    { _teprsResult         :: !(Maybe Bool)+    , _teprsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'TestEventPatternResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'teprsResult'+--+-- * 'teprsResponseStatus'+testEventPatternResponse+    :: Int -- ^ 'teprsResponseStatus'+    -> TestEventPatternResponse+testEventPatternResponse pResponseStatus_ =+    TestEventPatternResponse'+    { _teprsResult = Nothing+    , _teprsResponseStatus = pResponseStatus_+    }++-- | Indicates whether the event matches the event pattern.+teprsResult :: Lens' TestEventPatternResponse (Maybe Bool)+teprsResult = lens _teprsResult (\ s a -> s{_teprsResult = a});++-- | The response status code.+teprsResponseStatus :: Lens' TestEventPatternResponse Int+teprsResponseStatus = lens _teprsResponseStatus (\ s a -> s{_teprsResponseStatus = a});
+ gen/Network/AWS/CloudWatchEvents/Types.hs view
@@ -0,0 +1,139 @@+{-# LANGUAGE OverloadedStrings #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.CloudWatchEvents.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.CloudWatchEvents.Types+    (+    -- * Service Configuration+      cloudWatchEvents++    -- * Errors+    , _ConcurrentModificationException+    , _InvalidEventPatternException+    , _InternalException+    , _ResourceNotFoundException+    , _LimitExceededException++    -- * RuleState+    , RuleState (..)++    -- * PutEventsRequestEntry+    , PutEventsRequestEntry+    , putEventsRequestEntry+    , pereTime+    , pereDetailType+    , pereResources+    , pereSource+    , pereDetail++    -- * PutEventsResultEntry+    , PutEventsResultEntry+    , putEventsResultEntry+    , pereErrorCode+    , pereErrorMessage+    , pereEventId++    -- * PutTargetsResultEntry+    , PutTargetsResultEntry+    , putTargetsResultEntry+    , ptreTargetId+    , ptreErrorCode+    , ptreErrorMessage++    -- * RemoveTargetsResultEntry+    , RemoveTargetsResultEntry+    , removeTargetsResultEntry+    , rtreTargetId+    , rtreErrorCode+    , rtreErrorMessage++    -- * Rule+    , Rule+    , rule+    , rEventPattern+    , rState+    , rARN+    , rScheduleExpression+    , rName+    , rDescription+    , rRoleARN++    -- * Target+    , Target+    , target+    , tInput+    , tInputPath+    , tId+    , tARN+    ) where++import           Network.AWS.CloudWatchEvents.Types.Product+import           Network.AWS.CloudWatchEvents.Types.Sum+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Sign.V4++-- | API version '2015-10-07' of the Amazon CloudWatch Events SDK configuration.+cloudWatchEvents :: Service+cloudWatchEvents =+    Service+    { _svcAbbrev = "CloudWatchEvents"+    , _svcSigner = v4+    , _svcPrefix = "events"+    , _svcVersion = "2015-10-07"+    , _svcEndpoint = defaultEndpoint cloudWatchEvents+    , _svcTimeout = Just 70+    , _svcCheck = statusSuccess+    , _svcError = parseJSONError+    , _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 503) e = Just "service_unavailable"+      | has (hasStatus 500) e = Just "general_server_error"+      | has (hasStatus 509) e = Just "limit_exceeded"+      | otherwise = Nothing++-- | This exception occurs if there is concurrent modification on rule or+-- target.+_ConcurrentModificationException :: AsError a => Getting (First ServiceError) a ServiceError+_ConcurrentModificationException =+    _ServiceError . hasCode "ConcurrentModificationException"++-- | The event pattern is invalid.+_InvalidEventPatternException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidEventPatternException =+    _ServiceError . hasCode "InvalidEventPatternException"++-- | This exception occurs due to unexpected causes.+_InternalException :: AsError a => Getting (First ServiceError) a ServiceError+_InternalException = _ServiceError . hasCode "InternalException"++-- | The rule does not exist.+_ResourceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError+_ResourceNotFoundException =+    _ServiceError . hasCode "ResourceNotFoundException"++-- | This exception occurs if you try to create more rules or add more+-- targets to a rule than allowed by default.+_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError+_LimitExceededException = _ServiceError . hasCode "LimitExceededException"
+ gen/Network/AWS/CloudWatchEvents/Types/Product.hs view
@@ -0,0 +1,423 @@+{-# 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.CloudWatchEvents.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.CloudWatchEvents.Types.Product where++import           Network.AWS.CloudWatchEvents.Types.Sum+import           Network.AWS.Lens+import           Network.AWS.Prelude++-- | Contains information about the event to be used in PutEvents.+--+-- /See:/ 'putEventsRequestEntry' smart constructor.+data PutEventsRequestEntry = PutEventsRequestEntry'+    { _pereTime       :: !(Maybe POSIX)+    , _pereDetailType :: !(Maybe Text)+    , _pereResources  :: !(Maybe [Text])+    , _pereSource     :: !(Maybe Text)+    , _pereDetail     :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'PutEventsRequestEntry' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pereTime'+--+-- * 'pereDetailType'+--+-- * 'pereResources'+--+-- * 'pereSource'+--+-- * 'pereDetail'+putEventsRequestEntry+    :: PutEventsRequestEntry+putEventsRequestEntry =+    PutEventsRequestEntry'+    { _pereTime = Nothing+    , _pereDetailType = Nothing+    , _pereResources = Nothing+    , _pereSource = Nothing+    , _pereDetail = Nothing+    }++-- | Timestamp of event, per+-- <https://www.rfc-editor.org/rfc/rfc3339.txt RFC3339>. If no timestamp is+-- provided, the timestamp of the < PutEvents> call will be used.+pereTime :: Lens' PutEventsRequestEntry (Maybe UTCTime)+pereTime = lens _pereTime (\ s a -> s{_pereTime = a}) . mapping _Time;++-- | Free-form string used to decide what fields to expect in the event+-- detail.+pereDetailType :: Lens' PutEventsRequestEntry (Maybe Text)+pereDetailType = lens _pereDetailType (\ s a -> s{_pereDetailType = a});++-- | AWS resources, identified by Amazon Resource Name (ARN), which the event+-- primarily concerns. Any number, including zero, may be present.+pereResources :: Lens' PutEventsRequestEntry [Text]+pereResources = lens _pereResources (\ s a -> s{_pereResources = a}) . _Default . _Coerce;++-- | The source of the event.+pereSource :: Lens' PutEventsRequestEntry (Maybe Text)+pereSource = lens _pereSource (\ s a -> s{_pereSource = a});++-- | In the JSON sense, an object containing fields, which may also contain+-- nested sub-objects. No constraints are imposed on its contents.+pereDetail :: Lens' PutEventsRequestEntry (Maybe Text)+pereDetail = lens _pereDetail (\ s a -> s{_pereDetail = a});++instance Hashable PutEventsRequestEntry++instance ToJSON PutEventsRequestEntry where+        toJSON PutEventsRequestEntry'{..}+          = object+              (catMaybes+                 [("Time" .=) <$> _pereTime,+                  ("DetailType" .=) <$> _pereDetailType,+                  ("Resources" .=) <$> _pereResources,+                  ("Source" .=) <$> _pereSource,+                  ("Detail" .=) <$> _pereDetail])++-- | A PutEventsResult contains a list of PutEventsResultEntry.+--+-- /See:/ 'putEventsResultEntry' smart constructor.+data PutEventsResultEntry = PutEventsResultEntry'+    { _pereErrorCode    :: !(Maybe Text)+    , _pereErrorMessage :: !(Maybe Text)+    , _pereEventId      :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'PutEventsResultEntry' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'pereErrorCode'+--+-- * 'pereErrorMessage'+--+-- * 'pereEventId'+putEventsResultEntry+    :: PutEventsResultEntry+putEventsResultEntry =+    PutEventsResultEntry'+    { _pereErrorCode = Nothing+    , _pereErrorMessage = Nothing+    , _pereEventId = Nothing+    }++-- | The error code representing why the event submission failed on this+-- entry.+pereErrorCode :: Lens' PutEventsResultEntry (Maybe Text)+pereErrorCode = lens _pereErrorCode (\ s a -> s{_pereErrorCode = a});++-- | The error message explaining why the event submission failed on this+-- entry.+pereErrorMessage :: Lens' PutEventsResultEntry (Maybe Text)+pereErrorMessage = lens _pereErrorMessage (\ s a -> s{_pereErrorMessage = a});++-- | The ID of the event submitted to Amazon CloudWatch Events.+pereEventId :: Lens' PutEventsResultEntry (Maybe Text)+pereEventId = lens _pereEventId (\ s a -> s{_pereEventId = a});++instance FromJSON PutEventsResultEntry where+        parseJSON+          = withObject "PutEventsResultEntry"+              (\ x ->+                 PutEventsResultEntry' <$>+                   (x .:? "ErrorCode") <*> (x .:? "ErrorMessage") <*>+                     (x .:? "EventId"))++instance Hashable PutEventsResultEntry++-- | A PutTargetsResult contains a list of PutTargetsResultEntry.+--+-- /See:/ 'putTargetsResultEntry' smart constructor.+data PutTargetsResultEntry = PutTargetsResultEntry'+    { _ptreTargetId     :: !(Maybe Text)+    , _ptreErrorCode    :: !(Maybe Text)+    , _ptreErrorMessage :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'PutTargetsResultEntry' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ptreTargetId'+--+-- * 'ptreErrorCode'+--+-- * 'ptreErrorMessage'+putTargetsResultEntry+    :: PutTargetsResultEntry+putTargetsResultEntry =+    PutTargetsResultEntry'+    { _ptreTargetId = Nothing+    , _ptreErrorCode = Nothing+    , _ptreErrorMessage = Nothing+    }++-- | The ID of the target submitted to Amazon CloudWatch Events.+ptreTargetId :: Lens' PutTargetsResultEntry (Maybe Text)+ptreTargetId = lens _ptreTargetId (\ s a -> s{_ptreTargetId = a});++-- | The error code representing why the target submission failed on this+-- entry.+ptreErrorCode :: Lens' PutTargetsResultEntry (Maybe Text)+ptreErrorCode = lens _ptreErrorCode (\ s a -> s{_ptreErrorCode = a});++-- | The error message explaining why the target submission failed on this+-- entry.+ptreErrorMessage :: Lens' PutTargetsResultEntry (Maybe Text)+ptreErrorMessage = lens _ptreErrorMessage (\ s a -> s{_ptreErrorMessage = a});++instance FromJSON PutTargetsResultEntry where+        parseJSON+          = withObject "PutTargetsResultEntry"+              (\ x ->+                 PutTargetsResultEntry' <$>+                   (x .:? "TargetId") <*> (x .:? "ErrorCode") <*>+                     (x .:? "ErrorMessage"))++instance Hashable PutTargetsResultEntry++-- | The ID of the target requested to be removed from the rule by Amazon+-- CloudWatch Events.+--+-- /See:/ 'removeTargetsResultEntry' smart constructor.+data RemoveTargetsResultEntry = RemoveTargetsResultEntry'+    { _rtreTargetId     :: !(Maybe Text)+    , _rtreErrorCode    :: !(Maybe Text)+    , _rtreErrorMessage :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'RemoveTargetsResultEntry' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rtreTargetId'+--+-- * 'rtreErrorCode'+--+-- * 'rtreErrorMessage'+removeTargetsResultEntry+    :: RemoveTargetsResultEntry+removeTargetsResultEntry =+    RemoveTargetsResultEntry'+    { _rtreTargetId = Nothing+    , _rtreErrorCode = Nothing+    , _rtreErrorMessage = Nothing+    }++-- | The ID of the target requested to be removed by Amazon CloudWatch+-- Events.+rtreTargetId :: Lens' RemoveTargetsResultEntry (Maybe Text)+rtreTargetId = lens _rtreTargetId (\ s a -> s{_rtreTargetId = a});++-- | The error code representing why the target removal failed on this entry.+rtreErrorCode :: Lens' RemoveTargetsResultEntry (Maybe Text)+rtreErrorCode = lens _rtreErrorCode (\ s a -> s{_rtreErrorCode = a});++-- | The error message explaining why the target removal failed on this+-- entry.+rtreErrorMessage :: Lens' RemoveTargetsResultEntry (Maybe Text)+rtreErrorMessage = lens _rtreErrorMessage (\ s a -> s{_rtreErrorMessage = a});++instance FromJSON RemoveTargetsResultEntry where+        parseJSON+          = withObject "RemoveTargetsResultEntry"+              (\ x ->+                 RemoveTargetsResultEntry' <$>+                   (x .:? "TargetId") <*> (x .:? "ErrorCode") <*>+                     (x .:? "ErrorMessage"))++instance Hashable RemoveTargetsResultEntry++-- | Contains information about a rule in Amazon CloudWatch Events. A+-- ListRulesResult contains a list of Rules.+--+-- /See:/ 'rule' smart constructor.+data Rule = Rule'+    { _rEventPattern       :: !(Maybe Text)+    , _rState              :: !(Maybe RuleState)+    , _rARN                :: !(Maybe Text)+    , _rScheduleExpression :: !(Maybe Text)+    , _rName               :: !(Maybe Text)+    , _rDescription        :: !(Maybe Text)+    , _rRoleARN            :: !(Maybe Text)+    } 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:+--+-- * 'rEventPattern'+--+-- * 'rState'+--+-- * 'rARN'+--+-- * 'rScheduleExpression'+--+-- * 'rName'+--+-- * 'rDescription'+--+-- * 'rRoleARN'+rule+    :: Rule+rule =+    Rule'+    { _rEventPattern = Nothing+    , _rState = Nothing+    , _rARN = Nothing+    , _rScheduleExpression = Nothing+    , _rName = Nothing+    , _rDescription = Nothing+    , _rRoleARN = Nothing+    }++-- | The event pattern of the rule.+rEventPattern :: Lens' Rule (Maybe Text)+rEventPattern = lens _rEventPattern (\ s a -> s{_rEventPattern = a});++-- | The rule\'s state.+rState :: Lens' Rule (Maybe RuleState)+rState = lens _rState (\ s a -> s{_rState = a});++-- | The Amazon Resource Name (ARN) of the rule.+rARN :: Lens' Rule (Maybe Text)+rARN = lens _rARN (\ s a -> s{_rARN = a});++-- | The scheduling expression. For example, \"cron(0 20 * * ? *)\", \"rate(5+-- minutes)\".+rScheduleExpression :: Lens' Rule (Maybe Text)+rScheduleExpression = lens _rScheduleExpression (\ s a -> s{_rScheduleExpression = a});++-- | The rule\'s name.+rName :: Lens' Rule (Maybe Text)+rName = lens _rName (\ s a -> s{_rName = a});++-- | The description of the rule.+rDescription :: Lens' Rule (Maybe Text)+rDescription = lens _rDescription (\ s a -> s{_rDescription = a});++-- | The Amazon Resource Name (ARN) associated with the role that is used for+-- target invocation.+rRoleARN :: Lens' Rule (Maybe Text)+rRoleARN = lens _rRoleARN (\ s a -> s{_rRoleARN = a});++instance FromJSON Rule where+        parseJSON+          = withObject "Rule"+              (\ x ->+                 Rule' <$>+                   (x .:? "EventPattern") <*> (x .:? "State") <*>+                     (x .:? "Arn")+                     <*> (x .:? "ScheduleExpression")+                     <*> (x .:? "Name")+                     <*> (x .:? "Description")+                     <*> (x .:? "RoleArn"))++instance Hashable Rule++-- | Targets are the resources that can be invoked when a rule is triggered.+-- For example, AWS Lambda functions, Amazon Kinesis streams, and built-in+-- targets.+--+-- __Input__ and __InputPath__ are mutually-exclusive and optional+-- parameters of a target. When a rule is triggered due to a matched event,+-- if for a target:+--+-- -   Neither __Input__ nor __InputPath__ is specified, then the entire+--     event is passed to the target in JSON form.+-- -   __InputPath__ is specified in the form of JSONPath (e.g.+--     __$.detail__), then only the part of the event specified in the path+--     is passed to the target (e.g. only the detail part of the event is+--     passed).+-- -   __Input__ is specified in the form of a valid JSON, then the matched+--     event is overridden with this constant.+--+-- /See:/ 'target' smart constructor.+data Target = Target'+    { _tInput     :: !(Maybe Text)+    , _tInputPath :: !(Maybe Text)+    , _tId        :: !Text+    , _tARN       :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Target' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tInput'+--+-- * 'tInputPath'+--+-- * 'tId'+--+-- * 'tARN'+target+    :: Text -- ^ 'tId'+    -> Text -- ^ 'tARN'+    -> Target+target pId_ pARN_ =+    Target'+    { _tInput = Nothing+    , _tInputPath = Nothing+    , _tId = pId_+    , _tARN = pARN_+    }++-- | Valid JSON text passed to the target. For more information about JSON+-- text, see+-- <http://www.rfc-editor.org/rfc/rfc7159.txt The JavaScript Object Notation (JSON) Data Interchange Format>.+tInput :: Lens' Target (Maybe Text)+tInput = lens _tInput (\ s a -> s{_tInput = a});++-- | The value of the JSONPath that is used for extracting part of the+-- matched event when passing it to the target. For more information about+-- JSON paths, see <http://goessner.net/articles/JsonPath/ JSONPath>.+tInputPath :: Lens' Target (Maybe Text)+tInputPath = lens _tInputPath (\ s a -> s{_tInputPath = a});++-- | The unique target assignment ID.+tId :: Lens' Target Text+tId = lens _tId (\ s a -> s{_tId = a});++-- | The Amazon Resource Name (ARN) associated of the target.+tARN :: Lens' Target Text+tARN = lens _tARN (\ s a -> s{_tARN = a});++instance FromJSON Target where+        parseJSON+          = withObject "Target"+              (\ x ->+                 Target' <$>+                   (x .:? "Input") <*> (x .:? "InputPath") <*>+                     (x .: "Id")+                     <*> (x .: "Arn"))++instance Hashable Target++instance ToJSON Target where+        toJSON Target'{..}+          = object+              (catMaybes+                 [("Input" .=) <$> _tInput,+                  ("InputPath" .=) <$> _tInputPath,+                  Just ("Id" .= _tId), Just ("Arn" .= _tARN)])
+ gen/Network/AWS/CloudWatchEvents/Types/Sum.hs view
@@ -0,0 +1,48 @@+{-# 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.CloudWatchEvents.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.CloudWatchEvents.Types.Sum where++import           Network.AWS.Prelude++data RuleState+    = Disabled+    | Enabled+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)++instance FromText RuleState where+    parser = takeLowerText >>= \case+        "disabled" -> pure Disabled+        "enabled" -> pure Enabled+        e -> fromTextError $ "Failure parsing RuleState from value: '" <> e+           <> "'. Accepted values: DISABLED, ENABLED"++instance ToText RuleState where+    toText = \case+        Disabled -> "DISABLED"+        Enabled -> "ENABLED"++instance Hashable     RuleState+instance ToByteString RuleState+instance ToQuery      RuleState+instance ToHeader     RuleState++instance ToJSON RuleState where+    toJSON = toJSONText++instance FromJSON RuleState where+    parseJSON = parseJSONText "RuleState"
+ gen/Network/AWS/CloudWatchEvents/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.CloudWatchEvents.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.CloudWatchEvents.Waiters where++import           Network.AWS.CloudWatchEvents.Types+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Waiter
+ 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.CloudWatchEvents+import Test.AWS.CloudWatchEvents.Internal++main :: IO ()+main = defaultMain $ testGroup "CloudWatchEvents"+    [ testGroup "tests"    tests+    , testGroup "fixtures" fixtures+    ]
+ test/Test/AWS/CloudWatchEvents.hs view
@@ -0,0 +1,23 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TemplateHaskell   #-}++-- |+-- Module      : Test.AWS.CloudWatchEvents+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)+--+module Test.AWS.CloudWatchEvents+    ( tests+    , fixtures+    ) where++import           Test.AWS.Prelude++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/AWS/CloudWatchEvents/Internal.hs view
@@ -0,0 +1,15 @@+{-# LANGUAGE OverloadedStrings #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Test.AWS.CloudWatchEvents.Internal+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)+--++module Test.AWS.CloudWatchEvents.Internal where++import           Test.AWS.Prelude
+ test/Test/AWS/Gen/CloudWatchEvents.hs view
@@ -0,0 +1,255 @@+{-# 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.CloudWatchEvents+-- 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.CloudWatchEvents where++import Data.Proxy+import Test.AWS.Fixture+import Test.AWS.Prelude+import Test.Tasty+import Network.AWS.CloudWatchEvents+import Test.AWS.CloudWatchEvents.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"+--         [ testRemoveTargets $+--             removeTargets+--+--         , testDeleteRule $+--             deleteRule+--+--         , testListRules $+--             listRules+--+--         , testPutRule $+--             putRule+--+--         , testDisableRule $+--             disableRule+--+--         , testListTargetsByRule $+--             listTargetsByRule+--+--         , testDescribeRule $+--             describeRule+--+--         , testEnableRule $+--             enableRule+--+--         , testListRuleNamesByTarget $+--             listRuleNamesByTarget+--+--         , testTestEventPattern $+--             testEventPattern+--+--         , testPutTargets $+--             putTargets+--+--         , testPutEvents $+--             putEvents+--+--           ]++--     , testGroup "response"+--         [ testRemoveTargetsResponse $+--             removeTargetsResponse+--+--         , testDeleteRuleResponse $+--             deleteRuleResponse+--+--         , testListRulesResponse $+--             listRulesResponse+--+--         , testPutRuleResponse $+--             putRuleResponse+--+--         , testDisableRuleResponse $+--             disableRuleResponse+--+--         , testListTargetsByRuleResponse $+--             listTargetsByRuleResponse+--+--         , testDescribeRuleResponse $+--             describeRuleResponse+--+--         , testEnableRuleResponse $+--             enableRuleResponse+--+--         , testListRuleNamesByTargetResponse $+--             listRuleNamesByTargetResponse+--+--         , testTestEventPatternResponse $+--             testEventPatternResponse+--+--         , testPutTargetsResponse $+--             putTargetsResponse+--+--         , testPutEventsResponse $+--             putEventsResponse+--+--           ]+--     ]++-- Requests++testRemoveTargets :: RemoveTargets -> TestTree+testRemoveTargets = req+    "RemoveTargets"+    "fixture/RemoveTargets.yaml"++testDeleteRule :: DeleteRule -> TestTree+testDeleteRule = req+    "DeleteRule"+    "fixture/DeleteRule.yaml"++testListRules :: ListRules -> TestTree+testListRules = req+    "ListRules"+    "fixture/ListRules.yaml"++testPutRule :: PutRule -> TestTree+testPutRule = req+    "PutRule"+    "fixture/PutRule.yaml"++testDisableRule :: DisableRule -> TestTree+testDisableRule = req+    "DisableRule"+    "fixture/DisableRule.yaml"++testListTargetsByRule :: ListTargetsByRule -> TestTree+testListTargetsByRule = req+    "ListTargetsByRule"+    "fixture/ListTargetsByRule.yaml"++testDescribeRule :: DescribeRule -> TestTree+testDescribeRule = req+    "DescribeRule"+    "fixture/DescribeRule.yaml"++testEnableRule :: EnableRule -> TestTree+testEnableRule = req+    "EnableRule"+    "fixture/EnableRule.yaml"++testListRuleNamesByTarget :: ListRuleNamesByTarget -> TestTree+testListRuleNamesByTarget = req+    "ListRuleNamesByTarget"+    "fixture/ListRuleNamesByTarget.yaml"++testTestEventPattern :: TestEventPattern -> TestTree+testTestEventPattern = req+    "TestEventPattern"+    "fixture/TestEventPattern.yaml"++testPutTargets :: PutTargets -> TestTree+testPutTargets = req+    "PutTargets"+    "fixture/PutTargets.yaml"++testPutEvents :: PutEvents -> TestTree+testPutEvents = req+    "PutEvents"+    "fixture/PutEvents.yaml"++-- Responses++testRemoveTargetsResponse :: RemoveTargetsResponse -> TestTree+testRemoveTargetsResponse = res+    "RemoveTargetsResponse"+    "fixture/RemoveTargetsResponse.proto"+    cloudWatchEvents+    (Proxy :: Proxy RemoveTargets)++testDeleteRuleResponse :: DeleteRuleResponse -> TestTree+testDeleteRuleResponse = res+    "DeleteRuleResponse"+    "fixture/DeleteRuleResponse.proto"+    cloudWatchEvents+    (Proxy :: Proxy DeleteRule)++testListRulesResponse :: ListRulesResponse -> TestTree+testListRulesResponse = res+    "ListRulesResponse"+    "fixture/ListRulesResponse.proto"+    cloudWatchEvents+    (Proxy :: Proxy ListRules)++testPutRuleResponse :: PutRuleResponse -> TestTree+testPutRuleResponse = res+    "PutRuleResponse"+    "fixture/PutRuleResponse.proto"+    cloudWatchEvents+    (Proxy :: Proxy PutRule)++testDisableRuleResponse :: DisableRuleResponse -> TestTree+testDisableRuleResponse = res+    "DisableRuleResponse"+    "fixture/DisableRuleResponse.proto"+    cloudWatchEvents+    (Proxy :: Proxy DisableRule)++testListTargetsByRuleResponse :: ListTargetsByRuleResponse -> TestTree+testListTargetsByRuleResponse = res+    "ListTargetsByRuleResponse"+    "fixture/ListTargetsByRuleResponse.proto"+    cloudWatchEvents+    (Proxy :: Proxy ListTargetsByRule)++testDescribeRuleResponse :: DescribeRuleResponse -> TestTree+testDescribeRuleResponse = res+    "DescribeRuleResponse"+    "fixture/DescribeRuleResponse.proto"+    cloudWatchEvents+    (Proxy :: Proxy DescribeRule)++testEnableRuleResponse :: EnableRuleResponse -> TestTree+testEnableRuleResponse = res+    "EnableRuleResponse"+    "fixture/EnableRuleResponse.proto"+    cloudWatchEvents+    (Proxy :: Proxy EnableRule)++testListRuleNamesByTargetResponse :: ListRuleNamesByTargetResponse -> TestTree+testListRuleNamesByTargetResponse = res+    "ListRuleNamesByTargetResponse"+    "fixture/ListRuleNamesByTargetResponse.proto"+    cloudWatchEvents+    (Proxy :: Proxy ListRuleNamesByTarget)++testTestEventPatternResponse :: TestEventPatternResponse -> TestTree+testTestEventPatternResponse = res+    "TestEventPatternResponse"+    "fixture/TestEventPatternResponse.proto"+    cloudWatchEvents+    (Proxy :: Proxy TestEventPattern)++testPutTargetsResponse :: PutTargetsResponse -> TestTree+testPutTargetsResponse = res+    "PutTargetsResponse"+    "fixture/PutTargetsResponse.proto"+    cloudWatchEvents+    (Proxy :: Proxy PutTargets)++testPutEventsResponse :: PutEventsResponse -> TestTree+testPutEventsResponse = res+    "PutEventsResponse"+    "fixture/PutEventsResponse.proto"+    cloudWatchEvents+    (Proxy :: Proxy PutEvents)