packages feed

amazonka-budgets (empty) → 1.4.5

raw patch · 53 files changed

+4109/−0 lines, 53 filesdep +amazonka-budgetsdep +amazonka-coredep +amazonka-testsetup-changed

Dependencies added: amazonka-budgets, 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,45 @@+# Amazon Budgets SDK++* [Version](#version)+* [Description](#description)+* [Contribute](#contribute)+* [Licence](#licence)+++## Version++`1.4.5`+++## Description++Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-budgets)+and the [AWS API Reference](https://aws.amazon.com/documentation/).++The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/amazonka),+which provides mechanisms for specifying AuthN/AuthZ information, sending requests,+and receiving responses.++Lenses are used for constructing and manipulating types,+due to the depth of nesting of AWS types and transparency regarding+de/serialisation into more palatable Haskell values.+The provided lenses should be compatible with any of the major lens libraries+[lens](http://hackage.haskell.org/package/lens) or [lens-family-core](http://hackage.haskell.org/package/lens-family-core).++See [Network.AWS.Budgets](http://hackage.haskell.org/package/amazonka-budgets/docs/Network-AWS-Budgets.html)+or [the AWS documentation](https://aws.amazon.com/documentation/) to get started.+++## Contribute++For any problems, comments, or feedback please create an issue [here on GitHub](https://github.com/brendanhay/amazonka/issues).++> _Note:_ this library is an auto-generated Haskell package. Please see `amazonka-gen` for more information.+++## Licence++`amazonka-budgets` 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-budgets.cabal view
@@ -0,0 +1,93 @@+name:                  amazonka-budgets+version:               1.4.5+synopsis:              Amazon Budgets SDK.+homepage:              https://github.com/brendanhay/amazonka+bug-reports:           https://github.com/brendanhay/amazonka/issues+license:               OtherLicense+license-file:          LICENSE+author:                Brendan Hay+maintainer:            Brendan Hay <brendan.g.hay@gmail.com>+copyright:             Copyright (c) 2013-2016 Brendan Hay+category:              Network, AWS, Cloud, Distributed Computing+build-type:            Simple+cabal-version:         >= 1.10+extra-source-files:    README.md fixture/*.yaml fixture/*.proto src/.gitkeep+description:+    The types from this library are intended to be used with+    <http://hackage.haskell.org/package/amazonka amazonka>, which provides+    mechanisms for specifying AuthN/AuthZ information, sending requests,+    and receiving responses.+    .+    Lenses are used for constructing and manipulating types,+    due to the depth of nesting of AWS types and transparency regarding+    de/serialisation into more palatable Haskell values.+    The provided lenses should be compatible with any of the major lens libraries+    such as <http://hackage.haskell.org/package/lens lens> or+    <http://hackage.haskell.org/package/lens-family-core lens-family-core>.+    .+    See "Network.AWS.Budgets" 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.Budgets+        , Network.AWS.Budgets.CreateBudget+        , Network.AWS.Budgets.CreateNotification+        , Network.AWS.Budgets.CreateSubscriber+        , Network.AWS.Budgets.DeleteBudget+        , Network.AWS.Budgets.DeleteNotification+        , Network.AWS.Budgets.DeleteSubscriber+        , Network.AWS.Budgets.DescribeBudget+        , Network.AWS.Budgets.DescribeBudgets+        , Network.AWS.Budgets.DescribeNotificationsForBudget+        , Network.AWS.Budgets.DescribeSubscribersForNotification+        , Network.AWS.Budgets.Types+        , Network.AWS.Budgets.UpdateBudget+        , Network.AWS.Budgets.UpdateNotification+        , Network.AWS.Budgets.UpdateSubscriber+        , Network.AWS.Budgets.Waiters++    other-modules:+          Network.AWS.Budgets.Types.Product+        , Network.AWS.Budgets.Types.Sum++    build-depends:+          amazonka-core == 1.4.5.*+        , base          >= 4.7     && < 5++test-suite amazonka-budgets-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.Budgets+        , Test.AWS.Gen.Budgets+        , Test.AWS.Budgets.Internal++    build-depends:+          amazonka-core == 1.4.5.*+        , amazonka-test == 1.4.5.*+        , amazonka-budgets == 1.4.5.*+        , base+        , bytestring+        , tasty+        , tasty-hunit+        , text+        , time+        , unordered-containers
+ fixture/CreateBudget.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/budgets/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  budgets.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateBudgetResponse.proto view
+ fixture/CreateNotification.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/budgets/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  budgets.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateNotificationResponse.proto view
+ fixture/CreateSubscriber.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/budgets/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  budgets.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/CreateSubscriberResponse.proto view
+ fixture/DeleteBudget.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/budgets/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  budgets.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteBudgetResponse.proto view
+ fixture/DeleteNotification.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/budgets/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  budgets.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteNotificationResponse.proto view
+ fixture/DeleteSubscriber.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/budgets/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  budgets.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DeleteSubscriberResponse.proto view
+ fixture/DescribeBudget.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/budgets/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  budgets.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeBudgetResponse.proto view
+ fixture/DescribeBudgets.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/budgets/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  budgets.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeBudgetsResponse.proto view
+ fixture/DescribeNotificationsForBudget.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/budgets/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  budgets.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeNotificationsForBudgetResponse.proto view
+ fixture/DescribeSubscribersForNotification.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/budgets/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  budgets.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/DescribeSubscribersForNotificationResponse.proto view
+ fixture/UpdateBudget.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/budgets/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  budgets.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateBudgetResponse.proto view
+ fixture/UpdateNotification.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/budgets/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  budgets.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateNotificationResponse.proto view
+ fixture/UpdateSubscriber.yaml view
@@ -0,0 +1,10 @@+---+method: POST+headers:+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/budgets/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?+  Host:                  budgets.us-east-1.amazonaws.com+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8+  X-Amz-Content-SHA256:  abcdef+  X-Amz-Date:            20091028T223200Z+body:+  ''
+ fixture/UpdateSubscriberResponse.proto view
+ gen/Network/AWS/Budgets.hs view
@@ -0,0 +1,207 @@+{-# 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.Budgets+-- 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)+--+-- All public APIs for AWS Budgets+module Network.AWS.Budgets+    (+    -- * Service Configuration+      budgets++    -- * Errors+    -- $errors++    -- ** InvalidParameterException+    , _InvalidParameterException++    -- ** InternalErrorException+    , _InternalErrorException++    -- ** ExpiredNextTokenException+    , _ExpiredNextTokenException++    -- ** NotFoundException+    , _NotFoundException++    -- ** InvalidNextTokenException+    , _InvalidNextTokenException++    -- ** DuplicateRecordException+    , _DuplicateRecordException++    -- ** CreationLimitExceededException+    , _CreationLimitExceededException++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** DescribeSubscribersForNotification+    , module Network.AWS.Budgets.DescribeSubscribersForNotification++    -- ** DescribeNotificationsForBudget+    , module Network.AWS.Budgets.DescribeNotificationsForBudget++    -- ** DescribeBudgets+    , module Network.AWS.Budgets.DescribeBudgets++    -- ** CreateSubscriber+    , module Network.AWS.Budgets.CreateSubscriber++    -- ** UpdateBudget+    , module Network.AWS.Budgets.UpdateBudget++    -- ** DeleteBudget+    , module Network.AWS.Budgets.DeleteBudget++    -- ** DeleteNotification+    , module Network.AWS.Budgets.DeleteNotification++    -- ** UpdateNotification+    , module Network.AWS.Budgets.UpdateNotification++    -- ** DescribeBudget+    , module Network.AWS.Budgets.DescribeBudget++    -- ** UpdateSubscriber+    , module Network.AWS.Budgets.UpdateSubscriber++    -- ** DeleteSubscriber+    , module Network.AWS.Budgets.DeleteSubscriber++    -- ** CreateBudget+    , module Network.AWS.Budgets.CreateBudget++    -- ** CreateNotification+    , module Network.AWS.Budgets.CreateNotification++    -- * Types++    -- ** BudgetType+    , BudgetType (..)++    -- ** ComparisonOperator+    , ComparisonOperator (..)++    -- ** NotificationType+    , NotificationType (..)++    -- ** SubscriptionType+    , SubscriptionType (..)++    -- ** TimeUnit+    , TimeUnit (..)++    -- ** Budget+    , Budget+    , budget+    , bCalculatedSpend+    , bCostFilters+    , bBudgetName+    , bBudgetLimit+    , bCostTypes+    , bTimeUnit+    , bTimePeriod+    , bBudgetType++    -- ** CalculatedSpend+    , CalculatedSpend+    , calculatedSpend+    , csForecastedSpend+    , csActualSpend++    -- ** CostTypes+    , CostTypes+    , costTypes+    , ctIncludeTax+    , ctIncludeSubscription+    , ctUseBlended++    -- ** Notification+    , Notification+    , notification+    , nNotificationType+    , nComparisonOperator+    , nThreshold++    -- ** NotificationWithSubscribers+    , NotificationWithSubscribers+    , notificationWithSubscribers+    , nwsNotification+    , nwsSubscribers++    -- ** Spend+    , Spend+    , spend+    , sAmount+    , sUnit++    -- ** Subscriber+    , Subscriber+    , subscriber+    , sSubscriptionType+    , sAddress++    -- ** TimePeriod+    , TimePeriod+    , timePeriod+    , tpStart+    , tpEnd+    ) where++import           Network.AWS.Budgets.CreateBudget+import           Network.AWS.Budgets.CreateNotification+import           Network.AWS.Budgets.CreateSubscriber+import           Network.AWS.Budgets.DeleteBudget+import           Network.AWS.Budgets.DeleteNotification+import           Network.AWS.Budgets.DeleteSubscriber+import           Network.AWS.Budgets.DescribeBudget+import           Network.AWS.Budgets.DescribeBudgets+import           Network.AWS.Budgets.DescribeNotificationsForBudget+import           Network.AWS.Budgets.DescribeSubscribersForNotification+import           Network.AWS.Budgets.Types+import           Network.AWS.Budgets.UpdateBudget+import           Network.AWS.Budgets.UpdateNotification+import           Network.AWS.Budgets.UpdateSubscriber+import           Network.AWS.Budgets.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 'Budgets'.+-}++{- $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/Budgets/CreateBudget.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.Budgets.CreateBudget+-- 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)+--+-- Create a new budget+module Network.AWS.Budgets.CreateBudget+    (+    -- * Creating a Request+      createBudget+    , CreateBudget+    -- * Request Lenses+    , cbNotificationsWithSubscribers+    , cbAccountId+    , cbBudget++    -- * Destructuring the Response+    , createBudgetResponse+    , CreateBudgetResponse+    -- * Response Lenses+    , cbrsResponseStatus+    ) where++import           Network.AWS.Budgets.Types+import           Network.AWS.Budgets.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Request of CreateBudget+--+-- /See:/ 'createBudget' smart constructor.+data CreateBudget = CreateBudget'+    { _cbNotificationsWithSubscribers :: !(Maybe [NotificationWithSubscribers])+    , _cbAccountId                    :: !Text+    , _cbBudget                       :: !Budget+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateBudget' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cbNotificationsWithSubscribers' - Undocumented member.+--+-- * 'cbAccountId' - Undocumented member.+--+-- * 'cbBudget' - Undocumented member.+createBudget+    :: Text -- ^ 'cbAccountId'+    -> Budget -- ^ 'cbBudget'+    -> CreateBudget+createBudget pAccountId_ pBudget_ =+    CreateBudget'+    { _cbNotificationsWithSubscribers = Nothing+    , _cbAccountId = pAccountId_+    , _cbBudget = pBudget_+    }++-- | Undocumented member.+cbNotificationsWithSubscribers :: Lens' CreateBudget [NotificationWithSubscribers]+cbNotificationsWithSubscribers = lens _cbNotificationsWithSubscribers (\ s a -> s{_cbNotificationsWithSubscribers = a}) . _Default . _Coerce;++-- | Undocumented member.+cbAccountId :: Lens' CreateBudget Text+cbAccountId = lens _cbAccountId (\ s a -> s{_cbAccountId = a});++-- | Undocumented member.+cbBudget :: Lens' CreateBudget Budget+cbBudget = lens _cbBudget (\ s a -> s{_cbBudget = a});++instance AWSRequest CreateBudget where+        type Rs CreateBudget = CreateBudgetResponse+        request = postJSON budgets+        response+          = receiveEmpty+              (\ s h x ->+                 CreateBudgetResponse' <$> (pure (fromEnum s)))++instance Hashable CreateBudget++instance NFData CreateBudget++instance ToHeaders CreateBudget where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSBudgetServiceGateway.CreateBudget" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateBudget where+        toJSON CreateBudget'{..}+          = object+              (catMaybes+                 [("NotificationsWithSubscribers" .=) <$>+                    _cbNotificationsWithSubscribers,+                  Just ("AccountId" .= _cbAccountId),+                  Just ("Budget" .= _cbBudget)])++instance ToPath CreateBudget where+        toPath = const "/"++instance ToQuery CreateBudget where+        toQuery = const mempty++-- | Response of CreateBudget+--+-- /See:/ 'createBudgetResponse' smart constructor.+newtype CreateBudgetResponse = CreateBudgetResponse'+    { _cbrsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateBudgetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cbrsResponseStatus' - -- | The response status code.+createBudgetResponse+    :: Int -- ^ 'cbrsResponseStatus'+    -> CreateBudgetResponse+createBudgetResponse pResponseStatus_ =+    CreateBudgetResponse'+    { _cbrsResponseStatus = pResponseStatus_+    }++-- | -- | The response status code.+cbrsResponseStatus :: Lens' CreateBudgetResponse Int+cbrsResponseStatus = lens _cbrsResponseStatus (\ s a -> s{_cbrsResponseStatus = a});++instance NFData CreateBudgetResponse
+ gen/Network/AWS/Budgets/CreateNotification.hs view
@@ -0,0 +1,160 @@+{-# 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.Budgets.CreateNotification+-- 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)+--+-- Create a new Notification with subscribers for a budget+module Network.AWS.Budgets.CreateNotification+    (+    -- * Creating a Request+      createNotification+    , CreateNotification+    -- * Request Lenses+    , cnAccountId+    , cnBudgetName+    , cnNotification+    , cnSubscribers++    -- * Destructuring the Response+    , createNotificationResponse+    , CreateNotificationResponse+    -- * Response Lenses+    , cnrsResponseStatus+    ) where++import           Network.AWS.Budgets.Types+import           Network.AWS.Budgets.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Request of CreateNotification+--+-- /See:/ 'createNotification' smart constructor.+data CreateNotification = CreateNotification'+    { _cnAccountId    :: !Text+    , _cnBudgetName   :: !Text+    , _cnNotification :: !Notification+    , _cnSubscribers  :: !(List1 Subscriber)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateNotification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cnAccountId' - Undocumented member.+--+-- * 'cnBudgetName' - Undocumented member.+--+-- * 'cnNotification' - Undocumented member.+--+-- * 'cnSubscribers' - Undocumented member.+createNotification+    :: Text -- ^ 'cnAccountId'+    -> Text -- ^ 'cnBudgetName'+    -> Notification -- ^ 'cnNotification'+    -> NonEmpty Subscriber -- ^ 'cnSubscribers'+    -> CreateNotification+createNotification pAccountId_ pBudgetName_ pNotification_ pSubscribers_ =+    CreateNotification'+    { _cnAccountId = pAccountId_+    , _cnBudgetName = pBudgetName_+    , _cnNotification = pNotification_+    , _cnSubscribers = _List1 # pSubscribers_+    }++-- | Undocumented member.+cnAccountId :: Lens' CreateNotification Text+cnAccountId = lens _cnAccountId (\ s a -> s{_cnAccountId = a});++-- | Undocumented member.+cnBudgetName :: Lens' CreateNotification Text+cnBudgetName = lens _cnBudgetName (\ s a -> s{_cnBudgetName = a});++-- | Undocumented member.+cnNotification :: Lens' CreateNotification Notification+cnNotification = lens _cnNotification (\ s a -> s{_cnNotification = a});++-- | Undocumented member.+cnSubscribers :: Lens' CreateNotification (NonEmpty Subscriber)+cnSubscribers = lens _cnSubscribers (\ s a -> s{_cnSubscribers = a}) . _List1;++instance AWSRequest CreateNotification where+        type Rs CreateNotification =+             CreateNotificationResponse+        request = postJSON budgets+        response+          = receiveEmpty+              (\ s h x ->+                 CreateNotificationResponse' <$> (pure (fromEnum s)))++instance Hashable CreateNotification++instance NFData CreateNotification++instance ToHeaders CreateNotification where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSBudgetServiceGateway.CreateNotification" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateNotification where+        toJSON CreateNotification'{..}+          = object+              (catMaybes+                 [Just ("AccountId" .= _cnAccountId),+                  Just ("BudgetName" .= _cnBudgetName),+                  Just ("Notification" .= _cnNotification),+                  Just ("Subscribers" .= _cnSubscribers)])++instance ToPath CreateNotification where+        toPath = const "/"++instance ToQuery CreateNotification where+        toQuery = const mempty++-- | Response of CreateNotification+--+-- /See:/ 'createNotificationResponse' smart constructor.+newtype CreateNotificationResponse = CreateNotificationResponse'+    { _cnrsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateNotificationResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'cnrsResponseStatus' - -- | The response status code.+createNotificationResponse+    :: Int -- ^ 'cnrsResponseStatus'+    -> CreateNotificationResponse+createNotificationResponse pResponseStatus_ =+    CreateNotificationResponse'+    { _cnrsResponseStatus = pResponseStatus_+    }++-- | -- | The response status code.+cnrsResponseStatus :: Lens' CreateNotificationResponse Int+cnrsResponseStatus = lens _cnrsResponseStatus (\ s a -> s{_cnrsResponseStatus = a});++instance NFData CreateNotificationResponse
+ gen/Network/AWS/Budgets/CreateSubscriber.hs view
@@ -0,0 +1,159 @@+{-# 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.Budgets.CreateSubscriber+-- 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)+--+-- Create a new Subscriber for a notification+module Network.AWS.Budgets.CreateSubscriber+    (+    -- * Creating a Request+      createSubscriber+    , CreateSubscriber+    -- * Request Lenses+    , csAccountId+    , csBudgetName+    , csNotification+    , csSubscriber++    -- * Destructuring the Response+    , createSubscriberResponse+    , CreateSubscriberResponse+    -- * Response Lenses+    , csrsResponseStatus+    ) where++import           Network.AWS.Budgets.Types+import           Network.AWS.Budgets.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Request of CreateSubscriber+--+-- /See:/ 'createSubscriber' smart constructor.+data CreateSubscriber = CreateSubscriber'+    { _csAccountId    :: !Text+    , _csBudgetName   :: !Text+    , _csNotification :: !Notification+    , _csSubscriber   :: !Subscriber+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateSubscriber' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csAccountId' - Undocumented member.+--+-- * 'csBudgetName' - Undocumented member.+--+-- * 'csNotification' - Undocumented member.+--+-- * 'csSubscriber' - Undocumented member.+createSubscriber+    :: Text -- ^ 'csAccountId'+    -> Text -- ^ 'csBudgetName'+    -> Notification -- ^ 'csNotification'+    -> Subscriber -- ^ 'csSubscriber'+    -> CreateSubscriber+createSubscriber pAccountId_ pBudgetName_ pNotification_ pSubscriber_ =+    CreateSubscriber'+    { _csAccountId = pAccountId_+    , _csBudgetName = pBudgetName_+    , _csNotification = pNotification_+    , _csSubscriber = pSubscriber_+    }++-- | Undocumented member.+csAccountId :: Lens' CreateSubscriber Text+csAccountId = lens _csAccountId (\ s a -> s{_csAccountId = a});++-- | Undocumented member.+csBudgetName :: Lens' CreateSubscriber Text+csBudgetName = lens _csBudgetName (\ s a -> s{_csBudgetName = a});++-- | Undocumented member.+csNotification :: Lens' CreateSubscriber Notification+csNotification = lens _csNotification (\ s a -> s{_csNotification = a});++-- | Undocumented member.+csSubscriber :: Lens' CreateSubscriber Subscriber+csSubscriber = lens _csSubscriber (\ s a -> s{_csSubscriber = a});++instance AWSRequest CreateSubscriber where+        type Rs CreateSubscriber = CreateSubscriberResponse+        request = postJSON budgets+        response+          = receiveEmpty+              (\ s h x ->+                 CreateSubscriberResponse' <$> (pure (fromEnum s)))++instance Hashable CreateSubscriber++instance NFData CreateSubscriber++instance ToHeaders CreateSubscriber where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSBudgetServiceGateway.CreateSubscriber" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON CreateSubscriber where+        toJSON CreateSubscriber'{..}+          = object+              (catMaybes+                 [Just ("AccountId" .= _csAccountId),+                  Just ("BudgetName" .= _csBudgetName),+                  Just ("Notification" .= _csNotification),+                  Just ("Subscriber" .= _csSubscriber)])++instance ToPath CreateSubscriber where+        toPath = const "/"++instance ToQuery CreateSubscriber where+        toQuery = const mempty++-- | Response of CreateSubscriber+--+-- /See:/ 'createSubscriberResponse' smart constructor.+newtype CreateSubscriberResponse = CreateSubscriberResponse'+    { _csrsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateSubscriberResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csrsResponseStatus' - -- | The response status code.+createSubscriberResponse+    :: Int -- ^ 'csrsResponseStatus'+    -> CreateSubscriberResponse+createSubscriberResponse pResponseStatus_ =+    CreateSubscriberResponse'+    { _csrsResponseStatus = pResponseStatus_+    }++-- | -- | The response status code.+csrsResponseStatus :: Lens' CreateSubscriberResponse Int+csrsResponseStatus = lens _csrsResponseStatus (\ s a -> s{_csrsResponseStatus = a});++instance NFData CreateSubscriberResponse
+ gen/Network/AWS/Budgets/DeleteBudget.hs view
@@ -0,0 +1,137 @@+{-# 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.Budgets.DeleteBudget+-- 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)+--+-- Delete a budget and related notifications+module Network.AWS.Budgets.DeleteBudget+    (+    -- * Creating a Request+      deleteBudget+    , DeleteBudget+    -- * Request Lenses+    , dAccountId+    , dBudgetName++    -- * Destructuring the Response+    , deleteBudgetResponse+    , DeleteBudgetResponse+    -- * Response Lenses+    , drsResponseStatus+    ) where++import           Network.AWS.Budgets.Types+import           Network.AWS.Budgets.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Request of DeleteBudget+--+-- /See:/ 'deleteBudget' smart constructor.+data DeleteBudget = DeleteBudget'+    { _dAccountId  :: !Text+    , _dBudgetName :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteBudget' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dAccountId' - Undocumented member.+--+-- * 'dBudgetName' - Undocumented member.+deleteBudget+    :: Text -- ^ 'dAccountId'+    -> Text -- ^ 'dBudgetName'+    -> DeleteBudget+deleteBudget pAccountId_ pBudgetName_ =+    DeleteBudget'+    { _dAccountId = pAccountId_+    , _dBudgetName = pBudgetName_+    }++-- | Undocumented member.+dAccountId :: Lens' DeleteBudget Text+dAccountId = lens _dAccountId (\ s a -> s{_dAccountId = a});++-- | Undocumented member.+dBudgetName :: Lens' DeleteBudget Text+dBudgetName = lens _dBudgetName (\ s a -> s{_dBudgetName = a});++instance AWSRequest DeleteBudget where+        type Rs DeleteBudget = DeleteBudgetResponse+        request = postJSON budgets+        response+          = receiveEmpty+              (\ s h x ->+                 DeleteBudgetResponse' <$> (pure (fromEnum s)))++instance Hashable DeleteBudget++instance NFData DeleteBudget++instance ToHeaders DeleteBudget where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSBudgetServiceGateway.DeleteBudget" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeleteBudget where+        toJSON DeleteBudget'{..}+          = object+              (catMaybes+                 [Just ("AccountId" .= _dAccountId),+                  Just ("BudgetName" .= _dBudgetName)])++instance ToPath DeleteBudget where+        toPath = const "/"++instance ToQuery DeleteBudget where+        toQuery = const mempty++-- | Response of DeleteBudget+--+-- /See:/ 'deleteBudgetResponse' smart constructor.+newtype DeleteBudgetResponse = DeleteBudgetResponse'+    { _drsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteBudgetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drsResponseStatus' - -- | The response status code.+deleteBudgetResponse+    :: Int -- ^ 'drsResponseStatus'+    -> DeleteBudgetResponse+deleteBudgetResponse pResponseStatus_ =+    DeleteBudgetResponse'+    { _drsResponseStatus = pResponseStatus_+    }++-- | -- | The response status code.+drsResponseStatus :: Lens' DeleteBudgetResponse Int+drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a});++instance NFData DeleteBudgetResponse
+ gen/Network/AWS/Budgets/DeleteNotification.hs view
@@ -0,0 +1,149 @@+{-# 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.Budgets.DeleteNotification+-- 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)+--+-- Delete a notification and related subscribers+module Network.AWS.Budgets.DeleteNotification+    (+    -- * Creating a Request+      deleteNotification+    , DeleteNotification+    -- * Request Lenses+    , dnAccountId+    , dnBudgetName+    , dnNotification++    -- * Destructuring the Response+    , deleteNotificationResponse+    , DeleteNotificationResponse+    -- * Response Lenses+    , dnrsResponseStatus+    ) where++import           Network.AWS.Budgets.Types+import           Network.AWS.Budgets.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Request of DeleteNotification+--+-- /See:/ 'deleteNotification' smart constructor.+data DeleteNotification = DeleteNotification'+    { _dnAccountId    :: !Text+    , _dnBudgetName   :: !Text+    , _dnNotification :: !Notification+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteNotification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dnAccountId' - Undocumented member.+--+-- * 'dnBudgetName' - Undocumented member.+--+-- * 'dnNotification' - Undocumented member.+deleteNotification+    :: Text -- ^ 'dnAccountId'+    -> Text -- ^ 'dnBudgetName'+    -> Notification -- ^ 'dnNotification'+    -> DeleteNotification+deleteNotification pAccountId_ pBudgetName_ pNotification_ =+    DeleteNotification'+    { _dnAccountId = pAccountId_+    , _dnBudgetName = pBudgetName_+    , _dnNotification = pNotification_+    }++-- | Undocumented member.+dnAccountId :: Lens' DeleteNotification Text+dnAccountId = lens _dnAccountId (\ s a -> s{_dnAccountId = a});++-- | Undocumented member.+dnBudgetName :: Lens' DeleteNotification Text+dnBudgetName = lens _dnBudgetName (\ s a -> s{_dnBudgetName = a});++-- | Undocumented member.+dnNotification :: Lens' DeleteNotification Notification+dnNotification = lens _dnNotification (\ s a -> s{_dnNotification = a});++instance AWSRequest DeleteNotification where+        type Rs DeleteNotification =+             DeleteNotificationResponse+        request = postJSON budgets+        response+          = receiveEmpty+              (\ s h x ->+                 DeleteNotificationResponse' <$> (pure (fromEnum s)))++instance Hashable DeleteNotification++instance NFData DeleteNotification++instance ToHeaders DeleteNotification where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSBudgetServiceGateway.DeleteNotification" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeleteNotification where+        toJSON DeleteNotification'{..}+          = object+              (catMaybes+                 [Just ("AccountId" .= _dnAccountId),+                  Just ("BudgetName" .= _dnBudgetName),+                  Just ("Notification" .= _dnNotification)])++instance ToPath DeleteNotification where+        toPath = const "/"++instance ToQuery DeleteNotification where+        toQuery = const mempty++-- | Response of DeleteNotification+--+-- /See:/ 'deleteNotificationResponse' smart constructor.+newtype DeleteNotificationResponse = DeleteNotificationResponse'+    { _dnrsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteNotificationResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dnrsResponseStatus' - -- | The response status code.+deleteNotificationResponse+    :: Int -- ^ 'dnrsResponseStatus'+    -> DeleteNotificationResponse+deleteNotificationResponse pResponseStatus_ =+    DeleteNotificationResponse'+    { _dnrsResponseStatus = pResponseStatus_+    }++-- | -- | The response status code.+dnrsResponseStatus :: Lens' DeleteNotificationResponse Int+dnrsResponseStatus = lens _dnrsResponseStatus (\ s a -> s{_dnrsResponseStatus = a});++instance NFData DeleteNotificationResponse
+ gen/Network/AWS/Budgets/DeleteSubscriber.hs view
@@ -0,0 +1,159 @@+{-# 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.Budgets.DeleteSubscriber+-- 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)+--+-- Delete a Subscriber for a notification+module Network.AWS.Budgets.DeleteSubscriber+    (+    -- * Creating a Request+      deleteSubscriber+    , DeleteSubscriber+    -- * Request Lenses+    , dsAccountId+    , dsBudgetName+    , dsNotification+    , dsSubscriber++    -- * Destructuring the Response+    , deleteSubscriberResponse+    , DeleteSubscriberResponse+    -- * Response Lenses+    , dsrsResponseStatus+    ) where++import           Network.AWS.Budgets.Types+import           Network.AWS.Budgets.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Request of DeleteSubscriber+--+-- /See:/ 'deleteSubscriber' smart constructor.+data DeleteSubscriber = DeleteSubscriber'+    { _dsAccountId    :: !Text+    , _dsBudgetName   :: !Text+    , _dsNotification :: !Notification+    , _dsSubscriber   :: !Subscriber+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteSubscriber' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsAccountId' - Undocumented member.+--+-- * 'dsBudgetName' - Undocumented member.+--+-- * 'dsNotification' - Undocumented member.+--+-- * 'dsSubscriber' - Undocumented member.+deleteSubscriber+    :: Text -- ^ 'dsAccountId'+    -> Text -- ^ 'dsBudgetName'+    -> Notification -- ^ 'dsNotification'+    -> Subscriber -- ^ 'dsSubscriber'+    -> DeleteSubscriber+deleteSubscriber pAccountId_ pBudgetName_ pNotification_ pSubscriber_ =+    DeleteSubscriber'+    { _dsAccountId = pAccountId_+    , _dsBudgetName = pBudgetName_+    , _dsNotification = pNotification_+    , _dsSubscriber = pSubscriber_+    }++-- | Undocumented member.+dsAccountId :: Lens' DeleteSubscriber Text+dsAccountId = lens _dsAccountId (\ s a -> s{_dsAccountId = a});++-- | Undocumented member.+dsBudgetName :: Lens' DeleteSubscriber Text+dsBudgetName = lens _dsBudgetName (\ s a -> s{_dsBudgetName = a});++-- | Undocumented member.+dsNotification :: Lens' DeleteSubscriber Notification+dsNotification = lens _dsNotification (\ s a -> s{_dsNotification = a});++-- | Undocumented member.+dsSubscriber :: Lens' DeleteSubscriber Subscriber+dsSubscriber = lens _dsSubscriber (\ s a -> s{_dsSubscriber = a});++instance AWSRequest DeleteSubscriber where+        type Rs DeleteSubscriber = DeleteSubscriberResponse+        request = postJSON budgets+        response+          = receiveEmpty+              (\ s h x ->+                 DeleteSubscriberResponse' <$> (pure (fromEnum s)))++instance Hashable DeleteSubscriber++instance NFData DeleteSubscriber++instance ToHeaders DeleteSubscriber where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSBudgetServiceGateway.DeleteSubscriber" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DeleteSubscriber where+        toJSON DeleteSubscriber'{..}+          = object+              (catMaybes+                 [Just ("AccountId" .= _dsAccountId),+                  Just ("BudgetName" .= _dsBudgetName),+                  Just ("Notification" .= _dsNotification),+                  Just ("Subscriber" .= _dsSubscriber)])++instance ToPath DeleteSubscriber where+        toPath = const "/"++instance ToQuery DeleteSubscriber where+        toQuery = const mempty++-- | Response of DeleteSubscriber+--+-- /See:/ 'deleteSubscriberResponse' smart constructor.+newtype DeleteSubscriberResponse = DeleteSubscriberResponse'+    { _dsrsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DeleteSubscriberResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsrsResponseStatus' - -- | The response status code.+deleteSubscriberResponse+    :: Int -- ^ 'dsrsResponseStatus'+    -> DeleteSubscriberResponse+deleteSubscriberResponse pResponseStatus_ =+    DeleteSubscriberResponse'+    { _dsrsResponseStatus = pResponseStatus_+    }++-- | -- | The response status code.+dsrsResponseStatus :: Lens' DeleteSubscriberResponse Int+dsrsResponseStatus = lens _dsrsResponseStatus (\ s a -> s{_dsrsResponseStatus = a});++instance NFData DeleteSubscriberResponse
+ gen/Network/AWS/Budgets/DescribeBudget.hs view
@@ -0,0 +1,147 @@+{-# 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.Budgets.DescribeBudget+-- 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)+--+-- Get a single budget+module Network.AWS.Budgets.DescribeBudget+    (+    -- * Creating a Request+      describeBudget+    , DescribeBudget+    -- * Request Lenses+    , desAccountId+    , desBudgetName++    -- * Destructuring the Response+    , describeBudgetResponse+    , DescribeBudgetResponse+    -- * Response Lenses+    , desrsBudget+    , desrsResponseStatus+    ) where++import           Network.AWS.Budgets.Types+import           Network.AWS.Budgets.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Request of DescribeBudget+--+-- /See:/ 'describeBudget' smart constructor.+data DescribeBudget = DescribeBudget'+    { _desAccountId  :: !Text+    , _desBudgetName :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeBudget' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'desAccountId' - Undocumented member.+--+-- * 'desBudgetName' - Undocumented member.+describeBudget+    :: Text -- ^ 'desAccountId'+    -> Text -- ^ 'desBudgetName'+    -> DescribeBudget+describeBudget pAccountId_ pBudgetName_ =+    DescribeBudget'+    { _desAccountId = pAccountId_+    , _desBudgetName = pBudgetName_+    }++-- | Undocumented member.+desAccountId :: Lens' DescribeBudget Text+desAccountId = lens _desAccountId (\ s a -> s{_desAccountId = a});++-- | Undocumented member.+desBudgetName :: Lens' DescribeBudget Text+desBudgetName = lens _desBudgetName (\ s a -> s{_desBudgetName = a});++instance AWSRequest DescribeBudget where+        type Rs DescribeBudget = DescribeBudgetResponse+        request = postJSON budgets+        response+          = receiveJSON+              (\ s h x ->+                 DescribeBudgetResponse' <$>+                   (x .?> "Budget") <*> (pure (fromEnum s)))++instance Hashable DescribeBudget++instance NFData DescribeBudget++instance ToHeaders DescribeBudget where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSBudgetServiceGateway.DescribeBudget" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DescribeBudget where+        toJSON DescribeBudget'{..}+          = object+              (catMaybes+                 [Just ("AccountId" .= _desAccountId),+                  Just ("BudgetName" .= _desBudgetName)])++instance ToPath DescribeBudget where+        toPath = const "/"++instance ToQuery DescribeBudget where+        toQuery = const mempty++-- | Response of DescribeBudget+--+-- /See:/ 'describeBudgetResponse' smart constructor.+data DescribeBudgetResponse = DescribeBudgetResponse'+    { _desrsBudget         :: !(Maybe Budget)+    , _desrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeBudgetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'desrsBudget' - Undocumented member.+--+-- * 'desrsResponseStatus' - -- | The response status code.+describeBudgetResponse+    :: Int -- ^ 'desrsResponseStatus'+    -> DescribeBudgetResponse+describeBudgetResponse pResponseStatus_ =+    DescribeBudgetResponse'+    { _desrsBudget = Nothing+    , _desrsResponseStatus = pResponseStatus_+    }++-- | Undocumented member.+desrsBudget :: Lens' DescribeBudgetResponse (Maybe Budget)+desrsBudget = lens _desrsBudget (\ s a -> s{_desrsBudget = a});++-- | -- | The response status code.+desrsResponseStatus :: Lens' DescribeBudgetResponse Int+desrsResponseStatus = lens _desrsResponseStatus (\ s a -> s{_desrsResponseStatus = a});++instance NFData DescribeBudgetResponse
+ gen/Network/AWS/Budgets/DescribeBudgets.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.Budgets.DescribeBudgets+-- 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)+--+-- Get all budgets for an account+module Network.AWS.Budgets.DescribeBudgets+    (+    -- * Creating a Request+      describeBudgets+    , DescribeBudgets+    -- * Request Lenses+    , dbNextToken+    , dbMaxResults+    , dbAccountId++    -- * Destructuring the Response+    , describeBudgetsResponse+    , DescribeBudgetsResponse+    -- * Response Lenses+    , dbrsNextToken+    , dbrsBudgets+    , dbrsResponseStatus+    ) where++import           Network.AWS.Budgets.Types+import           Network.AWS.Budgets.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Request of DescribeBudgets+--+-- /See:/ 'describeBudgets' smart constructor.+data DescribeBudgets = DescribeBudgets'+    { _dbNextToken  :: !(Maybe Text)+    , _dbMaxResults :: !(Maybe Nat)+    , _dbAccountId  :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeBudgets' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dbNextToken' - Undocumented member.+--+-- * 'dbMaxResults' - Undocumented member.+--+-- * 'dbAccountId' - Undocumented member.+describeBudgets+    :: Text -- ^ 'dbAccountId'+    -> DescribeBudgets+describeBudgets pAccountId_ =+    DescribeBudgets'+    { _dbNextToken = Nothing+    , _dbMaxResults = Nothing+    , _dbAccountId = pAccountId_+    }++-- | Undocumented member.+dbNextToken :: Lens' DescribeBudgets (Maybe Text)+dbNextToken = lens _dbNextToken (\ s a -> s{_dbNextToken = a});++-- | Undocumented member.+dbMaxResults :: Lens' DescribeBudgets (Maybe Natural)+dbMaxResults = lens _dbMaxResults (\ s a -> s{_dbMaxResults = a}) . mapping _Nat;++-- | Undocumented member.+dbAccountId :: Lens' DescribeBudgets Text+dbAccountId = lens _dbAccountId (\ s a -> s{_dbAccountId = a});++instance AWSRequest DescribeBudgets where+        type Rs DescribeBudgets = DescribeBudgetsResponse+        request = postJSON budgets+        response+          = receiveJSON+              (\ s h x ->+                 DescribeBudgetsResponse' <$>+                   (x .?> "NextToken") <*> (x .?> "Budgets" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance Hashable DescribeBudgets++instance NFData DescribeBudgets++instance ToHeaders DescribeBudgets where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSBudgetServiceGateway.DescribeBudgets" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DescribeBudgets where+        toJSON DescribeBudgets'{..}+          = object+              (catMaybes+                 [("NextToken" .=) <$> _dbNextToken,+                  ("MaxResults" .=) <$> _dbMaxResults,+                  Just ("AccountId" .= _dbAccountId)])++instance ToPath DescribeBudgets where+        toPath = const "/"++instance ToQuery DescribeBudgets where+        toQuery = const mempty++-- | Response of DescribeBudgets+--+-- /See:/ 'describeBudgetsResponse' smart constructor.+data DescribeBudgetsResponse = DescribeBudgetsResponse'+    { _dbrsNextToken      :: !(Maybe Text)+    , _dbrsBudgets        :: !(Maybe [Budget])+    , _dbrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeBudgetsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dbrsNextToken' - Undocumented member.+--+-- * 'dbrsBudgets' - Undocumented member.+--+-- * 'dbrsResponseStatus' - -- | The response status code.+describeBudgetsResponse+    :: Int -- ^ 'dbrsResponseStatus'+    -> DescribeBudgetsResponse+describeBudgetsResponse pResponseStatus_ =+    DescribeBudgetsResponse'+    { _dbrsNextToken = Nothing+    , _dbrsBudgets = Nothing+    , _dbrsResponseStatus = pResponseStatus_+    }++-- | Undocumented member.+dbrsNextToken :: Lens' DescribeBudgetsResponse (Maybe Text)+dbrsNextToken = lens _dbrsNextToken (\ s a -> s{_dbrsNextToken = a});++-- | Undocumented member.+dbrsBudgets :: Lens' DescribeBudgetsResponse [Budget]+dbrsBudgets = lens _dbrsBudgets (\ s a -> s{_dbrsBudgets = a}) . _Default . _Coerce;++-- | -- | The response status code.+dbrsResponseStatus :: Lens' DescribeBudgetsResponse Int+dbrsResponseStatus = lens _dbrsResponseStatus (\ s a -> s{_dbrsResponseStatus = a});++instance NFData DescribeBudgetsResponse
+ gen/Network/AWS/Budgets/DescribeNotificationsForBudget.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.Budgets.DescribeNotificationsForBudget+-- 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)+--+-- Get notifications of a budget+module Network.AWS.Budgets.DescribeNotificationsForBudget+    (+    -- * Creating a Request+      describeNotificationsForBudget+    , DescribeNotificationsForBudget+    -- * Request Lenses+    , dnfbNextToken+    , dnfbMaxResults+    , dnfbAccountId+    , dnfbBudgetName++    -- * Destructuring the Response+    , describeNotificationsForBudgetResponse+    , DescribeNotificationsForBudgetResponse+    -- * Response Lenses+    , dnfbrsNextToken+    , dnfbrsNotifications+    , dnfbrsResponseStatus+    ) where++import           Network.AWS.Budgets.Types+import           Network.AWS.Budgets.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Request of DescribeNotificationsForBudget+--+-- /See:/ 'describeNotificationsForBudget' smart constructor.+data DescribeNotificationsForBudget = DescribeNotificationsForBudget'+    { _dnfbNextToken  :: !(Maybe Text)+    , _dnfbMaxResults :: !(Maybe Nat)+    , _dnfbAccountId  :: !Text+    , _dnfbBudgetName :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeNotificationsForBudget' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dnfbNextToken' - Undocumented member.+--+-- * 'dnfbMaxResults' - Undocumented member.+--+-- * 'dnfbAccountId' - Undocumented member.+--+-- * 'dnfbBudgetName' - Undocumented member.+describeNotificationsForBudget+    :: Text -- ^ 'dnfbAccountId'+    -> Text -- ^ 'dnfbBudgetName'+    -> DescribeNotificationsForBudget+describeNotificationsForBudget pAccountId_ pBudgetName_ =+    DescribeNotificationsForBudget'+    { _dnfbNextToken = Nothing+    , _dnfbMaxResults = Nothing+    , _dnfbAccountId = pAccountId_+    , _dnfbBudgetName = pBudgetName_+    }++-- | Undocumented member.+dnfbNextToken :: Lens' DescribeNotificationsForBudget (Maybe Text)+dnfbNextToken = lens _dnfbNextToken (\ s a -> s{_dnfbNextToken = a});++-- | Undocumented member.+dnfbMaxResults :: Lens' DescribeNotificationsForBudget (Maybe Natural)+dnfbMaxResults = lens _dnfbMaxResults (\ s a -> s{_dnfbMaxResults = a}) . mapping _Nat;++-- | Undocumented member.+dnfbAccountId :: Lens' DescribeNotificationsForBudget Text+dnfbAccountId = lens _dnfbAccountId (\ s a -> s{_dnfbAccountId = a});++-- | Undocumented member.+dnfbBudgetName :: Lens' DescribeNotificationsForBudget Text+dnfbBudgetName = lens _dnfbBudgetName (\ s a -> s{_dnfbBudgetName = a});++instance AWSRequest DescribeNotificationsForBudget+         where+        type Rs DescribeNotificationsForBudget =+             DescribeNotificationsForBudgetResponse+        request = postJSON budgets+        response+          = receiveJSON+              (\ s h x ->+                 DescribeNotificationsForBudgetResponse' <$>+                   (x .?> "NextToken") <*>+                     (x .?> "Notifications" .!@ mempty)+                     <*> (pure (fromEnum s)))++instance Hashable DescribeNotificationsForBudget++instance NFData DescribeNotificationsForBudget++instance ToHeaders DescribeNotificationsForBudget+         where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSBudgetServiceGateway.DescribeNotificationsForBudget"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DescribeNotificationsForBudget where+        toJSON DescribeNotificationsForBudget'{..}+          = object+              (catMaybes+                 [("NextToken" .=) <$> _dnfbNextToken,+                  ("MaxResults" .=) <$> _dnfbMaxResults,+                  Just ("AccountId" .= _dnfbAccountId),+                  Just ("BudgetName" .= _dnfbBudgetName)])++instance ToPath DescribeNotificationsForBudget where+        toPath = const "/"++instance ToQuery DescribeNotificationsForBudget where+        toQuery = const mempty++-- | Response of GetNotificationsForBudget+--+-- /See:/ 'describeNotificationsForBudgetResponse' smart constructor.+data DescribeNotificationsForBudgetResponse = DescribeNotificationsForBudgetResponse'+    { _dnfbrsNextToken      :: !(Maybe Text)+    , _dnfbrsNotifications  :: !(Maybe [Notification])+    , _dnfbrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeNotificationsForBudgetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dnfbrsNextToken' - Undocumented member.+--+-- * 'dnfbrsNotifications' - Undocumented member.+--+-- * 'dnfbrsResponseStatus' - -- | The response status code.+describeNotificationsForBudgetResponse+    :: Int -- ^ 'dnfbrsResponseStatus'+    -> DescribeNotificationsForBudgetResponse+describeNotificationsForBudgetResponse pResponseStatus_ =+    DescribeNotificationsForBudgetResponse'+    { _dnfbrsNextToken = Nothing+    , _dnfbrsNotifications = Nothing+    , _dnfbrsResponseStatus = pResponseStatus_+    }++-- | Undocumented member.+dnfbrsNextToken :: Lens' DescribeNotificationsForBudgetResponse (Maybe Text)+dnfbrsNextToken = lens _dnfbrsNextToken (\ s a -> s{_dnfbrsNextToken = a});++-- | Undocumented member.+dnfbrsNotifications :: Lens' DescribeNotificationsForBudgetResponse [Notification]+dnfbrsNotifications = lens _dnfbrsNotifications (\ s a -> s{_dnfbrsNotifications = a}) . _Default . _Coerce;++-- | -- | The response status code.+dnfbrsResponseStatus :: Lens' DescribeNotificationsForBudgetResponse Int+dnfbrsResponseStatus = lens _dnfbrsResponseStatus (\ s a -> s{_dnfbrsResponseStatus = a});++instance NFData+         DescribeNotificationsForBudgetResponse
+ gen/Network/AWS/Budgets/DescribeSubscribersForNotification.hs view
@@ -0,0 +1,195 @@+{-# 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.Budgets.DescribeSubscribersForNotification+-- 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)+--+-- Get subscribers of a notification+module Network.AWS.Budgets.DescribeSubscribersForNotification+    (+    -- * Creating a Request+      describeSubscribersForNotification+    , DescribeSubscribersForNotification+    -- * Request Lenses+    , dsfnNextToken+    , dsfnMaxResults+    , dsfnAccountId+    , dsfnBudgetName+    , dsfnNotification++    -- * Destructuring the Response+    , describeSubscribersForNotificationResponse+    , DescribeSubscribersForNotificationResponse+    -- * Response Lenses+    , dsfnrsNextToken+    , dsfnrsSubscribers+    , dsfnrsResponseStatus+    ) where++import           Network.AWS.Budgets.Types+import           Network.AWS.Budgets.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Request of DescribeSubscribersForNotification+--+-- /See:/ 'describeSubscribersForNotification' smart constructor.+data DescribeSubscribersForNotification = DescribeSubscribersForNotification'+    { _dsfnNextToken    :: !(Maybe Text)+    , _dsfnMaxResults   :: !(Maybe Nat)+    , _dsfnAccountId    :: !Text+    , _dsfnBudgetName   :: !Text+    , _dsfnNotification :: !Notification+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeSubscribersForNotification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsfnNextToken' - Undocumented member.+--+-- * 'dsfnMaxResults' - Undocumented member.+--+-- * 'dsfnAccountId' - Undocumented member.+--+-- * 'dsfnBudgetName' - Undocumented member.+--+-- * 'dsfnNotification' - Undocumented member.+describeSubscribersForNotification+    :: Text -- ^ 'dsfnAccountId'+    -> Text -- ^ 'dsfnBudgetName'+    -> Notification -- ^ 'dsfnNotification'+    -> DescribeSubscribersForNotification+describeSubscribersForNotification pAccountId_ pBudgetName_ pNotification_ =+    DescribeSubscribersForNotification'+    { _dsfnNextToken = Nothing+    , _dsfnMaxResults = Nothing+    , _dsfnAccountId = pAccountId_+    , _dsfnBudgetName = pBudgetName_+    , _dsfnNotification = pNotification_+    }++-- | Undocumented member.+dsfnNextToken :: Lens' DescribeSubscribersForNotification (Maybe Text)+dsfnNextToken = lens _dsfnNextToken (\ s a -> s{_dsfnNextToken = a});++-- | Undocumented member.+dsfnMaxResults :: Lens' DescribeSubscribersForNotification (Maybe Natural)+dsfnMaxResults = lens _dsfnMaxResults (\ s a -> s{_dsfnMaxResults = a}) . mapping _Nat;++-- | Undocumented member.+dsfnAccountId :: Lens' DescribeSubscribersForNotification Text+dsfnAccountId = lens _dsfnAccountId (\ s a -> s{_dsfnAccountId = a});++-- | Undocumented member.+dsfnBudgetName :: Lens' DescribeSubscribersForNotification Text+dsfnBudgetName = lens _dsfnBudgetName (\ s a -> s{_dsfnBudgetName = a});++-- | Undocumented member.+dsfnNotification :: Lens' DescribeSubscribersForNotification Notification+dsfnNotification = lens _dsfnNotification (\ s a -> s{_dsfnNotification = a});++instance AWSRequest+         DescribeSubscribersForNotification where+        type Rs DescribeSubscribersForNotification =+             DescribeSubscribersForNotificationResponse+        request = postJSON budgets+        response+          = receiveJSON+              (\ s h x ->+                 DescribeSubscribersForNotificationResponse' <$>+                   (x .?> "NextToken") <*> (x .?> "Subscribers") <*>+                     (pure (fromEnum s)))++instance Hashable DescribeSubscribersForNotification++instance NFData DescribeSubscribersForNotification++instance ToHeaders DescribeSubscribersForNotification+         where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSBudgetServiceGateway.DescribeSubscribersForNotification"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON DescribeSubscribersForNotification+         where+        toJSON DescribeSubscribersForNotification'{..}+          = object+              (catMaybes+                 [("NextToken" .=) <$> _dsfnNextToken,+                  ("MaxResults" .=) <$> _dsfnMaxResults,+                  Just ("AccountId" .= _dsfnAccountId),+                  Just ("BudgetName" .= _dsfnBudgetName),+                  Just ("Notification" .= _dsfnNotification)])++instance ToPath DescribeSubscribersForNotification+         where+        toPath = const "/"++instance ToQuery DescribeSubscribersForNotification+         where+        toQuery = const mempty++-- | Response of DescribeSubscribersForNotification+--+-- /See:/ 'describeSubscribersForNotificationResponse' smart constructor.+data DescribeSubscribersForNotificationResponse = DescribeSubscribersForNotificationResponse'+    { _dsfnrsNextToken      :: !(Maybe Text)+    , _dsfnrsSubscribers    :: !(Maybe (List1 Subscriber))+    , _dsfnrsResponseStatus :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeSubscribersForNotificationResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dsfnrsNextToken' - Undocumented member.+--+-- * 'dsfnrsSubscribers' - Undocumented member.+--+-- * 'dsfnrsResponseStatus' - -- | The response status code.+describeSubscribersForNotificationResponse+    :: Int -- ^ 'dsfnrsResponseStatus'+    -> DescribeSubscribersForNotificationResponse+describeSubscribersForNotificationResponse pResponseStatus_ =+    DescribeSubscribersForNotificationResponse'+    { _dsfnrsNextToken = Nothing+    , _dsfnrsSubscribers = Nothing+    , _dsfnrsResponseStatus = pResponseStatus_+    }++-- | Undocumented member.+dsfnrsNextToken :: Lens' DescribeSubscribersForNotificationResponse (Maybe Text)+dsfnrsNextToken = lens _dsfnrsNextToken (\ s a -> s{_dsfnrsNextToken = a});++-- | Undocumented member.+dsfnrsSubscribers :: Lens' DescribeSubscribersForNotificationResponse (Maybe (NonEmpty Subscriber))+dsfnrsSubscribers = lens _dsfnrsSubscribers (\ s a -> s{_dsfnrsSubscribers = a}) . mapping _List1;++-- | -- | The response status code.+dsfnrsResponseStatus :: Lens' DescribeSubscribersForNotificationResponse Int+dsfnrsResponseStatus = lens _dsfnrsResponseStatus (\ s a -> s{_dsfnrsResponseStatus = a});++instance NFData+         DescribeSubscribersForNotificationResponse
+ gen/Network/AWS/Budgets/Types.hs view
@@ -0,0 +1,169 @@+{-# LANGUAGE OverloadedStrings #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.Budgets.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.Budgets.Types+    (+    -- * Service Configuration+      budgets++    -- * Errors+    , _InvalidParameterException+    , _InternalErrorException+    , _ExpiredNextTokenException+    , _NotFoundException+    , _InvalidNextTokenException+    , _DuplicateRecordException+    , _CreationLimitExceededException++    -- * BudgetType+    , BudgetType (..)++    -- * ComparisonOperator+    , ComparisonOperator (..)++    -- * NotificationType+    , NotificationType (..)++    -- * SubscriptionType+    , SubscriptionType (..)++    -- * TimeUnit+    , TimeUnit (..)++    -- * Budget+    , Budget+    , budget+    , bCalculatedSpend+    , bCostFilters+    , bBudgetName+    , bBudgetLimit+    , bCostTypes+    , bTimeUnit+    , bTimePeriod+    , bBudgetType++    -- * CalculatedSpend+    , CalculatedSpend+    , calculatedSpend+    , csForecastedSpend+    , csActualSpend++    -- * CostTypes+    , CostTypes+    , costTypes+    , ctIncludeTax+    , ctIncludeSubscription+    , ctUseBlended++    -- * Notification+    , Notification+    , notification+    , nNotificationType+    , nComparisonOperator+    , nThreshold++    -- * NotificationWithSubscribers+    , NotificationWithSubscribers+    , notificationWithSubscribers+    , nwsNotification+    , nwsSubscribers++    -- * Spend+    , Spend+    , spend+    , sAmount+    , sUnit++    -- * Subscriber+    , Subscriber+    , subscriber+    , sSubscriptionType+    , sAddress++    -- * TimePeriod+    , TimePeriod+    , timePeriod+    , tpStart+    , tpEnd+    ) where++import           Network.AWS.Budgets.Types.Product+import           Network.AWS.Budgets.Types.Sum+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Sign.V4++-- | API version @2016-10-20@ of the Amazon Budgets SDK configuration.+budgets :: Service+budgets =+    Service+    { _svcAbbrev = "Budgets"+    , _svcSigner = v4+    , _svcPrefix = "budgets"+    , _svcVersion = "2016-10-20"+    , _svcEndpoint = defaultEndpoint budgets+    , _svcTimeout = Just 70+    , _svcCheck = statusSuccess+    , _svcError = parseJSONError "Budgets"+    , _svcRetry = retry+    }+  where+    retry =+        Exponential+        { _retryBase = 5.0e-2+        , _retryGrowth = 2+        , _retryAttempts = 5+        , _retryCheck = check+        }+    check e+      | has (hasStatus 429) e = Just "too_many_requests"+      | has (hasCode "ThrottlingException" . hasStatus 400) e =+          Just "throttling_exception"+      | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"+      | has (hasStatus 504) e = Just "gateway_timeout"+      | has (hasStatus 502) e = Just "bad_gateway"+      | has (hasStatus 503) e = Just "service_unavailable"+      | has (hasStatus 500) e = Just "general_server_error"+      | has (hasStatus 509) e = Just "limit_exceeded"+      | otherwise = Nothing++-- | This exception is thrown if any request is given an invalid parameter. E.g., if a required Date field is null.+_InvalidParameterException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidParameterException =+    _ServiceError . hasCode "InvalidParameterException"++-- | This exception is thrown on an unknown internal failure.+_InternalErrorException :: AsError a => Getting (First ServiceError) a ServiceError+_InternalErrorException = _ServiceError . hasCode "InternalErrorException"++-- | This exception is thrown if the paging token is expired - past its TTL+_ExpiredNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError+_ExpiredNextTokenException =+    _ServiceError . hasCode "ExpiredNextTokenException"++-- | This exception is thrown if a requested entity is not found. E.g., if a budget id doesn't exist for an account ID.+_NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError+_NotFoundException = _ServiceError . hasCode "NotFoundException"++-- | This exception is thrown if paging token signature didn't match the token, or the paging token isn't for this request+_InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidNextTokenException =+    _ServiceError . hasCode "InvalidNextTokenException"++-- | The exception is thrown when customer tries to create a record (e.g. budget) that already exists.+_DuplicateRecordException :: AsError a => Getting (First ServiceError) a ServiceError+_DuplicateRecordException = _ServiceError . hasCode "DuplicateRecordException"++-- | The exception is thrown when customer tries to create a record (e.g. budget), but the number this record already exceeds the limitation.+_CreationLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError+_CreationLimitExceededException =+    _ServiceError . hasCode "CreationLimitExceededException"
+ gen/Network/AWS/Budgets/Types/Product.hs view
@@ -0,0 +1,507 @@+{-# 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.Budgets.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.Budgets.Types.Product where++import           Network.AWS.Budgets.Types.Sum+import           Network.AWS.Lens+import           Network.AWS.Prelude++-- | AWS Budget model+--+-- /See:/ 'budget' smart constructor.+data Budget = Budget'+    { _bCalculatedSpend :: !(Maybe CalculatedSpend)+    , _bCostFilters     :: !(Maybe (Map Text [Text]))+    , _bBudgetName      :: !Text+    , _bBudgetLimit     :: !Spend+    , _bCostTypes       :: !CostTypes+    , _bTimeUnit        :: !TimeUnit+    , _bTimePeriod      :: !TimePeriod+    , _bBudgetType      :: !BudgetType+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Budget' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'bCalculatedSpend' - Undocumented member.+--+-- * 'bCostFilters' - Undocumented member.+--+-- * 'bBudgetName' - Undocumented member.+--+-- * 'bBudgetLimit' - Undocumented member.+--+-- * 'bCostTypes' - Undocumented member.+--+-- * 'bTimeUnit' - Undocumented member.+--+-- * 'bTimePeriod' - Undocumented member.+--+-- * 'bBudgetType' - Undocumented member.+budget+    :: Text -- ^ 'bBudgetName'+    -> Spend -- ^ 'bBudgetLimit'+    -> CostTypes -- ^ 'bCostTypes'+    -> TimeUnit -- ^ 'bTimeUnit'+    -> TimePeriod -- ^ 'bTimePeriod'+    -> BudgetType -- ^ 'bBudgetType'+    -> Budget+budget pBudgetName_ pBudgetLimit_ pCostTypes_ pTimeUnit_ pTimePeriod_ pBudgetType_ =+    Budget'+    { _bCalculatedSpend = Nothing+    , _bCostFilters = Nothing+    , _bBudgetName = pBudgetName_+    , _bBudgetLimit = pBudgetLimit_+    , _bCostTypes = pCostTypes_+    , _bTimeUnit = pTimeUnit_+    , _bTimePeriod = pTimePeriod_+    , _bBudgetType = pBudgetType_+    }++-- | Undocumented member.+bCalculatedSpend :: Lens' Budget (Maybe CalculatedSpend)+bCalculatedSpend = lens _bCalculatedSpend (\ s a -> s{_bCalculatedSpend = a});++-- | Undocumented member.+bCostFilters :: Lens' Budget (HashMap Text [Text])+bCostFilters = lens _bCostFilters (\ s a -> s{_bCostFilters = a}) . _Default . _Map;++-- | Undocumented member.+bBudgetName :: Lens' Budget Text+bBudgetName = lens _bBudgetName (\ s a -> s{_bBudgetName = a});++-- | Undocumented member.+bBudgetLimit :: Lens' Budget Spend+bBudgetLimit = lens _bBudgetLimit (\ s a -> s{_bBudgetLimit = a});++-- | Undocumented member.+bCostTypes :: Lens' Budget CostTypes+bCostTypes = lens _bCostTypes (\ s a -> s{_bCostTypes = a});++-- | Undocumented member.+bTimeUnit :: Lens' Budget TimeUnit+bTimeUnit = lens _bTimeUnit (\ s a -> s{_bTimeUnit = a});++-- | Undocumented member.+bTimePeriod :: Lens' Budget TimePeriod+bTimePeriod = lens _bTimePeriod (\ s a -> s{_bTimePeriod = a});++-- | Undocumented member.+bBudgetType :: Lens' Budget BudgetType+bBudgetType = lens _bBudgetType (\ s a -> s{_bBudgetType = a});++instance FromJSON Budget where+        parseJSON+          = withObject "Budget"+              (\ x ->+                 Budget' <$>+                   (x .:? "CalculatedSpend") <*>+                     (x .:? "CostFilters" .!= mempty)+                     <*> (x .: "BudgetName")+                     <*> (x .: "BudgetLimit")+                     <*> (x .: "CostTypes")+                     <*> (x .: "TimeUnit")+                     <*> (x .: "TimePeriod")+                     <*> (x .: "BudgetType"))++instance Hashable Budget++instance NFData Budget++instance ToJSON Budget where+        toJSON Budget'{..}+          = object+              (catMaybes+                 [("CalculatedSpend" .=) <$> _bCalculatedSpend,+                  ("CostFilters" .=) <$> _bCostFilters,+                  Just ("BudgetName" .= _bBudgetName),+                  Just ("BudgetLimit" .= _bBudgetLimit),+                  Just ("CostTypes" .= _bCostTypes),+                  Just ("TimeUnit" .= _bTimeUnit),+                  Just ("TimePeriod" .= _bTimePeriod),+                  Just ("BudgetType" .= _bBudgetType)])++-- | A structure holds the actual and forecasted spend for a budget.+--+-- /See:/ 'calculatedSpend' smart constructor.+data CalculatedSpend = CalculatedSpend'+    { _csForecastedSpend :: !(Maybe Spend)+    , _csActualSpend     :: !Spend+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CalculatedSpend' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'csForecastedSpend' - Undocumented member.+--+-- * 'csActualSpend' - Undocumented member.+calculatedSpend+    :: Spend -- ^ 'csActualSpend'+    -> CalculatedSpend+calculatedSpend pActualSpend_ =+    CalculatedSpend'+    { _csForecastedSpend = Nothing+    , _csActualSpend = pActualSpend_+    }++-- | Undocumented member.+csForecastedSpend :: Lens' CalculatedSpend (Maybe Spend)+csForecastedSpend = lens _csForecastedSpend (\ s a -> s{_csForecastedSpend = a});++-- | Undocumented member.+csActualSpend :: Lens' CalculatedSpend Spend+csActualSpend = lens _csActualSpend (\ s a -> s{_csActualSpend = a});++instance FromJSON CalculatedSpend where+        parseJSON+          = withObject "CalculatedSpend"+              (\ x ->+                 CalculatedSpend' <$>+                   (x .:? "ForecastedSpend") <*> (x .: "ActualSpend"))++instance Hashable CalculatedSpend++instance NFData CalculatedSpend++instance ToJSON CalculatedSpend where+        toJSON CalculatedSpend'{..}+          = object+              (catMaybes+                 [("ForecastedSpend" .=) <$> _csForecastedSpend,+                  Just ("ActualSpend" .= _csActualSpend)])++-- | This includes the options for getting the cost of a budget.+--+-- /See:/ 'costTypes' smart constructor.+data CostTypes = CostTypes'+    { _ctIncludeTax          :: !Bool+    , _ctIncludeSubscription :: !Bool+    , _ctUseBlended          :: !Bool+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CostTypes' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ctIncludeTax' - Undocumented member.+--+-- * 'ctIncludeSubscription' - Undocumented member.+--+-- * 'ctUseBlended' - Undocumented member.+costTypes+    :: Bool -- ^ 'ctIncludeTax'+    -> Bool -- ^ 'ctIncludeSubscription'+    -> Bool -- ^ 'ctUseBlended'+    -> CostTypes+costTypes pIncludeTax_ pIncludeSubscription_ pUseBlended_ =+    CostTypes'+    { _ctIncludeTax = pIncludeTax_+    , _ctIncludeSubscription = pIncludeSubscription_+    , _ctUseBlended = pUseBlended_+    }++-- | Undocumented member.+ctIncludeTax :: Lens' CostTypes Bool+ctIncludeTax = lens _ctIncludeTax (\ s a -> s{_ctIncludeTax = a});++-- | Undocumented member.+ctIncludeSubscription :: Lens' CostTypes Bool+ctIncludeSubscription = lens _ctIncludeSubscription (\ s a -> s{_ctIncludeSubscription = a});++-- | Undocumented member.+ctUseBlended :: Lens' CostTypes Bool+ctUseBlended = lens _ctUseBlended (\ s a -> s{_ctUseBlended = a});++instance FromJSON CostTypes where+        parseJSON+          = withObject "CostTypes"+              (\ x ->+                 CostTypes' <$>+                   (x .: "IncludeTax") <*> (x .: "IncludeSubscription")+                     <*> (x .: "UseBlended"))++instance Hashable CostTypes++instance NFData CostTypes++instance ToJSON CostTypes where+        toJSON CostTypes'{..}+          = object+              (catMaybes+                 [Just ("IncludeTax" .= _ctIncludeTax),+                  Just+                    ("IncludeSubscription" .= _ctIncludeSubscription),+                  Just ("UseBlended" .= _ctUseBlended)])++-- | Notification model. Each budget may contain multiple notifications with different settings.+--+-- /See:/ 'notification' smart constructor.+data Notification = Notification'+    { _nNotificationType   :: !NotificationType+    , _nComparisonOperator :: !ComparisonOperator+    , _nThreshold          :: !Double+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Notification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nNotificationType' - Undocumented member.+--+-- * 'nComparisonOperator' - Undocumented member.+--+-- * 'nThreshold' - Undocumented member.+notification+    :: NotificationType -- ^ 'nNotificationType'+    -> ComparisonOperator -- ^ 'nComparisonOperator'+    -> Double -- ^ 'nThreshold'+    -> Notification+notification pNotificationType_ pComparisonOperator_ pThreshold_ =+    Notification'+    { _nNotificationType = pNotificationType_+    , _nComparisonOperator = pComparisonOperator_+    , _nThreshold = pThreshold_+    }++-- | Undocumented member.+nNotificationType :: Lens' Notification NotificationType+nNotificationType = lens _nNotificationType (\ s a -> s{_nNotificationType = a});++-- | Undocumented member.+nComparisonOperator :: Lens' Notification ComparisonOperator+nComparisonOperator = lens _nComparisonOperator (\ s a -> s{_nComparisonOperator = a});++-- | Undocumented member.+nThreshold :: Lens' Notification Double+nThreshold = lens _nThreshold (\ s a -> s{_nThreshold = a});++instance FromJSON Notification where+        parseJSON+          = withObject "Notification"+              (\ x ->+                 Notification' <$>+                   (x .: "NotificationType") <*>+                     (x .: "ComparisonOperator")+                     <*> (x .: "Threshold"))++instance Hashable Notification++instance NFData Notification++instance ToJSON Notification where+        toJSON Notification'{..}+          = object+              (catMaybes+                 [Just ("NotificationType" .= _nNotificationType),+                  Just ("ComparisonOperator" .= _nComparisonOperator),+                  Just ("Threshold" .= _nThreshold)])++-- | A structure to relate notification and a list of subscribers who belong to the notification.+--+-- /See:/ 'notificationWithSubscribers' smart constructor.+data NotificationWithSubscribers = NotificationWithSubscribers'+    { _nwsNotification :: !Notification+    , _nwsSubscribers  :: !(List1 Subscriber)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'NotificationWithSubscribers' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'nwsNotification' - Undocumented member.+--+-- * 'nwsSubscribers' - Undocumented member.+notificationWithSubscribers+    :: Notification -- ^ 'nwsNotification'+    -> NonEmpty Subscriber -- ^ 'nwsSubscribers'+    -> NotificationWithSubscribers+notificationWithSubscribers pNotification_ pSubscribers_ =+    NotificationWithSubscribers'+    { _nwsNotification = pNotification_+    , _nwsSubscribers = _List1 # pSubscribers_+    }++-- | Undocumented member.+nwsNotification :: Lens' NotificationWithSubscribers Notification+nwsNotification = lens _nwsNotification (\ s a -> s{_nwsNotification = a});++-- | Undocumented member.+nwsSubscribers :: Lens' NotificationWithSubscribers (NonEmpty Subscriber)+nwsSubscribers = lens _nwsSubscribers (\ s a -> s{_nwsSubscribers = a}) . _List1;++instance Hashable NotificationWithSubscribers++instance NFData NotificationWithSubscribers++instance ToJSON NotificationWithSubscribers where+        toJSON NotificationWithSubscribers'{..}+          = object+              (catMaybes+                 [Just ("Notification" .= _nwsNotification),+                  Just ("Subscribers" .= _nwsSubscribers)])++-- | A structure represent either a cost spend or usage spend. Contains an amount and a unit.+--+-- /See:/ 'spend' smart constructor.+data Spend = Spend'+    { _sAmount :: !Text+    , _sUnit   :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Spend' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sAmount' - Undocumented member.+--+-- * 'sUnit' - Undocumented member.+spend+    :: Text -- ^ 'sAmount'+    -> Text -- ^ 'sUnit'+    -> Spend+spend pAmount_ pUnit_ =+    Spend'+    { _sAmount = pAmount_+    , _sUnit = pUnit_+    }++-- | Undocumented member.+sAmount :: Lens' Spend Text+sAmount = lens _sAmount (\ s a -> s{_sAmount = a});++-- | Undocumented member.+sUnit :: Lens' Spend Text+sUnit = lens _sUnit (\ s a -> s{_sUnit = a});++instance FromJSON Spend where+        parseJSON+          = withObject "Spend"+              (\ x -> Spend' <$> (x .: "Amount") <*> (x .: "Unit"))++instance Hashable Spend++instance NFData Spend++instance ToJSON Spend where+        toJSON Spend'{..}+          = object+              (catMaybes+                 [Just ("Amount" .= _sAmount),+                  Just ("Unit" .= _sUnit)])++-- | Subscriber model. Each notification may contain multiple subscribers with different addresses.+--+-- /See:/ 'subscriber' smart constructor.+data Subscriber = Subscriber'+    { _sSubscriptionType :: !SubscriptionType+    , _sAddress          :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Subscriber' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'sSubscriptionType' - Undocumented member.+--+-- * 'sAddress' - Undocumented member.+subscriber+    :: SubscriptionType -- ^ 'sSubscriptionType'+    -> Text -- ^ 'sAddress'+    -> Subscriber+subscriber pSubscriptionType_ pAddress_ =+    Subscriber'+    { _sSubscriptionType = pSubscriptionType_+    , _sAddress = pAddress_+    }++-- | Undocumented member.+sSubscriptionType :: Lens' Subscriber SubscriptionType+sSubscriptionType = lens _sSubscriptionType (\ s a -> s{_sSubscriptionType = a});++-- | Undocumented member.+sAddress :: Lens' Subscriber Text+sAddress = lens _sAddress (\ s a -> s{_sAddress = a});++instance FromJSON Subscriber where+        parseJSON+          = withObject "Subscriber"+              (\ x ->+                 Subscriber' <$>+                   (x .: "SubscriptionType") <*> (x .: "Address"))++instance Hashable Subscriber++instance NFData Subscriber++instance ToJSON Subscriber where+        toJSON Subscriber'{..}+          = object+              (catMaybes+                 [Just ("SubscriptionType" .= _sSubscriptionType),+                  Just ("Address" .= _sAddress)])++-- | A time period indicated the start date and end date of a budget.+--+-- /See:/ 'timePeriod' smart constructor.+data TimePeriod = TimePeriod'+    { _tpStart :: !POSIX+    , _tpEnd   :: !POSIX+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'TimePeriod' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tpStart' - Undocumented member.+--+-- * 'tpEnd' - Undocumented member.+timePeriod+    :: UTCTime -- ^ 'tpStart'+    -> UTCTime -- ^ 'tpEnd'+    -> TimePeriod+timePeriod pStart_ pEnd_ =+    TimePeriod'+    { _tpStart = _Time # pStart_+    , _tpEnd = _Time # pEnd_+    }++-- | Undocumented member.+tpStart :: Lens' TimePeriod UTCTime+tpStart = lens _tpStart (\ s a -> s{_tpStart = a}) . _Time;++-- | Undocumented member.+tpEnd :: Lens' TimePeriod UTCTime+tpEnd = lens _tpEnd (\ s a -> s{_tpEnd = a}) . _Time;++instance FromJSON TimePeriod where+        parseJSON+          = withObject "TimePeriod"+              (\ x ->+                 TimePeriod' <$> (x .: "Start") <*> (x .: "End"))++instance Hashable TimePeriod++instance NFData TimePeriod++instance ToJSON TimePeriod where+        toJSON TimePeriod'{..}+          = object+              (catMaybes+                 [Just ("Start" .= _tpStart), Just ("End" .= _tpEnd)])
+ gen/Network/AWS/Budgets/Types/Sum.hs view
@@ -0,0 +1,176 @@+{-# 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.Budgets.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.Budgets.Types.Sum where++import           Network.AWS.Prelude++-- | The type of a budget. Can be COST or USAGE.+data BudgetType+    = Cost+    | Usage+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)++instance FromText BudgetType where+    parser = takeLowerText >>= \case+        "cost" -> pure Cost+        "usage" -> pure Usage+        e -> fromTextError $ "Failure parsing BudgetType from value: '" <> e+           <> "'. Accepted values: cost, usage"++instance ToText BudgetType where+    toText = \case+        Cost -> "COST"+        Usage -> "USAGE"++instance Hashable     BudgetType+instance NFData       BudgetType+instance ToByteString BudgetType+instance ToQuery      BudgetType+instance ToHeader     BudgetType++instance ToJSON BudgetType where+    toJSON = toJSONText++instance FromJSON BudgetType where+    parseJSON = parseJSONText "BudgetType"++-- | The comparison operator of a notification. Currently we support less than, equal to and greater than.+data ComparisonOperator+    = EqualTo+    | GreaterThan+    | LessThan+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)++instance FromText ComparisonOperator where+    parser = takeLowerText >>= \case+        "equal_to" -> pure EqualTo+        "greater_than" -> pure GreaterThan+        "less_than" -> pure LessThan+        e -> fromTextError $ "Failure parsing ComparisonOperator from value: '" <> e+           <> "'. Accepted values: equal_to, greater_than, less_than"++instance ToText ComparisonOperator where+    toText = \case+        EqualTo -> "EQUAL_TO"+        GreaterThan -> "GREATER_THAN"+        LessThan -> "LESS_THAN"++instance Hashable     ComparisonOperator+instance NFData       ComparisonOperator+instance ToByteString ComparisonOperator+instance ToQuery      ComparisonOperator+instance ToHeader     ComparisonOperator++instance ToJSON ComparisonOperator where+    toJSON = toJSONText++instance FromJSON ComparisonOperator where+    parseJSON = parseJSONText "ComparisonOperator"++-- | The type of a notification. It should be ACTUAL or FORECASTED.+data NotificationType+    = Actual+    | Forecasted+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)++instance FromText NotificationType where+    parser = takeLowerText >>= \case+        "actual" -> pure Actual+        "forecasted" -> pure Forecasted+        e -> fromTextError $ "Failure parsing NotificationType from value: '" <> e+           <> "'. Accepted values: actual, forecasted"++instance ToText NotificationType where+    toText = \case+        Actual -> "ACTUAL"+        Forecasted -> "FORECASTED"++instance Hashable     NotificationType+instance NFData       NotificationType+instance ToByteString NotificationType+instance ToQuery      NotificationType+instance ToHeader     NotificationType++instance ToJSON NotificationType where+    toJSON = toJSONText++instance FromJSON NotificationType where+    parseJSON = parseJSONText "NotificationType"++-- | The subscription type of the subscriber. It can be SMS or EMAIL.+data SubscriptionType+    = Email+    | SNS+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)++instance FromText SubscriptionType where+    parser = takeLowerText >>= \case+        "email" -> pure Email+        "sns" -> pure SNS+        e -> fromTextError $ "Failure parsing SubscriptionType from value: '" <> e+           <> "'. Accepted values: email, sns"++instance ToText SubscriptionType where+    toText = \case+        Email -> "EMAIL"+        SNS -> "SNS"++instance Hashable     SubscriptionType+instance NFData       SubscriptionType+instance ToByteString SubscriptionType+instance ToQuery      SubscriptionType+instance ToHeader     SubscriptionType++instance ToJSON SubscriptionType where+    toJSON = toJSONText++instance FromJSON SubscriptionType where+    parseJSON = parseJSONText "SubscriptionType"++-- | The time unit of the budget. e.g. weekly, monthly, etc.+data TimeUnit+    = Annually+    | Monthly+    | Quarterly+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)++instance FromText TimeUnit where+    parser = takeLowerText >>= \case+        "annually" -> pure Annually+        "monthly" -> pure Monthly+        "quarterly" -> pure Quarterly+        e -> fromTextError $ "Failure parsing TimeUnit from value: '" <> e+           <> "'. Accepted values: annually, monthly, quarterly"++instance ToText TimeUnit where+    toText = \case+        Annually -> "ANNUALLY"+        Monthly -> "MONTHLY"+        Quarterly -> "QUARTERLY"++instance Hashable     TimeUnit+instance NFData       TimeUnit+instance ToByteString TimeUnit+instance ToQuery      TimeUnit+instance ToHeader     TimeUnit++instance ToJSON TimeUnit where+    toJSON = toJSONText++instance FromJSON TimeUnit where+    parseJSON = parseJSONText "TimeUnit"
+ gen/Network/AWS/Budgets/UpdateBudget.hs view
@@ -0,0 +1,137 @@+{-# 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.Budgets.UpdateBudget+-- 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)+--+-- Update the information of a budget already created+module Network.AWS.Budgets.UpdateBudget+    (+    -- * Creating a Request+      updateBudget+    , UpdateBudget+    -- * Request Lenses+    , ubAccountId+    , ubNewBudget++    -- * Destructuring the Response+    , updateBudgetResponse+    , UpdateBudgetResponse+    -- * Response Lenses+    , ubrsResponseStatus+    ) where++import           Network.AWS.Budgets.Types+import           Network.AWS.Budgets.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Request of UpdateBudget+--+-- /See:/ 'updateBudget' smart constructor.+data UpdateBudget = UpdateBudget'+    { _ubAccountId :: !Text+    , _ubNewBudget :: !Budget+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateBudget' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ubAccountId' - Undocumented member.+--+-- * 'ubNewBudget' - Undocumented member.+updateBudget+    :: Text -- ^ 'ubAccountId'+    -> Budget -- ^ 'ubNewBudget'+    -> UpdateBudget+updateBudget pAccountId_ pNewBudget_ =+    UpdateBudget'+    { _ubAccountId = pAccountId_+    , _ubNewBudget = pNewBudget_+    }++-- | Undocumented member.+ubAccountId :: Lens' UpdateBudget Text+ubAccountId = lens _ubAccountId (\ s a -> s{_ubAccountId = a});++-- | Undocumented member.+ubNewBudget :: Lens' UpdateBudget Budget+ubNewBudget = lens _ubNewBudget (\ s a -> s{_ubNewBudget = a});++instance AWSRequest UpdateBudget where+        type Rs UpdateBudget = UpdateBudgetResponse+        request = postJSON budgets+        response+          = receiveEmpty+              (\ s h x ->+                 UpdateBudgetResponse' <$> (pure (fromEnum s)))++instance Hashable UpdateBudget++instance NFData UpdateBudget++instance ToHeaders UpdateBudget where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSBudgetServiceGateway.UpdateBudget" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdateBudget where+        toJSON UpdateBudget'{..}+          = object+              (catMaybes+                 [Just ("AccountId" .= _ubAccountId),+                  Just ("NewBudget" .= _ubNewBudget)])++instance ToPath UpdateBudget where+        toPath = const "/"++instance ToQuery UpdateBudget where+        toQuery = const mempty++-- | Response of UpdateBudget+--+-- /See:/ 'updateBudgetResponse' smart constructor.+newtype UpdateBudgetResponse = UpdateBudgetResponse'+    { _ubrsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateBudgetResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'ubrsResponseStatus' - -- | The response status code.+updateBudgetResponse+    :: Int -- ^ 'ubrsResponseStatus'+    -> UpdateBudgetResponse+updateBudgetResponse pResponseStatus_ =+    UpdateBudgetResponse'+    { _ubrsResponseStatus = pResponseStatus_+    }++-- | -- | The response status code.+ubrsResponseStatus :: Lens' UpdateBudgetResponse Int+ubrsResponseStatus = lens _ubrsResponseStatus (\ s a -> s{_ubrsResponseStatus = a});++instance NFData UpdateBudgetResponse
+ gen/Network/AWS/Budgets/UpdateNotification.hs view
@@ -0,0 +1,160 @@+{-# 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.Budgets.UpdateNotification+-- 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)+--+-- Update the information about a notification already created+module Network.AWS.Budgets.UpdateNotification+    (+    -- * Creating a Request+      updateNotification+    , UpdateNotification+    -- * Request Lenses+    , unAccountId+    , unBudgetName+    , unOldNotification+    , unNewNotification++    -- * Destructuring the Response+    , updateNotificationResponse+    , UpdateNotificationResponse+    -- * Response Lenses+    , unrsResponseStatus+    ) where++import           Network.AWS.Budgets.Types+import           Network.AWS.Budgets.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Request of UpdateNotification+--+-- /See:/ 'updateNotification' smart constructor.+data UpdateNotification = UpdateNotification'+    { _unAccountId       :: !Text+    , _unBudgetName      :: !Text+    , _unOldNotification :: !Notification+    , _unNewNotification :: !Notification+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateNotification' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'unAccountId' - Undocumented member.+--+-- * 'unBudgetName' - Undocumented member.+--+-- * 'unOldNotification' - Undocumented member.+--+-- * 'unNewNotification' - Undocumented member.+updateNotification+    :: Text -- ^ 'unAccountId'+    -> Text -- ^ 'unBudgetName'+    -> Notification -- ^ 'unOldNotification'+    -> Notification -- ^ 'unNewNotification'+    -> UpdateNotification+updateNotification pAccountId_ pBudgetName_ pOldNotification_ pNewNotification_ =+    UpdateNotification'+    { _unAccountId = pAccountId_+    , _unBudgetName = pBudgetName_+    , _unOldNotification = pOldNotification_+    , _unNewNotification = pNewNotification_+    }++-- | Undocumented member.+unAccountId :: Lens' UpdateNotification Text+unAccountId = lens _unAccountId (\ s a -> s{_unAccountId = a});++-- | Undocumented member.+unBudgetName :: Lens' UpdateNotification Text+unBudgetName = lens _unBudgetName (\ s a -> s{_unBudgetName = a});++-- | Undocumented member.+unOldNotification :: Lens' UpdateNotification Notification+unOldNotification = lens _unOldNotification (\ s a -> s{_unOldNotification = a});++-- | Undocumented member.+unNewNotification :: Lens' UpdateNotification Notification+unNewNotification = lens _unNewNotification (\ s a -> s{_unNewNotification = a});++instance AWSRequest UpdateNotification where+        type Rs UpdateNotification =+             UpdateNotificationResponse+        request = postJSON budgets+        response+          = receiveEmpty+              (\ s h x ->+                 UpdateNotificationResponse' <$> (pure (fromEnum s)))++instance Hashable UpdateNotification++instance NFData UpdateNotification++instance ToHeaders UpdateNotification where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSBudgetServiceGateway.UpdateNotification" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdateNotification where+        toJSON UpdateNotification'{..}+          = object+              (catMaybes+                 [Just ("AccountId" .= _unAccountId),+                  Just ("BudgetName" .= _unBudgetName),+                  Just ("OldNotification" .= _unOldNotification),+                  Just ("NewNotification" .= _unNewNotification)])++instance ToPath UpdateNotification where+        toPath = const "/"++instance ToQuery UpdateNotification where+        toQuery = const mempty++-- | Response of UpdateNotification+--+-- /See:/ 'updateNotificationResponse' smart constructor.+newtype UpdateNotificationResponse = UpdateNotificationResponse'+    { _unrsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateNotificationResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'unrsResponseStatus' - -- | The response status code.+updateNotificationResponse+    :: Int -- ^ 'unrsResponseStatus'+    -> UpdateNotificationResponse+updateNotificationResponse pResponseStatus_ =+    UpdateNotificationResponse'+    { _unrsResponseStatus = pResponseStatus_+    }++-- | -- | The response status code.+unrsResponseStatus :: Lens' UpdateNotificationResponse Int+unrsResponseStatus = lens _unrsResponseStatus (\ s a -> s{_unrsResponseStatus = a});++instance NFData UpdateNotificationResponse
+ gen/Network/AWS/Budgets/UpdateSubscriber.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.Budgets.UpdateSubscriber+-- 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)+--+-- Update a subscriber+module Network.AWS.Budgets.UpdateSubscriber+    (+    -- * Creating a Request+      updateSubscriber+    , UpdateSubscriber+    -- * Request Lenses+    , usAccountId+    , usBudgetName+    , usNotification+    , usOldSubscriber+    , usNewSubscriber++    -- * Destructuring the Response+    , updateSubscriberResponse+    , UpdateSubscriberResponse+    -- * Response Lenses+    , usrsResponseStatus+    ) where++import           Network.AWS.Budgets.Types+import           Network.AWS.Budgets.Types.Product+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response++-- | Request of UpdateSubscriber+--+-- /See:/ 'updateSubscriber' smart constructor.+data UpdateSubscriber = UpdateSubscriber'+    { _usAccountId     :: !Text+    , _usBudgetName    :: !Text+    , _usNotification  :: !Notification+    , _usOldSubscriber :: !Subscriber+    , _usNewSubscriber :: !Subscriber+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateSubscriber' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'usAccountId' - Undocumented member.+--+-- * 'usBudgetName' - Undocumented member.+--+-- * 'usNotification' - Undocumented member.+--+-- * 'usOldSubscriber' - Undocumented member.+--+-- * 'usNewSubscriber' - Undocumented member.+updateSubscriber+    :: Text -- ^ 'usAccountId'+    -> Text -- ^ 'usBudgetName'+    -> Notification -- ^ 'usNotification'+    -> Subscriber -- ^ 'usOldSubscriber'+    -> Subscriber -- ^ 'usNewSubscriber'+    -> UpdateSubscriber+updateSubscriber pAccountId_ pBudgetName_ pNotification_ pOldSubscriber_ pNewSubscriber_ =+    UpdateSubscriber'+    { _usAccountId = pAccountId_+    , _usBudgetName = pBudgetName_+    , _usNotification = pNotification_+    , _usOldSubscriber = pOldSubscriber_+    , _usNewSubscriber = pNewSubscriber_+    }++-- | Undocumented member.+usAccountId :: Lens' UpdateSubscriber Text+usAccountId = lens _usAccountId (\ s a -> s{_usAccountId = a});++-- | Undocumented member.+usBudgetName :: Lens' UpdateSubscriber Text+usBudgetName = lens _usBudgetName (\ s a -> s{_usBudgetName = a});++-- | Undocumented member.+usNotification :: Lens' UpdateSubscriber Notification+usNotification = lens _usNotification (\ s a -> s{_usNotification = a});++-- | Undocumented member.+usOldSubscriber :: Lens' UpdateSubscriber Subscriber+usOldSubscriber = lens _usOldSubscriber (\ s a -> s{_usOldSubscriber = a});++-- | Undocumented member.+usNewSubscriber :: Lens' UpdateSubscriber Subscriber+usNewSubscriber = lens _usNewSubscriber (\ s a -> s{_usNewSubscriber = a});++instance AWSRequest UpdateSubscriber where+        type Rs UpdateSubscriber = UpdateSubscriberResponse+        request = postJSON budgets+        response+          = receiveEmpty+              (\ s h x ->+                 UpdateSubscriberResponse' <$> (pure (fromEnum s)))++instance Hashable UpdateSubscriber++instance NFData UpdateSubscriber++instance ToHeaders UpdateSubscriber where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("AWSBudgetServiceGateway.UpdateSubscriber" ::+                       ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON UpdateSubscriber where+        toJSON UpdateSubscriber'{..}+          = object+              (catMaybes+                 [Just ("AccountId" .= _usAccountId),+                  Just ("BudgetName" .= _usBudgetName),+                  Just ("Notification" .= _usNotification),+                  Just ("OldSubscriber" .= _usOldSubscriber),+                  Just ("NewSubscriber" .= _usNewSubscriber)])++instance ToPath UpdateSubscriber where+        toPath = const "/"++instance ToQuery UpdateSubscriber where+        toQuery = const mempty++-- | Response of UpdateSubscriber+--+-- /See:/ 'updateSubscriberResponse' smart constructor.+newtype UpdateSubscriberResponse = UpdateSubscriberResponse'+    { _usrsResponseStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateSubscriberResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'usrsResponseStatus' - -- | The response status code.+updateSubscriberResponse+    :: Int -- ^ 'usrsResponseStatus'+    -> UpdateSubscriberResponse+updateSubscriberResponse pResponseStatus_ =+    UpdateSubscriberResponse'+    { _usrsResponseStatus = pResponseStatus_+    }++-- | -- | The response status code.+usrsResponseStatus :: Lens' UpdateSubscriberResponse Int+usrsResponseStatus = lens _usrsResponseStatus (\ s a -> s{_usrsResponseStatus = a});++instance NFData UpdateSubscriberResponse
+ gen/Network/AWS/Budgets/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.Budgets.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.Budgets.Waiters where++import           Network.AWS.Budgets.Types+import           Network.AWS.Lens+import           Network.AWS.Prelude+import           Network.AWS.Waiter
+ src/.gitkeep view
+ test/Main.hs view
@@ -0,0 +1,21 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Main+-- Copyright   : (c) 2013-2016 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Main (main) where++import Test.Tasty+import Test.AWS.Budgets+import Test.AWS.Budgets.Internal++main :: IO ()+main = defaultMain $ testGroup "Budgets"+    [ testGroup "tests"    tests+    , testGroup "fixtures" fixtures+    ]
+ test/Test/AWS/Budgets.hs view
@@ -0,0 +1,20 @@+-- |+-- Module      : Test.AWS.Budgets+-- 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.Budgets+    ( tests+    , fixtures+    ) where++import Test.Tasty (TestTree)++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/AWS/Budgets/Internal.hs view
@@ -0,0 +1,9 @@+-- |+-- Module      : Test.AWS.Budgets.Internal+-- 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.Budgets.Internal where
+ test/Test/AWS/Gen/Budgets.hs view
@@ -0,0 +1,273 @@+{-# 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.Budgets+-- 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.Budgets where++import Data.Proxy+import Test.AWS.Fixture+import Test.AWS.Prelude+import Test.Tasty+import Network.AWS.Budgets+import Test.AWS.Budgets.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"+--         [ requestDescribeSubscribersForNotification $+--             describeSubscribersForNotification+--+--         , requestDescribeNotificationsForBudget $+--             describeNotificationsForBudget+--+--         , requestDescribeBudgets $+--             describeBudgets+--+--         , requestCreateSubscriber $+--             createSubscriber+--+--         , requestUpdateBudget $+--             updateBudget+--+--         , requestDeleteBudget $+--             deleteBudget+--+--         , requestDeleteNotification $+--             deleteNotification+--+--         , requestUpdateNotification $+--             updateNotification+--+--         , requestDescribeBudget $+--             describeBudget+--+--         , requestUpdateSubscriber $+--             updateSubscriber+--+--         , requestDeleteSubscriber $+--             deleteSubscriber+--+--         , requestCreateBudget $+--             createBudget+--+--         , requestCreateNotification $+--             createNotification+--+--           ]++--     , testGroup "response"+--         [ responseDescribeSubscribersForNotification $+--             describeSubscribersForNotificationResponse+--+--         , responseDescribeNotificationsForBudget $+--             describeNotificationsForBudgetResponse+--+--         , responseDescribeBudgets $+--             describeBudgetsResponse+--+--         , responseCreateSubscriber $+--             createSubscriberResponse+--+--         , responseUpdateBudget $+--             updateBudgetResponse+--+--         , responseDeleteBudget $+--             deleteBudgetResponse+--+--         , responseDeleteNotification $+--             deleteNotificationResponse+--+--         , responseUpdateNotification $+--             updateNotificationResponse+--+--         , responseDescribeBudget $+--             describeBudgetResponse+--+--         , responseUpdateSubscriber $+--             updateSubscriberResponse+--+--         , responseDeleteSubscriber $+--             deleteSubscriberResponse+--+--         , responseCreateBudget $+--             createBudgetResponse+--+--         , responseCreateNotification $+--             createNotificationResponse+--+--           ]+--     ]++-- Requests++requestDescribeSubscribersForNotification :: DescribeSubscribersForNotification -> TestTree+requestDescribeSubscribersForNotification = req+    "DescribeSubscribersForNotification"+    "fixture/DescribeSubscribersForNotification.yaml"++requestDescribeNotificationsForBudget :: DescribeNotificationsForBudget -> TestTree+requestDescribeNotificationsForBudget = req+    "DescribeNotificationsForBudget"+    "fixture/DescribeNotificationsForBudget.yaml"++requestDescribeBudgets :: DescribeBudgets -> TestTree+requestDescribeBudgets = req+    "DescribeBudgets"+    "fixture/DescribeBudgets.yaml"++requestCreateSubscriber :: CreateSubscriber -> TestTree+requestCreateSubscriber = req+    "CreateSubscriber"+    "fixture/CreateSubscriber.yaml"++requestUpdateBudget :: UpdateBudget -> TestTree+requestUpdateBudget = req+    "UpdateBudget"+    "fixture/UpdateBudget.yaml"++requestDeleteBudget :: DeleteBudget -> TestTree+requestDeleteBudget = req+    "DeleteBudget"+    "fixture/DeleteBudget.yaml"++requestDeleteNotification :: DeleteNotification -> TestTree+requestDeleteNotification = req+    "DeleteNotification"+    "fixture/DeleteNotification.yaml"++requestUpdateNotification :: UpdateNotification -> TestTree+requestUpdateNotification = req+    "UpdateNotification"+    "fixture/UpdateNotification.yaml"++requestDescribeBudget :: DescribeBudget -> TestTree+requestDescribeBudget = req+    "DescribeBudget"+    "fixture/DescribeBudget.yaml"++requestUpdateSubscriber :: UpdateSubscriber -> TestTree+requestUpdateSubscriber = req+    "UpdateSubscriber"+    "fixture/UpdateSubscriber.yaml"++requestDeleteSubscriber :: DeleteSubscriber -> TestTree+requestDeleteSubscriber = req+    "DeleteSubscriber"+    "fixture/DeleteSubscriber.yaml"++requestCreateBudget :: CreateBudget -> TestTree+requestCreateBudget = req+    "CreateBudget"+    "fixture/CreateBudget.yaml"++requestCreateNotification :: CreateNotification -> TestTree+requestCreateNotification = req+    "CreateNotification"+    "fixture/CreateNotification.yaml"++-- Responses++responseDescribeSubscribersForNotification :: DescribeSubscribersForNotificationResponse -> TestTree+responseDescribeSubscribersForNotification = res+    "DescribeSubscribersForNotificationResponse"+    "fixture/DescribeSubscribersForNotificationResponse.proto"+    budgets+    (Proxy :: Proxy DescribeSubscribersForNotification)++responseDescribeNotificationsForBudget :: DescribeNotificationsForBudgetResponse -> TestTree+responseDescribeNotificationsForBudget = res+    "DescribeNotificationsForBudgetResponse"+    "fixture/DescribeNotificationsForBudgetResponse.proto"+    budgets+    (Proxy :: Proxy DescribeNotificationsForBudget)++responseDescribeBudgets :: DescribeBudgetsResponse -> TestTree+responseDescribeBudgets = res+    "DescribeBudgetsResponse"+    "fixture/DescribeBudgetsResponse.proto"+    budgets+    (Proxy :: Proxy DescribeBudgets)++responseCreateSubscriber :: CreateSubscriberResponse -> TestTree+responseCreateSubscriber = res+    "CreateSubscriberResponse"+    "fixture/CreateSubscriberResponse.proto"+    budgets+    (Proxy :: Proxy CreateSubscriber)++responseUpdateBudget :: UpdateBudgetResponse -> TestTree+responseUpdateBudget = res+    "UpdateBudgetResponse"+    "fixture/UpdateBudgetResponse.proto"+    budgets+    (Proxy :: Proxy UpdateBudget)++responseDeleteBudget :: DeleteBudgetResponse -> TestTree+responseDeleteBudget = res+    "DeleteBudgetResponse"+    "fixture/DeleteBudgetResponse.proto"+    budgets+    (Proxy :: Proxy DeleteBudget)++responseDeleteNotification :: DeleteNotificationResponse -> TestTree+responseDeleteNotification = res+    "DeleteNotificationResponse"+    "fixture/DeleteNotificationResponse.proto"+    budgets+    (Proxy :: Proxy DeleteNotification)++responseUpdateNotification :: UpdateNotificationResponse -> TestTree+responseUpdateNotification = res+    "UpdateNotificationResponse"+    "fixture/UpdateNotificationResponse.proto"+    budgets+    (Proxy :: Proxy UpdateNotification)++responseDescribeBudget :: DescribeBudgetResponse -> TestTree+responseDescribeBudget = res+    "DescribeBudgetResponse"+    "fixture/DescribeBudgetResponse.proto"+    budgets+    (Proxy :: Proxy DescribeBudget)++responseUpdateSubscriber :: UpdateSubscriberResponse -> TestTree+responseUpdateSubscriber = res+    "UpdateSubscriberResponse"+    "fixture/UpdateSubscriberResponse.proto"+    budgets+    (Proxy :: Proxy UpdateSubscriber)++responseDeleteSubscriber :: DeleteSubscriberResponse -> TestTree+responseDeleteSubscriber = res+    "DeleteSubscriberResponse"+    "fixture/DeleteSubscriberResponse.proto"+    budgets+    (Proxy :: Proxy DeleteSubscriber)++responseCreateBudget :: CreateBudgetResponse -> TestTree+responseCreateBudget = res+    "CreateBudgetResponse"+    "fixture/CreateBudgetResponse.proto"+    budgets+    (Proxy :: Proxy CreateBudget)++responseCreateNotification :: CreateNotificationResponse -> TestTree+responseCreateNotification = res+    "CreateNotificationResponse"+    "fixture/CreateNotificationResponse.proto"+    budgets+    (Proxy :: Proxy CreateNotification)